Skip to content

Commit 39e0697

Browse files
committed
Update from refactoring branch
### Maintenance page * Add add tab color for mobile view * Add spellcheck off / autocorect off in input * Add disconnect button when authenticate enabled * Add Invalid user or password message when authentication failed ### Board support * Add ESP32 S2 support * Add ESP32 S3 support * Add ESP32 C3 support ### ESP commands * Add command 701 to control GCODE streaming * Remove command 901 as duplicate * Update command 420 to add more details * Use text as default output * All json on all commands for formated output ### Core * Add benchmak function to check transfer speed (for test only-not production) * Merge code for ESP3DLib support * Add better printer display support (M117 / Serial TFT) * Use ESP32 analogWrite instead of emulated one ### Modules * Display * Refactor code * Remove SPI ILI 9341 / 9488 support as not suitable * Add ST7789 support (135x240 / 240x240) * Filesystem * Bug fixes due to esp core updates * Better SD sharing mecanism * Better global FS management * FTP * Add SD sharing support * Better global FS management * GCODE Host * Add basic support for macro files * Add ESP command support * Use not blocking method to stream commands / handle response * Notifications * Add IFTTT notification service * Add WebUI notification * Add ESP3D display notification * WebDav * Add SD sharing support * Add bug fix from https://github.com/d-a-v/ESPWebDAV * Better global FS management * Websocket * Add function to handle zombies connections * WiFi * Fix connection to AP sometime fail * Fix low signal not diplayed in ESP420 even connected * Add AP Setup mode ### Libraries * Update SDFat-2.0.6 to 2.1.2 * Update ESP32SSDP 1.1.1 to 1.2.0 * Update TFT_eSPI-1.4.11 to 2.4.61 * Update arduinoWebSockets-2.3.5 to 2.3.6 * Update esp8266-oled-ssd1306-4.0.0 to 4.3.0 * Remove lvgl support ### Tools * Add I2C scanner script * Add python script to simulate/stress printer serial communication ### PlatformIO * Use latest 4.4.0 Espressif32 release (ESP32-arduino core 2.0.3) * Add fix for Flash more than 4MB * Add Esp32 S2/S3/C3 env * Add ESP32-ST7789 / esp32-TTGO_T_Display env
1 parent b3f2e46 commit 39e0697

File tree

2,496 files changed

+800219
-177708
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,496 files changed

+800219
-177708
lines changed

.github/ci/prepare-libs.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ shopt -s globstar
66
ls $HOME
77
# Make sure we are inside the github workspace
88
cd $GITHUB_WORKSPACE
9-
cp -r ./libraries/ESP32SSDP-1.1.1 $HOME/arduino_ide/libraries/
10-
cp -r ./libraries/arduinoWebSockets-2.3.5 $HOME/arduino_ide/libraries/
9+
cp -r ./libraries/ESP32SSDP-1.2.0 $HOME/arduino_ide/libraries/
10+
cp -r ./libraries/arduinoWebSockets-2.3.6 $HOME/arduino_ide/libraries/
1111
cp -r ./libraries/DHT_sensor_library_for_ESPx-1.0.6 $HOME/arduino_ide/libraries/
12-
cp -r ./libraries/esp8266-oled-ssd1306-4.0.0 $HOME/arduino_ide/libraries/
13-
cp -r ./libraries/TFT_eSPI-1.4.11 $HOME/arduino_ide/libraries/
14-
cp -r ./libraries/lv_arduino-2.0.3 $HOME/arduino_ide/libraries/
12+
cp -r ./libraries/esp8266-oled-ssd1306-4.3.0 $HOME/arduino_ide/libraries/
13+
cp -r ./libraries/TFT_eSPI-2.4.61 $HOME/arduino_ide/libraries/
14+
cp -r ./libraries/lvgl-8.2.0 $HOME/arduino_ide/libraries/
1515
cp -r ./libraries/ESP8266-Arduino-Lua-0.0.30 $HOME/arduino_ide/libraries/
1616
cp -r ./libraries/BMx280MI-1.2.0 $HOME/arduino_ide/libraries/
1717
#TODO add SDFat libraries according version and target

Features.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# V3 Features
2+
3+
* Embedded maintenance page (terminal / local FS update / ESP3D Firmware update)
4+
* WebUI support
5+
* ESP8285 / ESP8266 / ESP32 / ESP32-S2 / ESP32-S3 / ESP32-C3 support
6+
* Wifi / ethernet support
7+
* Raw TCP / serial bridge support (light telnet)
8+
* Boot delay configuration
9+
* Websocket / serial bridge support
10+
* Bluetooth Serial bridge support (when BT supported)
11+
* MKS Serial protocol support
12+
* Serial commands configurations
13+
* Authentication support (admin / user)
14+
* FTP support (limited to 1 connection at once)
15+
* WebDav support
16+
* Local FS support:
17+
* Little FS (prefered)
18+
* Fat (ESP32 only)
19+
* SPIFFS (deprecated)
20+
* SD support
21+
* File format
22+
* Native SPI
23+
* Native SDIO (ESP32 only)
24+
* SDFat 1.x
25+
* SDFat 2.x
26+
* Connection
27+
* Direct connection
28+
* e.g.: ESP32cam
29+
* Sharing connection using hardware switch
30+
* e.g.: Panucatt Wifi Backpack / Azteeg X5 WiFi
31+
* MKS fast upload by serial
32+
* NOT SUPPORTED
33+
* M28/M29 File transfer protocol
34+
* USB support
35+
* planned
36+
* Global FS under FTP / Webdav : SD + Local FS in same directory
37+
* Buzzer support
38+
* Recovery pin support
39+
* ESP32 Camera support
40+
* Basic oled screen support
41+
* I2C SSD1306 128x64
42+
* I2C SSDSH1106 132x64
43+
* Basic tft screen support
44+
* SPI ST7789 135x240
45+
* SPI ST7789 240x240
46+
* Time synchronization support (manual / internet server)
47+
* Lua interpreter support
48+
* Notifications support
49+
* WebUI
50+
* TFT/OLED
51+
* Email
52+
* Line
53+
* Telegram
54+
* PushOver
55+
* IFTTT
56+
* Sensors support
57+
* DHT 11/22
58+
* Analog
59+
* BMX280
60+
* Auto script support at start
61+
* Basic Host GCODE stream for macros hosted on local FS
62+
* Update
63+
* ESP3D configuration using ini file on SD
64+
* ESP3D update using binary file on SD
65+
66+
*
67+
68+

docs/Commands.txt

Lines changed: 99 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,147 @@
11
Note:
22
1 - add space to separate parameters
3-
2 - if parameter has space add \ in front of space to not be seen as separator
3+
2 - if parameter has space add \\ in front of space to not be seen as separator
4+
3 - json json=YES json=TRUE json=1 are paremeters to switch output to json
5+
By default output is plain text, to get json formated output
6+
add json or json=yes after main parameters
7+
The json format is {
8+
cmd:"<command id>", //the id of requested command
9+
status:"<ok/error>" //give if it is success or an failure
10+
data:"<response>" // response corresponding to answer in json format too
11+
}
12+
13+
14+
*Show commands help
15+
[ESP]<command id> json=<no>
416

517
* Set/Get STA SSID
6-
[ESP100]<SSID>pwd=<admin password>
18+
[ESP100]<SSID> json=<no> pwd=<admin password for set/get & user password to get>
719

820
* Set STA Password
9-
[ESP101]<Password>pwd=<admin password>
21+
[ESP101]<Password> json=<no> pwd=<admin password>
1022

1123
* Set/Get STA IP mode (DHCP/STATIC)
12-
[ESP102]<mode>pwd=<admin password>
24+
[ESP102]<mode> json=<no> pwd=<admin password>
1325

1426
* Set/Get STA IP/Mask/GW/DNS
15-
[ESP103]IP=<IP> MSK=<IP> GW=<IP> DNS=<IP> pwd=<admin password>
27+
[ESP103]IP=<IP> MSK=<IP> GW=<IP> DNS=<IP> json=<no> pwd=<admin password>
1628

1729
* Set/Get sta fallback mode which can be WIFI-AP, BT, OFF
18-
[ESP104]<state>pwd=<admin password>
30+
[ESP104]<state> json=<no> pwd=<admin password>
1931

2032
* Set/Get AP SSID
21-
[ESP105]<SSID>pwd=<admin password>
33+
[ESP105]<SSID> json=<no> pwd=<admin password>
2234

2335
* Change AP Password
24-
[ESP106]<Password>pwd=<admin password>
36+
[ESP106]<Password> json=<no> pwd=<admin password>
2537

2638
* Set/Get AP IP
27-
[ESP107]<IP>pwd=<admin password>
39+
[ESP107]<IP> json=<no> pwd=<admin password>
2840

2941
* Set/Get AP channel
30-
[ESP108]<channel>pwd=<admin password>
42+
[ESP108]<channel> json=<no> pwd=<admin password>
3143

3244
* Set/Get radio state which can be WIFI-STA, WIFI-AP, BT, ETH-STA, ETH-AP, OFF
33-
[ESP110]<state>pwd=<admin password>
45+
[ESP110]<state> json=<no> pwd=<admin password>
3446

3547
* Get current IP
36-
[ESP111]<header answer>
48+
[ESP111]json=<no>
3749

3850
* Get/Set hostname
39-
[ESP112]<Hostname> pwd=<admin password>
51+
[ESP112]<Hostname> json=<no> pwd=<admin password>
52+
53+
* Get /Set Boot radio state which can be ON, OFF
54+
[ESP114]<state> json=<no> pwd=<user/admin password>
4055

4156
* Get/Set immediate network(WiFi/BT/Ethernet) state which can be ON, OFF
42-
[ESP115]<state>pwd=<admin password>
57+
[ESP115]<state> json=<no> pwd=<admin password>
4358

4459
* Get/Set HTTP state which can be ON, OFF
45-
[ESP120]<state>pwd=<admin password>
60+
[ESP120]<state> json=<no> pwd=<admin password>
4661

4762
* Get/Set HTTP port
48-
[ESP121]<port>pwd=<admin password>
63+
[ESP121]<port> json=<no> pwd=<admin password>
4964

5065
* Get/Set Telnet state which can be ON, OFF, CLOSE
51-
[ESP130]<state>pwd=<admin password>
66+
[ESP130]<state> json=<no> pwd=<admin password>
5267

5368
* Get/Set Telnet port
54-
[ESP131]<port>pwd=<admin password>
69+
[ESP131]<port> json=<no> pwd=<admin password>
5570

5671
* Sync / Set / Get current time
57-
[ESP140]<SYNC> <srv1=XXXXX> <srv2=XXXXX> <srv3=XXXXX> <zone=xxx> <dst=YES/NO> <time=YYYY-MM-DD#H24:MM:SS> pwd=<admin password>
72+
[ESP140]<SYNC> <srv1=XXXXX> <srv2=XXXXX> <srv3=XXXXX> <zone=xxx> <dst=YES/NO> <time=YYYY-MM-DD#H24:MM:SS> <NOW> json=<no> pwd=<admin password>
5873

5974
* Get/Set display/set boot delay in ms / Verbose boot
6075
[ESP150]<delay=time in milliseconds><verbose=ON/OFF>[pwd=<admin password>]
6176

6277
* Get/Set WebSocket state which can be ON, OFF
63-
[ESP160]<state>pwd=<admin password>
78+
[ESP160]<state> json=<no> pwd=<admin password>
6479

6580
* Get/Set WebSocket port
66-
[ESP161]<port>pwd=<admin password>
81+
[ESP161]<port> json=<no> pwd=<admin password>
6782

6883
* Get/Set Camera command value / list all values in JSON/plain
6984
label can be: light/framesize/quality/contrast/brightness/saturation/gainceiling/colorbar/awb/agc/aec/hmirror/vflip/awb_gain/agc_gain/aec_value/aec2/cw/bpc/wpc/raw_gma/lenc/special_effect/wb_mode/ae_level
70-
[ESP170]<plain><label=value> pwd=<admin password>
85+
[ESP170]<plain><label=value> json=<no> pwd=<admin password>
7186

7287
* Get/Set Ftp state which can be ON, OFF, CLOSE
73-
[ESP180]<state>pwd=<admin password>
88+
[ESP180]<state> json=<no> pwd=<admin password>
7489

7590
* Get/Set Ftp ports
76-
[ESP181]ctrl=<port> active=<port> passive=<port> pwd=<admin password>
91+
[ESP181]ctrl=<port> active=<port> passive=<port> json=<no> pwd=<admin password>
7792

7893
* Get/Set WebDav state which can be ON, OFF, CLOSE
79-
[ESP190]<state>pwd=<admin password>
94+
[ESP190]<state> json=<no> pwd=<admin password>
8095

8196
* Get/Set WebDav port
82-
[ESP191]<port>pwd=<admin password>
97+
[ESP191]<port> json=<no> pwd=<admin password>
8398

84-
* Get SD Card Status
85-
[ESP200] pwd=<user/admin password>
99+
* Get/Set SD Card Status
100+
[ESP200]<RELEASE> <REFRESH> json=<no> pwd=<user/admin password>
101+
RELEASE will force the release of SD from ESP3D if SD is shared
102+
REFRESH will refresh the SD info is available
86103

87104
*Get/Set pin value
88-
[ESP201]P<pin> V<value> [PULLUP=YES RAW=YES]pwd=<admin password>
89-
if no V<value> get P<pin> value
90-
if V<value> 0/1 set INPUT_PULLUP value, but for GPIO16(ESP8266) INPUT_PULLDOWN_16
105+
[ESP201]P=<pin> V=<value> [PULLUP=YES RAW=YES ANALOG=NO ANALOG_RANGE=255]pwd=<admin password>
106+
if no V=<value> get P=<pin> value
107+
if V=<value> 0/1 set INPUT_PULLUP value, but for GPIO16(ESP8266) INPUT_PULLDOWN_16
91108
if PULLUP=YES set input pull up (for GPIO16(ESP8266) INPUT_PULLDOWN_16), if not set input
92109
if RAW=YES do not set pinmode just read value
110+
93111
Flash pins (6~11) cannot be used
94112

95113
*Get/Set SD card Speed factor 1 2 4 6 8 16 32
96-
[ESP202]SPEED=<value>pwd=<user/admin password>
114+
[ESP202]SPEED=<value> json=<no> pwd=<user/admin password>
115+
116+
*Get Sensor Value / type/Set Sensor type
117+
[ESP210]<type=NONE/xxx> <interval=XXX in millisec> json=<no> pwd=<user/admin password>
97118

98119
* Output to esp screen status
99-
[ESP214]<Text>pwd=<user password>
120+
[ESP214]<Text> json=<no> pwd=<user/admin password>
100121

101122
* Touch Calibration
102-
[ESP215]<CALIBRATE>[pwd=<user password>]
123+
[ESP215]<CALIBRATE> json=<no> [pwd=<user password>]
103124

104125
* Take screen snapshot
105-
[ESP216]<SNAP>[pwd=<user password>]
126+
[ESP216]<SNAP> json=<no> [pwd=<user password>]
127+
128+
* Show defined pins
129+
[ESP220]<SNAP> json=<no> [pwd=<user password>]
106130

107131
* Play sound
108132
No parameter just play beep
109-
[ESP250]F=<frequency> D=<duration> [pwd=<user password>]
133+
[ESP250]F=<frequency> D=<duration> json=<no> [pwd=<user password>]
110134

111135
* Delay command
112-
[ESP290]<delay in ms>[pwd=<user password>]
136+
[ESP290]<delay in ms> json=<no>[pwd=<user password>]
113137

114138
* Get full EEPROM settings content
115139
but do not give any passwords
116140
[ESP400] pwd=<admin password>
117141

118142
*Set EEPROM setting
119143
position in EEPROM, type: B(byte), I(integer/long), S(string), A(IP address / mask)
120-
[ESP401]P=<position> T=<type> V=<value> pwd=<user/admin password>
144+
[ESP401]P=<position> T=<type> V=<value> json=<no> pwd=<user/admin password>
121145
Description: Positions:
122146
ESP_RADIO_MODE 0 //1 byte = flag
123147
ESP_STA_SSID 1 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese
@@ -158,7 +182,7 @@ ESP_TIME_IS_DST 463 //1 bytes = flag
158182
ESP_TIME_SERVER1 464 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
159183
ESP_TIME_SERVER2 593 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
160184
ESP_TIME_SERVER3 722 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
161-
ESP_PRINTER_LCD 851 //1 bytes = flag
185+
ESP_REMOTE_SCREEN 851 //1 bytes = flag
162186
ESP_SD_MOUNT 852 //1 bytes = flag
163187
ESP_SESSION_TIMEOUT 853 //1 bytes = flag
164188
ESP_WEBSOCKET_FLAG 854 //1 bytes = flag
@@ -172,7 +196,7 @@ ESP_CALIBRATION_5 1001 //4 bytes = int
172196
ESP_SETUP 1005 //1 byte = flag
173197
ESP_TELNET_FLAG 1006 //1 byte = flag
174198
ESP_BT_FLAG 1007 //1 byte = flag
175-
ESP_LCD_FLAG 1008 //1 byte = flag
199+
ESP_SCREEEN_FLAG 1008 //1 byte = flag
176200
ESP_FTP_CTRL_PORT 1009 //4 bytes = int
177201
ESP_FTP_DATA_ACTIVE_PORT 1013 //4 bytes = int
178202
ESP_FTP_DATA_PASSIVE_PORT 1017 //4 bytes = int
@@ -185,64 +209,80 @@ ESP_STA_DNS_VALUE 1029 //4 bytes= int
185209
ESP_SECURE_SERIAL 1033 //1 byte = flag
186210

187211
* Get/Set Check update at boot state which can be ON, OFF
188-
[ESP402]<state>pwd=<admin password>
212+
[ESP402]<state> json=<no> pwd=<admin password>
189213

190214
*Get available AP list (limited to 30)
191215
output is JSON or plain text according parameter
192-
[ESP410]<plain><pwd=admin/user>
216+
[ESP410]json=<no> <pwd=admin/user>
193217

194218
*Get current settings of ESP3D
195219
output is plain text
196-
[ESP420]<pwd=admin/user>
220+
[ESP420]json=<no> <pwd=admin/user>
197221

198222
* Set ESP State
199223
cmd are RESTART / RESET
200-
[ESP444]<cmd><pwd=admin>
224+
[ESP444]<cmd> json=<no> <pwd=admin>
201225

202226
* Change admin password
203-
[ESP550]<password>pwd=<admin password>
227+
[ESP550]<password> json=<no> pwd=<admin password>
204228

205229
* Change user password
206-
[ESP555]<password>pwd=<admin/user password>
230+
[ESP555]<password> json=<no> pwd=<admin/user password>
207231

208232
* Send Notification
209-
[ESP600]msg [pwd=<admin password>]
233+
[ESP600]msg json=<no> pwd=<admin/user password>
210234

211235
* Set/Get Notification settings
212-
[ESP610]type=<NONE/PUSHOVER/EMAIL/LINE> T1=<token1> T2=<token2> TS=<Settings> [pwd=<admin password>]
236+
[ESP610]type=<NONE/PUSHOVER/EMAIL/LINE/IFTTT> T1=<token1> T2=<token2> TS=<Settings> json=<no> [pwd=<admin password>]
213237
Get will give type and settings only, not the protected T1/T2
214238

239+
* Send Notification using URL
240+
[ESP620]URL=<encoded url> json=<no>[pwd=<admin/user password>]
241+
242+
* Read FS file
243+
[ESP700]<filename> json=<no>[pwd=<admin/user password>]
244+
245+
* Query and Control ESP700 stream
246+
[ESP701]action=<PAUSE/RESUME/ABORT> json=<no>[pwd=<admin/user password>]
247+
215248
* Format ESP Filesystem
216-
[ESP710]FORMAT pwd=<admin password>
249+
[ESP710]FORMATFS json=<no> pwd=<admin password>
217250

218251
* Format SD Filesystem
219-
[ESP715]FORMATSD pwd=<admin password>
252+
[ESP715]FORMATSD json=<no> pwd=<admin password>
220253

221254
* List ESP Filesystem
222-
[ESP720]<Root> pwd=<admin password>
255+
[ESP720]<Root> json=<no> pwd=<admin password>
223256

224257
* Action on ESP Filesystem
225258
rmdir / remove / mkdir / exists / create
226-
[ESP730]<Action>=<path> pwd=<admin password>
259+
[ESP730]<Action>=<path> json=<no> pwd=<admin password>
227260

228261
* List SD Filesystem
229-
[ESP740]<Root> pwd=<admin password>
262+
[ESP740]<Root> json=<no> pwd=<admin password>
230263

231264
* Action on SD Filesystem
232265
rmdir / remove / mkdir / exists / create
233-
[ESP750]<Action>=<path> pwd=<admin password>
266+
[ESP750]<Action>=<path> json=<no> pwd=<admin password>
267+
268+
* List Global Filesystem
269+
[ESP780]<Root> json=<no> pwd=<admin password>
270+
271+
* Action on Global Filesystem
272+
rmdir / remove / mkdir / exists /create
273+
[ESP790]<Action>=<path> json=<no> pwd=<admin password>
234274

235275
* FW Informations
236-
[ESP800]<plain> pwd=<admin password>
276+
[ESP800]json=<no> pwd=<admin password>
237277

238278
* Get state / Set Enable / Disable Serial Communication
239-
[ESP900]<ENABLE/DISABLE>[pwd=<admin/user password>]
279+
[ESP900]<ENABLE/DISABLE> json=<no> [pwd=<admin/user password>]
240280

241281
* Get state / Set Enable / Disable verbose boot
242-
[ESP901]<ENABLE/DISABLE>[pwd=<admin/user password>]
282+
[ESP901]<ENABLE/DISABLE> json=<no> [pwd=<admin/user password>]
243283

244284
* Get state / Set Enable / Disable buzzer
245-
[ESP910]<ENABLE/DISABLE>[pwd=<admin/user password>]
285+
[ESP910]<ENABLE/DISABLE> json=<no> [pwd=<admin/user password>]
246286

247287
*Get state / Set state of output message clients
248-
[ESP920]<SERIAL / LCD / PRINTER_LCD/ WEBSOCKET / TELNET /BT / ALL>=<ON/OFF>[pwd=<admin/user password>]
288+
[ESP920]<SERIAL / SCREEN / REMOTE_SCREEN/ WEBSOCKET / TELNET /BT / ALL>=<ON/OFF> json=<no> [pwd=<admin/user password>]

0 commit comments

Comments
 (0)