Skip to content

Commit e015d1b

Browse files
authored
Merge pull request #4932 from TD-er/bugfix/ESP32_factoryDefaults
Bugfix/esp32 factory defaults
2 parents 5e677f7 + 67f0f70 commit e015d1b

Some content is hidden

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

52 files changed

+1617
-1135
lines changed

boards/esp32_4M.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"memory_type": "dio_qspi"
66
},
77
"core": "esp32",
8-
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
8+
"extra_flags": "-DARDUINO_ESP32_DEV -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
99
"f_cpu": "240000000L",
1010
"f_flash": "40000000L",
1111
"flash_mode": "dio",

docs/source/ESPEasy/ESPchips.rst

+2
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,8 @@ To support all modes, we simply need to make several versions
651651
- 2 MB (Quad SPI)
652652
- ``qio_qspi``
653653

654+
`Table Source <https://api.riot-os.org/group__cpu__esp32__esp32s3.html>`_
655+
654656

655657
Build versions:
656658

docs/source/Plugin/P077_commands.repl

+7
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,10 @@
2424
","
2525
Will reset the calibration values to the default values, causing auto-calibration.
2626
"
27+
"
28+
``cseclearpulses``
29+
30+
","
31+
(Added: 2024-01-16)
32+
Will reset the CF-pulse counter.
33+
"

lib/ESPEasySerial/Port_ESPEasySerial_USB_HWCDC.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ Port_ESPEasySerial_USB_HWCDC_t::Port_ESPEasySerial_USB_HWCDC_t(const ESPEasySeri
6060
if (_hwcdc_serial != nullptr) {
6161
_config.rxBuffSize = _hwcdc_serial->setRxBufferSize(_config.rxBuffSize);
6262
_config.txBuffSize = _hwcdc_serial->setRxBufferSize(_config.txBuffSize);
63+
64+
// See: https://github.com/espressif/arduino-esp32/issues/9043
65+
_hwcdc_serial->setTxTimeoutMs(0); // sets no timeout when trying to write to USB HW CDC
66+
6367
_hwcdc_serial->begin();
6468

6569
// _hwcdc_serial->onEvent(hwcdcEventCallback);

platformio_core_defs.ini

+3-9
Original file line numberDiff line numberDiff line change
@@ -208,15 +208,9 @@ lib_ignore =
208208

209209
; ESP_IDF 5.1
210210
[core_esp32_IDF5_1__3_0_0]
211-
;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.12/platform-espressif32.zip
212-
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1787/framework-arduinoespressif32-release_v5.1-f61c914469.zip
213-
;platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.11.11/platform-espressif32.zip
214-
;platform_packages =
215-
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1818/framework-arduinoespressif32-release_v5.1-e5ff26581f.zip
216-
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1846/framework-arduinoespressif32-release_v5.1-29db12e.zip
217-
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1847/framework-arduinoespressif32-release_v5.1-29db12e.zip
218-
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.12.10/platform-espressif32.zip
219-
platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1877/framework-arduinoespressif32-release_v5.1-88d1438.zip
211+
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.11/platform-espressif32.zip
212+
platform_packages =
213+
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1917/framework-arduinoespressif32-release_v5.1-d4d5f8a.zip
220214
build_flags = -DESP32_STAGE
221215
-DESP_IDF_VERSION_MAJOR=5
222216
-DLIBRARIES_NO_LOG=1

platformio_esp32_envs.ini

+3-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ build_flags = ${core_esp32_IDF5_1__3_0_0.build_flags}
6060
-flto=auto
6161
-Wswitch
6262
-DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_NONE
63-
-DLWIP_IPV6
63+
; -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_INFO
64+
; -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE
65+
-DLWIP_IPV6=1
6466
monitor_filters = esp32_exception_decoder
6567
lib_ignore =
6668
${core_esp32_IDF5_1__3_0_0.lib_ignore}

platformio_esp32_solo1.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ build_unflags = ${esp32_base.build_unflags}
1818
; IDF 5.1.2
1919
[esp32_solo1_common_LittleFS]
2020
extends = esp32_base_idf5
21-
platform_packages = framework-arduino-solo1 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1878/framework-arduinoespressif32-solo1-release_v5.1-88d1438.zip
21+
platform_packages = framework-arduino-solo1 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1918/framework-arduinoespressif32-solo1-release_v5.1-d4d5f8a.zip
2222
build_flags = ${esp32_base_idf5.build_flags}
2323
-DFEATURE_ARDUINO_OTA=1
2424
-DUSE_LITTLEFS

platformio_esp32c3_envs.ini

+8
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ extra_scripts = ${esp32c3_common.extra_scripts}
4747
pre:tools/pio/pre_custom_esp32.py
4848
pre:tools/pio/ir_build_check.py
4949

50+
[env:custom_ESP32c3_4M316k_LittleFS_CDC]
51+
extends = esp32c3_common_LittleFS
52+
board = esp32c3cdc
53+
build_flags = ${esp32c3_common_LittleFS.build_flags}
54+
-DPLUGIN_BUILD_CUSTOM
55+
extra_scripts = ${esp32c3_common_LittleFS.extra_scripts}
56+
pre:tools/pio/pre_custom_esp32.py
57+
5058

5159

5260
[env:normal_ESP32c3_4M316k_CDC]

platformio_esp32s2_envs.ini

+12
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,18 @@ board = esp32s2cdc
7373
lib_ignore = ${esp32s2_common.lib_ignore}
7474
${no_ir.lib_ignore}
7575

76+
[env:custom_ESP32s2_4M316k_LittleFS_CDC]
77+
extends = esp32s2_common_LittleFS
78+
board = esp32s2cdc
79+
lib_ignore = ${esp32s2_common_LittleFS.lib_ignore}
80+
${no_ir.lib_ignore}
81+
build_flags = ${esp32s2_common_LittleFS.build_flags}
82+
-DPLUGIN_BUILD_CUSTOM
83+
-DESP_CONSOLE_USB_CDC=y
84+
extra_scripts = ${esp32s2_common_LittleFS.extra_scripts}
85+
pre:tools/pio/pre_custom_esp32.py
86+
87+
7688

7789
[env:normal_ESP32s2_4M316k_LittleFS_CDC]
7890
extends = esp32s2_common_LittleFS

platformio_esp32s3_envs.ini

+5-5
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ build_flags = ${esp32s3_common_LittleFS.build_flags}
145145
-DFEATURE_ARDUINO_OTA=1
146146
-DPLUGIN_BUILD_CUSTOM
147147
-DFEATURE_SD=1
148-
extra_scripts = ${esp32s3_common.extra_scripts}
148+
extra_scripts = ${esp32s3_common_LittleFS.extra_scripts}
149149
pre:tools/pio/pre_custom_esp32.py
150150

151151
[env:custom_ESP32s3_8M1M_LittleFS_OPI_PSRAM_CDC]
@@ -160,7 +160,7 @@ build_flags = ${esp32s3_common_LittleFS.build_flags}
160160
-DFEATURE_ARDUINO_OTA=1
161161
-DPLUGIN_BUILD_MAX_ESP32
162162
-DPLUGIN_BUILD_IR_EXTENDED
163-
extra_scripts = ${esp32_common.extra_scripts}
163+
extra_scripts = ${esp32s3_common_LittleFS.extra_scripts}
164164

165165

166166
[env:max_ESP32s3_8M1M_LittleFS_OPI_PSRAM_CDC]
@@ -176,7 +176,7 @@ build_flags = ${esp32s3_common_LittleFS.build_flags}
176176
-DPLUGIN_BUILD_CUSTOM
177177
-DPLUGIN_BUILD_IR_EXTENDED
178178
-DFEATURE_SD=1
179-
extra_scripts = ${esp32s3_common.extra_scripts}
179+
extra_scripts = ${esp32s3_common_LittleFS.extra_scripts}
180180
pre:tools/pio/pre_custom_esp32.py
181181

182182
[env:custom_ESP32s3_16M8M_LittleFS_OPI_PSRAM_CDC]
@@ -192,7 +192,7 @@ build_flags = ${esp32s3_common_LittleFS.build_flags}
192192
-DFEATURE_ARDUINO_OTA=1
193193
-DPLUGIN_BUILD_MAX_ESP32
194194
-DPLUGIN_BUILD_IR_EXTENDED
195-
extra_scripts = ${esp32_common.extra_scripts}
195+
extra_scripts = ${esp32s3_common_LittleFS.extra_scripts}
196196

197197

198198
[env:max_ESP32s3_16M8M_LittleFS_OPI_PSRAM_CDC]
@@ -203,6 +203,6 @@ build_flags = ${esp32s3_common_LittleFS.build_flags}
203203
-DFEATURE_ARDUINO_OTA=1
204204
-DPLUGIN_BUILD_MAX_ESP32
205205
-DPLUGIN_BUILD_IR_EXTENDED
206-
extra_scripts = ${esp32_common.extra_scripts}
206+
extra_scripts = ${esp32s3_common_LittleFS.extra_scripts}
207207

208208

src/Custom-sample.h

+8
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@
165165
#define DEFAULT_SYNC_UDP_PORT 8266 // Used for ESPEasy p2p. (IANA registered port: 8266)
166166

167167

168+
// Factory Reset defaults
169+
#define DEFAULT_FACTORY_RESET_KEEP_UNIT_NAME true
170+
#define DEFAULT_FACTORY_RESET_KEEP_WIFI true
171+
#define DEFAULT_FACTORY_RESET_KEEP_NETWORK true
172+
#define DEFAULT_FACTORY_RESET_KEEP_NTP_DST true
173+
#define DEFAULT_FACTORY_RESET_KEEP_CONSOLE_LOG true
174+
175+
168176
#define BUILD_NO_DEBUG
169177

170178
// Custom built-in url for hosting JavaScript and CSS files.

src/_C009.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -135,19 +135,19 @@ bool do_process_c009_delay_queue(int controller_number, const Queue_element_base
135135
// Create nested objects in "ESP":
136136
jsonString += to_json_object_value(F("name"), Settings.getName());
137137
jsonString += ',';
138-
jsonString += to_json_object_value(F("unit"), String(Settings.Unit));
138+
jsonString += to_json_object_value(F("unit"), static_cast<int>(Settings.Unit));
139139
jsonString += ',';
140-
jsonString += to_json_object_value(F("version"), String(Settings.Version));
140+
jsonString += to_json_object_value(F("version"), static_cast<int>(Settings.Version));
141141
jsonString += ',';
142-
jsonString += to_json_object_value(F("build"), String(Settings.Build));
142+
jsonString += to_json_object_value(F("build"), static_cast<int>(Settings.Build));
143143
jsonString += ',';
144144
jsonString += to_json_object_value(F("build_notes"), F(BUILD_NOTES));
145145
jsonString += ',';
146146
jsonString += to_json_object_value(F("build_git"), getValue(LabelType::GIT_BUILD));
147147
jsonString += ',';
148-
jsonString += to_json_object_value(F("node_type_id"), String(NODE_TYPE_ID));
148+
jsonString += to_json_object_value(F("node_type_id"), static_cast<int>(NODE_TYPE_ID));
149149
jsonString += ',';
150-
jsonString += to_json_object_value(F("sleep"), String(Settings.deepSleep_wakeTime));
150+
jsonString += to_json_object_value(F("sleep"), static_cast<int>(Settings.deepSleep_wakeTime));
151151

152152
// embed IP, important if there is NAT/PAT
153153
// char ipStr[20];
@@ -180,7 +180,7 @@ bool do_process_c009_delay_queue(int controller_number, const Queue_element_base
180180
jsonString += ',';
181181
jsonString += to_json_object_value(F("valueName"), getTaskValueName(element._taskIndex, x));
182182
jsonString += ',';
183-
jsonString += to_json_object_value(F("type"), String(static_cast<int>(element.sensorType)));
183+
jsonString += to_json_object_value(F("type"), static_cast<int>(element.sensorType));
184184
jsonString += ',';
185185
jsonString += to_json_object_value(F("value"), element.txt[x]);
186186
}

src/src/Commands/Diagnostic.cpp

+11-20
Original file line numberDiff line numberDiff line change
@@ -179,26 +179,17 @@ const __FlashStringHelper * Command_JSONPortStatus(struct EventStruct *event, co
179179
void createLogPortStatus(std::map<uint32_t, portStatusStruct>::iterator it)
180180
{
181181
if (loglevelActiveFor(LOG_LEVEL_INFO)) {
182-
String log;
183-
log += F("PortStatus detail: Port=");
184-
log += getPortFromKey(it->first);
185-
log += F(" State=");
186-
log += it->second.getValue();
187-
log += F(" Output=");
188-
log += it->second.output;
189-
log += F(" Mode=");
190-
log += it->second.mode;
191-
log += F(" Task=");
192-
log += it->second.task;
193-
log += F(" Monitor=");
194-
log += it->second.monitor;
195-
log += F(" Command=");
196-
log += it->second.command;
197-
log += F(" Init=");
198-
log += it->second.init;
199-
log += F(" PreviousTask=");
200-
log += it->second.previousTask;
201-
addLogMove(LOG_LEVEL_INFO, log);
182+
addLogMove(LOG_LEVEL_INFO, strformat(
183+
F("PortStatus detail: Port=%u State=%d Output=%d Mode=%u Task=%u Monitor=%u Command=%d Init=%d PreviousTask=%d"),
184+
getPortFromKey(it->first),
185+
it->second.getValue(),
186+
it->second.output,
187+
it->second.mode,
188+
it->second.task,
189+
it->second.monitor,
190+
it->second.command,
191+
it->second.init,
192+
it->second.previousTask));
202193
}
203194
}
204195

src/src/Commands/InternalCommands.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,9 @@ bool InternalCommands::executeInternalCommand()
309309
case ESPEasy_cmd_e::i2cscanner: COMMAND_CASE_R(Command_i2c_Scanner, -1); // i2c.h
310310
case ESPEasy_cmd_e::inc: COMMAND_CASE_A(Command_Rules_Inc, -1); // Rules.h
311311
case ESPEasy_cmd_e::ip: COMMAND_CASE_R(Command_IP, 1); // Network Command
312+
#if FEATURE_USE_IPV6
313+
case ESPEasy_cmd_e::ip6: COMMAND_CASE_A(Command_show_all_IP6, 0); // Network Command
314+
#endif
312315
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
313316
case ESPEasy_cmd_e::jsonportstatus: COMMAND_CASE_A(Command_JSONPortStatus, -1); // Diagnostic.h
314317
#endif // ifndef BUILD_NO_DIAGNOSTIC_COMMANDS

src/src/Commands/InternalCommands_decoder.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ const char Internal_commands_ghij[] PROGMEM =
8787
"i2cscanner|"
8888
"inc|"
8989
"ip|"
90+
#if FEATURE_USE_IPV6
91+
"ip6|"
92+
#endif
9093
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
9194
"jsonportstatus|"
9295
#endif // ifndef BUILD_NO_DIAGNOSTIC_COMMANDS

src/src/Commands/InternalCommands_decoder.h

+3
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ enum class ESPEasy_cmd_e : uint8_t {
6767
i2cscanner,
6868
inc,
6969
ip,
70+
#if FEATURE_USE_IPV6
71+
ip6,
72+
#endif
7073
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
7174
jsonportstatus,
7275
#endif // ifndef BUILD_NO_DIAGNOSTIC_COMMANDS

src/src/Commands/Networks.cpp

+23
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,29 @@ String Command_IP (struct EventStruct *event, const char* Line)
4040
return Command_GetORSetIP(event, F("IP:"), Line, Settings.IP, NetworkLocalIP(),1);
4141
}
4242

43+
#if FEATURE_USE_IPV6
44+
String Command_show_all_IP6 (struct EventStruct *event, const char* Line)
45+
{
46+
// Only get all IPv6 addresses
47+
IP6Addresses_t addresses = NetworkAllIPv6();
48+
String res;
49+
res += '[';
50+
bool first = true;
51+
for (auto it = addresses.begin(); it != addresses.end(); ++it)
52+
{
53+
if (first) {
54+
first = false;
55+
} else {
56+
res += ',';
57+
}
58+
res += wrap_String(it->toString(true), '"');
59+
}
60+
res += ']';
61+
return res;
62+
}
63+
#endif
64+
65+
4366
String Command_Subnet (struct EventStruct *event, const char* Line)
4467
{
4568
return Command_GetORSetIP(event, F("Subnet:"), Line, Settings.Subnet, NetworkSubnetMask(), 1);

src/src/Commands/Networks.h

+5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ String Command_AccessInfo_Clear (struct EventStruct *event, const char* Line);
99
String Command_DNS (struct EventStruct *event, const char* Line);
1010
String Command_Gateway (struct EventStruct *event, const char* Line);
1111
String Command_IP (struct EventStruct *event, const char* Line);
12+
#if FEATURE_USE_IPV6
13+
String Command_show_all_IP6 (struct EventStruct *event, const char* Line);
14+
#endif
1215
String Command_Subnet (struct EventStruct *event, const char* Line);
16+
#if FEATURE_ETHERNET
1317
String Command_ETH_Phy_Addr (struct EventStruct *event, const char* Line);
1418
String Command_ETH_Pin_mdc (struct EventStruct *event, const char* Line);
1519
String Command_ETH_Pin_mdio (struct EventStruct *event, const char* Line);
@@ -22,5 +26,6 @@ String Command_ETH_Subnet (struct EventStruct *event, const char* Line);
2226
String Command_ETH_DNS (struct EventStruct *event, const char* Line);
2327
String Command_ETH_Wifi_Mode (struct EventStruct *event, const char* Line);
2428
String Command_ETH_Disconnect (struct EventStruct *event, const char* Line);
29+
#endif
2530

2631
#endif // COMMAND_NETWORKS_H

src/src/CustomBuild/ESPEasyDefaults.h

+20
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,26 @@
374374
#define DEFAULT_SYNC_UDP_PORT 8266 // Used for ESPEasy p2p. (IANA registered port: 8266)
375375
#endif
376376

377+
378+
// Factory Reset defaults
379+
#ifndef DEFAULT_FACTORY_RESET_KEEP_UNIT_NAME
380+
#define DEFAULT_FACTORY_RESET_KEEP_UNIT_NAME true
381+
#endif
382+
#ifndef DEFAULT_FACTORY_RESET_KEEP_WIFI
383+
#define DEFAULT_FACTORY_RESET_KEEP_WIFI true
384+
#endif
385+
#ifndef DEFAULT_FACTORY_RESET_KEEP_NETWORK
386+
#define DEFAULT_FACTORY_RESET_KEEP_NETWORK true
387+
#endif
388+
#ifndef DEFAULT_FACTORY_RESET_KEEP_NTP_DST
389+
#define DEFAULT_FACTORY_RESET_KEEP_NTP_DST true
390+
#endif
391+
#ifndef DEFAULT_FACTORY_RESET_KEEP_CONSOLE_LOG
392+
#define DEFAULT_FACTORY_RESET_KEEP_CONSOLE_LOG true
393+
#endif
394+
395+
396+
377397
// --- Defaults to be used for custom automatic provisioning builds ------------------------------------
378398
#if FEATURE_CUSTOM_PROVISIONING
379399
#ifndef DEFAULT_FACTORY_DEFAULT_DEVICE_MODEL

src/src/CustomBuild/define_plugin_sets.h

+18
Original file line numberDiff line numberDiff line change
@@ -1088,6 +1088,9 @@ To create/register a plugin, you have to :
10881088
#define PLUGIN_SET_MAX
10891089
#define CONTROLLER_SET_ALL
10901090
#define NOTIFIER_SET_ALL
1091+
#ifndef TESTING_FEATURE_USE_IPV6
1092+
#define TESTING_FEATURE_USE_IPV6
1093+
#endif
10911094
#ifndef PLUGIN_ENERGY_COLLECTION
10921095
#define PLUGIN_ENERGY_COLLECTION
10931096
#endif
@@ -1113,6 +1116,7 @@ To create/register a plugin, you have to :
11131116
#ifdef FEATURE_CUSTOM_PROVISIONING
11141117
#undef FEATURE_CUSTOM_PROVISIONING
11151118
#endif
1119+
// FIXME TD-er: Should this be enabled on non-Custom builds???
11161120
#define FEATURE_CUSTOM_PROVISIONING 1
11171121

11181122

@@ -3288,6 +3292,20 @@ To create/register a plugin, you have to :
32883292
#endif
32893293

32903294

3295+
// Enable dependencies for custom provisioning
3296+
// FIXME TD-er: What about using this feature on non-Custom builds????
3297+
#if FEATURE_CUSTOM_PROVISIONING
3298+
#ifdef FEATURE_DOWNLOAD
3299+
#undef FEATURE_DOWNLOAD
3300+
#endif
3301+
#define FEATURE_DOWNLOAD 1
3302+
#ifdef FEATURE_SETTINGS_ARCHIVE
3303+
#undef FEATURE_SETTINGS_ARCHIVE
3304+
#endif
3305+
#define FEATURE_SETTINGS_ARCHIVE 1
3306+
#endif
3307+
3308+
32913309

32923310
// TODO TD-er: Test feature, must remove
32933311
/*

src/src/DataStructs/EthernetEventData.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ void EthernetEventData_t::markConnected() {
169169
lastConnectMoment.setNow();
170170
processedConnect = false;
171171
#if FEATURE_USE_IPV6
172-
ETH.enableIpV6();
172+
ETH.enableIPv6(true);
173173
#endif
174174

175175
}

0 commit comments

Comments
 (0)