diff --git a/esp32/builtins.h b/esp32/builtins.h
index 13141d0..8462dbb 100644
--- a/esp32/builtins.h
+++ b/esp32/builtins.h
@@ -175,10 +175,12 @@ static cell_t ResizeFile(cell_t fd, cell_t size);
#define REQUIRED_SERIAL_SUPPORT \
XV(serial, "Serial.begin", SERIAL_BEGIN, Serial.begin(tos); DROP) \
+ XV(serial, "Serial.begin3", SERIAL_BEGIN3, Serial.begin(n2, SERIAL_8N1, n1, n0); DROPn(3)) \
XV(serial, "Serial.end", SERIAL_END, Serial.end()) \
XV(serial, "Serial.available", SERIAL_AVAILABLE, PUSH Serial.available()) \
XV(serial, "Serial.readBytes", SERIAL_READ_BYTES, n0 = Serial.readBytes(b1, n0); NIP) \
XV(serial, "Serial.write", SERIAL_WRITE, n0 = Serial.write(b1, n0); NIP) \
+ XV(serial, "Serial.writeChar", SERIAL_WRITECHAR, n0 = Serial.write(n0)) \
XV(serial, "Serial.flush", SERIAL_FLUSH, Serial.flush()) \
XV(serial, "Serial.setDebugOutput", SERIAL_DEBUG_OUTPUT, Serial.setDebugOutput(n0); DROP)
@@ -187,10 +189,12 @@ static cell_t ResizeFile(cell_t fd, cell_t size);
#else
# define OPTIONAL_SERIAL2_SUPPORT \
XV(serial, "Serial2.begin", SERIAL2_BEGIN, Serial2.begin(tos); DROP) \
+ XV(serial, "Serial2.begin3", SERIAL2_BEGIN3, Serial2.begin(n2, SERIAL_8N1, n1, n0); DROPn(3)) \
XV(serial, "Serial2.end", SERIAL2_END, Serial2.end()) \
XV(serial, "Serial2.available", SERIAL2_AVAILABLE, PUSH Serial2.available()) \
XV(serial, "Serial2.readBytes", SERIAL2_READ_BYTES, n0 = Serial2.readBytes(b1, n0); NIP) \
XV(serial, "Serial2.write", SERIAL2_WRITE, n0 = Serial2.write(b1, n0); NIP) \
+ XV(serial, "Serial2.writeChar", SERIAL2_WRITECHAR, n0 = Serial2.write(n0)) \
XV(serial, "Serial2.flush", SERIAL2_FLUSH, Serial2.flush()) \
XV(serial, "Serial2.setDebugOutput", SERIAL2_DEBUG_OUTPUT, Serial2.setDebugOutput(n0); DROP)
#endif
diff --git a/esp32/platform.fs b/esp32/platform.fs
index 3a0f4b8..7735c2c 100644
--- a/esp32/platform.fs
+++ b/esp32/platform.fs
@@ -40,12 +40,28 @@ also ledc also serial also SPIFFS
( Map Arduino / ESP32 things to shorter names. )
: pin ( n pin# -- ) swap digitalWrite ;
: adc ( n -- n ) analogRead ;
+: duty ( n n -- ) 255 min 8191 255 */ ledcWrite ;
+: freq ( n n -- ) 1000 * 13 ledcAttach drop ;
+: tone ( n n -- ) 1000 * ledcWriteTone drop ;
( Basic Ardiuno Constants )
0 constant LOW
1 constant HIGH
+
1 constant INPUT
-2 constant OUTPUT
+\ 2 constant OUTPUT
+\ // Changed OUTPUT from 0x02 to behave the same as Arduino pinMode(pin,OUTPUT)
+\ // where you can read the state of pin even when it is set as OUTPUT
+3 constant OUTPUT
+4 constant PULLUP
+5 constant INPUT_PULLUP
+8 constant PULLDOWN
+9 constant INPUT_PULLDOWN
+16 constant OPEN_DRAIN
+18 constant OUTPUT_OPEN_DRAIN
+192 constant ANALOG
+
+
2 constant LED
( Startup Setup )
diff --git a/site/ESP32forth.html b/site/ESP32forth.html
index 2c1a443..6774c51 100644
--- a/site/ESP32forth.html
+++ b/site/ESP32forth.html
@@ -352,10 +352,12 @@ REALLOC ( a n -- a | 0 ) System realloc
These words are inside the Serial vocabulary.
Serial.begin ( baud -- ) Start serial port +Serial.begin3 ( baud rxPin txPin -- ) Start serial port Serial.end ( -- ) End serial port Serial.available ( -- f ) Is serial data available Serial.readBytes ( a n -- n ) Read serial bytes, return number gotten Serial.write ( a n -- n ) Write serial bytes +Serial.writeChar ( c -- n ) Write serial character Serial.flush ( -- ) Flush serial buffer@@ -500,6 +502,7 @@ SPIFFS.end ( -- ) SPIFFS.format ( -- f ) SPIFFS.totalBytes ( -- n ) SPIFFS.usedBytes ( -- n ) +SPIFFS.exists ( z -- f ) Test if file exists for path (omitting "/spiffs") like z" /blocks.fb"