From 0b1622100c76f6ff0894aa3ead4a0e2baecb41a5 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 17 Sep 2025 12:53:12 +0300 Subject: [PATCH 01/32] change(version): Update core version and update script --- .github/ISSUE_TEMPLATE/Issue-report.yml | 1 + .github/scripts/update-version.sh | 6 +++--- .gitlab/workflows/common.yml | 2 +- cores/esp32/esp_arduino_version.h | 2 +- docs/conf_common.py | 2 +- libraries/ArduinoOTA/library.properties | 2 +- libraries/AsyncUDP/library.properties | 2 +- libraries/BLE/library.properties | 2 +- libraries/BluetoothSerial/library.properties | 2 +- libraries/DNSServer/library.properties | 2 +- libraries/EEPROM/library.properties | 2 +- libraries/ESP32/library.properties | 2 +- libraries/ESP_I2S/library.properties | 2 +- libraries/ESP_NOW/library.properties | 2 +- libraries/ESP_SR/library.properties | 2 +- libraries/ESPmDNS/library.properties | 2 +- libraries/Ethernet/library.properties | 2 +- libraries/FFat/library.properties | 2 +- libraries/FS/library.properties | 2 +- libraries/HTTPClient/library.properties | 2 +- libraries/HTTPUpdate/library.properties | 2 +- libraries/HTTPUpdateServer/library.properties | 2 +- libraries/Hash/library.properties | 2 +- libraries/Insights/library.properties | 2 +- libraries/LittleFS/library.properties | 2 +- libraries/Matter/library.properties | 2 +- libraries/NetBIOS/library.properties | 2 +- libraries/Network/library.properties | 2 +- libraries/NetworkClientSecure/library.properties | 2 +- libraries/OpenThread/library.properties | 2 +- libraries/PPP/library.properties | 2 +- libraries/Preferences/library.properties | 2 +- libraries/RainMaker/library.properties | 2 +- libraries/SD/library.properties | 2 +- libraries/SD_MMC/library.properties | 2 +- libraries/SPI/library.properties | 2 +- libraries/SPIFFS/library.properties | 2 +- libraries/SimpleBLE/library.properties | 2 +- libraries/TFLiteMicro/library.properties | 2 +- libraries/Ticker/library.properties | 2 +- libraries/USB/library.properties | 2 +- libraries/Update/library.properties | 2 +- libraries/WebServer/library.properties | 2 +- libraries/WiFi/library.properties | 2 +- libraries/WiFiProv/library.properties | 2 +- libraries/Wire/library.properties | 2 +- libraries/Zigbee/library.properties | 2 +- package.json | 2 +- platform.txt | 2 +- 49 files changed, 51 insertions(+), 50 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Issue-report.yml b/.github/ISSUE_TEMPLATE/Issue-report.yml index 97834925020..4ff0f87c435 100644 --- a/.github/ISSUE_TEMPLATE/Issue-report.yml +++ b/.github/ISSUE_TEMPLATE/Issue-report.yml @@ -43,6 +43,7 @@ body: - latest stable Release (if not listed below) - latest development Release Candidate (RC-X) - latest master (checkout manually) + - v3.3.1 - v3.3.0 - v3.2.1 - v3.2.0 diff --git a/.github/scripts/update-version.sh b/.github/scripts/update-version.sh index 59a95d01105..c4ad4eec06f 100755 --- a/.github/scripts/update-version.sh +++ b/.github/scripts/update-version.sh @@ -24,10 +24,10 @@ ESP_ARDUINO_VERSION_MINOR="$2" ESP_ARDUINO_VERSION_PATCH="$3" ESP_ARDUINO_VERSION="$ESP_ARDUINO_VERSION_MAJOR.$ESP_ARDUINO_VERSION_MINOR.$ESP_ARDUINO_VERSION_PATCH" -# Get ESP-IDF version from push.yml (this way we can ensure that the version is correct even if the local libs are not up to date) -ESP_IDF_VERSION=$(grep "idf_ver:" .github/workflows/push.yml | sed 's/.*release-v\([^"]*\).*/\1/') +# Get ESP-IDF version from build_component.yml (this way we can ensure that the version is correct even if the local libs are not up to date) +ESP_IDF_VERSION=$(grep -m 1 "default:" .github/workflows/build_component.yml | sed 's/.*release-v\([^"]*\).*/\1/') if [ -z "$ESP_IDF_VERSION" ]; then - echo "Error: ESP-IDF version not found in push.yml" >&2 + echo "Error: ESP-IDF version not found in build_component.yml" >&2 exit 1 fi diff --git a/.gitlab/workflows/common.yml b/.gitlab/workflows/common.yml index 611e1d974f4..c7a0c5468e4 100644 --- a/.gitlab/workflows/common.yml +++ b/.gitlab/workflows/common.yml @@ -10,7 +10,7 @@ stages: variables: ESP_IDF_VERSION: "5.5" - ESP_ARDUINO_VERSION: "3.3.0" + ESP_ARDUINO_VERSION: "3.3.1" ############# # `default` # diff --git a/cores/esp32/esp_arduino_version.h b/cores/esp32/esp_arduino_version.h index 120377c61f7..4f03cd500b1 100644 --- a/cores/esp32/esp_arduino_version.h +++ b/cores/esp32/esp_arduino_version.h @@ -23,7 +23,7 @@ extern "C" { /** Minor version number (x.X.x) */ #define ESP_ARDUINO_VERSION_MINOR 3 /** Patch version number (x.x.X) */ -#define ESP_ARDUINO_VERSION_PATCH 0 +#define ESP_ARDUINO_VERSION_PATCH 1 /** * Macro to convert ARDUINO version number into an integer diff --git a/docs/conf_common.py b/docs/conf_common.py index 10d4bd715b2..45937027fb8 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -4,7 +4,7 @@ # Used for substituting variables in the documentation rst_prolog = """ -.. |version| replace:: 3.3.0 +.. |version| replace:: 3.3.1 .. |idf_version| replace:: 5.5 """ diff --git a/libraries/ArduinoOTA/library.properties b/libraries/ArduinoOTA/library.properties index 3a3f7e111e0..22059842e13 100644 --- a/libraries/ArduinoOTA/library.properties +++ b/libraries/ArduinoOTA/library.properties @@ -1,5 +1,5 @@ name=ArduinoOTA -version=3.3.0 +version=3.3.1 author=Ivan Grokhotkov and Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables Over The Air upgrades, via wifi and espota.py UDP request/TCP download. diff --git a/libraries/AsyncUDP/library.properties b/libraries/AsyncUDP/library.properties index ddf9f79b6d9..2332d43cf9d 100644 --- a/libraries/AsyncUDP/library.properties +++ b/libraries/AsyncUDP/library.properties @@ -1,5 +1,5 @@ name=ESP32 Async UDP -version=3.3.0 +version=3.3.1 author=Me-No-Dev maintainer=Me-No-Dev sentence=Async UDP Library for ESP32 diff --git a/libraries/BLE/library.properties b/libraries/BLE/library.properties index c6fae19a4a1..3c8291a88c1 100644 --- a/libraries/BLE/library.properties +++ b/libraries/BLE/library.properties @@ -1,5 +1,5 @@ name=BLE -version=3.3.0 +version=3.3.1 author=Neil Kolban maintainer=lucasssvaz sentence=BLE functions for ESP32 diff --git a/libraries/BluetoothSerial/library.properties b/libraries/BluetoothSerial/library.properties index 49211bf3b63..99b4dfad957 100644 --- a/libraries/BluetoothSerial/library.properties +++ b/libraries/BluetoothSerial/library.properties @@ -1,5 +1,5 @@ name=BluetoothSerial -version=3.3.0 +version=3.3.1 author=Evandro Copercini maintainer=Evandro Copercini sentence=Simple UART to Classical Bluetooth bridge for ESP32 diff --git a/libraries/DNSServer/library.properties b/libraries/DNSServer/library.properties index c193b919d02..aa6672baa60 100644 --- a/libraries/DNSServer/library.properties +++ b/libraries/DNSServer/library.properties @@ -1,5 +1,5 @@ name=DNSServer -version=3.3.0 +version=3.3.1 author=Kristijan Novoselić maintainer=Kristijan Novoselić, sentence=A simple DNS server for ESP32. diff --git a/libraries/EEPROM/library.properties b/libraries/EEPROM/library.properties index 6d69f52a085..72403037ca4 100644 --- a/libraries/EEPROM/library.properties +++ b/libraries/EEPROM/library.properties @@ -1,5 +1,5 @@ name=EEPROM -version=3.3.0 +version=3.3.1 author=Ivan Grokhotkov maintainer=Paolo Becchi sentence=Enables reading and writing data a sequential, addressable FLASH storage diff --git a/libraries/ESP32/library.properties b/libraries/ESP32/library.properties index e664022388d..1b7b8152a29 100644 --- a/libraries/ESP32/library.properties +++ b/libraries/ESP32/library.properties @@ -1,5 +1,5 @@ name=ESP32 -version=3.3.0 +version=3.3.1 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 sketches examples diff --git a/libraries/ESP_I2S/library.properties b/libraries/ESP_I2S/library.properties index 18c48c095a8..b780838d6aa 100644 --- a/libraries/ESP_I2S/library.properties +++ b/libraries/ESP_I2S/library.properties @@ -1,5 +1,5 @@ name=ESP_I2S -version=3.3.0 +version=3.3.1 author=me-no-dev maintainer=me-no-dev sentence=Library for ESP I2S communication diff --git a/libraries/ESP_NOW/library.properties b/libraries/ESP_NOW/library.properties index dd61bf0d4c2..3fa4982f055 100644 --- a/libraries/ESP_NOW/library.properties +++ b/libraries/ESP_NOW/library.properties @@ -1,5 +1,5 @@ name=ESP_NOW -version=3.3.0 +version=3.3.1 author=me-no-dev maintainer=P-R-O-C-H-Y sentence=Library for ESP_NOW diff --git a/libraries/ESP_SR/library.properties b/libraries/ESP_SR/library.properties index 9d9787b7931..e0cc31d1209 100644 --- a/libraries/ESP_SR/library.properties +++ b/libraries/ESP_SR/library.properties @@ -1,5 +1,5 @@ name=ESP_SR -version=3.3.0 +version=3.3.1 author=me-no-dev maintainer=me-no-dev sentence=Library for ESP Sound Recognition diff --git a/libraries/ESPmDNS/library.properties b/libraries/ESPmDNS/library.properties index 062d3b90b51..2fd581224e3 100644 --- a/libraries/ESPmDNS/library.properties +++ b/libraries/ESPmDNS/library.properties @@ -1,5 +1,5 @@ name=ESPmDNS -version=3.3.0 +version=3.3.1 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 mDNS Library diff --git a/libraries/Ethernet/library.properties b/libraries/Ethernet/library.properties index 28f2a8697d9..54cc62fd869 100644 --- a/libraries/Ethernet/library.properties +++ b/libraries/Ethernet/library.properties @@ -1,5 +1,5 @@ name=Ethernet -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection (local and Internet) using the ESP32 Ethernet. diff --git a/libraries/FFat/library.properties b/libraries/FFat/library.properties index 25b8c4e8acd..0e52dc07a43 100644 --- a/libraries/FFat/library.properties +++ b/libraries/FFat/library.properties @@ -1,5 +1,5 @@ name=FFat -version=3.3.0 +version=3.3.1 author=Hristo Gochkov, Ivan Grokhtkov, Larry Bernstone maintainer=Hristo Gochkov sentence=ESP32 FAT on Flash File System diff --git a/libraries/FS/library.properties b/libraries/FS/library.properties index 0f05f1134d5..44a64eb8389 100644 --- a/libraries/FS/library.properties +++ b/libraries/FS/library.properties @@ -1,5 +1,5 @@ name=FS -version=3.3.0 +version=3.3.1 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 File System diff --git a/libraries/HTTPClient/library.properties b/libraries/HTTPClient/library.properties index bb5b0936255..6456a38e66e 100644 --- a/libraries/HTTPClient/library.properties +++ b/libraries/HTTPClient/library.properties @@ -1,5 +1,5 @@ name=HTTPClient -version=3.3.0 +version=3.3.1 author=Markus Sattler maintainer=Markus Sattler sentence=HTTP Client for ESP32 diff --git a/libraries/HTTPUpdate/library.properties b/libraries/HTTPUpdate/library.properties index 88466a3a72e..1d5d9a7d416 100644 --- a/libraries/HTTPUpdate/library.properties +++ b/libraries/HTTPUpdate/library.properties @@ -1,5 +1,5 @@ name=HTTPUpdate -version=3.3.0 +version=3.3.1 author=Markus Sattler maintainer=Markus Sattler sentence=Http Update for ESP32 diff --git a/libraries/HTTPUpdateServer/library.properties b/libraries/HTTPUpdateServer/library.properties index c182eeb8d7f..170ffdbbc58 100644 --- a/libraries/HTTPUpdateServer/library.properties +++ b/libraries/HTTPUpdateServer/library.properties @@ -1,5 +1,5 @@ name=HTTPUpdateServer -version=3.3.0 +version=3.3.1 author=Hristo Kapanakov maintainer= sentence=Simple HTTP Update server based on the WebServer diff --git a/libraries/Hash/library.properties b/libraries/Hash/library.properties index 5db4df17c2d..f70127eecff 100644 --- a/libraries/Hash/library.properties +++ b/libraries/Hash/library.properties @@ -1,5 +1,5 @@ name=Hash -version=3.3.0 +version=3.3.1 author=lucasssvaz maintainer=lucasssvaz sentence=Bundle of hashing functions for the ESP32 diff --git a/libraries/Insights/library.properties b/libraries/Insights/library.properties index 3ef98d25be6..aaf3c451f17 100644 --- a/libraries/Insights/library.properties +++ b/libraries/Insights/library.properties @@ -1,5 +1,5 @@ name=ESP Insights -version=3.3.0 +version=3.3.1 author=Sanket Wadekar maintainer=Sanket Wadekar sentence=ESP Insights diff --git a/libraries/LittleFS/library.properties b/libraries/LittleFS/library.properties index 202d8ad4a6d..0e4c22fb765 100644 --- a/libraries/LittleFS/library.properties +++ b/libraries/LittleFS/library.properties @@ -1,5 +1,5 @@ name=LittleFS -version=3.3.0 +version=3.3.1 author= maintainer= sentence=LittleFS for esp32 diff --git a/libraries/Matter/library.properties b/libraries/Matter/library.properties index 0b140bfa169..92946866d94 100644 --- a/libraries/Matter/library.properties +++ b/libraries/Matter/library.properties @@ -1,5 +1,5 @@ name=Matter -version=3.3.0 +version=3.3.1 author=Rodrigo Garcia | GitHub @SuGlider maintainer=Rodrigo Garcia sentence=Library for supporting Matter environment on ESP32. diff --git a/libraries/NetBIOS/library.properties b/libraries/NetBIOS/library.properties index 71d22d6f363..522d930c685 100644 --- a/libraries/NetBIOS/library.properties +++ b/libraries/NetBIOS/library.properties @@ -1,5 +1,5 @@ name=NetBIOS -version=3.3.0 +version=3.3.1 author=Pablo@xpablo.cz maintainer=Hristo Gochkov sentence=Enables NBNS (NetBIOS) name resolution. diff --git a/libraries/Network/library.properties b/libraries/Network/library.properties index f7e04f4de3b..cac1b8357a3 100644 --- a/libraries/Network/library.properties +++ b/libraries/Network/library.properties @@ -1,5 +1,5 @@ name=Networking -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=General network management library. diff --git a/libraries/NetworkClientSecure/library.properties b/libraries/NetworkClientSecure/library.properties index 6ebf4c0ec70..ff332bf8796 100644 --- a/libraries/NetworkClientSecure/library.properties +++ b/libraries/NetworkClientSecure/library.properties @@ -1,5 +1,5 @@ name=NetworkClientSecure -version=3.3.0 +version=3.3.1 author=Evandro Luis Copercini maintainer=Github Community sentence=Enables secure network connection (local and Internet) using the ESP32 built-in WiFi. diff --git a/libraries/OpenThread/library.properties b/libraries/OpenThread/library.properties index 550d4eb1627..621a9145a58 100644 --- a/libraries/OpenThread/library.properties +++ b/libraries/OpenThread/library.properties @@ -1,5 +1,5 @@ name=OpenThread -version=3.3.0 +version=3.3.1 author=Rodrigo Garcia | GitHub @SuGlider maintainer=Rodrigo Garcia sentence=Library for OpenThread Network on ESP32. diff --git a/libraries/PPP/library.properties b/libraries/PPP/library.properties index 537708b1261..4123bdfb998 100644 --- a/libraries/PPP/library.properties +++ b/libraries/PPP/library.properties @@ -1,5 +1,5 @@ name=PPP -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection using GSM Modem. diff --git a/libraries/Preferences/library.properties b/libraries/Preferences/library.properties index 0a7e678aa6c..60ef6797565 100644 --- a/libraries/Preferences/library.properties +++ b/libraries/Preferences/library.properties @@ -1,5 +1,5 @@ name=Preferences -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Provides friendly access to ESP32's Non-Volatile Storage diff --git a/libraries/RainMaker/library.properties b/libraries/RainMaker/library.properties index 1d72a8faff5..dc0afeb0b23 100644 --- a/libraries/RainMaker/library.properties +++ b/libraries/RainMaker/library.properties @@ -1,5 +1,5 @@ name=ESP RainMaker -version=3.3.0 +version=3.3.1 author=Sweety Mhaiske maintainer=Hristo Gochkov sentence=ESP RainMaker Support diff --git a/libraries/SD/library.properties b/libraries/SD/library.properties index 9d868dce799..523c5c5c0fe 100644 --- a/libraries/SD/library.properties +++ b/libraries/SD/library.properties @@ -1,5 +1,5 @@ name=SD -version=3.3.0 +version=3.3.1 author=Arduino, SparkFun maintainer=Arduino sentence=Enables reading and writing on SD cards. For all Arduino boards. diff --git a/libraries/SD_MMC/library.properties b/libraries/SD_MMC/library.properties index f96ee4377c2..9061c1bd4f8 100644 --- a/libraries/SD_MMC/library.properties +++ b/libraries/SD_MMC/library.properties @@ -1,5 +1,5 @@ name=SD_MMC -version=3.3.0 +version=3.3.1 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 SDMMC File System diff --git a/libraries/SPI/library.properties b/libraries/SPI/library.properties index 3403d1c5d4f..5ea42f3779b 100644 --- a/libraries/SPI/library.properties +++ b/libraries/SPI/library.properties @@ -1,5 +1,5 @@ name=SPI -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. For all Arduino boards, BUT Arduino DUE. diff --git a/libraries/SPIFFS/library.properties b/libraries/SPIFFS/library.properties index 486ec1b4ce6..6c6c89d3bb6 100644 --- a/libraries/SPIFFS/library.properties +++ b/libraries/SPIFFS/library.properties @@ -1,5 +1,5 @@ name=SPIFFS -version=3.3.0 +version=3.3.1 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 SPIFFS File System diff --git a/libraries/SimpleBLE/library.properties b/libraries/SimpleBLE/library.properties index a7f12207afe..e495c486172 100644 --- a/libraries/SimpleBLE/library.properties +++ b/libraries/SimpleBLE/library.properties @@ -1,5 +1,5 @@ name=SimpleBLE -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Provides really simple BLE advertizer with just on and off diff --git a/libraries/TFLiteMicro/library.properties b/libraries/TFLiteMicro/library.properties index d2dc127f5ab..63f226143ef 100644 --- a/libraries/TFLiteMicro/library.properties +++ b/libraries/TFLiteMicro/library.properties @@ -1,5 +1,5 @@ name=TFLite Micro -version=3.3.0 +version=3.3.1 author=Sanket Wadekar maintainer=Sanket Wadekar sentence=TensorFlow Lite for Microcontrollers diff --git a/libraries/Ticker/library.properties b/libraries/Ticker/library.properties index 8795deb22ce..1a59ed42598 100644 --- a/libraries/Ticker/library.properties +++ b/libraries/Ticker/library.properties @@ -1,5 +1,5 @@ name=Ticker -version=3.3.0 +version=3.3.1 author=Bert Melis maintainer=Hristo Gochkov sentence=Allows to call functions with a given interval. diff --git a/libraries/USB/library.properties b/libraries/USB/library.properties index 4c2c032545e..968dd315e75 100644 --- a/libraries/USB/library.properties +++ b/libraries/USB/library.properties @@ -1,5 +1,5 @@ name=USB -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=ESP32S2 USB Library diff --git a/libraries/Update/library.properties b/libraries/Update/library.properties index 5fd633ec358..e74c2024165 100644 --- a/libraries/Update/library.properties +++ b/libraries/Update/library.properties @@ -1,5 +1,5 @@ name=Update -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=ESP32 Sketch Update Library diff --git a/libraries/WebServer/library.properties b/libraries/WebServer/library.properties index 913dd00e036..968c5a7e933 100644 --- a/libraries/WebServer/library.properties +++ b/libraries/WebServer/library.properties @@ -1,5 +1,5 @@ name=WebServer -version=3.3.0 +version=3.3.1 author=Ivan Grokhotkov maintainer=Ivan Grokhtkov sentence=Simple web server library diff --git a/libraries/WiFi/library.properties b/libraries/WiFi/library.properties index 82ccb32b702..362cd3b129c 100644 --- a/libraries/WiFi/library.properties +++ b/libraries/WiFi/library.properties @@ -1,5 +1,5 @@ name=WiFi -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection (local and Internet) using the ESP32 built-in WiFi. diff --git a/libraries/WiFiProv/library.properties b/libraries/WiFiProv/library.properties index 1b19186c40b..95ca3fb57a4 100644 --- a/libraries/WiFiProv/library.properties +++ b/libraries/WiFiProv/library.properties @@ -1,5 +1,5 @@ name=WiFiProv -version=3.3.0 +version=3.3.1 author=Switi Mhaiske maintainer=Hristo Gochkov sentence=Enables provisioning. diff --git a/libraries/Wire/library.properties b/libraries/Wire/library.properties index 182e98790bc..4380db94a88 100644 --- a/libraries/Wire/library.properties +++ b/libraries/Wire/library.properties @@ -1,5 +1,5 @@ name=Wire -version=3.3.0 +version=3.3.1 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For esp8266 boards. diff --git a/libraries/Zigbee/library.properties b/libraries/Zigbee/library.properties index dab96b82a61..0267ee8dbb2 100644 --- a/libraries/Zigbee/library.properties +++ b/libraries/Zigbee/library.properties @@ -1,5 +1,5 @@ name=Zigbee -version=3.3.0 +version=3.3.1 author=P-R-O-C-H-Y maintainer=Jan Procházka sentence=Enables zigbee connection with the ESP32 diff --git a/package.json b/package.json index 4c3e4725a9d..db45d78020e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "framework-arduinoespressif32", - "version": "3.3.0", + "version": "3.3.1", "description": "Arduino Wiring-based Framework for the Espressif ESP32, ESP32-P4, ESP32-S and ESP32-C series of SoCs", "keywords": [ "framework", diff --git a/platform.txt b/platform.txt index 82560190c8f..04fa390dddf 100644 --- a/platform.txt +++ b/platform.txt @@ -1,5 +1,5 @@ name=ESP32 Arduino -version=3.3.0 +version=3.3.1 tools.esp32-arduino-libs.path={runtime.platform.path}/tools/esp32-arduino-libs tools.esp32-arduino-libs.path.windows={runtime.platform.path}\tools\esp32-arduino-libs From 5effd6fbf2d8cfce992460ee1ca92d594ab521f0 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 17 Sep 2025 14:19:50 +0300 Subject: [PATCH 02/32] change(script): Update the issue template when version changed --- .github/scripts/update-version.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/scripts/update-version.sh b/.github/scripts/update-version.sh index c4ad4eec06f..cdb7f1cdc9b 100755 --- a/.github/scripts/update-version.sh +++ b/.github/scripts/update-version.sh @@ -34,6 +34,10 @@ fi echo "New Arduino Version: $ESP_ARDUINO_VERSION" echo "ESP-IDF Version: $ESP_IDF_VERSION" +echo "Updating issue template..." +cat .github/ISSUE_TEMPLATE/issue-report.yml | \ +sed "s/.*\- latest master .*/ - latest master \(checkout manually\)\\n - v$ESP_ARDUINO_VERSION/g" > __issue-report.yml && mv __issue-report.yml .github/ISSUE_TEMPLATE/issue-report.yml + echo "Updating platform.txt..." cat platform.txt | sed "s/version=.*/version=$ESP_ARDUINO_VERSION/g" > __platform.txt && mv __platform.txt platform.txt From af2c581a739c9ef7a5ca939fcb0558a38677a105 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 17 Sep 2025 16:06:15 +0300 Subject: [PATCH 03/32] fix(script): Update .github/scripts/update-version.sh Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> --- .github/scripts/update-version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/update-version.sh b/.github/scripts/update-version.sh index cdb7f1cdc9b..377853003eb 100755 --- a/.github/scripts/update-version.sh +++ b/.github/scripts/update-version.sh @@ -35,8 +35,8 @@ echo "New Arduino Version: $ESP_ARDUINO_VERSION" echo "ESP-IDF Version: $ESP_IDF_VERSION" echo "Updating issue template..." -cat .github/ISSUE_TEMPLATE/issue-report.yml | \ -sed "s/.*\- latest master .*/ - latest master \(checkout manually\)\\n - v$ESP_ARDUINO_VERSION/g" > __issue-report.yml && mv __issue-report.yml .github/ISSUE_TEMPLATE/issue-report.yml +cat .github/ISSUE_TEMPLATE/Issue-report.yml | \ +sed "s/.*\- latest master .*/ - latest master \(checkout manually\)\\n - v$ESP_ARDUINO_VERSION/g" > __issue-report.yml && mv __issue-report.yml .github/ISSUE_TEMPLATE/Issue-report.yml echo "Updating platform.txt..." cat platform.txt | sed "s/version=.*/version=$ESP_ARDUINO_VERSION/g" > __platform.txt && mv __platform.txt platform.txt From 36c9de8f29d874a5eb8b9904e6af644c881d5bfd Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Thu, 18 Sep 2025 11:49:09 -0300 Subject: [PATCH 04/32] fix(esp_sr): Error with debug level log --- libraries/ESP_SR/src/esp32-hal-sr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/ESP_SR/src/esp32-hal-sr.c b/libraries/ESP_SR/src/esp32-hal-sr.c index 1ae96d616eb..68cfb6a7a01 100644 --- a/libraries/ESP_SR/src/esp32-hal-sr.c +++ b/libraries/ESP_SR/src/esp32-hal-sr.c @@ -343,7 +343,7 @@ esp_err_t sr_start( // Load WakeWord Detection afe_config_t *afe_config = afe_config_init(input_format, models, AFE_TYPE_SR, AFE_MODE_LOW_COST); g_sr_data->afe_handle = esp_afe_handle_from_config(afe_config); - log_d("load wakenet '%s'", afe_config.wakenet_model_name); + log_d("load wakenet '%s'", afe_config->wakenet_model_name); g_sr_data->afe_data = g_sr_data->afe_handle->create_from_config(afe_config); afe_config_free(afe_config); From 393834b69bc3819ed1e3e5edf9ed091364d40c0f Mon Sep 17 00:00:00 2001 From: Andrew Walls Date: Sun, 21 Sep 2025 02:57:55 +1000 Subject: [PATCH 05/32] fix(hash): add selective build option for Hash, WebServer dependency (#11854) * fix: add Hash selective build option * Add missing Hash selection --------- Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> --- Kconfig.projbuild | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Kconfig.projbuild b/Kconfig.projbuild index 9966463f8c1..705d0e66d5a 100644 --- a/Kconfig.projbuild +++ b/Kconfig.projbuild @@ -341,9 +341,15 @@ config ARDUINO_SELECTIVE_PPP depends on ARDUINO_SELECTIVE_COMPILATION default y +config ARDUINO_SELECTIVE_Hash + bool "Enable Hash" + depends on ARDUINO_SELECTIVE_COMPILATION + default y + config ARDUINO_SELECTIVE_ArduinoOTA bool "Enable ArduinoOTA" depends on ARDUINO_SELECTIVE_COMPILATION && ARDUINO_SELECTIVE_Network + select ARDUINO_SELECTIVE_Hash select ARDUINO_SELECTIVE_ESPmDNS default y @@ -383,6 +389,7 @@ config ARDUINO_SELECTIVE_WebServer depends on ARDUINO_SELECTIVE_COMPILATION && ARDUINO_SELECTIVE_Network default y select ARDUINO_SELECTIVE_FS + select ARDUINO_SELECTIVE_Hash config ARDUINO_SELECTIVE_WiFi bool "Enable WiFi" From 5c8cc7ab5a0f7d1c00bb0551dcd087f8e6d36b74 Mon Sep 17 00:00:00 2001 From: Mitra Ardron Date: Tue, 23 Sep 2025 00:33:51 +1000 Subject: [PATCH 06/32] Update pins_arduino.h for lolin_c3_pico to define LED as RGB rather than the default GRB (#11851) * Update pins_arduino.h for lolin_c3_pico to define LED as RGB rather than the default GRB * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> --- variants/lolin_c3_pico/pins_arduino.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/variants/lolin_c3_pico/pins_arduino.h b/variants/lolin_c3_pico/pins_arduino.h index 45087c3f9fc..68897e6da05 100644 --- a/variants/lolin_c3_pico/pins_arduino.h +++ b/variants/lolin_c3_pico/pins_arduino.h @@ -14,8 +14,9 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_RGB_LED; #define BUILTIN_LED LED_BUILTIN // backward compatibility #define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN // RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API rgbLedWrite() -#define RGB_BUILTIN LED_BUILTIN -#define RGB_BRIGHTNESS 64 +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 +#define RGB_BUILTIN_LED_COLOR_ORDER LED_COLOR_ORDER_RGB static const uint8_t TX = 21; static const uint8_t RX = 20; From c2e6a309a913e79130b64833c3ecc003f6807c15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20=C5=A0imun=20Ku=C4=8Di?= <131808461+JosipKuci@users.noreply.github.com> Date: Tue, 23 Sep 2025 09:25:33 +0200 Subject: [PATCH 07/32] feat(board): add support for Soldered NULA Mini ESP32C6 (#11852) * feat(board): add support for Soldered NULA Mini ESP32C6 - Add board configuration to `boards.txt` - Add pin definitions to 'variants/soldered_nula_mini_esp32c6' * fix(board): remove unsupported partition schemes - Delete unsupported partition schemes relative to the boards flash size * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- boards.txt | 164 ++++++++++++++++++ .../soldered_nula_mini_esp32c6/pins_arduino.h | 33 ++++ 2 files changed, 197 insertions(+) create mode 100644 variants/soldered_nula_mini_esp32c6/pins_arduino.h diff --git a/boards.txt b/boards.txt index 876ef761c94..ee5e73170e6 100644 --- a/boards.txt +++ b/boards.txt @@ -52944,3 +52944,167 @@ axiometa_pixie_m1.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR axiometa_pixie_m1.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote ############################################################## + +soldered_nula_mini_esp32c6.name=Soldered NULA Mini ESP32C6 + +soldered_nula_mini_esp32c6.bootloader.tool=esptool_py +soldered_nula_mini_esp32c6.bootloader.tool.default=esptool_py + +soldered_nula_mini_esp32c6.upload.tool=esptool_py +soldered_nula_mini_esp32c6.upload.tool.default=esptool_py +soldered_nula_mini_esp32c6.upload.tool.network=esp_ota + +soldered_nula_mini_esp32c6.upload.maximum_size=1310720 +soldered_nula_mini_esp32c6.upload.maximum_data_size=327680 +soldered_nula_mini_esp32c6.upload.flags= +soldered_nula_mini_esp32c6.upload.extra_flags= +soldered_nula_mini_esp32c6.upload.use_1200bps_touch=false +soldered_nula_mini_esp32c6.upload.wait_for_upload_port=false + +soldered_nula_mini_esp32c6.serial.disableDTR=true +soldered_nula_mini_esp32c6.serial.disableRTS=true + +soldered_nula_mini_esp32c6.build.tarch=riscv32 +soldered_nula_mini_esp32c6.build.target=esp +soldered_nula_mini_esp32c6.build.mcu=esp32c6 +soldered_nula_mini_esp32c6.build.core=esp32 +soldered_nula_mini_esp32c6.build.variant=soldered_nula_mini_esp32c6 +soldered_nula_mini_esp32c6.build.board=SOLDERED_NULA_MINI_ESP32C6 +soldered_nula_mini_esp32c6.build.bootloader_addr=0x0 + +soldered_nula_mini_esp32c6.build.f_cpu=160000000L +soldered_nula_mini_esp32c6.build.flash_size=4MB +soldered_nula_mini_esp32c6.build.flash_freq=80m +soldered_nula_mini_esp32c6.build.flash_mode=qio +soldered_nula_mini_esp32c6.build.boot=qio +soldered_nula_mini_esp32c6.build.partitions=default +soldered_nula_mini_esp32c6.build.defines= + +## IDE 2.0 Seems to not update the value +soldered_nula_mini_esp32c6.menu.JTAGAdapter.default=Disabled +soldered_nula_mini_esp32c6.menu.JTAGAdapter.default.build.copy_jtag_files=0 +soldered_nula_mini_esp32c6.menu.JTAGAdapter.builtin=Integrated USB JTAG +soldered_nula_mini_esp32c6.menu.JTAGAdapter.builtin.build.openocdscript=esp32c6-builtin.cfg +soldered_nula_mini_esp32c6.menu.JTAGAdapter.builtin.build.copy_jtag_files=1 +soldered_nula_mini_esp32c6.menu.JTAGAdapter.external=FTDI Adapter +soldered_nula_mini_esp32c6.menu.JTAGAdapter.external.build.openocdscript=esp32c6-ftdi.cfg +soldered_nula_mini_esp32c6.menu.JTAGAdapter.external.build.copy_jtag_files=1 +soldered_nula_mini_esp32c6.menu.JTAGAdapter.bridge=ESP USB Bridge +soldered_nula_mini_esp32c6.menu.JTAGAdapter.bridge.build.openocdscript=esp32c6-bridge.cfg +soldered_nula_mini_esp32c6.menu.JTAGAdapter.bridge.build.copy_jtag_files=1 + +soldered_nula_mini_esp32c6.menu.CDCOnBoot.default=Disabled +soldered_nula_mini_esp32c6.menu.CDCOnBoot.default.build.cdc_on_boot=0 +soldered_nula_mini_esp32c6.menu.CDCOnBoot.cdc=Enabled +soldered_nula_mini_esp32c6.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 + +soldered_nula_mini_esp32c6.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.default.build.partitions=default +soldered_nula_mini_esp32c6.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.defaultffat.build.partitions=default_ffat +soldered_nula_mini_esp32c6.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.minimal.build.partitions=minimal +soldered_nula_mini_esp32c6.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.no_ota.build.partitions=no_ota +soldered_nula_mini_esp32c6.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_3g.build.partitions=noota_3g +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576 +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152 +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat +soldered_nula_mini_esp32c6.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 +soldered_nula_mini_esp32c6.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.huge_app.build.partitions=huge_app +soldered_nula_mini_esp32c6.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 +soldered_nula_mini_esp32c6.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) +soldered_nula_mini_esp32c6.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs +soldered_nula_mini_esp32c6.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +soldered_nula_mini_esp32c6.menu.PartitionScheme.rainmaker=RainMaker 4MB +soldered_nula_mini_esp32c6.menu.PartitionScheme.rainmaker.build.partitions=rainmaker +soldered_nula_mini_esp32c6.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 +soldered_nula_mini_esp32c6.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA +soldered_nula_mini_esp32c6.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota +soldered_nula_mini_esp32c6.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 +soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs +soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee.build.partitions=zigbee +soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee.upload.maximum_size=1310720 +soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs +soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr +soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 +soldered_nula_mini_esp32c6.menu.PartitionScheme.custom=Custom +soldered_nula_mini_esp32c6.menu.PartitionScheme.custom.build.partitions= +soldered_nula_mini_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 + +soldered_nula_mini_esp32c6.menu.CPUFreq.160=160MHz (WiFi) +soldered_nula_mini_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L +soldered_nula_mini_esp32c6.menu.CPUFreq.80=80MHz (WiFi) +soldered_nula_mini_esp32c6.menu.CPUFreq.80.build.f_cpu=80000000L +soldered_nula_mini_esp32c6.menu.CPUFreq.40=40MHz +soldered_nula_mini_esp32c6.menu.CPUFreq.40.build.f_cpu=40000000L +soldered_nula_mini_esp32c6.menu.CPUFreq.20=20MHz +soldered_nula_mini_esp32c6.menu.CPUFreq.20.build.f_cpu=20000000L +soldered_nula_mini_esp32c6.menu.CPUFreq.10=10MHz +soldered_nula_mini_esp32c6.menu.CPUFreq.10.build.f_cpu=10000000L + +soldered_nula_mini_esp32c6.menu.FlashMode.qio=QIO +soldered_nula_mini_esp32c6.menu.FlashMode.qio.build.flash_mode=dio +soldered_nula_mini_esp32c6.menu.FlashMode.qio.build.boot=qio +soldered_nula_mini_esp32c6.menu.FlashMode.dio=DIO +soldered_nula_mini_esp32c6.menu.FlashMode.dio.build.flash_mode=dio +soldered_nula_mini_esp32c6.menu.FlashMode.dio.build.boot=dio + +soldered_nula_mini_esp32c6.menu.FlashFreq.80=80MHz +soldered_nula_mini_esp32c6.menu.FlashFreq.80.build.flash_freq=80m +soldered_nula_mini_esp32c6.menu.FlashFreq.40=40MHz +soldered_nula_mini_esp32c6.menu.FlashFreq.40.build.flash_freq=40m + +soldered_nula_mini_esp32c6.menu.FlashSize.4M=4MB (32Mb) +soldered_nula_mini_esp32c6.menu.FlashSize.4M.build.flash_size=4MB + +soldered_nula_mini_esp32c6.menu.UploadSpeed.921600=921600 +soldered_nula_mini_esp32c6.menu.UploadSpeed.921600.upload.speed=921600 +soldered_nula_mini_esp32c6.menu.UploadSpeed.115200=115200 +soldered_nula_mini_esp32c6.menu.UploadSpeed.115200.upload.speed=115200 +soldered_nula_mini_esp32c6.menu.UploadSpeed.256000.windows=256000 +soldered_nula_mini_esp32c6.menu.UploadSpeed.256000.upload.speed=256000 +soldered_nula_mini_esp32c6.menu.UploadSpeed.230400.windows.upload.speed=256000 +soldered_nula_mini_esp32c6.menu.UploadSpeed.230400=230400 +soldered_nula_mini_esp32c6.menu.UploadSpeed.230400.upload.speed=230400 +soldered_nula_mini_esp32c6.menu.UploadSpeed.460800.linux=460800 +soldered_nula_mini_esp32c6.menu.UploadSpeed.460800.macosx=460800 +soldered_nula_mini_esp32c6.menu.UploadSpeed.460800.upload.speed=460800 +soldered_nula_mini_esp32c6.menu.UploadSpeed.512000.windows=512000 +soldered_nula_mini_esp32c6.menu.UploadSpeed.512000.upload.speed=512000 + +soldered_nula_mini_esp32c6.menu.DebugLevel.none=None +soldered_nula_mini_esp32c6.menu.DebugLevel.none.build.code_debug=0 +soldered_nula_mini_esp32c6.menu.DebugLevel.error=Error +soldered_nula_mini_esp32c6.menu.DebugLevel.error.build.code_debug=1 +soldered_nula_mini_esp32c6.menu.DebugLevel.warn=Warn +soldered_nula_mini_esp32c6.menu.DebugLevel.warn.build.code_debug=2 +soldered_nula_mini_esp32c6.menu.DebugLevel.info=Info +soldered_nula_mini_esp32c6.menu.DebugLevel.info.build.code_debug=3 +soldered_nula_mini_esp32c6.menu.DebugLevel.debug=Debug +soldered_nula_mini_esp32c6.menu.DebugLevel.debug.build.code_debug=4 +soldered_nula_mini_esp32c6.menu.DebugLevel.verbose=Verbose +soldered_nula_mini_esp32c6.menu.DebugLevel.verbose.build.code_debug=5 + +soldered_nula_mini_esp32c6.menu.EraseFlash.none=Disabled +soldered_nula_mini_esp32c6.menu.EraseFlash.none.upload.erase_cmd= +soldered_nula_mini_esp32c6.menu.EraseFlash.all=Enabled +soldered_nula_mini_esp32c6.menu.EraseFlash.all.upload.erase_cmd=-e + +soldered_nula_mini_esp32c6.menu.ZigbeeMode.default=Disabled +soldered_nula_mini_esp32c6.menu.ZigbeeMode.default.build.zigbee_mode= +soldered_nula_mini_esp32c6.menu.ZigbeeMode.default.build.zigbee_libs= +soldered_nula_mini_esp32c6.menu.ZigbeeMode.ed=Zigbee ED (end device) +soldered_nula_mini_esp32c6.menu.ZigbeeMode.ed.build.zigbee_mode=-DZIGBEE_MODE_ED +soldered_nula_mini_esp32c6.menu.ZigbeeMode.ed.build.zigbee_libs=-lesp_zb_api.ed -lzboss_stack.ed -lzboss_port.native +soldered_nula_mini_esp32c6.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router) +soldered_nula_mini_esp32c6.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR +soldered_nula_mini_esp32c6.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.native + +############################################################## diff --git a/variants/soldered_nula_mini_esp32c6/pins_arduino.h b/variants/soldered_nula_mini_esp32c6/pins_arduino.h new file mode 100644 index 00000000000..058ebdd3822 --- /dev/null +++ b/variants/soldered_nula_mini_esp32c6/pins_arduino.h @@ -0,0 +1,33 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include +#include "soc/soc_caps.h" + +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = 23; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + +static const uint8_t USER_BTN = 9; + +static const uint8_t TX = 16; +static const uint8_t RX = 17; + +static const uint8_t SDA = 6; +static const uint8_t SCL = 7; + +static const uint8_t SS = 2; +static const uint8_t MOSI = 3; +static const uint8_t MISO = 4; +static const uint8_t SCK = 5; + +static const uint8_t A0 = 0; +static const uint8_t A1 = 1; +static const uint8_t A2 = 2; +static const uint8_t A3 = 3; +static const uint8_t A4 = 4; +static const uint8_t A5 = 5; +static const uint8_t A6 = 6; + +#endif /* Pins_Arduino_h */ From b9e597c31fbd9814b9fdf039f3f05849d3d81c6a Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 24 Sep 2025 07:18:47 -0300 Subject: [PATCH 08/32] fix(ota): Add legacy option for devices using MD5 authentication (#11862) * fix(ota): Add legacy option for devices using MD5 authentication * change(tools): Push generated binaries to PR * ci(pre-commit): Apply automatic fixes * change(tools): Push generated binaries to PR --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- tools/espota.exe | Bin 6086352 -> 6086960 bytes tools/espota.py | 269 ++++++++++++++++++++++++++++++++++------------- 2 files changed, 196 insertions(+), 73 deletions(-) diff --git a/tools/espota.exe b/tools/espota.exe index 6b132d5b9502e7e0fd07fc1dc691ded4ff27f55f..957b1c0311503f43b35022e2d09f1d25b5be3a61 100644 GIT binary patch delta 285435 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

W+V675I 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%0D^@6kZcI+@k5m4vL{`!I z_eEAyed+0D5H zH|OL*8qGR6DUHIf!0@SUypcyW@J=)lLYwA{FlGz>1_6|LHt%mhnDP3|qM=hy*te|3 zEZyb!`#RZknd>{+upa?+&$W?l&vA~lj&;Lc%)<=KS8|dyC zv}e748R5I9(et1h${N_85pV+|@#Yj48Ob%xvI|*J5UkEDeU$MFSzs-&?$$um2*1^A zdk4sbk}Qi*j|8EtPE8^5F%p!SRrHsUh(SnNHZ^lVqmnZB|fnZd~1um zKo}e{S!+~*x5j=SOPHA$drQMa!vfXZ>FB9^t$-8z0F<(-dm`HVuq8!pL+AS6DhPOP@NawA};f{1ze%*k*> z;-Rb&{>&A|VpmS6t&2&76uKcTmU*mIIi8Ru-HntQPd_E zBC&ga#u9@moh>gfc>XoDz-e4{_69<@gv(o%h|_=adF6hRM~7|`(Qqr66l1Y*N$IAXA#cNy=b>H zM31wGR_)j`Cj0?q2D+Rjx}00gp>n0dNlo*e94S@;i(qUV+PjPXHK%#RlQH2_bPJ(I zP^t{$K%6w~Tx?R+T3Rg!w6^KTTyf?*V?b#}VUqt!G?ibg8 zBJltc^j6bZ^uu7v+|qDvJqsm054+(A`ANjpb5t#)!K(c!RqR$WN|Y(8XyOVv-4R?& zthb^n#OcHvq_>Cy`o-x=uTuUJ(c3$xXYDJ^BtZ-7I@Ue?#^N2xE%3eRy2lU+?iV-3 zkx{CBiSQ$B;h7k|H5NB&I+DEz!H`XVoM)sQ2cARbUVt`Sgwj>J$Cn%?Y^AuSC?s(Y zpj5WiB%RWj89gD18#R{*T7jBLhi1#~66N6IZ(C9r%WQNAaO+U=Dm!C-Xj@3uZf|J5 zVa$*`y!<1jQ)C2)=TTEzBG0tgC?puenvNIYYXxCsHk`$IgbHGQ3+wgNtcr1eAu>@t z>KmItRAd=TCU@*kmL0yGB7i&qAODjUK%DP$+f}%*Pq6JYm7Yow>rplMD?M5s143?z zw49T$!=|~4pL`6xkrn})!?pQcYUGcjr*sLjmNLJGXnL*2PEBgq1k@E^ zTQ6RV`}qjPCWur41^_2qke3gCB>Nu|6aR0PGHDlFT8V$LMnMP0`-?XU@u-Y?6evyM z36sDe-23vzWbdPR{_Pcef92Kx^^c*aV>XUYw2u=s;dn2aupK`B;3HAPkFP(X*3|D) ze;n)8A3NaVPa^$cCD?sr|7Wp3p6C8B&1@-MhLvj=f~1QgfV)uMUQG`u`C71C+>L}orI9i2yf)Ps8e%?FOERYWe!@jLzJ zO_hWs$031|LotF=(3Zh}>N15v@)WX}c`?4v19QwvADC!Xu#Yk@$GneWV4`8ky9ef5 zYGAf0<^Xug2~)|@WFL49e~zmG@n26_7#Ol>P0!KjNj3(^ej&`aGdKo>Rhh;xXDP-RXUBHy+9YPkdfL`XadQ9t^264l2JCW-`qqd zGw!#!mREm6W3;WF!a_uqOuzGx(j%z$#M zTzuYD)EJW%S*a%$P{k0@5nrnMSSQ-hLPhd|-&>7xx}o!bdokN3cRx>sl+wSC~5t`cBTxH~lty z!&_G_T?_ioU28#i@R@w2Qmxl36(1L_-;W;{_0Pw)`uE_+di>bHn!#&rkMj2UePr&z z4-B*Hufh)`S^jGLKvL&FqtY;QRyxCwsfH*E28Zf@{Y@1Xi(^aOuSNTU62VF8Bms=~ z$8C!DB8G#uI-;<&h-p0hefaZXGMVAWF8si_RQ_)K*rV9qAXk|N8sY^7HO?(Ek6|!L z0UIku4uG?1rmMg?#Az9xMym0_KSy#=0It|J$u)P2Sv1Uy{Aa|zqrZ&A+2oz-`Umy~ z+j8K4pKaNu3*Wgc9g}C9ogKV?;K<#h_(~4nS?6x+mhu|w<>!(v1{Bpw!{VwV^byTu-{SL_pyh)2a^;_-`* zmksfR*k3p2tg;QP$&+FSMF&109;E2N2PsN$UK|n+Q>^r-D0X^5JWa9FUGa?AMd;Lj zXT@WLPCYE{BXsH!!k-R^qr!l1OB}1rh1NotPP3hDahIyZ%uiv zI4QQn@jc=NF#_M~#HYkV@V#D~5+{lQ=DQ!}q=7jMxL;o5iQa zUiiLGoE4A2_ZD$ZJPP0Ui}T`f_%4Zm3ls_Y0r3(=hTke)rijQ7idTdK-`m7zL=nEX zi!vc>cZgTTKKR}#E{h4V?QNqx{9H!7ChWH}!oFdaN8s1%h_V$W`1KI{s)%9uH4MKV z7M~RZ@a(9l5}J3Hn54MMV`7R>y}N~=_{w{PC)UFEUNKGR-hJXCp?x0_m&7K2_ z#J%wSn3$o!bB~KzaX)-NA?o4*_}(w(#8&uz@_G?Qvr#{AKJ#*>vChtT2WQ>)On;J% zvY*K`242a)9nJcIIhbii#>Jaf67~5KILsFzvyi&k9(WSr@ed2XS~hjPkZ;3 z&w5+R=e+yN=e<(-g7-lAC2wo_Wp7*g6>od_Gv3Z}*&8jt>g_5|cw^<)yxry3y*=fM zx3~ORZ(q6UJyM?Z9xYFKkClb@c-ixwC{KI)%NM;T%a_DF@DBd_XlQqTPs^1COshok zxh{K5b5m(RCgbq%D?BKQLn+*kPmWkciJ$8V3z@#%+$-ad<~7V)Z1eLbdM7 z;FkwWZ&dwS75P#XlC;i$k^9(I;8$w|QQTRn?35PXRx<<`bJE!c$j&tmoy`4IV+ms( z1FTAwvWC-EqXBccL&w~}s!q1xLx{kJ_f`TIwb#Howb4n89YQ zQb!&mFuluxGhJ_@#pjK{yy#JMPQG-p9oRK08X78sd`*^DsOblP^0j*FQf;~o2Xoan za5r!-)D1u3I9mf=?J8WuFLdDiI<(?VCAPx3y77CPq-OvHC%KtgZUpZf$n3tdPYcG&>@PT`&;K+&!w%@e^6n#5)FBSAE zjnjSq{dcV)8?kfV%S13|glg!LHIUdnoKnSNKg~y4zBio|q%WU-@4K{(t80m>dr553 zre!04`T6X<4A<$Mt(@ z{F)W3bLZXXb{}QDhZ-JRQN!W8pRo_X<0JQfQbW&*3D|wt3h;b=13Y9? zEZ$26M^{wvp}SV_2t0mjl?wDm10r~|IqEIVD>xd8zui)&wJxQq`8tZky{yVpNw4+Q zol1kkEhuTbCET$HR{)537mKwmJNmpG(rM#3-W^}AcjB>ZgsG`<4{0A^V;_wxK~2Sf zVwfI1 zgo)h_?G)^IZ0?YY7#UeJW$e*N43ktMwRUdDe&B6N7+n7Cn~InV&Y zjwlPZufncC!(u!aTM~1@n$Uz|kV{UUgW9%e4-C<#{_6t=3fBn_MNL%k4P6L-rAsiI zNFJ8LOf06CoHX~Bapu(N#y%p8`7m%u zWtj};O*;OHPVF_idPdmiZAXed_NuAA3rmZ)TZ!%uFW%RZWd+S z2NMpDrRnL?_3Z^jEM5qb`*;Vu28WkRhC79LE2G$ z9)Y~twuaRG1F?N;nkH<2%5tXOWGk{J|Cw~Qen%13p2N0=!ou9qNSu@}uyVt5{+ZZ} zsQYD7=bv+^X;74JmJzcM9cDp-t2O5XN+1H5igct{+aycmv>_4NsWIx(ZOpFF?q z5X+WKpilI>1Jc)kJ4C|0iTsnz@(&hvIIw2x%9%`-)6WGBLV=iYAX(y6lM;sr$YZ(m zHaiY4$-<`+g;P;~q5{r07_}SoiMr5tToJ4BLbHfvG*u`?H0G@e!ENuL1f*TQ#-~xB zPLPj>KwUB%?T-4I`YOcG1lx3qDMhm~M5)+3wC-De%D2fE27t5IlvfoLfLxH*o8AuRGiW;kl-BMf`=vh6dZB3Id zuWr>VBh|hm6>pWA3k|^TCC2$svME`9~{=x7W#U5jgC;%-q{mjI&?Kr^tNiFJT*r!%qmw#38n|NR-TNEB(a zGr;|RM6od>jyv#Q;nAzsLH>8`LKDdE{#jy>SiGzO=C6xK$=%F`K?tI3!!5R36{(_s z_QtVP0B+0n$UnBi@}hu`GT3g?-g^Msu7!hz zkAM_`tDG8H0&2rhL2V8U30xIc0^zzQ{|^A+RqI6v*_VXA4K)hr>#kc3k|JzNt1%=s z0g`6_r$JH_j;sCfJwQ^7Ou|uNlpiI3CRPWcNl}3JMm6*gG{Vy+Wki$%vNPun?OhGN zvYa*-Tc1H-_c~zpq~mNBQ7Rk`Ko$?b67jZ@5ciyPFiWtOo#gl$VEVnjE--zz;vi%r8$!+$ZF5WC>^B|kpEFZC(Vz$etCQrHpmItJGtz_G|7*D&CShv?sJKb zKDP=yJ|3R~mf8vAO|5%H7vB{w59oNHQ7aQAvp72*25)pNY* zLfH8(1BXfu)qAVxY}1Mkzl%^Eo^vnXTSbpF9l70iuLqSgUcI+}dNww#=Uuic3OWAN zz11_^w4M*$y&fcC{&BJ%IH}Z~%WQNG`CW8+mFZP#&Lk}Fkej>9(w0D9B&5koD6LXc z=Ke@%FQM{cM3P;sdeb8nXVyzw7qL>yfK+PP6UmUU-pd1#v;;{skkkR)!n5{ntX7kg z$~pU`GL0owZFWk3C7$*OFtf5xr_}iAmij>(r2ft(sjwq;b;5KplDe(eM6!y-S-j4{ z-xB|p7WlU!-Y279Ob4TlV#O2~zwC*CD;R|&=`3n3O>#5lT#lHZ^P<2DoZL+m=3Tpg41tznQAjp(>~+cvNm0>K7(RcCt+E z!|&WF{O%?T;BIBnIH>Fw##6_dp;HYyQv2a)WOK1zRK0doWB6`wtC#WDMmlSf1$+Ky zHT>c~9k4ooqv=1iIB1}kCVplHayxRHbA7f6|7?0T{$RT>tDU( z9GL*h3I7n9cy6f(h_qLFPpVig5jz2W!$zuDv+5|&Q)8NAjOiuAF>k43Cj46PYr$^{ zepB#k!>&aI+xZ%TwW zi*Q$|0JW_7RAy{TX=~}e(za4xX?tl$slPPfbVA)bA$;F4r8IC%8QWDFEcL_h?$ZjY zsJ)_pI9;WoTl(1j@ZODTUQW*~ZEO#`q2mI@>4mqw@P@7n6lVjx?Gx?`9uV#e_M=K0 zsXyK4Y$Nrj2T--`6?N=kRBs~%sGX#s_NcQT)!g9A0aSH^nD?Q&8~h%01^`(=roZ8= zd$6{dG=4!h#m@yl17(!|kY$4{I*74GM^$*J=6%gi`bI99U?=}c=&wx*_Ps$EmFp_-|wtu-}WQ(J24#bx`Z zc5%F>e_gx`zZ39Rfj<}ieE54F{w^+O;CYmeAqX6UKL`F!z@G(#YlM?3-H>#6Ee;rElwqXlR#tdmN+T>>gH5pMKqb)Q? z&=utBjL=QeO(^Q_NQJ?uVFfg>QFAoQ+~f zAr+bo&;lJfRuNlq+C+gc7BU>JwfS>%g{$M08wGAu?P0f6@8zB1nd#W)B67^`Dnq)eI5YkYeEcwd@p^z*H05N4JH0I#h zIEraB-bs~=Mv?~1l;msX9LvPKW1$V|HXdG?V|Cd$@=mOwHUY7bP(n_LX4Qt)(F&u! zEbENwo+j?xd}H%6S7u?mQf<#AZl3eplKA85bVQF}1Wzk7%3K#WXPtsG7+n*{e{qGd zY|F}qOqH(8P+gasG(>(}eM}+`QnYyX1;Vz!w+Y4xV8R_*Zq!T@zG9q)af01e+bG1l z+|mS_Mi^(itGqyJk2QYgbrTtcNcw?@cQqU>m*>av!lMGyK(xoxkwvMxd9l2?Ywnd& zb)W+xP=O{KI zh_uz?k>M3vvrP?6JY*rH)3?=u^m9od-HpoauizC;4_(ZtV}`hxF~!A|!iSXVAJZGji?nc^>uQ6{|(7^I{=<(vWY6e~w86R~iF# z2I<0lI~q7ZaaRLPB8DdIt!VntAdoxTWSDS>=aj@X1nzSS^}J;3Vuu?mG&oz5Hvk_~ zS>)PRe89oTBENP*xvgIEFKShzYWg}_?e0{317$+H6+HGniq_~2--M3M`uZ)h#4Sv+ z7-YFybxcT^$c65ARAu4Re?kZ3vmoCaoX<}Mrem&Sf#aQ!KUKAYl>3>eR>$gwZ&1Fq zWOJzq>lc24%1O`Iw^i2)%!_)}uBNLQUw8Dt#+rh3GJTMNbc?dglqfS(S7wKw3DBag z25Db%Y?vD&yJitRZ|PgSt0Qh8t7}C7D;H% zyChl(@1b^PIJAykI68d%{Yjx}!?|{KK5V07=fcTT#gosR85tc(%7D74f3)1f=Z`sC zdcK4@#j~O9l@?G1f58j2x%p5Vf1dda>*yE)3YY-`nasLcyaCBl6spWMuHBd6@qA?I zitp6(YL9Abcy4W?%aKkMt-Evx0F=W!WfYYX_L>kmL1|F-Geegt8k}zN%Evz58?M3v zN3*LTD^lF(^`!h%-CldQJMJd65*usvN>e0qTP!Xm>g=eif0I7H8xL-pwGtv(L#j_4 zl|qrdvEn2b;omSkIHvenP`T*AeL#CPbXBm%~-6GBF&%2qZ+GKqe1)dBNX zZG=&Wc-8s*e~^e5?{EutDIBWqa+5RR3-I`*MD6W~+Bw_m*U|YpuS<>95+^A_uYRdX z)%g8$t5nU%Zr#R6C$afIQWJ<(9z%GSX(+;(jY?o3LDZIjcFkc7JR1?<>A)TJLk<%-ffYm3{-rQ z-&*LrI}f9hoo)@F?7OrfM`_>S@)K>KHsM&q*VpS>xXPGSpv6_QX&r4aBAZm0pM|e3 zY=XQhf6vP;4Z<3nZgl%xRCrDYOr~62g#B;61OK7-J!LuXUX{E2BXpPmS#;s#`IARS z-C>r%Emu$s_j+g?KYI2oU|>%kJAZU^^yGzMp!YfD@pC6m!YNjKa`=o0+tCrnK!oVf zTLe}|o;-g1GQa5$HeWZMduf5 zA7qL0%94PuEq~e8V1~}H4vOKo=r;#{kc+g;m~QK>KV2e{E8#Lm0#lgji1>W%*l{-qSFBjJ~ua7u)Plp!RfOo517 ze*zIt2}Im3r5P2!r2_KJ$asrD#Iu`Mb2Ft%`DV#o9jF~i96#g| zlGOtMzxB5IWRMuvH<4{cNvAG^VfiKtAwq5a<#DG_@~(`}mkRypt#WRne;~-) zf#np9C5z~1&LGl4*Hst zSnH|Q7Pp2{tZs+9LoR`+A%T!UfBlmLDrlg^$Hs+-5=U>xm=*B^TjPoWF4f^OR&w_} z!m7MF+p>l8c{|#%oyM~SPKTKkx}{p!9{}Y8D@sRSe%Q2yY@joj)1$czO?SL9SxStR z#qCuqVG1V~u&U5vmAgJ+cB?+ZcuVyukul|AZqF^~H%1N!w}Jh=+_f$fN98j|MLjWq~bp zO1k{4HKTlBK%j>5EJ}v4e}5U(&@6G@p$?u!x_3ygX)DK)vaTSCTT6~e~C(O6EHG|CP(i8<#Dsa zZv$E^k9N*)sift;4{(k487$`;LW3Q1b_6E13$P8}a@HW15!=W3MzSq_2hdcSJ0$0( zL-aLGGsrz@xy5%woihfc-9|O6Z5-7^nQN%bgMR1B(U|GbW6iw@-`3K%DJr9D#mux} zt;q4@ve<;Cf8R+aG=Dm&>)$LtL5uDLB}IzXB=_?s!i8FAxq^ncXG?x5!lwGXH}jEv z)0-9@o=?7s$i$l&dKnJY7i;P0OnEU>tF>Hg#~F{5+WOc!b^Vt@pIb974!>A^6MazD zhUTu2#}Tghc{Jbv)feWj`5wB&0F;i7^TM9pd*&W^fB4~AYXa%(^On29)X999zDw{?7vH(>&lcH zwp?S6TF6~zV1pnA%_2I0*pnBA(EdQ_28%#|?nIRp>%;HuMAc*1Vu4$pA2%qy}Lqq-Ugdsy%8> zhB`E)7drtzwTaP%N~B0}BF2hTWbPfbh@H`x(geH~@K-#cGi2=^&+AUL3x#D=lJKrO zE$k#voX`_M5jF+@MLhu&F=iXa+}3aA15z9#e?VxEnFt~sVEO8f<{M(OnY2j^09mu} z#d1tq*rwbVsEHkKM@xb%!%0DT2uRZKQf(;pEB9DxngG->ESG+{U50G&UC)~^v^ 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

QKv7Q0$3IVc3i{Q&$(~2(1aR(kY@jK4VnBxHdOa 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

@C^2%*)7U4Zq3?qfx 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 Date: Wed, 24 Sep 2025 18:19:29 +0800 Subject: [PATCH 09/32] fix(menu): remove unused flash size option for 4D Systems MIPI LCDs (#11870) --- boards.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/boards.txt b/boards.txt index ee5e73170e6..59bd5793bbc 100644 --- a/boards.txt +++ b/boards.txt @@ -52648,11 +52648,6 @@ esp32p4_4ds_mipi.menu.CPUFreq.360.build.f_cpu=360000000L esp32p4_4ds_mipi.menu.CPUFreq.40=40MHz esp32p4_4ds_mipi.menu.CPUFreq.40.build.f_cpu=40000000L -esp32p4_4ds_mipi.menu.FlashSize.16M=16MB (128Mb) -esp32p4_4ds_mipi.menu.FlashSize.16M.build.flash_size=16MB -esp32p4_4ds_mipi.menu.FlashSize.32M=32MB (256Mb) -esp32p4_4ds_mipi.menu.FlashSize.32M.build.flash_size=32MB - esp32p4_4ds_mipi.menu.UploadSpeed.921600=921600 esp32p4_4ds_mipi.menu.UploadSpeed.921600.upload.speed=921600 esp32p4_4ds_mipi.menu.UploadSpeed.115200=115200 From f4f4bc6da3dcad6f3ad3ed85f7aa4e5cc54ea094 Mon Sep 17 00:00:00 2001 From: prooma <86158218+prooma@users.noreply.github.com> Date: Wed, 24 Sep 2025 12:20:47 +0200 Subject: [PATCH 10/32] WiFiClientSecure: robust TLS writes (loop & chunk), avoid zero-length write -> fixes sporadic MBEDTLS_ERR_NET_CONN_RESET (#11865) * fix(ssl_client,wifi): Write full TLS buffer and avoid zero-length writes Loop in send_ssl_data() until the entire buffer is written; handle MBEDTLS_ERR_SSL_WANT_{READ,WRITE} and respect socket timeouts. Return 0 for len==0 to prevent zero-length TLS writes. Add a size==0 guard in WiFiClientSecure::write() for symmetry. No API changes. * fix(ssl_client): Chunk TLS writes and reset timeout after progress Chunk TLS writes and reset timeout after progress to reduce mid-body resets Send large TLS payloads in moderate chunks (4 KiB) instead of a single large write, and measure the write timeout from the last successful progress. This significantly reduces sporadic MBEDTLS_ERR_NET_CONN_RESET (-0x0050) observed during long HTTP bodies (e.g., multipart uploads). - write loop remains intact; now caps per-call size to 4096 bytes - updates timeout window after each positive write to avoid false timeouts on slow links - no API changes; handshake/verification paths unaffected Sources Ask ChatGPT * refactor(ssl_client): Constexpr chunk size; rename max_write_chunk_size --- .../src/NetworkClientSecure.cpp | 4 +++ .../NetworkClientSecure/src/ssl_client.cpp | 30 ++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp b/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp index b24c9f1adc3..08da928668e 100644 --- a/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp +++ b/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp @@ -227,6 +227,10 @@ size_t NetworkClientSecure::write(const uint8_t *buf, size_t size) { return 0; } + if (size == 0) { + return 0; + } + if (_stillinPlainStart) { return send_net_data(sslclient.get(), buf, size); } diff --git a/libraries/NetworkClientSecure/src/ssl_client.cpp b/libraries/NetworkClientSecure/src/ssl_client.cpp index 19f75673133..f70aefec034 100644 --- a/libraries/NetworkClientSecure/src/ssl_client.cpp +++ b/libraries/NetworkClientSecure/src/ssl_client.cpp @@ -409,25 +409,41 @@ int data_to_read(sslclient_context *ssl_client) { } int send_ssl_data(sslclient_context *ssl_client, const uint8_t *data, size_t len) { - unsigned long write_start_time = millis(); - int ret = -1; + if (len == 0) { + return 0; // Skipping zero-length write + } + + static constexpr size_t max_write_chunk_size = 4096; + unsigned long last_progress = millis(); // Timeout since last progress + size_t sent = 0; + + while (sent < len) { + size_t to_send = len - sent; + if (to_send > max_write_chunk_size) { + to_send = max_write_chunk_size; + } - while ((ret = mbedtls_ssl_write(&ssl_client->ssl_ctx, data, len)) <= 0) { - if ((millis() - write_start_time) > ssl_client->socket_timeout) { + int ret = mbedtls_ssl_write(&ssl_client->ssl_ctx, data + sent, to_send); + if (ret > 0) { + sent += ret; + last_progress = millis(); // refresh timeout window + continue; + } + + if ((millis() - last_progress) > ssl_client->socket_timeout) { log_v("SSL write timed out."); return -1; } if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && ret < 0) { - log_v("Handling error %d", ret); //for low level debug + log_v("Handling error %d", ret); return handle_error(ret); } - //wait for space to become available vTaskDelay(2); } - return ret; + return (int)sent; } // Some protocols, such as SMTP, XMPP, MySQL/Posgress and various others From ef453a58328c5ed2313da0df7b176573ec0e4ba3 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 24 Sep 2025 15:22:27 +0300 Subject: [PATCH 11/32] feat(update): Allow updating any type of file system (#11856) * feat(update): Allow updating any type of file system * fix(style): Update libraries/HTTPUpdate/src/HTTPUpdate.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- libraries/ArduinoOTA/src/ArduinoOTA.cpp | 2 +- libraries/HTTPUpdate/src/HTTPUpdate.cpp | 90 +++++++++++++++---- libraries/HTTPUpdate/src/HTTPUpdate.h | 8 +- .../HTTPUpdateServer/src/HTTPUpdateServer.h | 2 +- .../HTTP_Server_AES_OTA_Update.ino | 5 +- libraries/Update/src/Update.h | 10 ++- libraries/Update/src/Updater.cpp | 43 ++++++--- 7 files changed, 123 insertions(+), 37 deletions(-) diff --git a/libraries/ArduinoOTA/src/ArduinoOTA.cpp b/libraries/ArduinoOTA/src/ArduinoOTA.cpp index 308660c3ce7..c5214171012 100644 --- a/libraries/ArduinoOTA/src/ArduinoOTA.cpp +++ b/libraries/ArduinoOTA/src/ArduinoOTA.cpp @@ -182,7 +182,7 @@ String ArduinoOTAClass::readStringUntil(char end) { void ArduinoOTAClass::_onRx() { if (_state == OTA_IDLE) { int cmd = parseInt(); - if (cmd != U_FLASH && cmd != U_SPIFFS) { + if (cmd != U_FLASH && cmd != U_FLASHFS) { return; } _cmd = cmd; diff --git a/libraries/HTTPUpdate/src/HTTPUpdate.cpp b/libraries/HTTPUpdate/src/HTTPUpdate.cpp index b463ffe2e83..5183afac017 100644 --- a/libraries/HTTPUpdate/src/HTTPUpdate.cpp +++ b/libraries/HTTPUpdate/src/HTTPUpdate.cpp @@ -52,11 +52,31 @@ HTTPUpdateResult HTTPUpdate::update(NetworkClient &client, const String &url, co if (!http.begin(client, url)) { return HTTP_UPDATE_FAILED; } - return handleUpdate(http, currentVersion, false, requestCB); + return handleUpdate(http, currentVersion, U_FLASH, requestCB); +} + +HTTPUpdateResult HTTPUpdate::updateFs(HTTPClient &httpClient, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { + return handleUpdate(httpClient, currentVersion, U_FLASHFS, requestCB); } HTTPUpdateResult HTTPUpdate::updateSpiffs(HTTPClient &httpClient, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { - return handleUpdate(httpClient, currentVersion, true, requestCB); + return handleUpdate(httpClient, currentVersion, U_SPIFFS, requestCB); +} + +HTTPUpdateResult HTTPUpdate::updateFatfs(HTTPClient &httpClient, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { + return handleUpdate(httpClient, currentVersion, U_FATFS, requestCB); +} + +HTTPUpdateResult HTTPUpdate::updateLittlefs(HTTPClient &httpClient, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { + return handleUpdate(httpClient, currentVersion, U_LITTLEFS, requestCB); +} + +HTTPUpdateResult HTTPUpdate::updateFs(NetworkClient &client, const String &url, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { + HTTPClient http; + if (!http.begin(client, url)) { + return HTTP_UPDATE_FAILED; + } + return handleUpdate(http, currentVersion, U_FLASHFS, requestCB); } HTTPUpdateResult HTTPUpdate::updateSpiffs(NetworkClient &client, const String &url, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { @@ -64,11 +84,27 @@ HTTPUpdateResult HTTPUpdate::updateSpiffs(NetworkClient &client, const String &u if (!http.begin(client, url)) { return HTTP_UPDATE_FAILED; } - return handleUpdate(http, currentVersion, true, requestCB); + return handleUpdate(http, currentVersion, U_SPIFFS, requestCB); +} + +HTTPUpdateResult HTTPUpdate::updateFatfs(NetworkClient &client, const String &url, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { + HTTPClient http; + if (!http.begin(client, url)) { + return HTTP_UPDATE_FAILED; + } + return handleUpdate(http, currentVersion, U_FATFS, requestCB); +} + +HTTPUpdateResult HTTPUpdate::updateLittlefs(NetworkClient &client, const String &url, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { + HTTPClient http; + if (!http.begin(client, url)) { + return HTTP_UPDATE_FAILED; + } + return handleUpdate(http, currentVersion, U_LITTLEFS, requestCB); } HTTPUpdateResult HTTPUpdate::update(HTTPClient &httpClient, const String ¤tVersion, HTTPUpdateRequestCB requestCB) { - return handleUpdate(httpClient, currentVersion, false, requestCB); + return handleUpdate(httpClient, currentVersion, U_FLASH, requestCB); } HTTPUpdateResult @@ -77,7 +113,7 @@ HTTPUpdateResult if (!http.begin(client, host, port, uri)) { return HTTP_UPDATE_FAILED; } - return handleUpdate(http, currentVersion, false, requestCB); + return handleUpdate(http, currentVersion, U_FLASH, requestCB); } /** @@ -158,7 +194,7 @@ String getSketchSHA256() { * @param currentVersion const char * * @return HTTPUpdateResult */ -HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient &http, const String ¤tVersion, bool spiffs, HTTPUpdateRequestCB requestCB) { +HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient &http, const String ¤tVersion, uint8_t type, HTTPUpdateRequestCB requestCB) { HTTPUpdateResult ret = HTTP_UPDATE_FAILED; @@ -187,8 +223,14 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient &http, const String ¤ http.addHeader("x-ESP32-chip-size", String(ESP.getFlashChipSize())); http.addHeader("x-ESP32-sdk-version", ESP.getSdkVersion()); - if (spiffs) { + if (type == U_SPIFFS) { http.addHeader("x-ESP32-mode", "spiffs"); + } else if (type == U_FATFS) { + http.addHeader("x-ESP32-mode", "fatfs"); + } else if (type == U_LITTLEFS) { + http.addHeader("x-ESP32-mode", "littlefs"); + } else if (type == U_FLASHFS) { + http.addHeader("x-ESP32-mode", "flashfs"); } else { http.addHeader("x-ESP32-mode", "sketch"); } @@ -251,8 +293,24 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient &http, const String ¤ case HTTP_CODE_OK: ///< OK (Start Update) if (len > 0) { bool startUpdate = true; - if (spiffs) { - const esp_partition_t *_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_SPIFFS, NULL); + if (type != U_FLASH) { + const esp_partition_t *_partition = NULL; + if (type == U_SPIFFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_SPIFFS, NULL); + } else if (type == U_FATFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_FAT, NULL); + } else if (type == U_LITTLEFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_LITTLEFS, NULL); + } else if (type == U_FLASHFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_SPIFFS, NULL); + if (!_partition) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_FAT, NULL); + } + if (!_partition) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_LITTLEFS, NULL); + } + } + if (!_partition) { _lastError = HTTP_UE_NO_PARTITION; return HTTP_UPDATE_FAILED; @@ -291,17 +349,15 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient &http, const String ¤ delay(100); - int command; + int command = type; - if (spiffs) { - command = U_SPIFFS; - log_d("runUpdate spiffs...\n"); - } else { - command = U_FLASH; + if (type == U_FLASH) { log_d("runUpdate flash...\n"); + } else { + log_d("runUpdate file system...\n"); } - if (!spiffs) { + if (type == U_FLASH) { /* To do uint8_t buf[4]; if(tcp->peekBytes(&buf[0], 4) != 4) { @@ -341,7 +397,7 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient &http, const String ¤ _cbEnd(); } - if (_rebootOnUpdate && !spiffs) { + if (_rebootOnUpdate && type == U_FLASH) { ESP.restart(); } diff --git a/libraries/HTTPUpdate/src/HTTPUpdate.h b/libraries/HTTPUpdate/src/HTTPUpdate.h index a48d1a89a3e..ad38701b948 100644 --- a/libraries/HTTPUpdate/src/HTTPUpdate.h +++ b/libraries/HTTPUpdate/src/HTTPUpdate.h @@ -98,11 +98,17 @@ class HTTPUpdate { NetworkClient &client, const String &host, uint16_t port, const String &uri = "/", const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL ); + t_httpUpdate_return updateFs(NetworkClient &client, const String &url, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); t_httpUpdate_return updateSpiffs(NetworkClient &client, const String &url, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); + t_httpUpdate_return updateFatfs(NetworkClient &client, const String &url, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); + t_httpUpdate_return updateLittlefs(NetworkClient &client, const String &url, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); t_httpUpdate_return update(HTTPClient &httpClient, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); + t_httpUpdate_return updateFs(HTTPClient &httpClient, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); t_httpUpdate_return updateSpiffs(HTTPClient &httpClient, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); + t_httpUpdate_return updateFatfs(HTTPClient &httpClient, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); + t_httpUpdate_return updateLittlefs(HTTPClient &httpClient, const String ¤tVersion = "", HTTPUpdateRequestCB requestCB = NULL); // Notification callbacks void onStart(HTTPUpdateStartCB cbOnStart) { @@ -122,7 +128,7 @@ class HTTPUpdate { String getLastErrorString(void); protected: - t_httpUpdate_return handleUpdate(HTTPClient &http, const String ¤tVersion, bool spiffs = false, HTTPUpdateRequestCB requestCB = NULL); + t_httpUpdate_return handleUpdate(HTTPClient &http, const String ¤tVersion, uint8_t type = U_FLASH, HTTPUpdateRequestCB requestCB = NULL); bool runUpdate(Stream &in, uint32_t size, String md5, int command = U_FLASH); // Set the error and potentially use a CB to notify the application diff --git a/libraries/HTTPUpdateServer/src/HTTPUpdateServer.h b/libraries/HTTPUpdateServer/src/HTTPUpdateServer.h index 952711bef66..d9e9b9ea2d5 100644 --- a/libraries/HTTPUpdateServer/src/HTTPUpdateServer.h +++ b/libraries/HTTPUpdateServer/src/HTTPUpdateServer.h @@ -122,7 +122,7 @@ class HTTPUpdateServer { Serial.printf("Update: %s\n", upload.filename.c_str()); } if (upload.name == "filesystem") { - if (!Update.begin(UPDATE_SIZE_UNKNOWN, U_SPIFFS)) { //Instead of SPIFFS.totalBytes(). Fix https://github.com/espressif/arduino-esp32/issues/9967 + if (!Update.begin(UPDATE_SIZE_UNKNOWN, U_FLASHFS)) { //Instead of SPIFFS.totalBytes(). Fix https://github.com/espressif/arduino-esp32/issues/9967 if (_serial_output) { Update.printError(Serial); } diff --git a/libraries/Update/examples/HTTP_Server_AES_OTA_Update/HTTP_Server_AES_OTA_Update.ino b/libraries/Update/examples/HTTP_Server_AES_OTA_Update/HTTP_Server_AES_OTA_Update.ino index 5af4f1bf9f4..f9216f678a5 100644 --- a/libraries/Update/examples/HTTP_Server_AES_OTA_Update/HTTP_Server_AES_OTA_Update.ino +++ b/libraries/Update/examples/HTTP_Server_AES_OTA_Update/HTTP_Server_AES_OTA_Update.ino @@ -18,7 +18,7 @@ defaults:- {if not set ie. "Update.setupCrypt();" } OTA_MODE options:- U_AES_DECRYPT_NONE decryption disabled, loads OTA image files as sent(plain) - U_AES_DECRYPT_AUTO auto loads both plain & encrypted OTA FLASH image files, and plain OTA SPIFFS image files + U_AES_DECRYPT_AUTO auto loads both plain & encrypted OTA FLASH image files, and plain OTA File System image files U_AES_DECRYPT_ON decrypts OTA image files https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/ @@ -36,7 +36,6 @@ espsecure.py encrypt_flash_data = runs the idf encryption function to make a en #include #include -#include #include #include #include @@ -145,7 +144,7 @@ void setupHttpUpdateServer() { if (upload.status == UPLOAD_FILE_START) { Serial.printf("Update: %s\n", upload.filename.c_str()); if (upload.name == "filesystem") { - if (!Update.begin(SPIFFS.totalBytes(), U_SPIFFS)) { //start with max available size + if (!Update.begin(UPDATE_SIZE_UNKNOWN, U_FLASHFS)) { //start with max available size Update.printError(Serial); } } else { diff --git a/libraries/Update/src/Update.h b/libraries/Update/src/Update.h index 9a4d3e02489..5f52e6b3b73 100644 --- a/libraries/Update/src/Update.h +++ b/libraries/Update/src/Update.h @@ -29,9 +29,12 @@ #define UPDATE_SIZE_UNKNOWN 0xFFFFFFFF -#define U_FLASH 0 -#define U_SPIFFS 100 -#define U_AUTH 200 +#define U_FLASH 0 +#define U_FLASHFS 100 +#define U_SPIFFS 101 +#define U_FATFS 102 +#define U_LITTLEFS 103 +#define U_AUTH 200 #define ENCRYPTED_BLOCK_SIZE 16 #define ENCRYPTED_TWEAK_BLOCK_SIZE 32 @@ -267,7 +270,6 @@ class UpdateClass { size_t _size; THandlerFunction_Progress _progress_callback; uint32_t _progress; - uint32_t _paroffset; uint32_t _command; const esp_partition_t *_partition; diff --git a/libraries/Update/src/Updater.cpp b/libraries/Update/src/Updater.cpp index 3b0c517431d..e9f39f729d3 100644 --- a/libraries/Update/src/Updater.cpp +++ b/libraries/Update/src/Updater.cpp @@ -75,7 +75,7 @@ UpdateClass::UpdateClass() #ifndef UPDATE_NOCRYPT _cryptKey(0), _cryptBuffer(0), #endif /* UPDATE_NOCRYPT */ - _buffer(0), _skipBuffer(0), _bufferLen(0), _size(0), _progress_callback(NULL), _progress(0), _paroffset(0), _command(U_FLASH), _partition(NULL) + _buffer(0), _skipBuffer(0), _bufferLen(0), _size(0), _progress_callback(NULL), _progress(0), _command(U_FLASH), _partition(NULL) #ifndef UPDATE_NOCRYPT , _cryptMode(U_AES_DECRYPT_AUTO), _cryptAddress(0), _cryptCfg(0xf) @@ -154,16 +154,39 @@ bool UpdateClass::begin(size_t size, int command, int ledPin, uint8_t ledOn, con } log_d("OTA Partition: %s", _partition->label); } else if (command == U_SPIFFS) { - _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_SPIFFS, label); - _paroffset = 0; + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_SPIFFS, NULL); + if (!_partition) { + _error = UPDATE_ERROR_NO_PARTITION; + return false; + } + log_d("SPIFFS Partition: %s", _partition->label); + } else if (command == U_FATFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_FAT, NULL); + if (!_partition) { + _error = UPDATE_ERROR_NO_PARTITION; + return false; + } + log_d("FATFS Partition: %s", _partition->label); + } else if (command == U_LITTLEFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_LITTLEFS, NULL); + if (!_partition) { + _error = UPDATE_ERROR_NO_PARTITION; + return false; + } + log_d("LittleFS Partition: %s", _partition->label); + } else if (command == U_FLASHFS) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_SPIFFS, NULL); if (!_partition) { _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_FAT, NULL); - _paroffset = 0x1000; //Offset for ffat, assuming size is already corrected - if (!_partition) { - _error = UPDATE_ERROR_NO_PARTITION; - return false; - } } + if (!_partition) { + _partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_LITTLEFS, NULL); + } + if (!_partition) { + _error = UPDATE_ERROR_NO_PARTITION; + return false; + } + log_d("FS Partition: %s", _partition->label); } else { _error = UPDATE_ERROR_BAD_ARGUMENT; log_e("bad command %u", command); @@ -452,7 +475,7 @@ bool UpdateClass::_verifyHeader(uint8_t data) { return false; } return true; - } else if (_command == U_SPIFFS) { + } else { return true; } return false; @@ -471,7 +494,7 @@ bool UpdateClass::_verifyEnd() { } _reset(); return true; - } else if (_command == U_SPIFFS) { + } else { _reset(); return true; } From 372ba6a40b1ba012757b6a8aa93450a43c826371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Andr=C3=BDsek?= Date: Thu, 25 Sep 2025 14:23:34 +0200 Subject: [PATCH 12/32] Migrate to wokwi-py-client (update pytest-embedded and esptool) (#11863) * change(requirements): Update pytest-embedded packages to version 2.0.0a1 and esptool to 5.1.0 * change(workflow): Remove extra index URL from pip install command in Wokwi tests - for testing * change(tests): Simplify Wokwi test script arguments and remove timeout variable * change(requirements): Update pytest-embedded packages to version 2.0.0 * Revert "change(workflow): Remove extra index URL from pip install command in Wokwi tests - for testing" This reverts commit 349922cecd290311cf81ed76bb767e1eac442133. --- .github/scripts/tests_run.sh | 7 +------ .github/workflows/tests_wokwi.yml | 9 +-------- docs/en/contributing.rst | 5 ++--- tests/requirements.txt | 10 +++++----- tests/validation/gpio/test_gpio.py | 17 +++++++++-------- 5 files changed, 18 insertions(+), 30 deletions(-) diff --git a/.github/scripts/tests_run.sh b/.github/scripts/tests_run.sh index c85db2e984a..26ec1a10d43 100755 --- a/.github/scripts/tests_run.sh +++ b/.github/scripts/tests_run.sh @@ -88,10 +88,7 @@ function run_test { fi if [ $platform == "wokwi" ]; then - extra_args=("--target" "$target" "--embedded-services" "arduino,wokwi" "--wokwi-timeout=$wokwi_timeout") - if [[ -f "$sketchdir/scenario.yaml" ]]; then - extra_args+=("--wokwi-scenario" "$sketchdir/scenario.yaml") - fi + extra_args=("--target" "$target" "--embedded-services" "arduino,wokwi") if [[ -f "$sketchdir/diagram.$target.json" ]]; then extra_args+=("--wokwi-diagram" "$sketchdir/diagram.$target.json") fi @@ -137,7 +134,6 @@ SCRIPTS_DIR="./.github/scripts" COUNT_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh count" platform="hardware" -wokwi_timeout=60000 chunk_run=0 options=0 erase=0 @@ -156,7 +152,6 @@ while [ -n "$1" ]; do ;; -W ) shift - wokwi_timeout=$1 if [[ -z $WOKWI_CLI_TOKEN ]]; then echo "Wokwi CLI token is not set" exit 1 diff --git a/.github/workflows/tests_wokwi.yml b/.github/workflows/tests_wokwi.yml index cfea30a501d..3038a7ce59c 100644 --- a/.github/workflows/tests_wokwi.yml +++ b/.github/workflows/tests_wokwi.yml @@ -10,9 +10,6 @@ on: permissions: contents: read -env: - WOKWI_TIMEOUT: 600000 # Milliseconds - jobs: get-artifacts: name: Get required artifacts @@ -271,10 +268,6 @@ jobs: pip install -U pip pip install -r tests/requirements.txt --extra-index-url https://dl.espressif.com/pypi - - name: Install Wokwi CLI - if: ${{ steps.check-tests.outputs.enabled == 'true' }} - run: curl -L https://wokwi.com/ci/install.sh | sh - - name: Wokwi CI Server if: ${{ steps.check-tests.outputs.enabled == 'true' }} uses: wokwi/wokwi-ci-server-action@a6fabb5a49e080158c7a1d121ea5b789536a82c3 # v1 @@ -294,7 +287,7 @@ jobs: env: WOKWI_CLI_TOKEN: ${{ secrets.WOKWI_CLI_TOKEN }} run: | - bash .github/scripts/tests_run.sh -c -type ${{ matrix.type }} -t ${{ matrix.chip }} -i 0 -m 1 -W ${{ env.WOKWI_TIMEOUT }} + bash .github/scripts/tests_run.sh -c -type ${{ matrix.type }} -t ${{ matrix.chip }} -i 0 -m 1 -W - name: Upload ${{ matrix.chip }} ${{ matrix.type }} Wokwi results as cache uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 diff --git a/docs/en/contributing.rst b/docs/en/contributing.rst index ae07bb57706..0a2ff38b95f 100644 --- a/docs/en/contributing.rst +++ b/docs/en/contributing.rst @@ -365,7 +365,7 @@ After the test is finished, you can check the output in the terminal and the gen Additionally, for performance tests, you can check the generated JSON file in the same folder. You can also run the tests in `Wokwi `_ or `Espressif's QEMU `_ -by using the ``-W `` and ``-Q`` flags respectively. You will need to have the Wokwi and/or QEMU installed in your system +by using the ``-W`` and ``-Q`` flags respectively. You will need to have the Wokwi and/or QEMU installed in your system and set the ``WOKWI_CLI_TOKEN`` and/or ``QEMU_PATH`` environment variables. The ``WOKWI_CLI_TOKEN`` is the CI token that can be obtained from the `Wokwi website `_ and the ``QEMU_PATH`` is the path to the QEMU binary. @@ -373,7 +373,7 @@ For example, to run the ``uart`` test using Wokwi, you would run: .. code-block:: bash - WOKWI_CLI_TOKEN= ./.github/scripts/tests_run.sh -s uart -t esp32c3 -W + WOKWI_CLI_TOKEN= ./.github/scripts/tests_run.sh -s uart -t esp32c3 -W And to run the ``uart`` test using QEMU, you would run: @@ -398,7 +398,6 @@ A test suite contains the following files: * ``.ino``: The sketch that will be tested. Required. * ``ci.json``: The file that specifies how the test suite will be run in the CI system. Optional. * ``diagram..json``: The diagram file that specifies the connections between the components in Wokwi. Optional. -* ``scenario.yaml``: The scenario file that specifies how Wokwi will interact with the components. Optional. * Any other files that are needed for the test suite. You can read more about the test python API in the `pytest-embedded documentation `_. diff --git a/tests/requirements.txt b/tests/requirements.txt index b2bae3b86d0..001b26855a9 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,8 +1,8 @@ cryptography==44.0.1 --only-binary cryptography pytest-cov==5.0.0 -pytest-embedded-serial-esp==1.12.0 -pytest-embedded-arduino==1.12.0 -pytest-embedded-wokwi==1.12.0 -pytest-embedded-qemu==1.12.0 -esptool==4.8.1 +pytest-embedded-serial-esp==2.0.0 +pytest-embedded-arduino==2.0.0 +pytest-embedded-wokwi==2.0.0 +pytest-embedded-qemu==2.0.0 +esptool==5.1.0 diff --git a/tests/validation/gpio/test_gpio.py b/tests/validation/gpio/test_gpio.py index 8aa3a42dcc6..42010ab520b 100644 --- a/tests/validation/gpio/test_gpio.py +++ b/tests/validation/gpio/test_gpio.py @@ -1,16 +1,17 @@ import logging +from pytest_embedded_wokwi import Wokwi +from pytest_embedded import Dut -def test_gpio(dut): +def test_gpio(dut: Dut, wokwi: Wokwi): LOGGER = logging.getLogger(__name__) + LOGGER.info("Waiting for Button test begin...") dut.expect_exact("Button test") - LOGGER.info("Expecting button press 1") - dut.expect_exact("Button pressed 1 times") + for i in range(3): + LOGGER.info(f"Setting button pressed for {i + 1} seconds") + wokwi.client.set_control("btn1", "pressed", 1) - LOGGER.info("Expecting button press 2") - dut.expect_exact("Button pressed 2 times") - - LOGGER.info("Expecting button press 3") - dut.expect_exact("Button pressed 3 times") + dut.expect_exact(f"Button pressed {i + 1} times") + wokwi.client.set_control("btn1", "pressed", 0) From 78a74e9e253dbedaeef17e37ba3ca5d489fda58d Mon Sep 17 00:00:00 2001 From: Bekir Sami Karatas Date: Mon, 29 Sep 2025 03:20:09 +0300 Subject: [PATCH 13/32] fix: Add upload flags to boards.txt for Twin AIoT Module to resolve upload error (#11876) --- boards.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/boards.txt b/boards.txt index 59bd5793bbc..fc5d0b2f91c 100644 --- a/boards.txt +++ b/boards.txt @@ -52353,6 +52353,8 @@ twinaiot.upload.tool.network=esp_ota twinaiot.upload.maximum_size=1310720 twinaiot.upload.maximum_data_size=327680 +twinaiot.upload.flags= +twinaiot.upload.extra_flags= twinaiot.upload.use_1200bps_touch=false twinaiot.upload.wait_for_upload_port=false From c2bd3c960dfcdc9dae8424452309aeef8a70a0eb Mon Sep 17 00:00:00 2001 From: Oleg Nikulin <86243930+thegreenshark@users.noreply.github.com> Date: Mon, 29 Sep 2025 12:48:12 +0300 Subject: [PATCH 14/32] fix(board): Fix pid parameter for FoBE Quill ESP32S3 Mesh (#11877) Co-authored-by: Me No Dev --- boards.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boards.txt b/boards.txt index fc5d0b2f91c..e4031b618e1 100644 --- a/boards.txt +++ b/boards.txt @@ -52133,7 +52133,7 @@ fobe_quill_esp32s3_mesh.name=FoBE Quill ESP32S3 Mesh fobe_quill_esp32s3_mesh.vid.0=0x303a fobe_quill_esp32s3_mesh.pid.0=0x82f4 fobe_quill_esp32s3_mesh.vid.1=0x303a -fobe_quill_esp32s3_mesh.vid.1=0x82f5 +fobe_quill_esp32s3_mesh.pid.1=0x82f5 fobe_quill_esp32s3_mesh.vid.2=0x303a fobe_quill_esp32s3_mesh.pid.2=0x82f6 From ea382dfac5a91454dd722d16fb77be454570bbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B9=D0=B4=D0=B8=D1=81=D0=B2=D1=96?= =?UTF-8?q?=D1=82?= <92428846+Kolodieiev@users.noreply.github.com> Date: Mon, 29 Sep 2025 22:43:19 +0300 Subject: [PATCH 15/32] Refactor touch pad error logging (#11878) - Removed duplicated log_e("No touch pad on selected pin!") calls from multiple functions. - Centralized the error log inside digitalPinToTouchChannel(). - Extended the error message to include the pin number for better debugging context. - Added log_e() in digitalPinToTouchChannel() when no touch sensor is available on the chip. Co-authored-by: Me No Dev --- cores/esp32/esp32-hal-gpio.c | 9 +++++---- cores/esp32/esp32-hal-touch-ng.c | 3 --- cores/esp32/esp32-hal-touch.c | 3 --- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/cores/esp32/esp32-hal-gpio.c b/cores/esp32/esp32-hal-gpio.c index 90ad1e7f36d..197f789d94d 100644 --- a/cores/esp32/esp32-hal-gpio.c +++ b/cores/esp32/esp32-hal-gpio.c @@ -33,20 +33,21 @@ #include "soc/touch_sensor_periph.h" int8_t digitalPinToTouchChannel(uint8_t pin) { - int8_t ret = -1; if (pin < SOC_GPIO_PIN_COUNT) { for (uint8_t i = 0; i < SOC_TOUCH_SENSOR_NUM; i++) { if (touch_sensor_channel_io_map[i] == pin) { - ret = i; - break; + return i; } } } - return ret; + + log_e("No touch pad on selected pin(%u)!", pin); + return -1; } #else // No Touch Sensor available int8_t digitalPinToTouchChannel(uint8_t pin) { + log_e("Touch sensor not available on this chip"); return -1; } #endif diff --git a/cores/esp32/esp32-hal-touch-ng.c b/cores/esp32/esp32-hal-touch-ng.c index 98f9052d18c..44bde091be8 100644 --- a/cores/esp32/esp32-hal-touch-ng.c +++ b/cores/esp32/esp32-hal-touch-ng.c @@ -332,7 +332,6 @@ static void __touchChannelInit(int pad) { static touch_value_t __touchRead(uint8_t pin) { int8_t pad = digitalPinToTouchChannel(pin); if (pad < 0) { - log_e(" No touch pad on selected pin!"); return 0; } @@ -360,7 +359,6 @@ static touch_value_t __touchRead(uint8_t pin) { static void __touchConfigInterrupt(uint8_t pin, void (*userFunc)(void), void *Args, bool callWithArgs, touch_value_t threshold) { int8_t pad = digitalPinToTouchChannel(pin); if (pad < 0) { - log_e(" No touch pad on selected pin!"); return; } @@ -446,7 +444,6 @@ bool touchInterruptGetLastStatus(uint8_t pin) { void touchSleepWakeUpEnable(uint8_t pin, touch_value_t threshold) { int8_t pad = digitalPinToTouchChannel(pin); if (pad < 0) { - log_e(" No touch pad on selected pin!"); return; } diff --git a/cores/esp32/esp32-hal-touch.c b/cores/esp32/esp32-hal-touch.c index 10482234de0..e27064d20e1 100644 --- a/cores/esp32/esp32-hal-touch.c +++ b/cores/esp32/esp32-hal-touch.c @@ -206,7 +206,6 @@ static void __touchChannelInit(int pad) { static touch_value_t __touchRead(uint8_t pin) { int8_t pad = digitalPinToTouchChannel(pin); if (pad < 0) { - log_e(" No touch pad on selected pin!"); return 0; } @@ -233,7 +232,6 @@ static touch_value_t __touchRead(uint8_t pin) { static void __touchConfigInterrupt(uint8_t pin, void (*userFunc)(void), void *Args, touch_value_t threshold, bool callWithArgs) { int8_t pad = digitalPinToTouchChannel(pin); if (pad < 0) { - log_e(" No touch pad on selected pin!"); return; } @@ -295,7 +293,6 @@ bool touchInterruptGetLastStatus(uint8_t pin) { void touchSleepWakeUpEnable(uint8_t pin, touch_value_t threshold) { int8_t pad = digitalPinToTouchChannel(pin); if (pad < 0) { - log_e(" No touch pad on selected pin!"); return; } From e8d0d310b58f28c65ba2318c54ce0675f4bd55a0 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Fri, 3 Oct 2025 07:08:47 -0300 Subject: [PATCH 16/32] feat(release): Update version on release and add XZ archives (#11875) --- .github/scripts/on-release.sh | 162 ++++++++++++++++++++++++++++-- .github/scripts/update-version.sh | 9 ++ .github/workflows/release.yml | 1 + 3 files changed, 165 insertions(+), 7 deletions(-) diff --git a/.github/scripts/on-release.sh b/.github/scripts/on-release.sh index 275c74f8ea5..b65ab371640 100755 --- a/.github/scripts/on-release.sh +++ b/.github/scripts/on-release.sh @@ -54,6 +54,30 @@ if [ -n "${VENDOR}" ]; then echo "Setting packager: $VENDOR" fi +function update_version { + set -e + set -o pipefail + + local tag=$1 + local major + local minor + local patch + + # Extract major, minor, and patch from the tag + # We need to make sure to remove the "v" prefix from the tag and any characters after the patch version + tag=$(echo "$tag" | sed 's/^v//g' | sed 's/-.*//g') + major=$(echo "$tag" | cut -d. -f1) + minor=$(echo "$tag" | cut -d. -f2) + patch=$(echo "$tag" | cut -d. -f3 | sed 's/[^0-9].*//') # Remove non-numeric suffixes like RC1, alpha, beta + + echo "Major: $major, Minor: $minor, Patch: $patch" + + "${SCRIPTS_DIR}/update-version.sh" "$major" "$minor" "$patch" + + set +e + set +o pipefail +} + function get_file_size { local file="$1" if [[ "$OSTYPE" == "darwin"* ]]; then @@ -199,8 +223,31 @@ set -e ## mkdir -p "$OUTPUT_DIR" -PKG_DIR="$OUTPUT_DIR/$PACKAGE_NAME" +PKG_DIR="${OUTPUT_DIR:?}/$PACKAGE_NAME" PACKAGE_ZIP="$PACKAGE_NAME.zip" +PACKAGE_XZ="$PACKAGE_NAME.tar.xz" +LIBS_ZIP="$PACKAGE_NAME-libs.zip" +LIBS_XZ="$PACKAGE_NAME-libs.tar.xz" + +echo "Updating version..." +if ! update_version "$RELEASE_TAG"; then + echo "ERROR: update_version failed!" + exit 1 +fi +git config --global github.user "github-actions[bot]" +git config --global user.name "github-actions[bot]" +git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" +git add . + +# We should only commit if there are changes +need_update_commit=true +if git diff --cached --quiet; then + echo "Version already updated" + need_update_commit=false +else + echo "Creating version update commit..." + git commit -m "change(version): Update core version to $RELEASE_TAG" +fi echo "Updating submodules ..." git -C "$GITHUB_WORKSPACE" submodule update --init --recursive > /dev/null 2>&1 @@ -283,7 +330,7 @@ echo \#define ARDUINO_ESP32_GIT_DESC "$(git -C "$GITHUB_WORKSPACE" describe --ta echo \#define ARDUINO_ESP32_RELEASE_"$ver_define" >> "$PKG_DIR/cores/esp32/core_version.h" echo \#define ARDUINO_ESP32_RELEASE \""$ver_define"\" >> "$PKG_DIR/cores/esp32/core_version.h" -# Compress package folder +# Compress ZIP package folder echo "Creating ZIP ..." pushd "$OUTPUT_DIR" >/dev/null zip -qr "$PACKAGE_ZIP" "$PACKAGE_NAME" @@ -293,22 +340,112 @@ if [ $? -ne 0 ]; then fi # Calculate SHA-256 -echo "Calculating SHA sum ..." -PACKAGE_PATH="$OUTPUT_DIR/$PACKAGE_ZIP" +echo "Calculating ZIP SHA sum ..." +PACKAGE_PATH="${OUTPUT_DIR:?}/$PACKAGE_ZIP" PACKAGE_SHA=$(shasum -a 256 "$PACKAGE_ZIP" | cut -f 1 -d ' ') PACKAGE_SIZE=$(get_file_size "$PACKAGE_ZIP") popd >/dev/null -rm -rf "$PKG_DIR" echo "'$PACKAGE_ZIP' Created! Size: $PACKAGE_SIZE, SHA-256: $PACKAGE_SHA" echo -# Upload package to release page -echo "Uploading package to release page ..." +# Compress XZ package folder +echo "Creating XZ ..." +pushd "$OUTPUT_DIR" >/dev/null +tar -cJf "$PACKAGE_XZ" "$PACKAGE_NAME" +if [ $? -ne 0 ]; then + echo "ERROR: Failed to create $PACKAGE_XZ ($?)" + exit 1 +fi + +# Calculate SHA-256 +echo "Calculating XZ SHA sum ..." +PACKAGE_XZ_PATH="${OUTPUT_DIR:?}/$PACKAGE_XZ" +PACKAGE_XZ_SHA=$(shasum -a 256 "$PACKAGE_XZ" | cut -f 1 -d ' ') +PACKAGE_XZ_SIZE=$(get_file_size "$PACKAGE_XZ") +popd >/dev/null +echo "'$PACKAGE_XZ' Created! Size: $PACKAGE_XZ_SIZE, SHA-256: $PACKAGE_XZ_SHA" +echo + +# Upload ZIP package to release page +echo "Uploading ZIP package to release page ..." PACKAGE_URL=$(git_safe_upload_asset "$PACKAGE_PATH") echo "Package Uploaded" echo "Download URL: $PACKAGE_URL" echo +# Upload XZ package to release page +echo "Uploading XZ package to release page ..." +PACKAGE_XZ_URL=$(git_safe_upload_asset "$PACKAGE_XZ_PATH") +echo "Package Uploaded" +echo "Download URL: $PACKAGE_XZ_URL" +echo + +# Remove package folder +rm -rf "$PKG_DIR" + +# Copy Libs from lib-builder to release in ZIP and XZ + +libs_url=$(cat "$PACKAGE_JSON_TEMPLATE" | jq -r ".packages[0].tools[] | select(.name == \"esp32-arduino-libs\") | .systems[0].url") +libs_sha=$(cat "$PACKAGE_JSON_TEMPLATE" | jq -r ".packages[0].tools[] | select(.name == \"esp32-arduino-libs\") | .systems[0].checksum" | sed 's/^SHA-256://') +libs_size=$(cat "$PACKAGE_JSON_TEMPLATE" | jq -r ".packages[0].tools[] | select(.name == \"esp32-arduino-libs\") | .systems[0].size") +echo "Downloading libs from lib-builder ..." +echo "URL: $libs_url" +echo "Expected SHA: $libs_sha" +echo "Expected Size: $libs_size" +echo + +echo "Downloading libs from lib-builder ..." +curl -L -o "$OUTPUT_DIR/$LIBS_ZIP" "$libs_url" + +# Check SHA and Size +zip_sha=$(sha256sum "$OUTPUT_DIR/$LIBS_ZIP" | awk '{print $1}') +zip_size=$(stat -c%s "$OUTPUT_DIR/$LIBS_ZIP") +echo "Downloaded SHA: $zip_sha" +echo "Downloaded Size: $zip_size" +if [ "$zip_sha" != "$libs_sha" ] || [ "$zip_size" != "$libs_size" ]; then + echo "ERROR: ZIP SHA and Size do not match" + exit 1 +fi + +# Extract ZIP + +echo "Repacking libs to XZ ..." +unzip -q "$OUTPUT_DIR/$LIBS_ZIP" -d "$OUTPUT_DIR" +pushd "$OUTPUT_DIR" >/dev/null +tar -cJf "$LIBS_XZ" "esp32-arduino-libs" +popd >/dev/null + +# Upload ZIP and XZ libs to release page + +echo "Uploading ZIP libs to release page ..." +LIBS_ZIP_URL=$(git_safe_upload_asset "$OUTPUT_DIR/$LIBS_ZIP") +echo "ZIP libs Uploaded" +echo "Download URL: $LIBS_ZIP_URL" +echo + +echo "Uploading XZ libs to release page ..." +LIBS_XZ_URL=$(git_safe_upload_asset "$OUTPUT_DIR/$LIBS_XZ") +echo "XZ libs Uploaded" +echo "Download URL: $LIBS_XZ_URL" +echo + +# Update libs URLs in JSON template +echo "Updating libs URLs in JSON template ..." + +# Update all libs URLs in the JSON template +libs_jq_arg="(.packages[0].tools[] | select(.name == \"esp32-arduino-libs\") | .systems[].url) = \"$LIBS_ZIP_URL\"" + +cat "$PACKAGE_JSON_TEMPLATE" | jq "$libs_jq_arg" > "$OUTPUT_DIR/package-libs-updated.json" +PACKAGE_JSON_TEMPLATE="$OUTPUT_DIR/package-libs-updated.json" + +echo "Libs URLs updated in JSON template" +echo + +# Clean up +rm -rf "${OUTPUT_DIR:?}/esp32-arduino-libs" +rm -rf "${OUTPUT_DIR:?}/$LIBS_ZIP" +rm -rf "${OUTPUT_DIR:?}/$LIBS_XZ" + ## ## TEMP WORKAROUND FOR RV32 LONG PATH ON WINDOWS ## @@ -469,6 +606,17 @@ if [ "$RELEASE_PRE" == "false" ]; then echo fi +if [ "$need_update_commit" == "true" ]; then + echo "Pushing version update commit..." + git push + new_tag_commit=$(git rev-parse HEAD) + echo "New commit: $new_tag_commit" + + echo "Moving tag $RELEASE_TAG to $new_tag_commit..." + git tag -f "$RELEASE_TAG" "$new_tag_commit" + git push --force origin "$RELEASE_TAG" +fi + set +e ## diff --git a/.github/scripts/update-version.sh b/.github/scripts/update-version.sh index 377853003eb..ea680a6d801 100755 --- a/.github/scripts/update-version.sh +++ b/.github/scripts/update-version.sh @@ -2,6 +2,10 @@ # Disable shellcheck warning about using 'cat' to read a file. # shellcheck disable=SC2002 +# Exit on any error and make pipelines fail if any command fails +set -e +set -o pipefail + # For reference: add tools for all boards by replacing one line in each board # "[board].upload.tool=esptool_py" to "[board].upload.tool=esptool_py\n[board].upload.tool.default=esptool_py\n[board].upload.tool.network=esp_ota" #cat boards.txt | sed "s/\([a-zA-Z0-9_\-]*\)\.upload\.tool\=esptool_py/\1\.upload\.tool\=esptool_py\\n\1\.upload\.tool\.default\=esptool_py\\n\1\.upload\.tool\.network\=esp_ota/" @@ -38,6 +42,11 @@ echo "Updating issue template..." cat .github/ISSUE_TEMPLATE/Issue-report.yml | \ sed "s/.*\- latest master .*/ - latest master \(checkout manually\)\\n - v$ESP_ARDUINO_VERSION/g" > __issue-report.yml && mv __issue-report.yml .github/ISSUE_TEMPLATE/Issue-report.yml +echo "Updating GitLab variables..." +cat .gitlab/workflows/common.yml | \ +sed "s/ESP_IDF_VERSION:.*/ESP_IDF_VERSION: \"$ESP_IDF_VERSION\"/g" | \ +sed "s/ESP_ARDUINO_VERSION:.*/ESP_ARDUINO_VERSION: \"$ESP_ARDUINO_VERSION\"/g" > .gitlab/workflows/__common.yml && mv .gitlab/workflows/__common.yml .gitlab/workflows/common.yml + echo "Updating platform.txt..." cat platform.txt | sed "s/version=.*/version=$ESP_ARDUINO_VERSION/g" > __platform.txt && mv __platform.txt platform.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ddefdf69258..267385b0bb8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,7 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: + ref: ${{ github.event.release.target_commitish }} fetch-depth: 0 - name: Set up Python From 3af560a7dc0c77ac60fbc7cca85554844a391dc5 Mon Sep 17 00:00:00 2001 From: Patrick Van Oosterwijck Date: Mon, 6 Oct 2025 01:55:28 -0600 Subject: [PATCH 17/32] fix(board): Fix wESP32 board config with new options (#11879) * fix(board): Fix wESP32 board config with new options - Provide flash size option to choose 4MB flash (rev 5 and below) or 16MB flash (default, rev 7 and higher). - Provide appropriate partition scheme options to effectively us either 4MB or 16MB flash sizes. - Change default Ethernet PHY from LAN8720 to RTL8201 (rev 7 and higher). * fix(board): Fix wESP32 board config typo --------- Co-authored-by: Me No Dev --- boards.txt | 19 ++++++++++++++++++- variants/wesp32/pins_arduino.h | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/boards.txt b/boards.txt index e4031b618e1..659c22ebcfb 100644 --- a/boards.txt +++ b/boards.txt @@ -29533,7 +29533,7 @@ wesp32.build.board=WESP32 wesp32.build.f_cpu=240000000L wesp32.build.flash_mode=dio -wesp32.build.flash_size=4MB +wesp32.build.flash_size=16MB wesp32.build.boot=dio wesp32.build.partitions=default wesp32.build.defines= @@ -29543,6 +29543,23 @@ wesp32.menu.FlashFreq.80.build.flash_freq=80m wesp32.menu.FlashFreq.40=40MHz wesp32.menu.FlashFreq.40.build.flash_freq=40m +wesp32.menu.FlashSize.default=16MB (128Mb) rev 7+ +wesp32.menu.FlashSize.default.build.flash_size=16MB +wesp32.menu.FlashSize.default_4m_flash=4MB (32Mb) rev 5 and below +wesp32.menu.FlashSize.default_4m_flash.build.flash_size=4MB + +wesp32.menu.PartitionScheme.default=16M OTA with large SPIFFS (4.5MB APP/6.8MB SPIFFS) +wesp32.menu.PartitionScheme.default.build.partitions=large_spiffs_16MB +wesp32.menu.PartitionScheme.default.upload.maximum_size=4718592 +wesp32.menu.PartitionScheme.default_large_app=16M large OTA app with SPIFFS (6.2MB APP/3.3MB SPIFFS) +wesp32.menu.PartitionScheme.default_large_app.build.partitions=default_16MB +wesp32.menu.PartitionScheme.default_large_app.upload.maximum_size=6553600 +wesp32.menu.PartitionScheme.default_fatfs=16M OTA with large FATFS (3MB APP/9.8MB FATFS) +wesp32.menu.PartitionScheme.default_fatfs.build.partitions=app3M_fat9M_16MB +wesp32.menu.PartitionScheme.default_fatfs.upload.maximum_size=3145728 +wesp32.menu.PartitionScheme.default_4m_flash=4M OTA app with SPIFFS (1.25MB APP/1.3MB SPIFFS) +wesp32.menu.PartitionScheme.default_4m_flash.build.partitions=default + wesp32.menu.UploadSpeed.921600=921600 wesp32.menu.UploadSpeed.921600.upload.speed=921600 wesp32.menu.UploadSpeed.115200=115200 diff --git a/variants/wesp32/pins_arduino.h b/variants/wesp32/pins_arduino.h index ad1ee1d225e..7be7f87f3f5 100644 --- a/variants/wesp32/pins_arduino.h +++ b/variants/wesp32/pins_arduino.h @@ -35,7 +35,7 @@ static const uint8_t T9 = 32; #define ETH_PHY_POWER -1 #define ETH_PHY_MDC 16 #define ETH_PHY_MDIO 17 -#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#define ETH_PHY_TYPE ETH_PHY_RTL8201 #define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN #endif /* Pins_Arduino_h */ From 7cdfb5171e5a22b555f115b807de1039a896e7b4 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 6 Oct 2025 05:15:08 -0300 Subject: [PATCH 18/32] ci(tests): Move hardware tests to GitLab (#11890) * ci(tests): Move hardware tests to GitLab * Potential fix for code scanning alert no. 492: Code injection Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Potential fix for code scanning alert no. 500: Code injection Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * fix(ci): Fix CodeQL warnings * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .github/scripts/tests_matrix.sh | 1 + .github/workflows/tests.yml | 19 +- .github/workflows/tests_hw.yml | 122 ------- .../{tests_wokwi.yml => tests_hw_wokwi.yml} | 255 ++++++++++++-- .github/workflows/tests_results.yml | 139 +++++--- .gitlab-ci.yml | 24 +- .gitlab/scripts/gen_hw_jobs.py | 318 ++++++++++++++++++ .gitlab/scripts/get_artifacts.sh | 74 ++++ .gitlab/scripts/get_results.sh | 60 ++++ .gitlab/workflows/common.yml | 3 + .gitlab/workflows/hardware_tests_dynamic.yml | 79 +++++ .gitlab/workflows/hw_test_template.yml | 65 ++++ .gitlab/workflows/sample.yml | 16 - tests/performance/coremark/test_coremark.py | 2 +- tests/performance/fibonacci/test_fibonacci.py | 2 +- .../linpack_double/test_linpack_double.py | 2 +- .../linpack_float/test_linpack_float.py | 2 +- tests/performance/psramspeed/ci.json | 14 + .../performance/psramspeed/test_psramspeed.py | 2 +- tests/performance/ramspeed/test_ramspeed.py | 2 +- tests/performance/superpi/test_superpi.py | 2 +- tests/requirements.txt | 8 +- tests/validation/psram/ci.json | 14 + tests/validation/wifi/ci.json | 2 +- 24 files changed, 974 insertions(+), 253 deletions(-) delete mode 100644 .github/workflows/tests_hw.yml rename .github/workflows/{tests_wokwi.yml => tests_hw_wokwi.yml} (55%) create mode 100644 .gitlab/scripts/gen_hw_jobs.py create mode 100644 .gitlab/scripts/get_artifacts.sh create mode 100644 .gitlab/scripts/get_results.sh create mode 100644 .gitlab/workflows/hardware_tests_dynamic.yml create mode 100644 .gitlab/workflows/hw_test_template.yml delete mode 100644 .gitlab/workflows/sample.yml diff --git a/.github/scripts/tests_matrix.sh b/.github/scripts/tests_matrix.sh index a8baf2ce275..01cc122753c 100644 --- a/.github/scripts/tests_matrix.sh +++ b/.github/scripts/tests_matrix.sh @@ -17,6 +17,7 @@ targets="'esp32','esp32s2','esp32s3','esp32c3','esp32c6','esp32h2','esp32p4'" mkdir -p info echo "[$wokwi_types]" > info/wokwi_types.txt +echo "[$hw_types]" > info/hw_types.txt echo "[$targets]" > info/targets.txt { diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 557de11b509..8c46ef07661 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -89,23 +89,6 @@ jobs: type: ${{ matrix.type }} chip: ${{ matrix.chip }} - call-hardware-tests: - name: Hardware - uses: ./.github/workflows/tests_hw.yml - needs: [gen-matrix, call-build-tests] - if: | - github.repository == 'espressif/arduino-esp32' && - (github.event_name != 'pull_request' || - contains(github.event.pull_request.labels.*.name, 'hil_test')) - strategy: - fail-fast: false - matrix: - type: ${{ fromJson(needs.gen-matrix.outputs.hw-types) }} - chip: ${{ fromJson(needs.gen-matrix.outputs.targets) }} - with: - type: ${{ matrix.type }} - chip: ${{ matrix.chip }} - # This job is disabled for now call-qemu-tests: name: QEMU @@ -121,4 +104,4 @@ jobs: type: ${{ matrix.type }} chip: ${{ matrix.chip }} - # Wokwi tests are run after this workflow as it needs access to secrets + # Hardware and Wokwi tests are run after this workflow as they need access to secrets diff --git a/.github/workflows/tests_hw.yml b/.github/workflows/tests_hw.yml deleted file mode 100644 index d3b2ef79301..00000000000 --- a/.github/workflows/tests_hw.yml +++ /dev/null @@ -1,122 +0,0 @@ -name: Hardware tests - -on: - workflow_call: - inputs: - type: - type: string - description: "Type of tests to run" - required: true - chip: - type: string - description: "Chip to run tests for" - required: true - -permissions: - contents: read - -env: - DEBIAN_FRONTEND: noninteractive - -defaults: - run: - shell: bash - -jobs: - hardware-test: - name: Hardware ${{ inputs.chip }} ${{ inputs.type }} tests - runs-on: ["arduino", "${{ inputs.chip }}"] - env: - id: ${{ github.event.pull_request.number || github.ref }}-${{ github.event.pull_request.head.sha || github.sha }}-${{ inputs.chip }}-${{ inputs.type }} - container: - image: python:3.10.1-bullseye - options: --privileged --device-cgroup-rule="c 188:* rmw" --device-cgroup-rule="c 166:* rmw" - steps: - - name: Clean workspace - run: | - rm -rf ./* - rm -rf ~/.arduino/tests - - - name: Check if already passed - id: cache-results - if: github.event.pull_request.number != null - uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 - with: - key: test-${{ env.id }}-results-hw - path: | - tests/**/*.xml - tests/**/result_*.json - - - name: Evaluate if tests should be run - id: check-tests - run: | - cache_exists=${{ steps.cache-results.outputs.cache-hit == 'true' }} - enabled=true - - if [[ $cache_exists == 'true' ]]; then - echo "Already ran, skipping" - enabled=false - fi - - echo "enabled=$enabled" >> $GITHUB_OUTPUT - - - name: Checkout user repository - if: ${{ steps.check-tests.outputs.enabled == 'true' }} - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - # Workaround for missing files in checkout - sparse-checkout: | - * - - # setup-python currently only works on ubuntu images - # - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.0.4 - # if: ${{ steps.check-tests.outputs.enabled == 'true' }} - # with: - # cache-dependency-path: tests/requirements.txt - # cache: 'pip' - # python-version: '3.10.1' - - - name: Install dependencies - if: ${{ steps.check-tests.outputs.enabled == 'true' }} - run: | - pip install -U pip - pip install -r tests/requirements.txt --extra-index-url https://dl.espressif.com/pypi - apt update - apt install -y jq - - - name: Get binaries - if: ${{ steps.check-tests.outputs.enabled == 'true' }} - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 - with: - name: test-bin-${{ inputs.chip }}-${{ inputs.type }} - path: | - ~/.arduino/tests/${{ inputs.chip }} - - - name: List binaries - if: ${{ steps.check-tests.outputs.enabled == 'true' }} - run: | - ls -laR ~/.arduino/tests - - - name: Run Tests - if: ${{ steps.check-tests.outputs.enabled == 'true' }} - run: | - bash .github/scripts/tests_run.sh -c -type ${{ inputs.type }} -t ${{ inputs.chip }} -i 0 -m 1 -e - - - name: Upload ${{ inputs.chip }} ${{ inputs.type }} hardware results as cache - uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 - if: steps.check-tests.outputs.enabled == 'true' && github.event.pull_request.number != null - with: - key: test-${{ env.id }}-results-hw - path: | - tests/**/*.xml - tests/**/result_*.json - - - name: Upload ${{ inputs.chip }} ${{ inputs.type }} hardware results as artifacts - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - if: always() - with: - name: test-results-hw-${{ inputs.chip }}-${{ inputs.type }} - overwrite: true - path: | - tests/**/*.xml - tests/**/result_*.json diff --git a/.github/workflows/tests_wokwi.yml b/.github/workflows/tests_hw_wokwi.yml similarity index 55% rename from .github/workflows/tests_wokwi.yml rename to .github/workflows/tests_hw_wokwi.yml index 3038a7ce59c..d5aa9d63da7 100644 --- a/.github/workflows/tests_wokwi.yml +++ b/.github/workflows/tests_hw_wokwi.yml @@ -1,4 +1,4 @@ -name: Wokwi tests +name: Hardware and Wokwi tests on: workflow_run: @@ -10,6 +10,10 @@ on: permissions: contents: read +env: + #TESTS_BRANCH: "master" # Branch that will be checked out to run the tests + TESTS_BRANCH: "ci/hw_gitlab" + jobs: get-artifacts: name: Get required artifacts @@ -22,7 +26,10 @@ jobs: ref: ${{ steps.set-ref.outputs.ref }} base: ${{ steps.set-ref.outputs.base }} targets: ${{ steps.set-ref.outputs.targets }} - types: ${{ steps.set-ref.outputs.types }} + wokwi_types: ${{ steps.set-ref.outputs.wokwi_types }} + hw_types: ${{ steps.set-ref.outputs.hw_types }} + hw_tests_enabled: ${{ steps.set-ref.outputs.hw_tests_enabled }} + push_time: ${{ steps.set-ref.outputs.push_time }} steps: - name: Report pending uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 @@ -60,7 +67,7 @@ jobs: name: matrix_info path: artifacts/matrix_info - - name: Try to read PR number + - name: Get info id: set-ref run: | pr_num=$(jq -r '.pull_request.number' artifacts/event_file/event.json | tr -cd "[:digit:]") @@ -83,13 +90,34 @@ jobs: base=${{ github.ref }} fi - types=$(cat artifacts/matrix_info/wokwi_types.txt | tr -cd "[:alpha:],[]'") + hw_tests_enabled="true" + if [[ -n "$pr_num" ]]; then + # This is a PR, check for hil_test label + has_hil_label=$(jq -r '.pull_request.labels[]?.name' artifacts/event_file/event.json 2>/dev/null | grep -q "hil_test" && echo "true" || echo "false") + echo "Has hil_test label: $has_hil_label" + + if [[ "$has_hil_label" != "true" ]]; then + echo "PR does not have hil_test label, hardware tests will be disabled" + hw_tests_enabled="false" + fi + fi + + push_time=$(jq -r '.repository.pushed_at' artifacts/event_file/event.json | tr -cd "[:alnum:]:-") + if [ -z "$push_time" ] || [ "$push_time" == "null" ]; then + push_time="" + fi + + wokwi_types=$(cat artifacts/matrix_info/wokwi_types.txt | tr -cd "[:alpha:],[]'") + hw_types=$(cat artifacts/matrix_info/hw_types.txt | tr -cd "[:alpha:],[]'") targets=$(cat artifacts/matrix_info/targets.txt | tr -cd "[:alnum:],[]'") echo "base = $base" echo "targets = $targets" - echo "types = $types" + echo "wokwi_types = $wokwi_types" + echo "hw_types = $hw_types" echo "pr_num = $pr_num" + echo "hw_tests_enabled = $hw_tests_enabled" + echo "push_time = $push_time" printf "$ref" >> artifacts/ref.txt printf "Ref = " @@ -124,28 +152,11 @@ jobs: echo "pr_num=$pr_num" >> $GITHUB_OUTPUT echo "base=$base" >> $GITHUB_OUTPUT echo "targets=$targets" >> $GITHUB_OUTPUT - echo "types=$types" >> $GITHUB_OUTPUT + echo "wokwi_types=$wokwi_types" >> $GITHUB_OUTPUT + echo "hw_types=$hw_types" >> $GITHUB_OUTPUT echo "ref=$ref" >> $GITHUB_OUTPUT - - - name: Download and extract parent hardware results - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 - continue-on-error: true - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - run-id: ${{ github.event.workflow_run.id }} - pattern: test-results-hw-* - merge-multiple: true - path: artifacts/results/hw - - - name: Download and extract parent GitLab results - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 - continue-on-error: true - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - run-id: ${{ github.event.workflow_run.id }} - pattern: test-results-gitlab - merge-multiple: true - path: artifacts/results/gitlab + echo "hw_tests_enabled=$hw_tests_enabled" >> $GITHUB_OUTPUT + echo "push_time=$push_time" >> $GITHUB_OUTPUT - name: Download and extract parent QEMU results uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 @@ -185,6 +196,196 @@ jobs: })).data; core.info(`${name} is ${state}`); + hardware-test: + name: Internal Hardware Tests + if: | + (github.event.workflow_run.conclusion == 'success' || + github.event.workflow_run.conclusion == 'failure' || + github.event.workflow_run.conclusion == 'timed_out') && + needs.get-artifacts.outputs.hw_tests_enabled == 'true' + runs-on: ubuntu-latest + needs: get-artifacts + env: + id: ${{ needs.get-artifacts.outputs.ref }}-${{ github.event.workflow_run.head_sha || github.sha }} + permissions: + actions: read + statuses: write + steps: + - name: Report pending + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + script: | + const owner = '${{ github.repository_owner }}'; + const repo = '${{ github.repository }}'.split('/')[1]; + const sha = '${{ github.event.workflow_run.head_sha }}'; + core.debug(`owner: ${owner}`); + core.debug(`repo: ${repo}`); + core.debug(`sha: ${sha}`); + const { context: name, state } = (await github.rest.repos.createCommitStatus({ + context: 'Runtime Tests / Internal Hardware Tests (${{ github.event.workflow_run.event }} -> workflow_run)', + owner: owner, + repo: repo, + sha: sha, + state: 'pending', + target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' + })).data; + core.info(`${name} is ${state}`); + + - name: Check if already passed + id: get-cache-results + if: needs.get-artifacts.outputs.pr_num + uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + key: test-${{ env.id }}-results-hw + path: | + tests/**/*.xml + tests/**/result_*.json + + - name: Evaluate if tests should be run + id: check-tests + run: | + cache_exists=${{ steps.get-cache-results.outputs.cache-hit == 'true' }} + enabled=true + + # Check cache first + if [[ $cache_exists == 'true' ]]; then + echo "Already ran, skipping GitLab pipeline trigger" + enabled=false + else + echo "Cache miss, hardware tests will run" + fi + + echo "enabled=$enabled" >> $GITHUB_OUTPUT + + - name: Wait for GitLab sync + if: ${{ steps.check-tests.outputs.enabled == 'true' }} + env: + PUSH_TIME: ${{ needs.get-artifacts.outputs.push_time }} + run: | + # A webhook to sync the repository is sent to GitLab when a commit is pushed to GitHub + # We wait for 10 minutes after the push to GitHub to be safe + + echo "Ensuring GitLab sync has completed before triggering pipeline..." + + # Use push time determined in get-artifacts job + push_time="$PUSH_TIME" + + if [ -n "$push_time" ]; then + echo "Push time: $push_time" + + # Convert push time to epoch + push_epoch=$(date -d "$push_time" +%s 2>/dev/null || echo "") + + if [ -n "$push_epoch" ]; then + current_epoch=$(date +%s) + elapsed_minutes=$(( (current_epoch - push_epoch) / 60 )) + + echo "Elapsed time since push: ${elapsed_minutes} minutes" + + if [ $elapsed_minutes -lt 10 ]; then + wait_time=$(( (10 - elapsed_minutes) * 60 )) + echo "Waiting ${wait_time} seconds for GitLab sync to complete..." + sleep $wait_time + else + echo "GitLab sync should be complete (${elapsed_minutes} minutes elapsed)" + fi + else + echo "Could not parse push timestamp, waiting 60 seconds as fallback..." + sleep 60 + fi + else + echo "Could not determine push time, waiting 60 seconds as fallback..." + sleep 60 + fi + + echo "Proceeding with GitLab pipeline trigger..." + + - name: Trigger GitLab Pipeline and Download Artifacts + if: ${{ steps.check-tests.outputs.enabled == 'true' }} + uses: digital-blueprint/gitlab-pipeline-trigger-action@20e77989b24af658ba138a0aa5291bdc657f1505 # v1.3.0 + id: gitlab-trigger + with: + host: ${{ secrets.GITLAB_URL }} + id: ${{ secrets.GITLAB_PROJECT_ID }} + ref: ${{ env.TESTS_BRANCH }} + trigger_token: ${{ secrets.GITLAB_TRIGGER_TOKEN }} + access_token: ${{ secrets.GITLAB_ACCESS_TOKEN }} + download_artifacts: 'true' + download_artifacts_on_failure: 'true' + download_path: './gitlab-artifacts' + variables: '{"TEST_TYPES":"${{ needs.get-artifacts.outputs.hw_types }}","TEST_CHIPS":"${{ needs.get-artifacts.outputs.targets }}","PIPELINE_ID":"${{ env.id }}","BINARIES_RUN_ID":"${{ github.event.workflow_run.id }}","GITHUB_REPOSITORY":"${{ github.repository }}"}' + + - name: Process Downloaded Artifacts + if: ${{ always() && steps.check-tests.outputs.enabled == 'true' }} + run: | + echo "GitLab Pipeline Status: ${{ steps.gitlab-trigger.outputs.status }}" + echo "Artifacts Downloaded: ${{ steps.gitlab-trigger.outputs.artifacts_downloaded }}" + + # Create tests directory structure expected by GitHub caching + mkdir -p tests + + # Process downloaded GitLab artifacts + if [ "${{ steps.gitlab-trigger.outputs.artifacts_downloaded }}" = "true" ]; then + echo "Processing downloaded GitLab artifacts..." + + # Find and copy test result files while preserving directory structure + # The GitLab artifacts have the structure: gitlab-artifacts/job_*/artifacts/tests/... + # We want to preserve the tests/... part of the structure + + for job_dir in ./gitlab-artifacts/job_*; do + if [ -d "$job_dir/artifacts/tests" ]; then + # Merge results into tests/ without failing on non-empty directories + echo "Merging $job_dir/artifacts/tests/ into tests/" + cp -a "$job_dir/artifacts/tests/." tests/ + fi + done + + echo "Test results found:" + ls -laR tests/ || echo "No test results found" + else + echo "No artifacts were downloaded from GitLab" + fi + + - name: Upload hardware results as cache + uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + if: steps.check-tests.outputs.enabled == 'true' && needs.get-artifacts.outputs.pr_num + with: + key: test-${{ env.id }}-results-hw + path: | + tests/**/*.xml + tests/**/result_*.json + + - name: Upload hardware results as artifacts + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + if: always() + with: + name: test-results-hw + overwrite: true + path: | + tests/**/*.xml + tests/**/result_*.json + + - name: Report conclusion + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + if: always() + with: + script: | + const owner = '${{ github.repository_owner }}'; + const repo = '${{ github.repository }}'.split('/')[1]; + const sha = '${{ github.event.workflow_run.head_sha }}'; + core.debug(`owner: ${owner}`); + core.debug(`repo: ${repo}`); + core.debug(`sha: ${sha}`); + const { context: name, state } = (await github.rest.repos.createCommitStatus({ + context: 'Runtime Tests / Internal Hardware Tests (${{ github.event.workflow_run.event }} -> workflow_run)', + owner: owner, + repo: repo, + sha: sha, + state: '${{ job.status }}', + target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' + })).data; + core.info(`${name} is ${state}`); + wokwi-test: name: Wokwi ${{ matrix.chip }} ${{ matrix.type }} tests if: | @@ -201,7 +402,7 @@ jobs: strategy: fail-fast: false matrix: - type: ${{ fromJson(needs.get-artifacts.outputs.types) }} + type: ${{ fromJson(needs.get-artifacts.outputs.wokwi_types) }} chip: ${{ fromJson(needs.get-artifacts.outputs.targets) }} steps: - name: Report pending diff --git a/.github/workflows/tests_results.yml b/.github/workflows/tests_results.yml index ab4bb31fca5..525b303e486 100644 --- a/.github/workflows/tests_results.yml +++ b/.github/workflows/tests_results.yml @@ -2,7 +2,7 @@ name: Publish and clean test results on: workflow_run: - workflows: ["Wokwi tests"] + workflows: ["Hardware and Wokwi tests"] types: - completed @@ -11,24 +11,17 @@ permissions: contents: read jobs: - unit-test-results: - name: Unit Test Results - if: | - github.event.workflow_run.conclusion == 'success' || - github.event.workflow_run.conclusion == 'failure' || - github.event.workflow_run.conclusion == 'timed_out' + get-artifacts: + name: Get artifacts runs-on: ubuntu-latest - permissions: - actions: write - statuses: write - checks: write - pull-requests: write - contents: write + outputs: + original_event: ${{ steps.get-info.outputs.original_event }} + original_action: ${{ steps.get-info.outputs.original_action }} + original_sha: ${{ steps.get-info.outputs.original_sha }} + original_ref: ${{ steps.get-info.outputs.original_ref }} + original_conclusion: ${{ steps.get-info.outputs.original_conclusion }} + original_run_id: ${{ steps.get-info.outputs.original_run_id }} steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - ref: gh-pages - - name: Download and Extract Artifacts uses: dawidd6/action-download-artifact@07ab29fd4a977ae4d2b275087cf67563dfdf0295 # v9 with: @@ -36,7 +29,11 @@ jobs: path: ./artifacts - name: Get original info + id: get-info run: | + echo "Artifacts:" + ls -laR ./artifacts + original_event=$(cat ./artifacts/parent-artifacts/event.txt) original_action=$(cat ./artifacts/parent-artifacts/action.txt) original_sha=$(cat ./artifacts/parent-artifacts/sha.txt) @@ -64,12 +61,12 @@ jobs: # Run ID: Allow numeric characters original_run_id=$(echo "$original_run_id" | tr -cd '[:digit:]') - echo "original_event=$original_event" >> $GITHUB_ENV - echo "original_action=$original_action" >> $GITHUB_ENV - echo "original_sha=$original_sha" >> $GITHUB_ENV - echo "original_ref=$original_ref" >> $GITHUB_ENV - echo "original_conclusion=$original_conclusion" >> $GITHUB_ENV - echo "original_run_id=$original_run_id" >> $GITHUB_ENV + echo "original_event=$original_event" >> $GITHUB_OUTPUT + echo "original_action=$original_action" >> $GITHUB_OUTPUT + echo "original_sha=$original_sha" >> $GITHUB_OUTPUT + echo "original_ref=$original_ref" >> $GITHUB_OUTPUT + echo "original_conclusion=$original_conclusion" >> $GITHUB_OUTPUT + echo "original_run_id=$original_run_id" >> $GITHUB_OUTPUT echo "original_event = $original_event" echo "original_action = $original_action" @@ -79,44 +76,81 @@ jobs: echo "original_run_id = $original_run_id" - name: Print links to other runs + env: + ORIGINAL_RUN_ID: ${{ steps.get-info.outputs.original_run_id }} run: | - echo "Build, Hardware and QEMU tests: https://github.com/${{ github.repository }}/actions/runs/${{ env.original_run_id }}" - echo "Wokwi tests: https://github.com/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}" + echo "Build and QEMU tests: https://github.com/${{ github.repository }}/actions/runs/$ORIGINAL_RUN_ID" + echo "Hardware and Wokwi tests: https://github.com/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}" + + unit-test-results: + name: Unit Test Results + needs: get-artifacts + if: | + github.event.workflow_run.conclusion == 'success' || + github.event.workflow_run.conclusion == 'failure' || + github.event.workflow_run.conclusion == 'timed_out' + runs-on: ubuntu-latest + permissions: + actions: write + statuses: write + checks: write + pull-requests: write + contents: write + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + ref: gh-pages + + - name: Download and Extract Artifacts + uses: dawidd6/action-download-artifact@07ab29fd4a977ae4d2b275087cf67563dfdf0295 # v9 + with: + run_id: ${{ github.event.workflow_run.id }} + path: ./artifacts - name: Publish Unit Test Results uses: EnricoMi/publish-unit-test-result-action@170bf24d20d201b842d7a52403b73ed297e6645b # v2.18.0 with: - commit: ${{ env.original_sha }} + commit: ${{ needs.get-artifacts.outputs.original_sha }} event_file: ./artifacts/parent-artifacts/event_file/event.json - event_name: ${{ env.original_event }} + event_name: ${{ needs.get-artifacts.outputs.original_event }} files: ./artifacts/**/*.xml action_fail: true + action_fail_on_inconclusive: true compare_to_earlier_commit: false json_file: ./unity_results.json json_suite_details: true - name: Upload JSON uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - if: ${{ always() }} + if: always() with: name: unity_results overwrite: true - path: | - ./unity_results.json + path: ./unity_results.json - name: Fail if tests failed - if: ${{ env.original_conclusion == 'failure' || env.original_conclusion == 'timed_out' || github.event.workflow_run.conclusion == 'failure' || github.event.workflow_run.conclusion == 'timed_out' }} + if: | + needs.get-artifacts.outputs.original_conclusion == 'failure' || + needs.get-artifacts.outputs.original_conclusion == 'cancelled' || + needs.get-artifacts.outputs.original_conclusion == 'timed_out' || + github.event.workflow_run.conclusion == 'failure' || + github.event.workflow_run.conclusion == 'cancelled' || + github.event.workflow_run.conclusion == 'timed_out' run: exit 1 - name: Clean up caches if: always() uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + env: + ORIGINAL_REF: ${{ needs.get-artifacts.outputs.original_ref }} + ORIGINAL_EVENT: ${{ needs.get-artifacts.outputs.original_event }} + ORIGINAL_ACTION: ${{ needs.get-artifacts.outputs.original_action }} with: script: | - const ref = process.env.original_ref; + const ref = process.env.ORIGINAL_REF; const key_prefix = 'test-' + ref + '-'; - if (process.env.original_event == 'pull_request' && process.env.original_action != 'closed') { + if (process.env.ORIGINAL_EVENT == 'pull_request' && process.env.ORIGINAL_ACTION != 'closed') { console.log('Skipping cache cleanup for open PR'); return; } @@ -142,16 +176,19 @@ jobs: - name: Report conclusion uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 if: always() + env: + ORIGINAL_EVENT: ${{ needs.get-artifacts.outputs.original_event }} + ORIGINAL_SHA: ${{ needs.get-artifacts.outputs.original_sha }} with: script: | const owner = '${{ github.repository_owner }}'; const repo = '${{ github.repository }}'.split('/')[1]; - const sha = process.env.original_sha; + const sha = process.env.ORIGINAL_SHA; core.debug(`owner: ${owner}`); core.debug(`repo: ${repo}`); core.debug(`sha: ${sha}`); const { context: name, state } = (await github.rest.repos.createCommitStatus({ - context: `Runtime Tests / Report results (${process.env.original_event} -> workflow_run -> workflow_run)`, + context: `Runtime Tests / Report results (${process.env.ORIGINAL_EVENT} -> workflow_run -> workflow_run)`, owner: owner, repo: repo, sha: sha, @@ -162,12 +199,24 @@ jobs: core.info(`${name} is ${state}`); - name: Generate report - if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled + if: | + (!cancelled() && + needs.get-artifacts.outputs.original_conclusion != 'cancelled' && + github.event.workflow_run.conclusion != 'cancelled') && + (needs.get-artifacts.outputs.original_event == 'schedule' || + needs.get-artifacts.outputs.original_event == 'workflow_dispatch') env: REPORT_FILE: ./runtime-test-results/RUNTIME_TEST_RESULTS.md WOKWI_RUN_ID: ${{ github.event.workflow_run.id }} - BUILD_RUN_ID: ${{ env.original_run_id }} - IS_FAILING: ${{ env.original_conclusion == 'failure' || env.original_conclusion == 'timed_out' || github.event.workflow_run.conclusion == 'failure' || github.event.workflow_run.conclusion == 'timed_out' || job.status == 'failure' }} + BUILD_RUN_ID: ${{ needs.get-artifacts.outputs.original_run_id }} + IS_FAILING: | + needs.get-artifacts.outputs.original_conclusion == 'failure' || + needs.get-artifacts.outputs.original_conclusion == 'cancelled' || + needs.get-artifacts.outputs.original_conclusion == 'timed_out' || + github.event.workflow_run.conclusion == 'failure' || + github.event.workflow_run.conclusion == 'cancelled' || + github.event.workflow_run.conclusion == 'timed_out' || + job.status == 'failure' run: | rm -rf artifacts $REPORT_FILE mv -f ./unity_results.json ./runtime-test-results/unity_results.json @@ -176,7 +225,12 @@ jobs: mv -f ./test_results.json ./runtime-test-results/test_results.json - name: Generate badge - if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled + if: | + (!cancelled() && + needs.get-artifacts.outputs.original_conclusion != 'cancelled' && + github.event.workflow_run.conclusion != 'cancelled') && + (needs.get-artifacts.outputs.original_event == 'schedule' || + needs.get-artifacts.outputs.original_event == 'workflow_dispatch') uses: jaywcjlove/generated-badges@0e078ae4d4bab3777ea4f137de496ab44688f5ad # v1.0.13 with: label: Runtime Tests @@ -186,7 +240,12 @@ jobs: style: flat - name: Push badge - if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled + if: | + (!cancelled() && + needs.get-artifacts.outputs.original_conclusion != 'cancelled' && + github.event.workflow_run.conclusion != 'cancelled') && + (needs.get-artifacts.outputs.original_event == 'schedule' || + needs.get-artifacts.outputs.original_event == 'workflow_dispatch') run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 89a45022bc2..3d0ecd0cb34 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,25 +1,13 @@ workflow: rules: - # Disable those non-protected push triggered pipelines - - if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^\d+\.\d+(\.\d+)?($|-)/ && $CI_PIPELINE_SOURCE == "push"' - when: never - # when running merged result pipelines, CI_COMMIT_SHA represents the temp commit it created. - # Please use PIPELINE_COMMIT_SHA at all places that require a commit sha of the original commit. - - if: $CI_OPEN_MERGE_REQUESTS != null - variables: - PIPELINE_COMMIT_SHA: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA - IS_MR_PIPELINE: 1 - - if: $CI_OPEN_MERGE_REQUESTS == null - variables: - PIPELINE_COMMIT_SHA: $CI_COMMIT_SHA - IS_MR_PIPELINE: 0 - - if: '$CI_PIPELINE_SOURCE == "schedule"' - variables: - IS_SCHEDULED_RUN: "true" - - when: always + # Allow only when triggered manually (web), via API, or by a trigger token + - if: "$CI_PIPELINE_SOURCE =~ /^(trigger|api|web)$/" + when: always + # Deny all other sources + - when: never # Place the default settings in `.gitlab/workflows/common.yml` instead include: - ".gitlab/workflows/common.yml" - - ".gitlab/workflows/sample.yml" + - ".gitlab/workflows/hardware_tests_dynamic.yml" diff --git a/.gitlab/scripts/gen_hw_jobs.py b/.gitlab/scripts/gen_hw_jobs.py new file mode 100644 index 00000000000..804e245c18f --- /dev/null +++ b/.gitlab/scripts/gen_hw_jobs.py @@ -0,0 +1,318 @@ +#!/usr/bin/env python3 + +import argparse +import json +import yaml +import os +import sys +import copy +import traceback +from pathlib import Path + +# Resolve repository root from this script location +SCRIPT_DIR = Path(__file__).resolve().parent +REPO_ROOT = SCRIPT_DIR.parent.parent +TESTS_ROOT = REPO_ROOT / "tests" + +# Ensure we run from repo root so relative paths work consistently +try: + os.chdir(REPO_ROOT) +except Exception as e: + sys.stderr.write(f"[WARN] Failed to chdir to repo root '{REPO_ROOT}': {e}\n") + sys.stderr.write(traceback.format_exc() + "\n") + + +class PrettyDumper(yaml.SafeDumper): + def increase_indent(self, flow=False, indentless=False): + return super().increase_indent(flow, False) + + +def str_representer(dumper, data): + style = "|" if "\n" in data else None + return dumper.represent_scalar("tag:yaml.org,2002:str", data, style=style) + + +def read_json(p: Path): + try: + with p.open("r", encoding="utf-8") as f: + return json.load(f) + except Exception as e: + sys.stderr.write(f"[WARN] Failed to parse JSON file '{p}': {e}\n") + sys.stderr.write(traceback.format_exc() + "\n") + return {} + + +def find_tests() -> list[Path]: + tests = [] + if not TESTS_ROOT.exists(): + return tests + for ci in TESTS_ROOT.rglob("ci.json"): + if ci.is_file(): + tests.append(ci) + return tests + + +def find_sketch_test_dirs(types_filter: list[str]) -> list[tuple[str, Path]]: + """ + Return list of (test_type, test_dir) where test_dir contains a sketch named

/.ino + If types_filter provided, only include those types. + """ + results: list[tuple[str, Path]] = [] + if not TESTS_ROOT.exists(): + return results + for type_dir in TESTS_ROOT.iterdir(): + if not type_dir.is_dir(): + continue + test_type = type_dir.name + if types_filter and test_type not in types_filter: + continue + for candidate in type_dir.iterdir(): + if not candidate.is_dir(): + continue + sketch = candidate.name + ino = candidate / f"{sketch}.ino" + if ino.exists(): + results.append((test_type, candidate)) + return results + + +def load_tags_for_test(ci_json: dict, chip: str) -> set[str]: + tags = set() + # Global tags + for key in "tags": + v = ci_json.get(key) + if isinstance(v, list): + for e in v: + if isinstance(e, str) and e.strip(): + tags.add(e.strip()) + # Per-SoC tags + soc_tags = ci_json.get("soc_tags") + if isinstance(soc_tags, dict): + v = soc_tags.get(chip) + if isinstance(v, list): + for e in v: + if isinstance(e, str) and e.strip(): + tags.add(e.strip()) + return tags + + +def test_enabled_for_target(ci_json: dict, chip: str) -> bool: + targets = ci_json.get("targets") + if isinstance(targets, dict): + v = targets.get(chip) + if v is False: + return False + return True + + +def platform_allowed(ci_json: dict, platform: str = "hardware") -> bool: + platforms = ci_json.get("platforms") + if isinstance(platforms, dict): + v = platforms.get(platform) + if v is False: + return False + return True + + +def sketch_name_from_ci(ci_path: Path) -> str: + # The sketch directory holds .ino named as the directory + sketch_dir = ci_path.parent + return sketch_dir.name + + +def sdkconfig_path_for(chip: str, sketch: str, ci_json: dict) -> Path: + # Match logic from tests_run.sh: if multiple FQBN entries -> build0.tmp + fqbn = ci_json.get("fqbn", {}) if isinstance(ci_json, dict) else {} + length = 0 + if isinstance(fqbn, dict): + v = fqbn.get(chip) + if isinstance(v, list): + length = len(v) + if length <= 1: + return Path.home() / f".arduino/tests/{chip}/{sketch}/build.tmp/sdkconfig" + return Path.home() / f".arduino/tests/{chip}/{sketch}/build0.tmp/sdkconfig" + + +def sdk_meets_requirements(sdkconfig: Path, ci_json: dict) -> bool: + # Mirror check_requirements in sketch_utils.sh + if not sdkconfig.exists(): + # Build might have been skipped or failed; allow parent to skip scheduling + return False + try: + requires = ci_json.get("requires") or [] + requires_any = ci_json.get("requires_any") or [] + content = sdkconfig.read_text(encoding="utf-8", errors="ignore") + # AND requirements + for req in requires: + if not isinstance(req, str): + continue + if not any(line.startswith(req) for line in content.splitlines()): + return False + # OR requirements + if requires_any: + ok = any( + any(line.startswith(req) for line in content.splitlines()) + for req in requires_any + if isinstance(req, str) + ) + if not ok: + return False + return True + except Exception as e: + sys.stderr.write(f"[WARN] Failed to evaluate requirements against '{sdkconfig}': {e}\n") + sys.stderr.write(traceback.format_exc() + "\n") + return False + + +def parse_list_arg(s: str) -> list[str]: + if not s: + return [] + txt = s.strip() + if txt.startswith("[") and txt.endswith("]"): + try: + return [str(x).strip() for x in json.loads(txt)] + except Exception as e: + sys.stderr.write(f"[WARN] Failed to parse JSON list '{txt}': {e}. Retrying with quote normalization.\n") + try: + fixed = txt.replace("'", '"') + return [str(x).strip() for x in json.loads(fixed)] + except Exception as e2: + sys.stderr.write( + f"[WARN] Failed to parse JSON list after normalization: {e2}. Falling back to CSV parsing.\n" + ) + # Fallback: comma-separated + return [part.strip() for part in txt.split(",") if part.strip()] + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--chips", required=True, help="Comma-separated or JSON array list of SoCs") + ap.add_argument( + "--types", + required=False, + default="validation", + help="Comma-separated or JSON array of test type directories under tests/", + ) + ap.add_argument("--out", required=True, help="Output YAML path for child pipeline") + ap.add_argument( + "--dry-run", action="store_true", help="Print planned groups/jobs and skip sdkconfig requirement checks" + ) + args = ap.parse_args() + + chips = parse_list_arg(args.chips) + types = parse_list_arg(args.types) + + print(f"Inputs: chips={chips or '[]'}, types={types or '[]'}") + print(f"Repo root: {REPO_ROOT}") + print(f"Tests root: {TESTS_ROOT}") + + # Aggregate mapping: (chip, frozenset(tags or generic), test_type) -> list of test paths + group_map: dict[tuple[str, frozenset[str], str], list[str]] = {} + all_ci = find_tests() + print(f"Discovered {len(all_ci)} ci.json files under tests/") + + matched_count = 0 + for test_type, test_path in find_sketch_test_dirs(types): + ci_path = test_path / "ci.json" + ci = read_json(ci_path) if ci_path.exists() else {} + test_dir = str(test_path) + sketch = test_path.name + for chip in chips: + tags = load_tags_for_test(ci, chip) + if not test_enabled_for_target(ci, chip): + continue + # Skip tests that explicitly disable the hardware platform + if not platform_allowed(ci, "hardware"): + continue + sdk = sdkconfig_path_for(chip, sketch, ci) + if not args.dry_run and not sdk_meets_requirements(sdk, ci): + continue + key_tags = tags.copy() + # SOC must always be one runner tag + key_tags.add(chip) + if len(key_tags) == 1: + # Only SOC present, add generic + key_tags.add("generic") + key = (chip, frozenset(sorted(key_tags)), test_type) + group_map.setdefault(key, []).append(test_dir) + matched_count += 1 + + print(f"Matched {matched_count} test entries into {len(group_map)} groups") + + # Load template job + template_path = REPO_ROOT / ".gitlab/workflows/hw_test_template.yml" + template = yaml.safe_load(template_path.read_text(encoding="utf-8")) + if not isinstance(template, dict) or "hw-test-template" not in template: + print("ERROR: hw_test_template.yml missing hw-test-template") + sys.exit(2) + base_job = template["hw-test-template"] + + # Build child pipeline YAML in deterministic order + jobs_entries = [] # list of (sort_key, job_name, job_dict) + for (chip, tagset, test_type), test_dirs in group_map.items(): + tag_list = sorted(tagset) + # Build name suffix excluding the SOC itself to avoid duplication + non_soc_tags = [t for t in tag_list if t != chip] + tag_suffix = "-".join(non_soc_tags) if non_soc_tags else "generic" + job_name = f"hw-{chip}-{test_type}-{tag_suffix}"[:255] + + # Clone base job and adjust (preserve key order using deepcopy) + job = copy.deepcopy(base_job) + # Ensure tags include SOC+extras + job["tags"] = tag_list + vars_block = job.get("variables", {}) + vars_block["TEST_CHIP"] = chip + vars_block["TEST_TYPE"] = test_type + # Provide list of test directories for this job + vars_block["TEST_LIST"] = "\n".join(sorted(test_dirs)) + job["variables"] = vars_block + + sort_key = (chip, test_type, tag_suffix) + jobs_entries.append((sort_key, job_name, job)) + + # Order jobs by (chip, type, tag_suffix) + jobs = {} + for _, name, job in sorted(jobs_entries, key=lambda x: x[0]): + jobs[name] = job + + if args.dry_run: + print("Planned hardware test jobs:") + for name, job in jobs.items(): + tags = job.get("tags", []) + soc = job.get("variables", {}).get("TEST_CHIP") + ttype = job.get("variables", {}).get("TEST_TYPE") + tlist = job.get("variables", {}).get("TEST_LIST", "") + tests = [p for p in tlist.split("\n") if p] + print(f"- {name} tags={tags} soc={soc} type={ttype} tests={len(tests)}") + for t in tests: + print(f" * {t}") + + # If no jobs matched, create a no-op job to avoid failing trigger + if not jobs: + jobs["no-op"] = { + "stage": "test", + "script": ["echo No matching hardware tests to run"], + "rules": [{"when": "on_success"}], + } + + # Ensure child pipeline defines stages + child = {"stages": ["test"]} + + for name, job in jobs.items(): + child[name] = job + + if args.dry_run: + print("\n--- Generated child pipeline YAML (dry run) ---") + PrettyDumper.add_representer(str, str_representer) + sys.stdout.write(yaml.dump(child, Dumper=PrettyDumper, sort_keys=False, width=4096)) + return 0 + + out = Path(args.out) + + PrettyDumper.add_representer(str, str_representer) + out.write_text(yaml.dump(child, Dumper=PrettyDumper, sort_keys=False, width=4096), encoding="utf-8") + print(f"Wrote child pipeline with {len(jobs)} job(s) to {out}") + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.gitlab/scripts/get_artifacts.sh b/.gitlab/scripts/get_artifacts.sh new file mode 100644 index 00000000000..a29e76a9ba1 --- /dev/null +++ b/.gitlab/scripts/get_artifacts.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# Disable shellcheck warning about $? uses. +# shellcheck disable=SC2181 + +set -e +set -o pipefail + +echo "Downloading test binaries for $TEST_CHIP from GitHub repository $GITHUB_REPOSITORY" +echo "Binaries run ID: $BINARIES_RUN_ID" +echo "Looking for artifact: test-bin-$TEST_CHIP-$TEST_TYPE" + +# Check if GitHub token is available +if [ -z "$GITHUB_DOWNLOAD_PAT" ]; then + echo "ERROR: GITHUB_DOWNLOAD_PAT not available in GitLab environment" + echo "Please set up GITHUB_DOWNLOAD_PAT in GitLab CI/CD variables" + exit 1 +fi + +# First, get the artifacts list and save it for debugging +echo "Fetching artifacts list from GitHub API..." +artifacts_response=$(curl -s -H "Authorization: token $GITHUB_DOWNLOAD_PAT" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$GITHUB_REPOSITORY/actions/runs/$BINARIES_RUN_ID/artifacts") + +# Check if we got a valid response +if [ -z "$artifacts_response" ]; then + echo "ERROR: Empty response from GitHub API" + exit 1 +fi + +# Check for API errors +error_message=$(echo "$artifacts_response" | jq -r '.message // empty' 2>/dev/null) +if [ -n "$error_message" ]; then + echo "ERROR: GitHub API returned error: $error_message" + exit 1 +fi + +# List all available artifacts for debugging +echo "Available artifacts:" +echo "$artifacts_response" | jq -r '.artifacts[]?.name // "No artifacts found"' 2>/dev/null || echo "Could not parse artifacts" + +# Find the download URL for our specific artifact +download_url=$(echo "$artifacts_response" | jq -r ".artifacts[] | select(.name==\"test-bin-$TEST_CHIP-$TEST_TYPE\") | .archive_download_url" 2>/dev/null) + +if [ "$download_url" = "null" ] || [ -z "$download_url" ]; then + echo "ERROR: Could not find artifact 'test-bin-$TEST_CHIP-$TEST_TYPE'" + echo "This could mean:" + echo "1. The artifact name doesn't match exactly" + echo "2. The artifacts haven't been uploaded yet" + echo "3. The GitHub run ID is incorrect" + exit 1 +fi + +echo "Found download URL: $download_url" + +# Download the artifact +echo "Downloading artifact..." +curl -H "Authorization: token $GITHUB_DOWNLOAD_PAT" -L "$download_url" -o test-binaries.zip + +if [ $? -ne 0 ] || [ ! -f test-binaries.zip ]; then + echo "ERROR: Failed to download artifact" + exit 1 +fi + +echo "Extracting binaries..." +unzip -q -o test-binaries.zip -d ~/.arduino/tests/"$TEST_CHIP"/ + +if [ $? -ne 0 ]; then + echo "ERROR: Failed to extract binaries" + exit 1 +fi + +rm -f test-binaries.zip +echo "Successfully downloaded and extracted test binaries" diff --git a/.gitlab/scripts/get_results.sh b/.gitlab/scripts/get_results.sh new file mode 100644 index 00000000000..cdfe2e64f96 --- /dev/null +++ b/.gitlab/scripts/get_results.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +set -euo pipefail + +echo "Collecting artifacts from child pipeline(s)" + +api="$CI_API_V4_URL" +proj="$CI_PROJECT_ID" +parent="$CI_PIPELINE_ID" + +# Choose auth header (prefer PRIVATE-TOKEN if provided) +AUTH_HEADER="JOB-TOKEN: $CI_JOB_TOKEN" +if [ -n "${GITLAB_API_TOKEN:-}" ]; then + AUTH_HEADER="PRIVATE-TOKEN: $GITLAB_API_TOKEN" +fi + +# Verify project is reachable +if ! curl -sf --header "$AUTH_HEADER" "$api/projects/$proj" >/dev/null; then + echo "WARNING: Unable to access project $proj via API (token scope?)" + exit 1 +fi + +bridges=$(curl -s --header "$AUTH_HEADER" "$api/projects/$proj/pipelines/$parent/bridges") +# Ensure we got a JSON array +if ! echo "$bridges" | jq -e 'type=="array"' >/dev/null 2>&1; then + echo "WARNING: Unexpected bridges response:"; echo "$bridges" + exit 1 +fi + +child_ids=$(echo "$bridges" | jq -r '.[] | select(.name=="trigger-hw-tests") | .downstream_pipeline.id') +mkdir -p aggregated + +for cid in $child_ids; do + echo "Child pipeline: $cid" + + jobs=$(curl -s --header "$AUTH_HEADER" "$api/projects/$proj/pipelines/$cid/jobs?per_page=100") + if ! echo "$jobs" | jq -e 'type=="array"' >/dev/null 2>&1; then + echo "WARNING: Unable to list jobs for child $cid"; echo "$jobs" + exit 1 + fi + + ids=$(echo "$jobs" | jq -r '.[] | select(.artifacts_file!=null) | .id') + failed=false + for jid in $ids; do + echo "Downloading artifacts from job $jid" + curl --header "$AUTH_HEADER" -L -s "$api/projects/$proj/jobs/$jid/artifacts" -o artifact.zip || true + if [ -f artifact.zip ]; then + unzip -q -o artifact.zip -d . >/dev/null 2>&1 || true + else + echo "Job $jid has no artifacts" + failed=true + fi + rm -f artifact.zip + done +done + +if $failed; then + echo "Some jobs failed to download artifacts" + exit 1 +fi diff --git a/.gitlab/workflows/common.yml b/.gitlab/workflows/common.yml index c7a0c5468e4..debdfaf252c 100644 --- a/.gitlab/workflows/common.yml +++ b/.gitlab/workflows/common.yml @@ -4,8 +4,11 @@ stages: - pre_check + - generate - build - test + - trigger + - collect - result variables: diff --git a/.gitlab/workflows/hardware_tests_dynamic.yml b/.gitlab/workflows/hardware_tests_dynamic.yml new file mode 100644 index 00000000000..2c137f092ab --- /dev/null +++ b/.gitlab/workflows/hardware_tests_dynamic.yml @@ -0,0 +1,79 @@ +############################### +# Dynamic Hardware Tests Parent +############################### + +# This parent workflow generates a dynamic child pipeline with jobs grouped +# by SOC + runner tags derived from tests' ci.json, then triggers it and waits. + +generate-hw-tests: + stage: generate + image: python:3.12-bookworm + rules: + - if: $CI_PIPELINE_SOURCE == "trigger" + when: on_success + variables: + DEBIAN_FRONTEND: "noninteractive" + TEST_TYPES: $TEST_TYPES + TEST_CHIPS: $TEST_CHIPS + before_script: + - pip install PyYAML + - apt-get update + - apt-get install -y jq unzip curl + script: + - mkdir -p ~/.arduino/tests + - | + # Download artifacts for all requested chips/types so sdkconfig exists for grouping + CHIPS=$(echo "$TEST_CHIPS" | tr -d "[]' " | tr ',' ' ') + TYPES=$(echo "$TEST_TYPES" | tr -d "[]' " | tr ',' ' ') + for chip in $CHIPS; do + for t in $TYPES; do + export TEST_CHIP="$chip" + export TEST_TYPE="$t" + echo "Fetching artifacts for chip=$chip type=$t" + bash .gitlab/scripts/get_artifacts.sh + done + done + - python3 .gitlab/scripts/gen_hw_jobs.py --chips "$TEST_CHIPS" --types "$TEST_TYPES" --out child-hw-jobs.yml + artifacts: + when: always + expire_in: 7 days + paths: + - child-hw-jobs.yml + +trigger-hw-tests: + stage: trigger + needs: ["generate-hw-tests"] + rules: + - if: $CI_PIPELINE_SOURCE == "trigger" + when: on_success + variables: + # Forward common context to children + BINARIES_RUN_ID: $BINARIES_RUN_ID + GITHUB_REPOSITORY: $GITHUB_REPOSITORY + PIPELINE_ID: $PIPELINE_ID + trigger: + include: + - artifact: child-hw-jobs.yml + job: generate-hw-tests + strategy: depend + +collect-hw-results: + stage: result + image: python:3.12-bookworm + needs: ["trigger-hw-tests"] + rules: + - if: $CI_PIPELINE_SOURCE == "trigger" + when: always + before_script: + - apt-get update && apt-get install -y jq curl unzip + script: + - bash .gitlab/scripts/get_results.sh + artifacts: + name: "hw-test-results-aggregated" + expire_in: 7 days + when: always + paths: + - "tests/**/*.xml" + - "tests/**/result_*.json" + reports: + junit: "tests/**/*.xml" diff --git a/.gitlab/workflows/hw_test_template.yml b/.gitlab/workflows/hw_test_template.yml new file mode 100644 index 00000000000..1b09c2cb7eb --- /dev/null +++ b/.gitlab/workflows/hw_test_template.yml @@ -0,0 +1,65 @@ +######################## +# HW Test Job Template # +######################## + +# This template is used to generate the pipeline for each hardware test. +# It is triggered in hardware_tests_dynamic.yml after being generated by gen_hw_jobs.py. + +include: + - local: ".gitlab/workflows/common.yml" + +# Single job template to be cloned by the dynamic generator +hw-test-template: + stage: test + image: python:3.12-bookworm + + rules: + - when: on_success + + variables: + RUNNER_SCRIPT_TIMEOUT: 4h + RUNNER_AFTER_SCRIPT_TIMEOUT: 2h + DEBIAN_FRONTEND: "noninteractive" + TEST_TYPE: $TEST_TYPE + TEST_CHIP: $TEST_CHIP + PIPELINE_ID: $PIPELINE_ID + BINARIES_RUN_ID: $BINARIES_RUN_ID + GITHUB_REPOSITORY: $GITHUB_REPOSITORY + + tags: + - $TEST_CHIP + + before_script: + - echo "Running hardware tests for chip:$TEST_CHIP type:$TEST_TYPE" + - echo "Pipeline ID:$PIPELINE_ID" + - echo "Running hardware tests for chip:$TEST_CHIP" + - apt-get update + - apt-get install -y jq unzip curl + - rm -rf ~/.arduino/tests + - mkdir -p ~/.arduino/tests/$TEST_CHIP + - echo Fetching binaries for $TEST_CHIP $TEST_TYPE + - bash .gitlab/scripts/get_artifacts.sh + - pip install -r tests/requirements.txt --extra-index-url https://dl.espressif.com/pypi + + script: + - echo "Using binaries for $TEST_CHIP" + - ls -laR ~/.arduino/tests || true + - | + set -e + rc=0 + while IFS= read -r d; do + [ -z "$d" ] && continue; + sketch=$(basename "$d"); + echo Running $sketch in $d; + bash .github/scripts/tests_run.sh -t $TEST_CHIP -s $sketch -e || rc=$?; + done <<< "$TEST_LIST"; exit $rc + + artifacts: + name: "hw-test-results-$TEST_CHIP-$TEST_TYPE" + expire_in: 7 days + when: always + paths: + - "tests/**/*.xml" + - "tests/**/result_*.json" + reports: + junit: "tests/**/*.xml" diff --git a/.gitlab/workflows/sample.yml b/.gitlab/workflows/sample.yml deleted file mode 100644 index e20cecf9e9e..00000000000 --- a/.gitlab/workflows/sample.yml +++ /dev/null @@ -1,16 +0,0 @@ -hello-world: - stage: test - rules: - - if: $CI_PIPELINE_SOURCE == "push" - - if: $CI_PIPELINE_SOURCE == "web" - - if: $CI_PIPELINE_SOURCE == "trigger" - variables: - PIPELINE_TRIGGER_TOKEN: $CI_PIPELINE_TRIGGER_TOKEN - script: - - echo "Hello, World from GitLab CI!" - - echo "Hello World!" > sample_artifact.txt - artifacts: - name: "sample-artifact" - paths: - - sample_artifact.txt - expire_in: 1 day diff --git a/tests/performance/coremark/test_coremark.py b/tests/performance/coremark/test_coremark.py index befd7c3a1c9..f314ebcfdfa 100644 --- a/tests/performance/coremark/test_coremark.py +++ b/tests/performance/coremark/test_coremark.py @@ -46,7 +46,7 @@ def test_coremark(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_coremark" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_coremark" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/performance/fibonacci/test_fibonacci.py b/tests/performance/fibonacci/test_fibonacci.py index cf560d9691c..c7df59bb3aa 100644 --- a/tests/performance/fibonacci/test_fibonacci.py +++ b/tests/performance/fibonacci/test_fibonacci.py @@ -68,7 +68,7 @@ def test_fibonacci(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_fibonacci" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_fibonacci" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/performance/linpack_double/test_linpack_double.py b/tests/performance/linpack_double/test_linpack_double.py index 0a6e2f90ef3..bd6c52cac17 100644 --- a/tests/performance/linpack_double/test_linpack_double.py +++ b/tests/performance/linpack_double/test_linpack_double.py @@ -49,7 +49,7 @@ def test_linpack_double(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_linpack_double" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_linpack_double" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/performance/linpack_float/test_linpack_float.py b/tests/performance/linpack_float/test_linpack_float.py index d11f6c74136..d4c333d8e70 100644 --- a/tests/performance/linpack_float/test_linpack_float.py +++ b/tests/performance/linpack_float/test_linpack_float.py @@ -49,7 +49,7 @@ def test_linpack_float(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_linpack_float" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_linpack_float" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/performance/psramspeed/ci.json b/tests/performance/psramspeed/ci.json index 341df103671..e981565f0ca 100644 --- a/tests/performance/psramspeed/ci.json +++ b/tests/performance/psramspeed/ci.json @@ -1,4 +1,18 @@ { + "soc_tags": { + "esp32": [ + "psram" + ], + "esp32s2": [ + "psram" + ], + "esp32s3": [ + "octal_psram" + ], + "esp32c5": [ + "psram" + ] + }, "platforms": { "qemu": false, "wokwi": false diff --git a/tests/performance/psramspeed/test_psramspeed.py b/tests/performance/psramspeed/test_psramspeed.py index 9e96e158504..68467478eba 100644 --- a/tests/performance/psramspeed/test_psramspeed.py +++ b/tests/performance/psramspeed/test_psramspeed.py @@ -93,7 +93,7 @@ def test_psramspeed(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_psramspeed" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_psramspeed" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/performance/ramspeed/test_ramspeed.py b/tests/performance/ramspeed/test_ramspeed.py index dbe1670d329..987b6c00066 100644 --- a/tests/performance/ramspeed/test_ramspeed.py +++ b/tests/performance/ramspeed/test_ramspeed.py @@ -93,7 +93,7 @@ def test_ramspeed(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_ramspeed" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_ramspeed" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/performance/superpi/test_superpi.py b/tests/performance/superpi/test_superpi.py index 0bd7a3477b6..4e99bbb1c1b 100644 --- a/tests/performance/superpi/test_superpi.py +++ b/tests/performance/superpi/test_superpi.py @@ -41,7 +41,7 @@ def test_superpi(dut, request): current_folder = os.path.dirname(request.path) file_index = 0 - report_file = os.path.join(current_folder, "result_superpi" + str(file_index) + ".json") + report_file = os.path.join(current_folder, dut.app.target, "result_superpi" + str(file_index) + ".json") while os.path.exists(report_file): report_file = report_file.replace(str(file_index) + ".json", str(file_index + 1) + ".json") file_index += 1 diff --git a/tests/requirements.txt b/tests/requirements.txt index 001b26855a9..29b7d531bd4 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,8 +1,8 @@ cryptography==44.0.1 --only-binary cryptography pytest-cov==5.0.0 -pytest-embedded-serial-esp==2.0.0 -pytest-embedded-arduino==2.0.0 -pytest-embedded-wokwi==2.0.0 -pytest-embedded-qemu==2.0.0 +pytest-embedded-serial-esp==2.1.0 +pytest-embedded-arduino==2.1.0 +pytest-embedded-wokwi==2.1.0 +pytest-embedded-qemu==2.1.0 esptool==5.1.0 diff --git a/tests/validation/psram/ci.json b/tests/validation/psram/ci.json index 999d3be953e..4d426d38c30 100644 --- a/tests/validation/psram/ci.json +++ b/tests/validation/psram/ci.json @@ -1,4 +1,18 @@ { + "soc_tags": { + "esp32": [ + "psram" + ], + "esp32s2": [ + "psram" + ], + "esp32s3": [ + "octal_psram" + ], + "esp32c5": [ + "psram" + ] + }, "platforms": { "qemu": false }, diff --git a/tests/validation/wifi/ci.json b/tests/validation/wifi/ci.json index 36e91b221cb..54dd47ae9a9 100644 --- a/tests/validation/wifi/ci.json +++ b/tests/validation/wifi/ci.json @@ -1,5 +1,5 @@ { - "extra_tags": [ + "tags": [ "wifi" ], "fqbn": { From 01a96fc9a13eca1b39da9770de288b1b78741bf3 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 6 Oct 2025 08:47:33 -0300 Subject: [PATCH 19/32] ci(hw): Fix test branch --- .github/workflows/tests_hw_wokwi.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests_hw_wokwi.yml b/.github/workflows/tests_hw_wokwi.yml index d5aa9d63da7..14e7085eabb 100644 --- a/.github/workflows/tests_hw_wokwi.yml +++ b/.github/workflows/tests_hw_wokwi.yml @@ -11,8 +11,7 @@ permissions: contents: read env: - #TESTS_BRANCH: "master" # Branch that will be checked out to run the tests - TESTS_BRANCH: "ci/hw_gitlab" + TESTS_BRANCH: "master" # Branch that will be checked out to run the tests jobs: get-artifacts: From 9d44061c1a822da5628f9218e3ff76b4450fb2bf Mon Sep 17 00:00:00 2001 From: Ritesh Kudkelwar Date: Mon, 6 Oct 2025 17:41:24 +0530 Subject: [PATCH 20/32] feat(webserver): add support for chunked HTTP responses Fixes #5080 (#11894) * Add chunkedResponseModeStart, sendChunk, chunkedResponseFinalize to WebServer library for chunked HTTP responses * feat(webserver): Chunk example for ESP32 HTTP server This example demonstrates how to send an HTTP response using chunks with an ESP32 server. It includes setup for WiFi, MDNS, and handles HTTP requests with chunked responses. * feat(webserver): Add ci.json for ChunkWriting example configuration * fix(example): not necessary code line * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: Sugar Glider Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .../examples/ChunkWriting/ChunkWriting.ino | 75 +++++++++++++++++++ .../WebServer/examples/ChunkWriting/ci.json | 6 ++ libraries/WebServer/src/WebServer.cpp | 70 +++++++++++++++++ libraries/WebServer/src/WebServer.h | 8 ++ 4 files changed, 159 insertions(+) create mode 100644 libraries/WebServer/examples/ChunkWriting/ChunkWriting.ino create mode 100644 libraries/WebServer/examples/ChunkWriting/ci.json diff --git a/libraries/WebServer/examples/ChunkWriting/ChunkWriting.ino b/libraries/WebServer/examples/ChunkWriting/ChunkWriting.ino new file mode 100644 index 00000000000..50c29322302 --- /dev/null +++ b/libraries/WebServer/examples/ChunkWriting/ChunkWriting.ino @@ -0,0 +1,75 @@ +/* + * This example demonstrates how to send an HTTP response using chunks + * It will create an HTTP Server (port 80) associated with an a MDNS service + * Access the HTTP server using a Web Browser: + * URL can be composed using the MDNS name "esp32_chunk_resp.local" + * http://esp32_chunk_resp.local/ + * or the IP Address that will be printed out, such as for instance 192.168.1.10 + * http://192.168.1.10/ + * + * ESP32 Server response can also be viewed using the curl command: + * curl -i esp32_chunk_resp.local:80 + * curl -i --raw esp32_chunk_resp.local:80 + */ + +#include +#include +#include +#include + +const char *ssid = "........"; +const char *password = "........"; + +WebServer server(80); + +void handleChunks() { + uint8_t countDown = 10; + server.chunkResponseBegin(); + char countContent[8]; + while (countDown) { + sprintf(countContent, "%d...\r\n", countDown--); + server.chunkWrite(countContent, strlen(countContent)); + // count down shall show up in the browser only after about 5 seconds when finishing the whole transmission + // using "curl -i esp32_chunk_resp.local:80", it will show the count down as it sends each chunk + delay(500); + } + server.chunkWrite("DONE!", 5); + server.chunkResponseEnd(); +} + +void setup(void) { + Serial.begin(115200); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + Serial.println(""); + + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + Serial.print("Connected to "); + Serial.println(ssid); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + // Use the URL: http://esp32_chunk_resp.local/ + if (MDNS.begin("esp32_chunk_resp")) { + Serial.println("MDNS responder started"); + } + + server.on("/", handleChunks); + + server.onNotFound([]() { + server.send(404, "text/plain", "Page not found"); + }); + + server.begin(); + Serial.println("HTTP server started"); +} + +void loop(void) { + server.handleClient(); + delay(2); //allow the cpu to switch to other tasks +} diff --git a/libraries/WebServer/examples/ChunkWriting/ci.json b/libraries/WebServer/examples/ChunkWriting/ci.json new file mode 100644 index 00000000000..618e46bd244 --- /dev/null +++ b/libraries/WebServer/examples/ChunkWriting/ci.json @@ -0,0 +1,6 @@ +{ + "requires_any": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + ] +} diff --git a/libraries/WebServer/src/WebServer.cpp b/libraries/WebServer/src/WebServer.cpp index 7523e40259b..e67fcec05e4 100644 --- a/libraries/WebServer/src/WebServer.cpp +++ b/libraries/WebServer/src/WebServer.cpp @@ -551,6 +551,76 @@ void WebServer::enableETag(bool enable, ETagFunction fn) { _eTagFunction = fn; } +void WebServer::chunkResponseBegin(const char *contentType) { + if (_chunkedResponseActive) { + log_e("Already in chunked response mode"); + return; + } + + if (strchr(contentType, '\r') || strchr(contentType, '\n')) { + log_e("Invalid character in content type"); + return; + } + + _chunkedResponseActive = true; + _chunkedClient = _currentClient; + + _contentLength = CONTENT_LENGTH_UNKNOWN; + + String header; + _prepareHeader(header, 200, contentType, 0); + _currentClientWrite(header.c_str(), header.length()); + + _chunkedResponseActive = true; + _chunkedClient = _currentClient; +} + +void WebServer::chunkWrite(const char *data, size_t length) { + if (!_chunkedResponseActive) { + log_e("Chunked response has not been started"); + return; + } + + char chunkSize[11]; + snprintf(chunkSize, sizeof(chunkSize), "%zx\r\n", length); + + if (_chunkedClient.write(chunkSize) != strlen(chunkSize)) { + log_e("Failed to write chunk size"); + _chunkedResponseActive = false; + return; + } + + if (_chunkedClient.write((const uint8_t *)data, length) != length) { + log_e("Failed to write chunk data"); + _chunkedResponseActive = false; + return; + } + + if (_chunkedClient.write("\r\n") != 2) { + log_e("Failed to write chunk terminator"); + _chunkedResponseActive = false; + return; + } +} + +void WebServer::chunkResponseEnd() { + if (!_chunkedResponseActive) { + log_e("Chunked response has not been started"); + return; + } + + if (_chunkedClient.write("0\r\n\r\n", 5) != 5) { + log_e("Failed to write terminating chunk"); + } + + _chunkedClient.flush(); + _chunkedResponseActive = false; + _chunked = false; + _chunkedClient = NetworkClient(); + + _clearResponseHeaders(); +} + void WebServer::_prepareHeader(String &response, int code, const char *content_type, size_t contentLength) { _responseCode = code; diff --git a/libraries/WebServer/src/WebServer.h b/libraries/WebServer/src/WebServer.h index 8daf12c5c30..498bcb5806c 100644 --- a/libraries/WebServer/src/WebServer.h +++ b/libraries/WebServer/src/WebServer.h @@ -115,6 +115,10 @@ class WebServer { const String AuthTypeDigest = F("Digest"); const String AuthTypeBasic = F("Basic"); + void chunkResponseBegin(const char *contentType = "text/plain"); + void chunkWrite(const char *data, size_t length); + void chunkResponseEnd(); + /* Callbackhandler for authentication. The extra parameters depend on the * HTTPAuthMethod mode: * @@ -241,6 +245,10 @@ class WebServer { static String responseCodeToString(int code); +private: + bool _chunkedResponseActive = false; + NetworkClient _chunkedClient; // Store by value, no dangling pointer + protected: virtual size_t _currentClientWrite(const char *b, size_t l) { return _currentClient.write(b, l); From 81a6760b921d78e576e98936d9fdda9693a22cc4 Mon Sep 17 00:00:00 2001 From: Hedda Date: Tue, 7 Oct 2025 12:11:29 +0200 Subject: [PATCH 21/32] Update README.md to mention ESP32-C5 (#11901) * Update README.md to mention ESP32-C5 Update README.md to mention ESP32-C5. Mention as support for dev but not stable. * Update README.md listing ESP32-C5 as stable too Update README.md listing ESP32-C5 as stable too --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f8ff1f28eaa..51ab98e0af1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Arduino core for the ESP32, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S2 and ESP32-S3. +# Arduino core for the ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S2 and ESP32-S3. [![Build Status](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/push.yml?branch=master&event=push&label=Compilation%20Tests)](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml?query=branch%3Amaster+event%3Apush) [![Verbose Build Status](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/push.yml?branch=master&event=schedule&label=Compilation%20Tests%20(Verbose))](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml?query=branch%3Amaster+event%3Aschedule) @@ -68,6 +68,7 @@ Here are the ESP32 series supported by the Arduino-ESP32 project: |----------|:----------:|:---------------:|:-------------------------------------------------------------------------------------------------:| | ESP32 | Yes | Yes | [ESP32](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf) | | ESP32-C3 | Yes | Yes | [ESP32-C3](https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf) | +| ESP32-C5 | Yes | Yes | [ESP32-C5](https://www.espressif.com/sites/default/files/documentation/esp32-c5_datasheet_en.pdf) | | ESP32-C6 | Yes | Yes | [ESP32-C6](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) | | ESP32-H2 | Yes | Yes | [ESP32-H2](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) | | ESP32-P4 | Yes | Yes | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) | From c9a5d275667b308fccc22f9eaea906bb51c0c504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 7 Oct 2025 15:42:22 +0200 Subject: [PATCH 22/32] ci: Enhance boards test validation (#11888) * ci: Enhance boards test validation * ci: Improve partition scheme check logic and logs * ci: Add rule for debug level menu * ci: revert nano_nora changes * fix(board): Add missing Verbose debug level * fix(boards): Add missing debug level menus * fix(board): Add missing upload flags and extra_flags * ci: Add rule for duplicate lines and extend vid/pid rule * fix(boards): Update boards to match new rules * ci(boards): Move variable to global and clear logs --- .github/scripts/find_new_boards.sh | 15 +- .github/scripts/validate_board.sh | 596 +++++++++++++++++++++++++++++ .github/workflows/allboards.yml | 30 ++ .github/workflows/boards.yml | 9 +- boards.txt | 353 +++++------------ 5 files changed, 735 insertions(+), 268 deletions(-) create mode 100755 .github/scripts/validate_board.sh diff --git a/.github/scripts/find_new_boards.sh b/.github/scripts/find_new_boards.sh index 4482aa2b1da..96d50cecfeb 100755 --- a/.github/scripts/find_new_boards.sh +++ b/.github/scripts/find_new_boards.sh @@ -27,12 +27,25 @@ echo "$modified_lines" boards_array=() previous_board="" +# Define excluded entries that are not actual boards +excluded_entries=("" "+" "-" "esp32_family" "menu") + # Extract board names from the modified lines, and add them to the boards_array while read -r line; do board_name=$(echo "$line" | cut -d '.' -f1 | cut -d '#' -f1) # remove + or - from the board name at the beginning board_name=${board_name#[-+]} - if [ "$board_name" != "" ] && [ "$board_name" != "+" ] && [ "$board_name" != "-" ] && [ "$board_name" != "esp32_family" ]; then + + # Check if board_name is in excluded entries + is_excluded=false + for excluded in "${excluded_entries[@]}"; do + if [ "$board_name" = "$excluded" ]; then + is_excluded=true + break + fi + done + + if [ "$is_excluded" = false ]; then if [ "$board_name" != "$previous_board" ]; then boards_array+=("espressif:esp32:$board_name") previous_board="$board_name" diff --git a/.github/scripts/validate_board.sh b/.github/scripts/validate_board.sh new file mode 100755 index 00000000000..5c142ca8c19 --- /dev/null +++ b/.github/scripts/validate_board.sh @@ -0,0 +1,596 @@ +#!/bin/bash + +# Board validation script for ESP32 Arduino Core +# This script validates board definitions in boards.txt + +set -e + +# Required properties for all boards +REQUIRED_PROPERTIES=("upload.flags" "upload.extra_flags") + +# Function to print output +print_error() { + echo "Error: $1" +} + +print_success() { + echo "✓ $1" +} + +# Function to validate a single board +validate_board() { + local board_name="$1" + local boards_file="boards.txt" + + echo "Validating board: $board_name" + echo "" + + # Rule 1: Check build.board format + echo "Rule 1: Build Board Format Validation" + echo "=====================================" + validate_build_board_format "$board_name" "$boards_file" + echo "" + + # Rule 2: Check for required board properties + echo "Rule 2: Required Properties Validation" + echo "======================================" + validate_required_properties "$board_name" "$boards_file" + echo "" + + # Rule 3: Check for valid partition schemes for available flash sizes + echo "Rule 3: Partition Scheme Validation" + echo "===================================" + validate_partition_schemes "$board_name" "$boards_file" + echo "" + + # Rule 4: Check for VID and PID consistency + echo "Rule 4: VID/PID Consistency Validation" + echo "=====================================" + validate_vid_pid_consistency "$board_name" "$boards_file" + echo "" + + # Rule 5: Check for DebugLevel menu + echo "Rule 5: DebugLevel Menu Validation" + echo "==================================" + validate_debug_level_menu "$board_name" "$boards_file" + echo "" + + # Rule 6: Check for duplicate lines + echo "Rule 6: Duplicate Lines Validation" + echo "==================================" + validate_no_duplicates "$board_name" "$boards_file" + echo "" + + # Add more validation rules here as needed + echo "==========================================" + print_success "ALL VALIDATION RULES PASSED for board '$board_name'" + echo "==========================================" +} + +# Rule 1: Check build.board format +validate_build_board_format() { + local board_name="$1" + local boards_file="$2" + + # Get the build.board value + local build_board_value + build_board_value=$(grep "^$board_name.build.board=" "$boards_file" | cut -d'=' -f2) + + if [ -z "$build_board_value" ]; then + print_error "build.board property not found for '$board_name'" + exit 1 + fi + + # Check for invalid characters (anything that's not uppercase letter, number, or underscore) + if echo "$build_board_value" | grep -q '[^A-Z0-9_]'; then + local invalid_chars + invalid_chars=$(echo "$build_board_value" | grep -o '[^A-Z0-9_]' | sort -u | tr -d '\n') + print_error "$board_name.build.board contains invalid characters: '$invalid_chars' (only A-Z, 0-9, and _ are allowed)" + exit 1 + fi + + # Check if it's all uppercase + if echo "$build_board_value" | grep -q '[a-z]'; then + print_error "build.board must be uppercase: '$build_board_value' (found lowercase letters)" + exit 1 + fi + + echo " ✓ build.board is valid: '$build_board_value'" +} + +# Rule 2: Check for required board properties +validate_required_properties() { + local board_name="$1" + local boards_file="$2" + + local missing_props=() + + for prop in "${REQUIRED_PROPERTIES[@]}"; do + if ! grep -q "^$board_name.$prop=" "$boards_file"; then + missing_props+=("$prop") + fi + done + + if [ ${#missing_props[@]} -gt 0 ]; then + print_error "Missing required properties for board '$board_name':" + printf ' - %s\n' "${missing_props[@]}" + exit 1 + fi + + echo " ✓ Required properties validation completed" +} + + +# Rule 3: Check for valid partition schemes for available flash sizes +validate_partition_schemes() { + local board_name="$1" + local boards_file="$2" + + # Get all available flash sizes for this board + local flash_sizes + flash_sizes=$(grep "^$board_name.menu.FlashSize\." "$boards_file" | grep "\.build\.flash_size=" | cut -d'=' -f2 | sort -V) + + # Check if board has menu.FlashSize entries + if [ -z "$flash_sizes" ]; then + # If no menu.FlashSize entries, check if board has build.flash_size entry at least + local has_flash_size + has_flash_size=$(grep "^$board_name\." "$boards_file" | grep "\.build\.flash_size=" | head -1) + + if [ -z "$has_flash_size" ]; then + print_error "No flash size options found for board '$board_name' (needs build.flash_size entry at least)" + exit 1 + else + # Extract flash size from build.flash_size entry + local flash_size_value + flash_size_value=$(echo "$has_flash_size" | cut -d'=' -f2) + flash_sizes="$flash_size_value" + fi + fi + + # Convert flash sizes to MB for comparison + local flash_sizes_mb=() + while IFS= read -r size; do + if [[ "$size" =~ ^([0-9]+)MB$ ]]; then + flash_sizes_mb+=("${BASH_REMATCH[1]}") + fi + done <<< "$flash_sizes" + + # Find the maximum flash size available + local max_flash_mb=0 + for size_mb in "${flash_sizes_mb[@]}"; do + if [ "$size_mb" -gt "$max_flash_mb" ]; then + max_flash_mb="$size_mb" + fi + done + + echo " ✓ Flash configuration found - maximum size: ${max_flash_mb}MB" + + # Find all partition schemes for this board + local partition_schemes + partition_schemes=$(grep "^$board_name.menu.PartitionScheme\." "$boards_file" | grep -v "\.build\." | grep -v "\.upload\." | sed 's/.*\.PartitionScheme\.\([^=]*\)=.*/\1/' | sort -u) + + if [ -n "$partition_schemes" ]; then + # Validate each partition scheme against the maximum flash size + while IFS= read -r scheme; do + validate_partition_scheme_size "$scheme" "$max_flash_mb" "$board_name" "$boards_file" + done <<< "$partition_schemes" + fi + + + echo " ✓ Partition scheme validation completed" +} + +# Helper function to validate individual partition scheme +validate_partition_scheme_size() { + local scheme="$1" + local max_flash_mb="$2" + local board_name="$3" + local boards_file="$4" + + # Extract size from partition scheme name (e.g., "default_8MB" -> 8) + if [[ "$scheme" =~ _([0-9]+)MB$ ]]; then + local scheme_size_mb="${BASH_REMATCH[1]}" + + if [ "$scheme_size_mb" -gt "$max_flash_mb" ]; then + print_error "Partition scheme '$scheme' (${scheme_size_mb}MB) exceeds available flash size (${max_flash_mb}MB) for board '$board_name'" + exit 1 + else + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (size indicator: ${scheme_size_mb}MB)" + fi + elif [[ "$scheme" =~ _([0-9]+)M$ ]]; then + # Handle cases like "default_8M" (without B) + local scheme_size_mb="${BASH_REMATCH[1]}" + + if [ "$scheme_size_mb" -gt "$max_flash_mb" ]; then + print_error "Partition scheme '$scheme' (${scheme_size_mb}MB) exceeds available flash size (${max_flash_mb}MB) for board '$board_name'" + exit 1 + else + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (size indicator: ${scheme_size_mb}MB)" + fi + elif [[ "$scheme" =~ _([0-9]+)$ ]]; then + # Handle cases like "esp_sr_16" (just number at end) + local scheme_size_mb="${BASH_REMATCH[1]}" + + if [ "$scheme_size_mb" -gt "$max_flash_mb" ]; then + print_error "Partition scheme '$scheme' (${scheme_size_mb}MB) exceeds available flash size (${max_flash_mb}MB) for board '$board_name'" + exit 1 + else + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (size indicator: ${scheme_size_mb}MB)" + fi + else + # For schemes without size in name, check description for size indicators + local description_text + description_text=$(grep "^$board_name.menu.PartitionScheme\.$scheme=" "$boards_file" | cut -d'=' -f2) + + # First check main description for size indicators (before brackets) + # Look for the largest size indicator in the main description + local main_description_size_mb=0 + local main_description_size_text="" + + # Check for MB and M values in main description (before brackets) + local main_part=$(echo "$description_text" | sed 's/(.*//') # Remove bracket content + + # Extract M values (not followed by B) and MB values + local m_values=$(echo "$main_part" | grep -oE '([0-9]+\.?[0-9]*)M' | grep -v 'MB' | sed 's/M$//') + local mb_values=$(echo "$main_part" | grep -oE '([0-9]+\.?[0-9]*)MB' | sed 's/MB//') + + # Combine both M and MB values + local all_mb_values=$(echo -e "$m_values\n$mb_values" | grep -v '^$') + + # Find the largest MB value in main description + local largest_mb_int=0 + while IFS= read -r value; do + if [[ "$value" =~ ^([0-9]+)\.([0-9]+)$ ]]; then + local whole="${BASH_REMATCH[1]}" + local decimal="${BASH_REMATCH[2]}" + local value_int=$((whole * 10 + decimal)) + elif [[ "$value" =~ ^([0-9]+)$ ]]; then + local value_int=$((value * 10)) + else + continue + fi + + if [ "$value_int" -gt "$largest_mb_int" ]; then + largest_mb_int=$value_int + main_description_size_text="${value}M" + fi + done <<< "$all_mb_values" + + if [ "$largest_mb_int" -gt 0 ]; then + # Found size in main description + if [ "$largest_mb_int" -gt $((max_flash_mb * 10)) ]; then + print_error "Partition scheme '$scheme' (${main_description_size_text} from description) exceeds available flash size (${max_flash_mb}MB) for board '$board_name'" + exit 1 + else + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (size from description: ${main_description_size_text})" + fi + else + # No size in main description, check bracket content + local bracket_content + bracket_content=$(echo "$description_text" | grep -oE '\([^)]+\)' | head -1) + + if [ -n "$bracket_content" ]; then + # Calculate total size from all components in brackets + local total_size_mb=0 + + # Extract and sum MB values + local mb_sum=0 + while IFS= read -r value; do + if [[ "$value" =~ ^([0-9]+)\.([0-9]+)$ ]]; then + local whole="${BASH_REMATCH[1]}" + local decimal="${BASH_REMATCH[2]}" + # Convert decimal to integer (e.g., 1.3 -> 13, 6.93 -> 69) + # Handle multi-digit decimals: 6.93 -> 6*10 + 9 = 69 (round down) + local decimal_int=$((decimal / 10)) + mb_sum=$((mb_sum + whole * 10 + decimal_int)) + elif [[ "$value" =~ ^([0-9]+)$ ]]; then + mb_sum=$((mb_sum + value * 10)) + fi + done < <(echo "$bracket_content" | grep -oE '([0-9]+\.?[0-9]*)MB' | sed 's/MB//') + + # Extract and sum KB values (convert to MB tenths) + local kb_sum=0 + while IFS= read -r value; do + if [[ "$value" =~ ^([0-9]+)\.([0-9]+)$ ]]; then + local whole="${BASH_REMATCH[1]}" + local decimal="${BASH_REMATCH[2]}" + # Convert KB to MB tenths: (whole.decimal * 10) / 1024, rounded + local kb_tenths=$((whole * 10 + decimal)) + kb_sum=$((kb_sum + (kb_tenths * 10 + 512) / 1024)) + elif [[ "$value" =~ ^([0-9]+)$ ]]; then + # Convert KB to MB tenths: value * 10 / 1024, rounded + kb_sum=$((kb_sum + (value * 10 + 512) / 1024)) + fi + done < <(echo "$bracket_content" | grep -oE '([0-9]+\.?[0-9]*)KB' | sed 's/KB//') + + # Sum all values and convert back to MB (divide by 10, rounded) + total_size_mb=$(( (mb_sum + kb_sum + 5) / 10 )) + + if [ "$total_size_mb" -gt 0 ]; then + # Found size in description + if [ "$total_size_mb" -gt "$max_flash_mb" ]; then + print_error "Partition scheme '$scheme' (${total_size_mb}MB from description) exceeds available flash size (${max_flash_mb}MB) for board '$board_name'" + exit 1 + else + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (size from description: ${total_size_mb}MB)" + fi + else + # No size indicator found in brackets, check upload maximum size + validate_scheme_upload_size "$scheme" "$board_name" "$boards_file" "$max_flash_mb" + fi + else + # No brackets found, check upload maximum size + validate_scheme_upload_size "$scheme" "$board_name" "$boards_file" "$max_flash_mb" + fi + fi + fi +} + +# Helper function to validate upload maximum size for a specific partition scheme +validate_scheme_upload_size() { + local scheme="$1" + local board_name="$2" + local boards_file="$3" + local max_flash_mb="$4" + + # Get upload maximum size for this specific scheme + local upload_size + upload_size=$(grep "^$board_name.menu.PartitionScheme\.$scheme\." "$boards_file" | grep "\.upload\.maximum_size=" | head -1 | cut -d'=' -f2) + + if [ -z "$upload_size" ]; then + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (no upload size limit)" + return 0 + fi + + # Convert flash size to bytes for comparison + local max_flash_bytes=$((max_flash_mb * 1024 * 1024)) + + # Check upload size against maximum flash size + if [ "$upload_size" -gt "$max_flash_bytes" ]; then + local upload_mb=$(( (upload_size + 524288) / 1048576 )) + print_error "Partition scheme '$scheme' upload size (${upload_mb}MB, ${upload_size} bytes) exceeds available flash size (${max_flash_mb}MB) for board '$board_name'" + exit 1 + fi + + local upload_mb=$(( (upload_size + 524288) / 1048576 )) + echo " ✓ Partition scheme '$scheme' is valid for ${max_flash_mb}MB flash (upload size: ${upload_mb}MB)" +} + +# Rule 4: Check for VID and PID consistency +validate_vid_pid_consistency() { + local board_name="$1" + local boards_file="$2" + + # Get all VID and PID entries for this board (including upload_port entries) + local vid_entries + local pid_entries + + vid_entries=$(grep "^$board_name\.vid\." "$boards_file" | sort) + pid_entries=$(grep "^$board_name\.pid\." "$boards_file" | sort) + + # Also get upload_port VID and PID entries + local upload_port_vid_entries + local upload_port_pid_entries + + upload_port_vid_entries=$(grep "^$board_name\.upload_port\..*\.vid=" "$boards_file" | sort) + upload_port_pid_entries=$(grep "^$board_name\.upload_port\..*\.pid=" "$boards_file" | sort) + + # Check for duplicate VID entries with same index but different values + local all_vid_entries="$vid_entries" + if [ -n "$upload_port_vid_entries" ]; then + all_vid_entries="$all_vid_entries +$upload_port_vid_entries" + fi + + local vid_duplicates + vid_duplicates=$(echo "$all_vid_entries" | cut -d'=' -f1 | sort | uniq -d) + + if [ -n "$vid_duplicates" ]; then + print_error "Found duplicate VID entries with different values for board '$board_name':" + echo "$vid_duplicates" + exit 1 + fi + + # Check for duplicate PID entries with same index but different values + local all_pid_entries="$pid_entries" + if [ -n "$upload_port_pid_entries" ]; then + all_pid_entries="$all_pid_entries +$upload_port_pid_entries" + fi + + local pid_duplicates + pid_duplicates=$(echo "$all_pid_entries" | cut -d'=' -f1 | sort | uniq -d) + + if [ -n "$pid_duplicates" ]; then + print_error "Found duplicate PID entries with different values for board '$board_name':" + echo "$pid_duplicates" + exit 1 + fi + + # Check for missing corresponding PID for each VID (and vice versa) + local vid_indices + local pid_indices + + # Get indices from regular vid/pid entries + local regular_vid_indices=$(echo "$vid_entries" | cut -d'=' -f1 | sed "s/^$board_name\.vid\.//" | sort -n) + local regular_pid_indices=$(echo "$pid_entries" | cut -d'=' -f1 | sed "s/^$board_name\.pid\.//" | sort -n) + + # Get indices from upload_port entries + local upload_vid_indices=$(echo "$upload_port_vid_entries" | cut -d'=' -f1 | sed "s/^$board_name\.upload_port\.//" | sed "s/\.vid$//" | sort -n) + local upload_pid_indices=$(echo "$upload_port_pid_entries" | cut -d'=' -f1 | sed "s/^$board_name\.upload_port\.//" | sed "s/\.pid$//" | sort -n) + + # Combine indices + vid_indices="$regular_vid_indices" + if [ -n "$upload_vid_indices" ]; then + vid_indices="$vid_indices +$upload_vid_indices" + fi + + pid_indices="$regular_pid_indices" + if [ -n "$upload_pid_indices" ]; then + pid_indices="$pid_indices +$upload_pid_indices" + fi + + # Check if VID and PID indices match + if [ "$vid_indices" != "$pid_indices" ]; then + print_error "VID and PID indices don't match for board '$board_name'" + echo "VID indices: $vid_indices" + echo "PID indices: $pid_indices" + exit 1 + fi + + # Check that no VID/PID combination matches esp32_family (0x303a/0x1001) + local esp32_family_vid="0x303a" + local esp32_family_pid="0x1001" + + # Check regular vid/pid entries + if [ -n "$vid_entries" ] && [ -n "$pid_entries" ]; then + while IFS= read -r vid_line; do + if [ -n "$vid_line" ]; then + local vid_index=$(echo "$vid_line" | cut -d'=' -f1 | sed "s/^$board_name\.vid\.//") + local vid_value=$(echo "$vid_line" | cut -d'=' -f2) + + # Find corresponding PID + local pid_value + pid_value=$(grep "^$board_name\.pid\.$vid_index=" "$boards_file" | cut -d'=' -f2) + + if [ "$vid_value" = "$esp32_family_vid" ] && [ "$pid_value" = "$esp32_family_pid" ]; then + print_error "Board '$board_name' VID/PID combination ($vid_value/$pid_value) matches esp32_family VID/PID (0x303a/0x1001) - this is not allowed" + exit 1 + fi + fi + done <<< "$vid_entries" + fi + + # Check upload_port vid/pid entries + if [ -n "$upload_port_vid_entries" ] && [ -n "$upload_port_pid_entries" ]; then + while IFS= read -r vid_line; do + if [ -n "$vid_line" ]; then + local vid_index=$(echo "$vid_line" | cut -d'=' -f1 | sed "s/^$board_name\.upload_port\.//" | sed "s/\.vid$//") + local vid_value=$(echo "$vid_line" | cut -d'=' -f2) + + # Find corresponding PID + local pid_value + pid_value=$(grep "^$board_name\.upload_port\.$vid_index\.pid=" "$boards_file" | cut -d'=' -f2) + + if [ "$vid_value" = "$esp32_family_vid" ] && [ "$pid_value" = "$esp32_family_pid" ]; then + print_error "Board '$board_name' upload_port VID/PID combination ($vid_value/$pid_value) matches esp32_family VID/PID (0x303a/0x1001) - this is not allowed" + exit 1 + fi + fi + done <<< "$upload_port_vid_entries" + fi + + echo " ✓ VID and PID consistency check passed" +} + +# Rule 5: Check for DebugLevel menu +validate_debug_level_menu() { + local board_name="$1" + local boards_file="$2" + + # Required DebugLevel menu options + local required_debug_levels=("none" "error" "warn" "info" "debug" "verbose") + local missing_levels=() + + # Check if DebugLevel menu exists + if ! grep -q "^$board_name.menu.DebugLevel\." "$boards_file"; then + print_error "Missing DebugLevel menu for board '$board_name'" + exit 1 + fi + + # Check each required debug level + for level in "${required_debug_levels[@]}"; do + if ! grep -q "^$board_name.menu.DebugLevel.$level=" "$boards_file"; then + missing_levels+=("$level") + fi + done + + if [ ${#missing_levels[@]} -gt 0 ]; then + print_error "Missing DebugLevel menu options for board '$board_name':" + printf ' - %s\n' "${missing_levels[@]}" + exit 1 + fi + + # Check that each debug level has the correct build.code_debug value + local code_debug_values=("0" "1" "2" "3" "4" "5") + local debug_level_index=0 + + for level in "${required_debug_levels[@]}"; do + local expected_value="${code_debug_values[$debug_level_index]}" + local actual_value + actual_value=$(grep "^$board_name.menu.DebugLevel.$level.build.code_debug=" "$boards_file" | cut -d'=' -f2) + + if [ "$actual_value" != "$expected_value" ]; then + print_error "Invalid code_debug value for DebugLevel '$level' in board '$board_name': expected '$expected_value', found '$actual_value'" + exit 1 + fi + + debug_level_index=$((debug_level_index + 1)) + done + + echo " ✓ DebugLevel menu validation completed" +} + +# Rule 6: Check for duplicate lines +validate_no_duplicates() { + local board_name="$1" + local boards_file="$2" + + # Get all lines for this board + local board_lines + board_lines=$(grep "^$board_name\." "$boards_file") + + # Extract just the property names (before =) + local property_names + property_names=$(echo "$board_lines" | cut -d'=' -f1) + + # Find duplicates + local duplicate_lines + duplicate_lines=$(echo "$property_names" | sort | uniq -d) + + if [ -n "$duplicate_lines" ]; then + print_error "Found duplicate lines for board '$board_name':" + echo "Duplicate line keys:" + echo "$duplicate_lines" + + echo "Duplicate content details:" + while IFS= read -r line_key; do + if [ -n "$line_key" ]; then + echo " Key: $line_key" + echo " Content with line numbers:" + local key_only=$(echo "$line_key" | cut -d'=' -f1) + grep -n "^$key_only=" "$boards_file" | while IFS=':' read -r line_num full_line; do + echo " Line $line_num: $full_line" + done + echo "" + fi + done <<< "$duplicate_lines" + exit 1 + fi + + echo " ✓ No duplicate lines found" +} + +# Main execution +main() { + if [ $# -ne 1 ]; then + echo "Usage: $0 " + echo "Example: $0 esp32s3" + exit 1 + fi + + local board_name="$1" + local boards_file="boards.txt" + + if [ ! -f "$boards_file" ]; then + print_error "Boards file '$boards_file' not found" + exit 1 + fi + + validate_board "$board_name" +} + +# Run main function with all arguments +main "$@" diff --git a/.github/workflows/allboards.yml b/.github/workflows/allboards.yml index 31eee587ca9..5d834f6abbe 100644 --- a/.github/workflows/allboards.yml +++ b/.github/workflows/allboards.yml @@ -72,6 +72,36 @@ jobs: env: FQBN: ${{ toJSON(matrix.chunk) }} + - name: Make validation script executable + run: chmod +x ./.github/scripts/validate_board.sh + + - name: Validate boards in chunk + run: | + echo "Starting board validation for chunk..." + failed_boards=() + + # Extract board names from FQBNs (remove espressif:esp32: prefix) + boards_json=$(cat fqbns.json) + board_names=$(echo "$boards_json" | jq -r '.[]' | sed 's/espressif:esp32://') + + for board in $board_names; do + echo "Validating board: $board" + if ! ./.github/scripts/validate_board.sh "$board"; then + echo "❌ Validation failed for board: $board" + failed_boards+=("$board") + else + echo "✅ Validation passed for board: $board" + fi + done + + if [ ${#failed_boards[@]} -gt 0 ]; then + echo "❌ Board validation failed for the following boards:" + printf ' - %s\n' "${failed_boards[@]}" + exit 1 + else + echo "✅ All board validations in chunk passed!" + fi + - name: Compile sketch uses: P-R-O-C-H-Y/compile-sketches@a62f069b92dc8f5053da4ac439ea6d1950cf6379 # main with: diff --git a/.github/workflows/boards.yml b/.github/workflows/boards.yml index 4ddb1443746..d40ba4824ea 100644 --- a/.github/workflows/boards.yml +++ b/.github/workflows/boards.yml @@ -49,15 +49,10 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Check if build.board is uppercase + - name: Validate board definition run: | board_name=$(echo ${{ matrix.fqbn }} | awk -F':' '{print $NF}') - if grep -q "^$board_name.build.board=[A-Z0-9_]*$" boards.txt; then - echo "$board_name.build.board is valid."; - else - echo "Error: $board_name.build.board is not uppercase!"; - exit 1; - fi + ./.github/scripts/validate_board.sh "$board_name" - name: Get libs cache uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 diff --git a/boards.txt b/boards.txt index 659c22ebcfb..038b9727f84 100644 --- a/boards.txt +++ b/boards.txt @@ -2033,9 +2033,6 @@ esp32wrover.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5M esp32wrover.menu.PartitionScheme.default.build.partitions=default esp32wrover.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) esp32wrover.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -esp32wrover.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -esp32wrover.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -esp32wrover.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 esp32wrover.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) esp32wrover.menu.PartitionScheme.minimal.build.partitions=minimal esp32wrover.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -2056,9 +2053,6 @@ esp32wrover.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 esp32wrover.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) esp32wrover.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32wrover.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -esp32wrover.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -esp32wrover.menu.PartitionScheme.fatflash.build.partitions=ffat -esp32wrover.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 esp32wrover.menu.PartitionScheme.rainmaker=RainMaker 4MB esp32wrover.menu.PartitionScheme.rainmaker.build.partitions=rainmaker esp32wrover.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -2067,7 +2061,7 @@ esp32wrover.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no esp32wrover.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 esp32wrover.menu.PartitionScheme.custom=Custom esp32wrover.menu.PartitionScheme.custom.build.partitions= -esp32wrover.menu.PartitionScheme.custom.upload.maximum_size=16777216 +esp32wrover.menu.PartitionScheme.custom.upload.maximum_size=4194304 esp32wrover.menu.FlashMode.qio=QIO esp32wrover.menu.FlashMode.qio.build.flash_mode=dio @@ -2159,7 +2153,7 @@ pico32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs pico32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 pico32.menu.PartitionScheme.custom=Custom pico32.menu.PartitionScheme.custom.build.partitions= -pico32.menu.PartitionScheme.custom.upload.maximum_size=16777216 +pico32.menu.PartitionScheme.custom.upload.maximum_size=4194304 pico32.menu.UploadSpeed.921600=921600 pico32.menu.UploadSpeed.921600.upload.speed=921600 @@ -2284,12 +2278,11 @@ esp32s3-octal.menu.FlashMode.dio.build.boot_freq=80m esp32s3-octal.menu.FlashMode.dio.build.flash_freq=80m esp32s3-octal.menu.FlashSize.16M=16MB (128Mb) +esp32s3-octal.menu.FlashSize.16M.build.flash_size=16MB esp32s3-octal.menu.FlashSize.4M=4MB (32Mb) esp32s3-octal.menu.FlashSize.4M.build.flash_size=4MB esp32s3-octal.menu.FlashSize.8M=8MB (64Mb) esp32s3-octal.menu.FlashSize.8M.build.flash_size=8MB -esp32s3-octal.menu.FlashSize.16M=16MB (128Mb) -esp32s3-octal.menu.FlashSize.16M.build.flash_size=16MB esp32s3-octal.menu.FlashSize.32M=32MB (256Mb) esp32s3-octal.menu.FlashSize.32M.build.flash_size=32MB @@ -2331,6 +2324,8 @@ esp32s3-octal.menu.UploadMode.cdc.upload.use_1200bps_touch=true esp32s3-octal.menu.UploadMode.cdc.upload.wait_for_upload_port=true esp32s3-octal.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +esp32s3-octal.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +esp32s3-octal.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 esp32s3-octal.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) esp32s3-octal.menu.PartitionScheme.default.build.partitions=default esp32s3-octal.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -2361,9 +2356,6 @@ esp32s3-octal.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 esp32s3-octal.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) esp32s3-octal.menu.PartitionScheme.fatflash.build.partitions=ffat esp32s3-octal.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -esp32s3-octal.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -esp32s3-octal.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -esp32s3-octal.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 esp32s3-octal.menu.PartitionScheme.rainmaker=RainMaker 4MB esp32s3-octal.menu.PartitionScheme.rainmaker.build.partitions=rainmaker esp32s3-octal.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -2612,15 +2604,9 @@ esp32s3usbotg.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 esp32s3usbotg.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) esp32s3usbotg.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32s3usbotg.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -esp32s3usbotg.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -esp32s3usbotg.menu.PartitionScheme.fatflash.build.partitions=ffat -esp32s3usbotg.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -esp32s3usbotg.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -esp32s3usbotg.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -esp32s3usbotg.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 esp32s3usbotg.menu.PartitionScheme.custom=Custom esp32s3usbotg.menu.PartitionScheme.custom.build.partitions= -esp32s3usbotg.menu.PartitionScheme.custom.upload.maximum_size=16777216 +esp32s3usbotg.menu.PartitionScheme.custom.upload.maximum_size=8388608 esp32s3usbotg.menu.DebugLevel.none=None esp32s3usbotg.menu.DebugLevel.none.build.code_debug=0 @@ -2698,9 +2684,6 @@ esp32s3camlcd.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1. esp32s3camlcd.menu.PartitionScheme.default.build.partitions=default esp32s3camlcd.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) esp32s3camlcd.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -esp32s3camlcd.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -esp32s3camlcd.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -esp32s3camlcd.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 esp32s3camlcd.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) esp32s3camlcd.menu.PartitionScheme.minimal.build.partitions=minimal esp32s3camlcd.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -2721,12 +2704,6 @@ esp32s3camlcd.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 esp32s3camlcd.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) esp32s3camlcd.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32s3camlcd.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -esp32s3camlcd.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -esp32s3camlcd.menu.PartitionScheme.fatflash.build.partitions=ffat -esp32s3camlcd.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -esp32s3camlcd.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -esp32s3camlcd.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -esp32s3camlcd.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 esp32s3camlcd.menu.UploadSpeed.921600=921600 esp32s3camlcd.menu.UploadSpeed.921600.upload.speed=921600 @@ -5394,7 +5371,7 @@ um_tinyc6.build.bootloader_addr=0x0 um_tinyc6.build.cdc_on_boot=1 um_tinyc6.build.f_cpu=160000000L -um_tinyc6.build.flash_size=4MB +um_tinyc6.build.flash_size=8MB um_tinyc6.build.flash_freq=80m um_tinyc6.build.flash_mode=qio um_tinyc6.build.boot=qio @@ -5439,7 +5416,7 @@ um_tinyc6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr um_tinyc6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 um_tinyc6.menu.PartitionScheme.custom=Custom um_tinyc6.menu.PartitionScheme.custom.build.partitions= -um_tinyc6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +um_tinyc6.menu.PartitionScheme.custom.upload.maximum_size=8388608 um_tinyc6.menu.CPUFreq.160=160MHz (WiFi) um_tinyc6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -5867,6 +5844,8 @@ S_ODI_Ultra.menu.DebugLevel.info=Info S_ODI_Ultra.menu.DebugLevel.info.build.code_debug=3 S_ODI_Ultra.menu.DebugLevel.debug=Debug S_ODI_Ultra.menu.DebugLevel.debug.build.code_debug=4 +S_ODI_Ultra.menu.DebugLevel.verbose=Verbose +S_ODI_Ultra.menu.DebugLevel.verbose.build.code_debug=5 S_ODI_Ultra.menu.EraseFlash.none=Disabled S_ODI_Ultra.menu.EraseFlash.none.upload.erase_cmd= @@ -8450,7 +8429,7 @@ sparkfun_esp32s3_thing_plus.menu.PartitionScheme.zigbee_zczr.build.partitions=zi sparkfun_esp32s3_thing_plus.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 sparkfun_esp32s3_thing_plus.menu.PartitionScheme.custom=Custom sparkfun_esp32s3_thing_plus.menu.PartitionScheme.custom.build.partitions= -sparkfun_esp32s3_thing_plus.menu.PartitionScheme.custom.upload.maximum_size=16777216 +sparkfun_esp32s3_thing_plus.menu.PartitionScheme.custom.upload.maximum_size=4194304 sparkfun_esp32s3_thing_plus.menu.CPUFreq.240=240MHz (WiFi) sparkfun_esp32s3_thing_plus.menu.CPUFreq.240.build.f_cpu=240000000L @@ -10446,8 +10425,6 @@ lolin_s2_mini.build.flash_freq=80m lolin_s2_mini.build.flash_mode=dio lolin_s2_mini.build.boot=qio lolin_s2_mini.build.partitions=default -lolin_s2_mini.build.defines= - lolin_s2_mini.build.defines=-DBOARD_HAS_PSRAM lolin_s2_mini.menu.CDCOnBoot.default=Enabled @@ -10544,8 +10521,6 @@ lolin_s2_pico.build.flash_freq=80m lolin_s2_pico.build.flash_mode=dio lolin_s2_pico.build.boot=qio lolin_s2_pico.build.partitions=default -lolin_s2_pico.build.defines= - lolin_s2_pico.build.defines=-DBOARD_HAS_PSRAM lolin_s2_pico.menu.CDCOnBoot.default=Enabled @@ -12249,9 +12224,6 @@ dfrobot_beetle_esp32c3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2 dfrobot_beetle_esp32c3.menu.PartitionScheme.default.build.partitions=default dfrobot_beetle_esp32c3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) dfrobot_beetle_esp32c3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -dfrobot_beetle_esp32c3.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -dfrobot_beetle_esp32c3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -dfrobot_beetle_esp32c3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 dfrobot_beetle_esp32c3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) dfrobot_beetle_esp32c3.menu.PartitionScheme.minimal.build.partitions=minimal dfrobot_beetle_esp32c3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -12272,12 +12244,6 @@ dfrobot_beetle_esp32c3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 dfrobot_beetle_esp32c3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) dfrobot_beetle_esp32c3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs dfrobot_beetle_esp32c3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -dfrobot_beetle_esp32c3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -dfrobot_beetle_esp32c3.menu.PartitionScheme.fatflash.build.partitions=ffat -dfrobot_beetle_esp32c3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -dfrobot_beetle_esp32c3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -dfrobot_beetle_esp32c3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -dfrobot_beetle_esp32c3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 dfrobot_beetle_esp32c3.menu.PartitionScheme.rainmaker=RainMaker 4MB dfrobot_beetle_esp32c3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker dfrobot_beetle_esp32c3.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -12438,7 +12404,7 @@ dfrobot_beetle_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_ dfrobot_beetle_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 dfrobot_beetle_esp32c6.menu.PartitionScheme.custom=Custom dfrobot_beetle_esp32c6.menu.PartitionScheme.custom.build.partitions= -dfrobot_beetle_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +dfrobot_beetle_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 dfrobot_beetle_esp32c6.menu.CPUFreq.160=160MHz (WiFi) dfrobot_beetle_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -12984,7 +12950,7 @@ dfrobot_firebeetle2_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zi dfrobot_firebeetle2_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 dfrobot_firebeetle2_esp32c6.menu.PartitionScheme.custom=Custom dfrobot_firebeetle2_esp32c6.menu.PartitionScheme.custom.build.partitions= -dfrobot_firebeetle2_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +dfrobot_firebeetle2_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 dfrobot_firebeetle2_esp32c6.menu.CPUFreq.160=160MHz (WiFi) dfrobot_firebeetle2_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -16132,9 +16098,6 @@ adafruit_feather_esp32c6.menu.PartitionScheme.default=Default 4MB with spiffs (1 adafruit_feather_esp32c6.menu.PartitionScheme.default.build.partitions=default adafruit_feather_esp32c6.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) adafruit_feather_esp32c6.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -adafruit_feather_esp32c6.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -adafruit_feather_esp32c6.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -adafruit_feather_esp32c6.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 adafruit_feather_esp32c6.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) adafruit_feather_esp32c6.menu.PartitionScheme.minimal.build.partitions=minimal adafruit_feather_esp32c6.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -16155,12 +16118,6 @@ adafruit_feather_esp32c6.menu.PartitionScheme.huge_app.upload.maximum_size=31457 adafruit_feather_esp32c6.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) adafruit_feather_esp32c6.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs adafruit_feather_esp32c6.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -adafruit_feather_esp32c6.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -adafruit_feather_esp32c6.menu.PartitionScheme.fatflash.build.partitions=ffat -adafruit_feather_esp32c6.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -adafruit_feather_esp32c6.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -adafruit_feather_esp32c6.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -adafruit_feather_esp32c6.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 adafruit_feather_esp32c6.menu.PartitionScheme.rainmaker=RainMaker 4MB adafruit_feather_esp32c6.menu.PartitionScheme.rainmaker.build.partitions=rainmaker adafruit_feather_esp32c6.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -16175,7 +16132,7 @@ adafruit_feather_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbe adafruit_feather_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 adafruit_feather_esp32c6.menu.PartitionScheme.custom=Custom adafruit_feather_esp32c6.menu.PartitionScheme.custom.build.partitions= -adafruit_feather_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +adafruit_feather_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 adafruit_feather_esp32c6.menu.CPUFreq.160=160MHz (WiFi) adafruit_feather_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -18360,9 +18317,6 @@ nologo_esp32c3_super_mini.menu.PartitionScheme.default=Default 4MB with spiffs ( nologo_esp32c3_super_mini.menu.PartitionScheme.default.build.partitions=default nologo_esp32c3_super_mini.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) nologo_esp32c3_super_mini.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -nologo_esp32c3_super_mini.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -nologo_esp32c3_super_mini.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -nologo_esp32c3_super_mini.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 nologo_esp32c3_super_mini.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) nologo_esp32c3_super_mini.menu.PartitionScheme.minimal.build.partitions=minimal nologo_esp32c3_super_mini.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -18611,12 +18565,6 @@ nologo_esp32s3_pico.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=40386 nologo_esp32s3_pico.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB nologo_esp32s3_pico.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB nologo_esp32s3_pico.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4096000 -nologo_esp32s3_pico.menu.PartitionScheme.app5M_fat24M_32MB=32M Flash (4.8MB APP/22MB FATFS) -nologo_esp32s3_pico.menu.PartitionScheme.app5M_fat24M_32MB.build.partitions=large_fat_32MB -nologo_esp32s3_pico.menu.PartitionScheme.app5M_fat24M_32MB.upload.maximum_size=4718592 -nologo_esp32s3_pico.menu.PartitionScheme.app5M_little24M_32MB=32M Flash (4.8MB APP/22MB LittleFS) -nologo_esp32s3_pico.menu.PartitionScheme.app5M_little24M_32MB.build.partitions=large_littlefs_32MB -nologo_esp32s3_pico.menu.PartitionScheme.app5M_little24M_32MB.upload.maximum_size=4718592 nologo_esp32s3_pico.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL) nologo_esp32s3_pico.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728 nologo_esp32s3_pico.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin @@ -18981,6 +18929,8 @@ esp32doit-devkit-v1.menu.DebugLevel.info=Info esp32doit-devkit-v1.menu.DebugLevel.info.build.code_debug=3 esp32doit-devkit-v1.menu.DebugLevel.debug=Debug esp32doit-devkit-v1.menu.DebugLevel.debug.build.code_debug=4 +esp32doit-devkit-v1.menu.DebugLevel.verbose=Verbose +esp32doit-devkit-v1.menu.DebugLevel.verbose.build.code_debug=5 esp32doit-devkit-v1.menu.EraseFlash.none=Disabled esp32doit-devkit-v1.menu.EraseFlash.none.upload.erase_cmd= @@ -19585,8 +19535,6 @@ esp32-devkitlipo.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 esp32-devkitlipo.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) esp32-devkitlipo.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32-devkitlipo.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -esp32-devkitlipo.menu.PartitionScheme.fatflash=16M Fat -esp32-devkitlipo.menu.PartitionScheme.fatflash.build.partitions=ffat esp32-devkitlipo.menu.FlashMode.qio=QIO esp32-devkitlipo.menu.FlashMode.qio.build.flash_mode=dio @@ -21955,9 +21903,6 @@ m5stack_stickc.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1 m5stack_stickc.menu.PartitionScheme.default.build.partitions=default m5stack_stickc.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_stickc.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_stickc.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_stickc.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_stickc.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_stickc.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_stickc.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_stickc.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -21975,9 +21920,6 @@ m5stack_stickc.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 m5stack_stickc.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_stickc.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_stickc.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_stickc.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_stickc.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_stickc.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 m5stack_stickc.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_stickc.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_stickc.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -21986,7 +21928,7 @@ m5stack_stickc.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB m5stack_stickc.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 m5stack_stickc.menu.PartitionScheme.custom=Custom m5stack_stickc.menu.PartitionScheme.custom.build.partitions= -m5stack_stickc.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_stickc.menu.PartitionScheme.custom.upload.maximum_size=4194304 m5stack_stickc.menu.CPUFreq.240=240MHz (WiFi/BT) m5stack_stickc.menu.CPUFreq.240.build.f_cpu=240000000L @@ -22110,9 +22052,6 @@ m5stack_stickc_plus.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB m5stack_stickc_plus.menu.PartitionScheme.default.build.partitions=default m5stack_stickc_plus.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_stickc_plus.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_stickc_plus.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_stickc_plus.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_stickc_plus.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_stickc_plus.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_stickc_plus.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_stickc_plus.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -22130,9 +22069,6 @@ m5stack_stickc_plus.menu.PartitionScheme.noota_3gffat.upload.maximum_size=104857 m5stack_stickc_plus.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_stickc_plus.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_stickc_plus.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_stickc_plus.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_stickc_plus.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_stickc_plus.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 m5stack_stickc_plus.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_stickc_plus.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_stickc_plus.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -22141,7 +22077,7 @@ m5stack_stickc_plus.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmake m5stack_stickc_plus.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 m5stack_stickc_plus.menu.PartitionScheme.custom=Custom m5stack_stickc_plus.menu.PartitionScheme.custom.build.partitions= -m5stack_stickc_plus.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_stickc_plus.menu.PartitionScheme.custom.upload.maximum_size=4194304 m5stack_stickc_plus.menu.CPUFreq.240=240MHz (WiFi/BT) m5stack_stickc_plus.menu.CPUFreq.240.build.f_cpu=240000000L @@ -22291,9 +22227,6 @@ m5stack_stickc_plus2.menu.PartitionScheme.noota_3gffat.upload.maximum_size=10485 m5stack_stickc_plus2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_stickc_plus2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_stickc_plus2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_stickc_plus2.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_stickc_plus2.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_stickc_plus2.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 m5stack_stickc_plus2.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_stickc_plus2.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_stickc_plus2.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -22305,7 +22238,7 @@ m5stack_stickc_plus2.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmak m5stack_stickc_plus2.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4096000 m5stack_stickc_plus2.menu.PartitionScheme.custom=Custom m5stack_stickc_plus2.menu.PartitionScheme.custom.build.partitions= -m5stack_stickc_plus2.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_stickc_plus2.menu.PartitionScheme.custom.upload.maximum_size=8388608 m5stack_stickc_plus2.menu.CPUFreq.240=240MHz (WiFi/BT) m5stack_stickc_plus2.menu.CPUFreq.240.build.f_cpu=240000000L @@ -22428,9 +22361,6 @@ m5stack_atom.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5 m5stack_atom.menu.PartitionScheme.default.build.partitions=default m5stack_atom.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_atom.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_atom.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_atom.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_atom.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_atom.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_atom.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_atom.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -22448,9 +22378,6 @@ m5stack_atom.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 m5stack_atom.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_atom.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_atom.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_atom.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_atom.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_atom.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 m5stack_atom.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_atom.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_atom.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -22459,7 +22386,7 @@ m5stack_atom.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_n m5stack_atom.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 m5stack_atom.menu.PartitionScheme.custom=Custom m5stack_atom.menu.PartitionScheme.custom.build.partitions= -m5stack_atom.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_atom.menu.PartitionScheme.custom.upload.maximum_size=4194304 m5stack_atom.menu.CPUFreq.240=240MHz (WiFi/BT) m5stack_atom.menu.CPUFreq.240.build.f_cpu=240000000L @@ -22695,12 +22622,6 @@ m5stack_atoms3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 m5stack_atoms3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_atoms3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_atoms3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_atoms3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_atoms3.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_atoms3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -m5stack_atoms3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -m5stack_atoms3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -m5stack_atoms3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 m5stack_atoms3.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_atoms3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_atoms3.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -22710,19 +22631,9 @@ m5stack_atoms3.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 m5stack_atoms3.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB m5stack_atoms3.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB m5stack_atoms3.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4096000 -m5stack_atoms3.menu.PartitionScheme.app5M_fat24M_32MB=32M Flash (4.8MB APP/22MB FATFS) -m5stack_atoms3.menu.PartitionScheme.app5M_fat24M_32MB.build.partitions=large_fat_32MB -m5stack_atoms3.menu.PartitionScheme.app5M_fat24M_32MB.upload.maximum_size=4718592 -m5stack_atoms3.menu.PartitionScheme.app5M_little24M_32MB=32M Flash (4.8MB APP/22MB LittleFS) -m5stack_atoms3.menu.PartitionScheme.app5M_little24M_32MB.build.partitions=large_littlefs_32MB -m5stack_atoms3.menu.PartitionScheme.app5M_little24M_32MB.upload.maximum_size=4718592 -m5stack_atoms3.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL) -m5stack_atoms3.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728 -m5stack_atoms3.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin -m5stack_atoms3.menu.PartitionScheme.esp_sr_16.build.partitions=esp_sr_16 m5stack_atoms3.menu.PartitionScheme.custom=Custom m5stack_atoms3.menu.PartitionScheme.custom.build.partitions= -m5stack_atoms3.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_atoms3.menu.PartitionScheme.custom.upload.maximum_size=8388608 m5stack_atoms3.menu.CPUFreq.240=240MHz (WiFi) m5stack_atoms3.menu.CPUFreq.240.build.f_cpu=240000000L @@ -23240,9 +23151,6 @@ m5stack_timer_cam.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB AP m5stack_timer_cam.menu.PartitionScheme.default.build.partitions=default m5stack_timer_cam.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_timer_cam.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_timer_cam.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_timer_cam.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_timer_cam.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_timer_cam.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_timer_cam.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_timer_cam.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -23391,9 +23299,6 @@ m5stack_unit_cam.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP m5stack_unit_cam.menu.PartitionScheme.default.build.partitions=default m5stack_unit_cam.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_unit_cam.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_unit_cam.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_unit_cam.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_unit_cam.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_unit_cam.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_unit_cam.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_unit_cam.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -23775,9 +23680,6 @@ m5stack_poe_cam.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/ m5stack_poe_cam.menu.PartitionScheme.default.build.partitions=default m5stack_poe_cam.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_poe_cam.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_poe_cam.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_poe_cam.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_poe_cam.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_poe_cam.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_poe_cam.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_poe_cam.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -24091,9 +23993,6 @@ m5stack_coreink.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/ m5stack_coreink.menu.PartitionScheme.default.build.partitions=default m5stack_coreink.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_coreink.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_coreink.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_coreink.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_coreink.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_coreink.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_coreink.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_coreink.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -24114,9 +24013,6 @@ m5stack_coreink.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 m5stack_coreink.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_coreink.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_coreink.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_coreink.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_coreink.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_coreink.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 m5stack_coreink.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_coreink.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_coreink.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -24125,7 +24021,7 @@ m5stack_coreink.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4M m5stack_coreink.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 m5stack_coreink.menu.PartitionScheme.custom=Custom m5stack_coreink.menu.PartitionScheme.custom.build.partitions= -m5stack_coreink.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_coreink.menu.PartitionScheme.custom.upload.maximum_size=4194304 m5stack_coreink.menu.CPUFreq.240=240MHz (WiFi/BT) m5stack_coreink.menu.CPUFreq.240.build.f_cpu=240000000L @@ -24245,9 +24141,6 @@ m5stack_stamp_pico.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB A m5stack_stamp_pico.menu.PartitionScheme.default.build.partitions=default m5stack_stamp_pico.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) m5stack_stamp_pico.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -m5stack_stamp_pico.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -m5stack_stamp_pico.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -m5stack_stamp_pico.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 m5stack_stamp_pico.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) m5stack_stamp_pico.menu.PartitionScheme.minimal.build.partitions=minimal m5stack_stamp_pico.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -24268,9 +24161,6 @@ m5stack_stamp_pico.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 m5stack_stamp_pico.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) m5stack_stamp_pico.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack_stamp_pico.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -m5stack_stamp_pico.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -m5stack_stamp_pico.menu.PartitionScheme.fatflash.build.partitions=ffat -m5stack_stamp_pico.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 m5stack_stamp_pico.menu.PartitionScheme.rainmaker=RainMaker 4MB m5stack_stamp_pico.menu.PartitionScheme.rainmaker.build.partitions=rainmaker m5stack_stamp_pico.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -24279,7 +24169,7 @@ m5stack_stamp_pico.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker m5stack_stamp_pico.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 m5stack_stamp_pico.menu.PartitionScheme.custom=Custom m5stack_stamp_pico.menu.PartitionScheme.custom.build.partitions= -m5stack_stamp_pico.menu.PartitionScheme.custom.upload.maximum_size=16777216 +m5stack_stamp_pico.menu.PartitionScheme.custom.upload.maximum_size=4194304 m5stack_stamp_pico.menu.CPUFreq.240=240MHz (WiFi/BT) m5stack_stamp_pico.menu.CPUFreq.240.build.f_cpu=240000000L @@ -26191,7 +26081,7 @@ heltec_wifi_lora_32.menu.CPUFreq.240.build.f_cpu=240000000L heltec_wifi_lora_32.menu.CPUFreq.160=160MHz (WiFi/BT) heltec_wifi_lora_32.menu.CPUFreq.160.build.f_cpu=160000000L heltec_wifi_lora_32.menu.CPUFreq.80=80MHz (WiFi/BT) -heltec_wifi_lora_32.menu.CPUFreq.160.build.f_cpu=80000000L +heltec_wifi_lora_32.menu.CPUFreq.80.build.f_cpu=80000000L heltec_wifi_lora_32.menu.UploadSpeed.921600=921600 heltec_wifi_lora_32.menu.UploadSpeed.921600.upload.speed=921600 @@ -31045,6 +30935,8 @@ vintlabs-devkit-v1.menu.DebugLevel.info=Info vintlabs-devkit-v1.menu.DebugLevel.info.build.code_debug=3 vintlabs-devkit-v1.menu.DebugLevel.debug=Debug vintlabs-devkit-v1.menu.DebugLevel.debug.build.code_debug=4 +vintlabs-devkit-v1.menu.DebugLevel.verbose=Verbose +vintlabs-devkit-v1.menu.DebugLevel.verbose.build.code_debug=5 vintlabs-devkit-v1.menu.EraseFlash.none=Disabled vintlabs-devkit-v1.menu.EraseFlash.none.upload.erase_cmd= @@ -31794,8 +31686,6 @@ mPython.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 mPython.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) mPython.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs mPython.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -mPython.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -mPython.menu.PartitionScheme.fatflash.build.partitions=ffat mPython.menu.CPUFreq.240=240MHz (WiFi/BT) mPython.menu.CPUFreq.240.build.f_cpu=240000000L @@ -33958,7 +33848,7 @@ deneyapkartv2.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr deneyapkartv2.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 deneyapkartv2.menu.PartitionScheme.custom=Custom deneyapkartv2.menu.PartitionScheme.custom.build.partitions= -deneyapkartv2.menu.PartitionScheme.custom.upload.maximum_size=16777216 +deneyapkartv2.menu.PartitionScheme.custom.upload.maximum_size=4194304 deneyapkartv2.menu.CPUFreq.240=240MHz (WiFi) deneyapkartv2.menu.CPUFreq.240.build.f_cpu=240000000L @@ -35761,8 +35651,6 @@ dpu_esp32.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 dpu_esp32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) dpu_esp32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs dpu_esp32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -dpu_esp32.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -dpu_esp32.menu.PartitionScheme.fatflash.build.partitions=ffat dpu_esp32.menu.FlashMode.qio=QIO dpu_esp32.menu.FlashMode.qio.build.flash_mode=dio @@ -36504,9 +36392,6 @@ XIAO_ESP32C5.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 XIAO_ESP32C5.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) XIAO_ESP32C5.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs XIAO_ESP32C5.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -XIAO_ESP32C5.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -XIAO_ESP32C5.menu.PartitionScheme.fatflash.build.partitions=ffat -XIAO_ESP32C5.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 XIAO_ESP32C5.menu.PartitionScheme.rainmaker=RainMaker 4MB XIAO_ESP32C5.menu.PartitionScheme.rainmaker.build.partitions=rainmaker XIAO_ESP32C5.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -37531,8 +37416,6 @@ Bee_Data_Logger.build.f_cpu=240000000L Bee_Data_Logger.build.flash_size=8MB Bee_Data_Logger.build.flash_freq=80m Bee_Data_Logger.build.flash_mode=dio -Bee_Data_Logger.build.partitions=default_8MB -Bee_Data_Logger.build.defines= Bee_Data_Logger.build.loop_core=-DARDUINO_RUNNING_CORE=1 Bee_Data_Logger.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1 Bee_Data_Logger.build.boot=qio @@ -41020,7 +40903,7 @@ ioxesp32.build.board=IOXESP32 ioxesp32.build.f_cpu=240000000L ioxesp32.build.flash_mode=dio ioxesp32.build.flash_size=4MB -ioxesp32ps.build.flash_freq=40m +ioxesp32.build.flash_freq=40m ioxesp32.build.boot=dio ioxesp32.build.partitions=default ioxesp32.build.defines= @@ -41030,9 +40913,6 @@ ioxesp32.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB S ioxesp32.menu.PartitionScheme.default.build.partitions=default ioxesp32.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) ioxesp32.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -ioxesp32.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -ioxesp32.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -ioxesp32.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 ioxesp32.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) ioxesp32.menu.PartitionScheme.minimal.build.partitions=minimal ioxesp32.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -41053,9 +40933,6 @@ ioxesp32.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 ioxesp32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) ioxesp32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs ioxesp32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -ioxesp32.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -ioxesp32.menu.PartitionScheme.fatflash.build.partitions=ffat -ioxesp32.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 ioxesp32.menu.PartitionScheme.rainmaker=RainMaker 4MB ioxesp32.menu.PartitionScheme.rainmaker.build.partitions=rainmaker ioxesp32.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -41142,9 +41019,6 @@ ioxesp32ps.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB ioxesp32ps.menu.PartitionScheme.default.build.partitions=default ioxesp32ps.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) ioxesp32ps.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -ioxesp32ps.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -ioxesp32ps.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -ioxesp32ps.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 ioxesp32ps.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) ioxesp32ps.menu.PartitionScheme.minimal.build.partitions=minimal ioxesp32ps.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -41165,9 +41039,6 @@ ioxesp32ps.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 ioxesp32ps.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) ioxesp32ps.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs ioxesp32ps.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -ioxesp32ps.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -ioxesp32ps.menu.PartitionScheme.fatflash.build.partitions=ffat -ioxesp32ps.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 ioxesp32ps.menu.PartitionScheme.rainmaker=RainMaker 4MB ioxesp32ps.menu.PartitionScheme.rainmaker.build.partitions=rainmaker ioxesp32ps.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 @@ -41311,7 +41182,7 @@ ioxesp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr ioxesp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 ioxesp32c6.menu.PartitionScheme.custom=Custom ioxesp32c6.menu.PartitionScheme.custom.build.partitions= -ioxesp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +ioxesp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 ioxesp32c6.menu.CPUFreq.160=160MHz (WiFi) ioxesp32c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -42297,6 +42168,8 @@ nano_nora.upload.tool.network=esp_ota nano_nora.upload.protocol=serial nano_nora.upload.maximum_size=3145728 nano_nora.upload.maximum_data_size=327680 +nano_nora.upload.flags= +nano_nora.upload.extra_flags= nano_nora.upload.use_1200bps_touch=false nano_nora.upload.wait_for_upload_port=false @@ -42358,6 +42231,19 @@ nano_nora.menu.USBMode.hwcdc=Debug mode (Hardware CDC) nano_nora.menu.USBMode.hwcdc.build.usb_mode=1 nano_nora.menu.USBMode.hwcdc.debug.executable={build.path}/{build.project_name}.elf +nano_nora.menu.DebugLevel.none=None +nano_nora.menu.DebugLevel.none.build.code_debug=0 +nano_nora.menu.DebugLevel.error=Error +nano_nora.menu.DebugLevel.error.build.code_debug=1 +nano_nora.menu.DebugLevel.warn=Warn +nano_nora.menu.DebugLevel.warn.build.code_debug=2 +nano_nora.menu.DebugLevel.info=Info +nano_nora.menu.DebugLevel.info.build.code_debug=3 +nano_nora.menu.DebugLevel.debug=Debug +nano_nora.menu.DebugLevel.debug.build.code_debug=4 +nano_nora.menu.DebugLevel.verbose=Verbose +nano_nora.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## makergo_c3_supermini.name=MakerGO ESP32 C3 SuperMini @@ -42677,7 +42563,7 @@ epulse_feather_c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr epulse_feather_c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 epulse_feather_c6.menu.PartitionScheme.custom=Custom epulse_feather_c6.menu.PartitionScheme.custom.build.partitions= -epulse_feather_c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +epulse_feather_c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 epulse_feather_c6.menu.CPUFreq.160=160MHz (WiFi) epulse_feather_c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -42939,7 +42825,7 @@ Geekble_Nano_ESP32S3.menu.PartitionScheme.all_app.build.custom_partitions=max_ap Geekble_Nano_ESP32S3.menu.PartitionScheme.all_app.upload.maximum_size=4063232 Geekble_Nano_ESP32S3.menu.PartitionScheme.custom=Custom Geekble_Nano_ESP32S3.menu.PartitionScheme.custom.build.partitions= -Geekble_Nano_ESP32S3.menu.PartitionScheme.custom.upload.maximum_size=16777216 +Geekble_Nano_ESP32S3.menu.PartitionScheme.custom.upload.maximum_size=4194304 Geekble_Nano_ESP32S3.menu.PSRAM.disabled=Disabled Geekble_Nano_ESP32S3.menu.PSRAM.disabled.build.defines= @@ -43100,17 +42986,15 @@ waveshare_esp32_s3_zero.menu.PartitionScheme.rainmaker.upload.maximum_size=19660 waveshare_esp32_s3_zero.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA waveshare_esp32_s3_zero.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota waveshare_esp32_s3_zero.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 - waveshare_esp32_s3_zero.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_zero.menu.PartitionScheme.otanofs.build.custom_partitions=ota_nofs_4MB waveshare_esp32_s3_zero.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_zero.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_zero.menu.PartitionScheme.all_app.build.custom_partitions=max_app_4MB waveshare_esp32_s3_zero.menu.PartitionScheme.all_app.upload.maximum_size=4063232 - waveshare_esp32_s3_zero.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_zero.menu.PartitionScheme.custom.build.partitions= -waveshare_esp32_s3_zero.menu.PartitionScheme.custom.upload.maximum_size=16777216 +waveshare_esp32_s3_zero.menu.PartitionScheme.custom.upload.maximum_size=4194304 waveshare_esp32_s3_zero.menu.CPUFreq.240=240MHz (WiFi) waveshare_esp32_s3_zero.menu.CPUFreq.240.build.f_cpu=240000000L @@ -43295,17 +43179,15 @@ ws_esp32_s3_matrix.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 ws_esp32_s3_matrix.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA ws_esp32_s3_matrix.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota ws_esp32_s3_matrix.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 - ws_esp32_s3_matrix.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) ws_esp32_s3_matrix.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB ws_esp32_s3_matrix.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 ws_esp32_s3_matrix.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) ws_esp32_s3_matrix.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB ws_esp32_s3_matrix.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - ws_esp32_s3_matrix.menu.PartitionScheme.custom=Custom ws_esp32_s3_matrix.menu.PartitionScheme.custom.build.partitions= -ws_esp32_s3_matrix.menu.PartitionScheme.custom.upload.maximum_size=16777216 +ws_esp32_s3_matrix.menu.PartitionScheme.custom.upload.maximum_size=4194304 ws_esp32_s3_matrix.menu.CPUFreq.240=240MHz (WiFi) ws_esp32_s3_matrix.menu.CPUFreq.240.build.f_cpu=240000000L @@ -43460,6 +43342,8 @@ waveshare_esp32_s3_touch_lcd_169.menu.UploadMode.cdc.upload.use_1200bps_touch=tr waveshare_esp32_s3_touch_lcd_169.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -43491,17 +43375,12 @@ waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.rainmaker_8MB.upload.maxim waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_169.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -43659,6 +43538,8 @@ waveshare_esp32_s3_touch_amoled_18.menu.UploadMode.cdc.upload.use_1200bps_touch= waveshare_esp32_s3_touch_amoled_18.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -43690,17 +43571,12 @@ waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.rainmaker_8MB.upload.max waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_amoled_18.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -43858,6 +43734,8 @@ waveshare_esp32_s3_lcd_169.menu.UploadMode.cdc.upload.use_1200bps_touch=true waveshare_esp32_s3_lcd_169.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_lcd_169.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_lcd_169.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_lcd_169.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -43889,17 +43767,12 @@ waveshare_esp32_s3_lcd_169.menu.PartitionScheme.rainmaker_8MB.upload.maximum_siz waveshare_esp32_s3_lcd_169.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_lcd_169.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_lcd_169.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_lcd_169.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_lcd_169.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_lcd_169.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_lcd_169.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_lcd_169.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_lcd_169.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_lcd_169.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_lcd_169.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_lcd_169.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_lcd_169.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -44163,9 +44036,6 @@ weact_studio_esp32c3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB weact_studio_esp32c3.menu.PartitionScheme.default.build.partitions=default weact_studio_esp32c3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) weact_studio_esp32c3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat -weact_studio_esp32c3.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) -weact_studio_esp32c3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB -weact_studio_esp32c3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 weact_studio_esp32c3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) weact_studio_esp32c3.menu.PartitionScheme.minimal.build.partitions=minimal weact_studio_esp32c3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) @@ -45174,30 +45044,18 @@ codecell.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 codecell.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) codecell.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs codecell.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 -codecell.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) -codecell.menu.PartitionScheme.fatflash.build.partitions=ffat -codecell.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -codecell.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -codecell.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -codecell.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 codecell.menu.PartitionScheme.rainmaker=RainMaker 4MB codecell.menu.PartitionScheme.rainmaker.build.partitions=rainmaker codecell.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 codecell.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA codecell.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota codecell.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 -codecell.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB -codecell.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB -codecell.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4096000 codecell.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs codecell.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr codecell.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 -codecell.menu.PartitionScheme.zigbee_zczr_8MB=Zigbee ZCZR 8MB with spiffs -codecell.menu.PartitionScheme.zigbee_zczr_8MB.build.partitions=zigbee_zczr_8MB -codecell.menu.PartitionScheme.zigbee_zczr_8MB.upload.maximum_size=3407872 codecell.menu.PartitionScheme.custom=Custom codecell.menu.PartitionScheme.custom.build.partitions= -codecell.menu.PartitionScheme.custom.upload.maximum_size=16777216 +codecell.menu.PartitionScheme.custom.upload.maximum_size=4194304 codecell.menu.CPUFreq.160=160MHz (WiFi) codecell.menu.CPUFreq.160.build.f_cpu=160000000L @@ -45537,10 +45395,11 @@ waveshare_esp32_s3_touch_amoled_241.menu.UploadMode.cdc.upload.use_1200bps_touch waveshare_esp32_s3_touch_amoled_241.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) - waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.defaultffat.build.partitions=default_ffat waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.no_ota.build.partitions=no_ota @@ -45569,18 +45428,12 @@ waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.rainmaker_8MB.upload.ma waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 - -waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_amoled_241.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -45743,6 +45596,8 @@ waveshare_esp32_s3_touch_lcd_43.menu.UploadMode.cdc.upload.use_1200bps_touch=tru waveshare_esp32_s3_touch_lcd_43.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -45774,17 +45629,12 @@ waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.rainmaker_8MB.upload.maximu waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_43.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -45942,6 +45792,8 @@ waveshare_esp32_s3_touch_lcd_43B.menu.UploadMode.cdc.upload.use_1200bps_touch=tr waveshare_esp32_s3_touch_lcd_43B.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -45973,17 +45825,12 @@ waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.rainmaker_8MB.upload.maxim waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_43B.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -46146,6 +45993,8 @@ waveshare_esp32_s3_touch_lcd_7.menu.UploadMode.cdc.upload.use_1200bps_touch=true waveshare_esp32_s3_touch_lcd_7.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -46177,17 +46026,12 @@ waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.rainmaker_8MB.upload.maximum waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_7.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -46345,6 +46189,8 @@ waveshare_esp32_s3_touch_lcd_5.menu.UploadMode.cdc.upload.use_1200bps_touch=true waveshare_esp32_s3_touch_lcd_5.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -46376,17 +46222,12 @@ waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.rainmaker_8MB.upload.maximum waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_5.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -46544,6 +46385,8 @@ waveshare_esp32_s3_touch_lcd_5B.menu.UploadMode.cdc.upload.use_1200bps_touch=tru waveshare_esp32_s3_touch_lcd_5B.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -46575,17 +46418,12 @@ waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.rainmaker_8MB.upload.maximu waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_5B.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -46743,6 +46581,8 @@ waveshare_esp32_s3_touch_lcd_4.menu.UploadMode.cdc.upload.use_1200bps_touch=true waveshare_esp32_s3_touch_lcd_4.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) @@ -46774,17 +46614,12 @@ waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.rainmaker_8MB.upload.maximum waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 -waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_lcd_4.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -47169,7 +47004,7 @@ cezerio_dev_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zcz cezerio_dev_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 cezerio_dev_esp32c6.menu.PartitionScheme.custom=Custom cezerio_dev_esp32c6.menu.PartitionScheme.custom.build.partitions= -cezerio_dev_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +cezerio_dev_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 cezerio_dev_esp32c6.menu.CPUFreq.160=160MHz (WiFi) cezerio_dev_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -47339,7 +47174,7 @@ cezerio_mini_dev_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbe cezerio_mini_dev_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 cezerio_mini_dev_esp32c6.menu.PartitionScheme.custom=Custom cezerio_mini_dev_esp32c6.menu.PartitionScheme.custom.build.partitions= -cezerio_mini_dev_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +cezerio_mini_dev_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 cezerio_mini_dev_esp32c6.menu.CPUFreq.160=160MHz (WiFi) cezerio_mini_dev_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L @@ -49419,10 +49254,11 @@ waveshare_esp32_s3_touch_amoled_164.menu.UploadMode.cdc.upload.use_1200bps_touch waveshare_esp32_s3_touch_amoled_164.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) - waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.defaultffat.build.partitions=default_ffat waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.no_ota.build.partitions=no_ota @@ -49451,18 +49287,12 @@ waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.rainmaker_8MB.upload.ma waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 - -waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_amoled_164.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -49621,10 +49451,11 @@ waveshare_esp32_s3_touch_amoled_143.menu.UploadMode.cdc.upload.use_1200bps_touch waveshare_esp32_s3_touch_amoled_143.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) - waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.defaultffat.build.partitions=default_ffat waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.no_ota.build.partitions=no_ota @@ -49653,18 +49484,12 @@ waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.rainmaker_8MB.upload.ma waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 - -waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_amoled_143.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -49823,10 +49648,11 @@ waveshare_esp32_s3_touch_amoled_191.menu.UploadMode.cdc.upload.use_1200bps_touch waveshare_esp32_s3_touch_amoled_191.menu.UploadMode.cdc.upload.wait_for_upload_port=true waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.default.build.partitions=default waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) - waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.defaultffat.build.partitions=default_ffat waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.no_ota.build.partitions=no_ota @@ -49855,18 +49681,12 @@ waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.rainmaker_8MB.upload.ma waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.fatflash.build.partitions=ffat waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 - -waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) -waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB -waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 - waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.otanofs=OTA no FS (2MB APP with OTA) waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.otanofs.build.custom_partitions=partitions_otanofs_4MB waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.otanofs.upload.maximum_size=2031616 waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.all_app=Max APP (4MB APP no OTA) waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.all_app.build.custom_partitions=partitions_all_app_4MB waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.all_app.upload.maximum_size=4128768 - waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.custom=Custom waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.custom.build.partitions= waveshare_esp32_s3_touch_amoled_191.menu.PartitionScheme.custom.upload.maximum_size=16777216 @@ -50146,7 +49966,7 @@ Pcbcupid_GLYPH_H2.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr Pcbcupid_GLYPH_H2.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 Pcbcupid_GLYPH_H2.menu.PartitionScheme.custom=Custom Pcbcupid_GLYPH_H2.menu.PartitionScheme.custom.build.partitions= -Pcbcupid_GLYPH_H2.menu.PartitionScheme.custom.upload.maximum_size=16777216 +Pcbcupid_GLYPH_H2.menu.PartitionScheme.custom.upload.maximum_size=4194304 Pcbcupid_GLYPH_H2.menu.FlashMode.qio=QIO Pcbcupid_GLYPH_H2.menu.FlashMode.qio.build.flash_mode=dio @@ -51957,6 +51777,19 @@ kodedot.recipe.hooks.objcopy.postobjcopy.3.pattern_args= kodedot.recipe.output.save_file={build.project_name}.ino.bin +kodedot.menu.DebugLevel.none=None +kodedot.menu.DebugLevel.none.build.code_debug=0 +kodedot.menu.DebugLevel.error=Error +kodedot.menu.DebugLevel.error.build.code_debug=1 +kodedot.menu.DebugLevel.warn=Warn +kodedot.menu.DebugLevel.warn.build.code_debug=2 +kodedot.menu.DebugLevel.info=Info +kodedot.menu.DebugLevel.info.build.code_debug=3 +kodedot.menu.DebugLevel.debug=Debug +kodedot.menu.DebugLevel.debug.build.code_debug=4 +kodedot.menu.DebugLevel.verbose=Verbose +kodedot.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## # FED4 Board @@ -52506,7 +52339,7 @@ twinaiot.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr twinaiot.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 twinaiot.menu.PartitionScheme.custom=Custom twinaiot.menu.PartitionScheme.custom.build.partitions= -twinaiot.menu.PartitionScheme.custom.upload.maximum_size=16777216 +twinaiot.menu.PartitionScheme.custom.upload.maximum_size=4194304 twinaiot.menu.LoopCore.1=Core 1 twinaiot.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1 @@ -53050,7 +52883,7 @@ soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zig soldered_nula_mini_esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 soldered_nula_mini_esp32c6.menu.PartitionScheme.custom=Custom soldered_nula_mini_esp32c6.menu.PartitionScheme.custom.build.partitions= -soldered_nula_mini_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216 +soldered_nula_mini_esp32c6.menu.PartitionScheme.custom.upload.maximum_size=4194304 soldered_nula_mini_esp32c6.menu.CPUFreq.160=160MHz (WiFi) soldered_nula_mini_esp32c6.menu.CPUFreq.160.build.f_cpu=160000000L From b8b32ea9dbfa32d4b7ab86249a7ac97ff33769a4 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Tue, 7 Oct 2025 19:07:46 -0300 Subject: [PATCH 23/32] feat(uart): refactor PeriMan detaching function init (#11896) * feat(uart): refactor PeriMan detaching function init Removed uart_init_PeriMan function and related comments. * feat(uart): remove uart_init_PeriMan function declaration Removed unused uart_init_PeriMan function declaration. * feat(uart): remove uart_init_PeriMan call in constructor Removed call to uart_init_PeriMan in HardwareSerial destructor. * feat(uart): reorganize Serial0 setup call to show in log_v within CDC * feat(hwcdc): Refactor HWCDC constructor for bus deinitialization Refactor HWCDC constructor to conditionally set bus deinitialization for USB DM and DP. * fix(hwcdc): fixes problem with log message * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/HWCDC.cpp | 9 ++++++--- cores/esp32/HardwareSerial.cpp | 2 -- cores/esp32/esp32-hal-uart.c | 24 ++++++++++++++++-------- cores/esp32/esp32-hal-uart.h | 1 - cores/esp32/main.cpp | 12 ++++++------ 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/cores/esp32/HWCDC.cpp b/cores/esp32/HWCDC.cpp index 062317d9f53..d5c9aaafb61 100644 --- a/cores/esp32/HWCDC.cpp +++ b/cores/esp32/HWCDC.cpp @@ -253,8 +253,6 @@ static void ARDUINO_ISR_ATTR cdc0_write_char(char c) { } HWCDC::HWCDC() { - perimanSetBusDeinit(ESP32_BUS_TYPE_USB_DM, HWCDC::deinit); - perimanSetBusDeinit(ESP32_BUS_TYPE_USB_DP, HWCDC::deinit); // SOF in ISR causes problems for uploading firmware // lastSOF_ms = 0; // SOF_TIMEOUT = 5; @@ -324,14 +322,19 @@ void HWCDC::begin(unsigned long baud) { // Peripheral Manager setting for USB D+ D- pins uint8_t pin = USB_INT_PHY0_DM_GPIO_NUM; + if (perimanGetBusDeinit(ESP32_BUS_TYPE_USB_DM) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_USB_DM, HWCDC::deinit); + } if (!perimanSetPinBus(pin, ESP32_BUS_TYPE_USB_DM, (void *)this, -1, -1)) { goto err; } pin = USB_INT_PHY0_DP_GPIO_NUM; + if (perimanGetBusDeinit(ESP32_BUS_TYPE_USB_DP) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_USB_DP, HWCDC::deinit); + } if (!perimanSetPinBus(pin, ESP32_BUS_TYPE_USB_DP, (void *)this, -1, -1)) { goto err; } - // Configure PHY // USB_Serial_JTAG use internal PHY USB_SERIAL_JTAG.conf0.phy_sel = 0; diff --git a/cores/esp32/HardwareSerial.cpp b/cores/esp32/HardwareSerial.cpp index 6d762da21fb..3651667fe07 100644 --- a/cores/esp32/HardwareSerial.cpp +++ b/cores/esp32/HardwareSerial.cpp @@ -136,8 +136,6 @@ HardwareSerial::HardwareSerial(uint8_t uart_nr) } } #endif - // set deinit function in the Peripheral Manager - uart_init_PeriMan(); } HardwareSerial::~HardwareSerial() { diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 7b194679caa..3b88dae5901 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -479,6 +479,10 @@ static bool _uartAttachPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ret &= perimanSetPinBus(rxPin, ESP32_BUS_TYPE_UART_RX, (void *)uart, uart_num, -1); if (ret) { uart->_rxPin = rxPin; + // set Peripheral Manager deInit Callback for this UART pin + if (perimanGetBusDeinit(ESP32_BUS_TYPE_UART_RX) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_UART_RX, _uartDetachBus_RX); + } } } if (!ret) { @@ -502,6 +506,10 @@ static bool _uartAttachPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ret &= perimanSetPinBus(txPin, ESP32_BUS_TYPE_UART_TX, (void *)uart, uart_num, -1); if (ret) { uart->_txPin = txPin; + // set Peripheral Manager deInit Callback for this UART pin + if (perimanGetBusDeinit(ESP32_BUS_TYPE_UART_TX) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_UART_TX, _uartDetachBus_TX); + } } } if (!ret) { @@ -525,6 +533,10 @@ static bool _uartAttachPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ret &= perimanSetPinBus(ctsPin, ESP32_BUS_TYPE_UART_CTS, (void *)uart, uart_num, -1); if (ret) { uart->_ctsPin = ctsPin; + // set Peripheral Manager deInit Callback for this UART pin + if (perimanGetBusDeinit(ESP32_BUS_TYPE_UART_CTS) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_UART_CTS, _uartDetachBus_CTS); + } } } if (!ret) { @@ -548,6 +560,10 @@ static bool _uartAttachPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ret &= perimanSetPinBus(rtsPin, ESP32_BUS_TYPE_UART_RTS, (void *)uart, uart_num, -1); if (ret) { uart->_rtsPin = rtsPin; + // set Peripheral Manager deInit Callback for this UART pin + if (perimanGetBusDeinit(ESP32_BUS_TYPE_UART_RTS) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_UART_RTS, _uartDetachBus_RTS); + } } } if (!ret) { @@ -567,14 +583,6 @@ int8_t uart_get_TxPin(uint8_t uart_num) { return _uart_bus_array[uart_num]._txPin; } -void uart_init_PeriMan(void) { - // set Peripheral Manager deInit Callback for each UART pin - perimanSetBusDeinit(ESP32_BUS_TYPE_UART_RX, _uartDetachBus_RX); - perimanSetBusDeinit(ESP32_BUS_TYPE_UART_TX, _uartDetachBus_TX); - perimanSetBusDeinit(ESP32_BUS_TYPE_UART_CTS, _uartDetachBus_CTS); - perimanSetBusDeinit(ESP32_BUS_TYPE_UART_RTS, _uartDetachBus_RTS); -} - // Routines that take care of UART events will be in the HardwareSerial Class code void uartGetEventQueue(uart_t *uart, QueueHandle_t *q) { // passing back NULL for the Queue pointer when UART is not initialized yet diff --git a/cores/esp32/esp32-hal-uart.h b/cores/esp32/esp32-hal-uart.h index 41b005aa151..3af0d7ab96c 100644 --- a/cores/esp32/esp32-hal-uart.h +++ b/cores/esp32/esp32-hal-uart.h @@ -79,7 +79,6 @@ bool uartSetPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ctsPin, in // helper functions int8_t uart_get_RxPin(uint8_t uart_num); int8_t uart_get_TxPin(uint8_t uart_num); -void uart_init_PeriMan(void); // Enables or disables HW Flow Control function -- needs also to set CTS and/or RTS pins // UART_HW_FLOWCTRL_DISABLE = 0x0 disable hardware flow control diff --git a/cores/esp32/main.cpp b/cores/esp32/main.cpp index fb11ff4a5c7..4d1ec770c07 100644 --- a/cores/esp32/main.cpp +++ b/cores/esp32/main.cpp @@ -50,19 +50,19 @@ __attribute__((weak)) uint64_t getArduinoSetupWaitTime_ms(void) { } void loopTask(void *pvParameters) { -#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) - // sets UART0 (default console) RX/TX pins as already configured in boot or as defined in variants/pins_arduino.h - Serial0.setPins(gpioNumberToDigitalPin(SOC_RX0), gpioNumberToDigitalPin(SOC_TX0)); - // time in ms that the sketch may wait before starting its execution - default is zero - // usually done for opening the Serial Monitor and seeing all debug messages delay(getArduinoSetupWaitTime_ms()); -#endif #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG printBeforeSetupInfo(); #else if (shouldPrintChipDebugReport()) { printBeforeSetupInfo(); } +#endif +#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) + // sets UART0 (default console) RX/TX pins as already configured in boot or as defined in variants/pins_arduino.h + Serial0.setPins(gpioNumberToDigitalPin(SOC_RX0), gpioNumberToDigitalPin(SOC_TX0)); + // time in ms that the sketch may wait before starting its execution - default is zero + // usually done for opening the Serial Monitor and seeing all debug messages #endif setup(); #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG From 9875e370fa854815132dea9feb77055e48c426db Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 8 Oct 2025 05:50:59 -0300 Subject: [PATCH 24/32] feat(usb): global event task stack size normalization (#11895) * feat(usb): global event task stack size normalization * feat(usb): global event task stack size normalization * feat(usb): global event task stack priority normalization * feat(usb): global event task priority normalization * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/HWCDC.cpp | 7 ++++++- cores/esp32/USB.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cores/esp32/HWCDC.cpp b/cores/esp32/HWCDC.cpp index d5c9aaafb61..87df44b5247 100644 --- a/cores/esp32/HWCDC.cpp +++ b/cores/esp32/HWCDC.cpp @@ -14,6 +14,7 @@ #include "USB.h" #if SOC_USB_SERIAL_JTAG_SUPPORTED +#include "Arduino.h" // defines ARDUINO_SERIAL_EVENT_TASK_STACK_SIZE and ARDUINO_SERIAL_EVENT_TASK_PRIORITY #include "esp32-hal.h" #include "esp32-hal-periman.h" #include "HWCDC.h" @@ -60,7 +61,11 @@ static esp_err_t arduino_hw_cdc_event_handler_register_with(esp_event_base_t event_base, int32_t event_id, esp_event_handler_t event_handler, void *event_handler_arg) { if (!arduino_hw_cdc_event_loop_handle) { esp_event_loop_args_t event_task_args = { - .queue_size = 5, .task_name = "arduino_hw_cdc_events", .task_priority = 5, .task_stack_size = 2048, .task_core_id = tskNO_AFFINITY + .queue_size = 5, + .task_name = "arduino_hw_cdc_events", + .task_priority = ARDUINO_SERIAL_EVENT_TASK_PRIORITY, + .task_stack_size = ARDUINO_SERIAL_EVENT_TASK_STACK_SIZE, + .task_core_id = tskNO_AFFINITY }; if (esp_event_loop_create(&event_task_args, &arduino_hw_cdc_event_loop_handle) != ESP_OK) { log_e("esp_event_loop_create failed"); diff --git a/cores/esp32/USB.h b/cores/esp32/USB.h index 6d284937e00..782121e6d50 100644 --- a/cores/esp32/USB.h +++ b/cores/esp32/USB.h @@ -21,6 +21,7 @@ #include "esp_event.h" #include "USBCDC.h" +#include "Arduino.h" // defines ARDUINO_SERIAL_EVENT_TASK_STACK_SIZE and ARDUINO_SERIAL_EVENT_TASK_PRIORITY #define ARDUINO_USB_ON_BOOT (ARDUINO_USB_CDC_ON_BOOT | ARDUINO_USB_MSC_ON_BOOT | ARDUINO_USB_DFU_ON_BOOT) @@ -43,7 +44,7 @@ typedef union { class ESPUSB { public: - ESPUSB(size_t event_task_stack_size = 2048, uint8_t event_task_priority = 5); + ESPUSB(size_t event_task_stack_size = ARDUINO_SERIAL_EVENT_TASK_STACK_SIZE, uint8_t event_task_priority = ARDUINO_SERIAL_EVENT_TASK_PRIORITY); ~ESPUSB(); void onEvent(esp_event_handler_t callback); From e8cba09bcf12af0a08c5fe170f7f1e00a3fd3b1d Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 8 Oct 2025 07:04:19 -0300 Subject: [PATCH 25/32] feat(tinyusb_cdc): avoid infinite loop when TinyUSB CDC layer hangs (#11904) * feat(tinyusb_cdc): write timeout Added a timeout check to prevent locking during CDC writes. * fix(usb_cdc): better timeout calculation Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/USBCDC.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cores/esp32/USBCDC.cpp b/cores/esp32/USBCDC.cpp index c7bb4582d4f..4eea8845b35 100644 --- a/cores/esp32/USBCDC.cpp +++ b/cores/esp32/USBCDC.cpp @@ -405,8 +405,11 @@ size_t USBCDC::write(const uint8_t *buffer, size_t size) { return 0; } size_t to_send = size, so_far = 0; + // writeTimeout will prevent that TinyUSB failure locks the while(to_send) loop + uint32_t writeTimeout = millis() + tx_timeout_ms; while (to_send) { - if (!tud_cdc_n_connected(itf)) { + if (!tud_cdc_n_connected(itf) || (int32_t)(millis() - writeTimeout) >= 0) { + log_e("USB is disconnected or CDC writing has timed out."); size = so_far; break; } From 493c528231d7af831cd87044b0d21731d8a860e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:26:38 +0200 Subject: [PATCH 26/32] feat(zigbee): Extend switch EPs with get Light methods (#11902) * feat(zigbee): Extend swithc with get attribute methods * fix(zigbee): Fix -Wmissing-field-initializers warning * feat(zigbee): Update keywords.txt * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .../Zigbee_On_Off_Switch.ino | 40 +- libraries/Zigbee/keywords.txt | 16 +- libraries/Zigbee/src/ZigbeeEP.cpp | 18 +- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp | 434 +++++++++++++++++- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.h | 52 ++- libraries/Zigbee/src/ep/ZigbeeSwitch.cpp | 131 +++++- libraries/Zigbee/src/ep/ZigbeeSwitch.h | 17 + libraries/Zigbee/src/ep/ZigbeeThermostat.cpp | 39 +- 8 files changed, 679 insertions(+), 68 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino index 0721371ce0e..d4a71bbed89 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino @@ -66,6 +66,8 @@ static SwitchData buttonFunctionPair[] = {{GPIO_INPUT_IO_TOGGLE_SWITCH, SWITCH_O ZigbeeSwitch zbSwitch = ZigbeeSwitch(SWITCH_ENDPOINT_NUMBER); +static bool light_state = false; + /********************* Zigbee functions **************************/ static void onZbButton(SwitchData *button_func_pair) { if (button_func_pair->func == SWITCH_ONOFF_TOGGLE_CONTROL) { @@ -75,6 +77,33 @@ static void onZbButton(SwitchData *button_func_pair) { } } +static void onLightStateChange(bool state) { + if (state != light_state) { + light_state = state; + Serial.printf("Light state changed to %d\r\n", state); + } +} + +/********************* Periodic task ***************************/ +void periodicTask(void *arg) { + while (true) { + // print the bound lights every 10 seconds + static uint32_t lastPrint = 0; + if (millis() - lastPrint > 10000) { + lastPrint = millis(); + zbSwitch.printBoundDevices(Serial); + } + + // Poll light state every second + static uint32_t lastPoll = 0; + if (millis() - lastPoll > 1000) { + lastPoll = millis(); + zbSwitch.getLightState(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); + } +} + /********************* GPIO functions **************************/ static QueueHandle_t gpio_evt_queue = NULL; @@ -102,6 +131,8 @@ void setup() { //Optional to allow multiple light to bind to the switch zbSwitch.allowMultipleBinding(true); + zbSwitch.onLightStateChange(onLightStateChange); + //Add endpoint to Zigbee Core Serial.println("Adding ZigbeeSwitch endpoint to Zigbee Core"); Zigbee.addEndpoint(&zbSwitch); @@ -154,6 +185,8 @@ void setup() { } Serial.println(); + + xTaskCreate(periodicTask, "periodicTask", 1024 * 4, NULL, 10, NULL); } void loop() { @@ -188,11 +221,4 @@ void loop() { } vTaskDelay(10 / portTICK_PERIOD_MS); } - - // print the bound lights every 10 seconds - static uint32_t lastPrint = 0; - if (millis() - lastPrint > 10000) { - lastPrint = millis(); - zbSwitch.printBoundDevices(Serial); - } } diff --git a/libraries/Zigbee/keywords.txt b/libraries/Zigbee/keywords.txt index 67cb47ee319..f203de96da6 100644 --- a/libraries/Zigbee/keywords.txt +++ b/libraries/Zigbee/keywords.txt @@ -104,7 +104,6 @@ clearBoundDevices KEYWORD2 onDefaultResponse KEYWORD2 # ZigbeeLight + ZigbeeColorDimmableLight -onLightChange KEYWORD2 restoreLight KEYWORD2 setLight KEYWORD2 setLightState KEYWORD2 @@ -115,6 +114,12 @@ getLightLevel KEYWORD2 getLightRed KEYWORD2 getLightGreen KEYWORD2 getLightBlue KEYWORD2 +onLightChange KEYWORD2 +onLightColorChangeWithSource KEYWORD2 +onLightLevelChange KEYWORD2 +onLightLevelChangeWithSource KEYWORD2 +onLightStateChange KEYWORD2 +onLightStateChangeWithSource KEYWORD2 # ZigbeeSwitch + ZigbeeColorDimmerSwitch lightToggle KEYWORD2 @@ -125,6 +130,15 @@ lightOnWithTimedOff KEYWORD2 lightOnWithSceneRecall KEYWORD2 setLightLevel KEYWORD2 setLightColor KEYWORD2 +getLightState KEYWORD2 +getLightLevel KEYWORD2 +getLightColor KEYWORD2 +onLightStateChange KEYWORD2 +onLightStateChangeWithSource KEYWORD2 +onLightLevelChange KEYWORD2 +onLightLevelChangeWithSource KEYWORD2 +onLightColorChange KEYWORD2 +onLightColorChangeWithSource KEYWORD2 # ZigbeeThermostat onTempRecieve KEYWORD2 diff --git a/libraries/Zigbee/src/ZigbeeEP.cpp b/libraries/Zigbee/src/ZigbeeEP.cpp index b857eb5e7a5..48a083748f4 100644 --- a/libraries/Zigbee/src/ZigbeeEP.cpp +++ b/libraries/Zigbee/src/ZigbeeEP.cpp @@ -160,7 +160,8 @@ bool ZigbeeEP::setBatteryVoltage(uint8_t voltage) { bool ZigbeeEP::reportBatteryPercentage() { /* Send report attributes command */ - esp_zb_zcl_report_attr_cmd_t report_attr_cmd = {0}; + esp_zb_zcl_report_attr_cmd_t report_attr_cmd; + memset(&report_attr_cmd, 0, sizeof(report_attr_cmd)); report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID; report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; @@ -181,7 +182,8 @@ bool ZigbeeEP::reportBatteryPercentage() { char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr) { /* Read peer Manufacture Name & Model Identifier */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); if (short_addr != 0) { read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; @@ -219,7 +221,8 @@ char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr, esp_zb_i char *ZigbeeEP::readModel(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr) { /* Read peer Manufacture Name & Model Identifier */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); if (short_addr != 0) { read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; @@ -396,7 +399,8 @@ bool ZigbeeEP::setTimezone(int32_t gmt_offset) { tm ZigbeeEP::getTime(uint8_t endpoint, int32_t short_addr, esp_zb_ieee_addr_t ieee_addr) { /* Read peer time */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); if (short_addr >= 0) { read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; @@ -448,7 +452,8 @@ tm ZigbeeEP::getTime(uint8_t endpoint, int32_t short_addr, esp_zb_ieee_addr_t ie int32_t ZigbeeEP::getTimezone(uint8_t endpoint, int32_t short_addr, esp_zb_ieee_addr_t ieee_addr) { /* Read peer timezone */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); if (short_addr >= 0) { read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; @@ -564,7 +569,8 @@ static void findOTAServer(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t } void ZigbeeEP::requestOTAUpdate() { - esp_zb_zdo_match_desc_req_param_t req = {0}; + esp_zb_zdo_match_desc_req_param_t req; + memset(&req, 0, sizeof(req)); uint16_t cluster_list[] = {ESP_ZB_ZCL_CLUSTER_ID_OTA_UPGRADE}; /* Match the OTA server of coordinator */ diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp index 1d18d3c10e8..18465104dfa 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp @@ -23,6 +23,16 @@ ZigbeeColorDimmerSwitch::ZigbeeColorDimmerSwitch(uint8_t endpoint) : ZigbeeEP(en _instance = this; // Set the static pointer to this instance _device = nullptr; // Initialize light pointer to null + _light_color_rgb = {0, 0, 0}; + _light_color_hsv = {0, 0, 255}; + _light_color_xy = {0, 0}; + _on_light_state_change = nullptr; + _on_light_state_change_with_source = nullptr; + _on_light_level_change = nullptr; + _on_light_level_change_with_source = nullptr; + _on_light_color_change = nullptr; + _on_light_color_change_with_source = nullptr; + esp_zb_color_dimmable_switch_cfg_t switch_cfg = ESP_ZB_DEFAULT_COLOR_DIMMABLE_SWITCH_CONFIG(); _cluster_list = esp_zb_color_dimmable_switch_clusters_create(&switch_cfg); @@ -67,7 +77,8 @@ void ZigbeeColorDimmerSwitch::findCb(esp_zb_zdp_status_t zdo_status, uint16_t ad ZigbeeColorDimmerSwitch *instance = static_cast(user_ctx); if (zdo_status == ESP_ZB_ZDP_STATUS_SUCCESS) { log_d("Found light endpoint"); - esp_zb_zdo_bind_req_param_t bind_req = {0}; + esp_zb_zdo_bind_req_param_t bind_req; + memset(&bind_req, 0, sizeof(bind_req)); zb_device_params_t *light = (zb_device_params_t *)malloc(sizeof(zb_device_params_t)); light->endpoint = endpoint; light->short_addr = addr; @@ -111,7 +122,8 @@ void ZigbeeColorDimmerSwitch::findEndpoint(esp_zb_zdo_match_desc_req_param_t *cm // Methods to control the light void ZigbeeColorDimmerSwitch::lightToggle() { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; @@ -126,7 +138,8 @@ void ZigbeeColorDimmerSwitch::lightToggle() { void ZigbeeColorDimmerSwitch::lightToggle(uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -142,7 +155,8 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint16_t group_addr) { void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -159,7 +173,8 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -179,7 +194,8 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t i void ZigbeeColorDimmerSwitch::lightOn() { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; @@ -194,7 +210,8 @@ void ZigbeeColorDimmerSwitch::lightOn() { void ZigbeeColorDimmerSwitch::lightOn(uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -210,7 +227,8 @@ void ZigbeeColorDimmerSwitch::lightOn(uint16_t group_addr) { void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -227,7 +245,8 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) { void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -247,7 +266,8 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_ void ZigbeeColorDimmerSwitch::lightOff() { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; @@ -262,7 +282,8 @@ void ZigbeeColorDimmerSwitch::lightOff() { void ZigbeeColorDimmerSwitch::lightOff(uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -278,7 +299,8 @@ void ZigbeeColorDimmerSwitch::lightOff(uint16_t group_addr) { void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -295,7 +317,8 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) { void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -315,7 +338,8 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee void ZigbeeColorDimmerSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant) { if (_is_bound) { - esp_zb_zcl_on_off_off_with_effect_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_off_with_effect_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.effect_id = effect_id; @@ -331,7 +355,8 @@ void ZigbeeColorDimmerSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effe void ZigbeeColorDimmerSwitch::lightOnWithSceneRecall() { if (_is_bound) { - esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; log_v("Sending 'light on with scene recall' command"); @@ -345,7 +370,8 @@ void ZigbeeColorDimmerSwitch::lightOnWithSceneRecall() { void ZigbeeColorDimmerSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, uint16_t time_off) { if (_is_bound) { - esp_zb_zcl_on_off_on_with_timed_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_on_with_timed_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_control = on_off_control; //TODO: Test how it works, then maybe change API @@ -362,7 +388,8 @@ void ZigbeeColorDimmerSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16 void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level) { if (_is_bound) { - esp_zb_zcl_move_to_level_cmd_t cmd_req = {0}; + esp_zb_zcl_move_to_level_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.level = level; @@ -378,7 +405,8 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level) { void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_move_to_level_cmd_t cmd_req = {0}; + esp_zb_zcl_move_to_level_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -395,7 +423,8 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint16_t group_addr) void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_move_to_level_cmd_t cmd_req = {0}; + esp_zb_zcl_move_to_level_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -413,7 +442,8 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, uin void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_move_to_level_cmd_t cmd_req = {0}; + esp_zb_zcl_move_to_level_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -436,7 +466,8 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t if (_is_bound) { espXyColor_t xy_color = espRgbToXYColor(red, green, blue); - esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0}; + esp_zb_zcl_color_move_to_color_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.color_x = xy_color.x; @@ -455,7 +486,8 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t if (_is_bound) { espXyColor_t xy_color = espRgbToXYColor(red, green, blue); - esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0}; + esp_zb_zcl_color_move_to_color_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -475,7 +507,8 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t if (_is_bound) { espXyColor_t xy_color = espRgbToXYColor(red, green, blue); - esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0}; + esp_zb_zcl_color_move_to_color_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -496,7 +529,8 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t if (_is_bound) { espXyColor_t xy_color = espRgbToXYColor(red, green, blue); - esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0}; + esp_zb_zcl_color_move_to_color_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -516,4 +550,356 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t } } +void ZigbeeColorDimmerSwitch::getLightState() { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightState(uint16_t group_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightState(uint8_t endpoint, uint16_t short_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightState(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightLevel() { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightLevel(uint16_t group_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightLevel(uint8_t endpoint, uint16_t short_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightLevel(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColor() { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColor(uint16_t group_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColor(uint8_t endpoint, uint16_t short_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColor(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColorHS() { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColorHS(uint16_t group_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColorHS(uint8_t endpoint, uint16_t short_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::getLightColorHS(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL; + read_req.attr_number = 2; + uint16_t attr_id[] = {ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID}; + read_req.attr_field = attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeColorDimmerSwitch::zbAttributeRead( + uint16_t cluster_id, const esp_zb_zcl_attribute_t *attribute, uint8_t src_endpoint, esp_zb_zcl_addr_t src_address +) { + if (cluster_id == ESP_ZB_ZCL_CLUSTER_ID_ON_OFF) { + if (attribute->id == ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_BOOL) { + bool light_state = attribute->data.value ? *(bool *)attribute->data.value : false; + if (_on_light_state_change) { + _on_light_state_change(light_state); + } + if (_on_light_state_change_with_source) { + _on_light_state_change_with_source(light_state, src_endpoint, src_address); + } + } + } + if (cluster_id == ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL) { + if (attribute->id == ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) { + uint8_t light_level = attribute->data.value ? *(uint8_t *)attribute->data.value : 0; + if (_on_light_level_change) { + _on_light_level_change(light_level); + } + if (_on_light_level_change_with_source) { + _on_light_level_change_with_source(light_level, src_endpoint, src_address); + } + } + } + if (cluster_id == ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL) { + static bool x_received = false; + static bool y_received = false; + static bool h_received = false; + static bool s_received = false; + + if (attribute->id == ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_U16) { + _light_color_xy.x = attribute->data.value ? *(uint16_t *)attribute->data.value : 0; + x_received = true; + } + if (attribute->id == ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_U16) { + _light_color_xy.y = attribute->data.value ? *(uint16_t *)attribute->data.value : 0; + y_received = true; + } + + if (attribute->id == ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) { + _light_color_hsv.h = attribute->data.value ? *(uint8_t *)attribute->data.value : 0; + h_received = true; + } + if (attribute->id == ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) { + _light_color_hsv.s = attribute->data.value ? *(uint8_t *)attribute->data.value : 0; + s_received = true; + } + + // Process XY color if both X and Y have been received + if (x_received && y_received) { + _light_color_rgb = espXYToRgbColor(255, _light_color_xy.x, _light_color_xy.y, false); + if (_on_light_color_change) { + _on_light_color_change(_light_color_rgb.r, _light_color_rgb.g, _light_color_rgb.b); + } + if (_on_light_color_change_with_source) { + _on_light_color_change_with_source(_light_color_rgb.r, _light_color_rgb.g, _light_color_rgb.b, src_endpoint, src_address); + } + x_received = false; // Reset flags after processing + y_received = false; + } + + // Process HS color if both H and S have been received + if (h_received && s_received) { + _light_color_rgb = espHsvColorToRgbColor(_light_color_hsv); + if (_on_light_color_change) { + _on_light_color_change(_light_color_rgb.r, _light_color_rgb.g, _light_color_rgb.b); + } + if (_on_light_color_change_with_source) { + _on_light_color_change_with_source(_light_color_rgb.r, _light_color_rgb.g, _light_color_rgb.b, src_endpoint, src_address); + } + h_received = false; // Reset flags after processing + s_received = false; + } + } +} #endif // CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h index 9d813c47651..10484a6867f 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h @@ -58,18 +58,68 @@ class ZigbeeColorDimmerSwitch : public ZigbeeEP { void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t endpoint, uint16_t short_addr); void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); + void getLightState(); + void getLightState(uint16_t group_addr); + void getLightState(uint8_t endpoint, uint16_t short_addr); + void getLightState(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); + + void getLightLevel(); + void getLightLevel(uint16_t group_addr); + void getLightLevel(uint8_t endpoint, uint16_t short_addr); + void getLightLevel(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); + + void getLightColor(); + void getLightColor(uint16_t group_addr); + void getLightColor(uint8_t endpoint, uint16_t short_addr); + void getLightColor(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); + + void getLightColorHS(); + void getLightColorHS(uint16_t group_addr); + void getLightColorHS(uint8_t endpoint, uint16_t short_addr); + void getLightColorHS(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); + + void onLightStateChange(void (*callback)(bool)) { + _on_light_state_change = callback; + } + void onLightStateChangeWithSource(void (*callback)(bool, uint8_t, esp_zb_zcl_addr_t)) { + _on_light_state_change_with_source = callback; + } + void onLightLevelChange(void (*callback)(uint8_t)) { + _on_light_level_change = callback; + } + void onLightLevelChangeWithSource(void (*callback)(uint8_t, uint8_t, esp_zb_zcl_addr_t)) { + _on_light_level_change_with_source = callback; + } + void onLightColorChange(void (*callback)(uint8_t, uint8_t, uint8_t)) { + _on_light_color_change = callback; + } + void onLightColorChangeWithSource(void (*callback)(uint8_t, uint8_t, uint8_t, uint8_t, esp_zb_zcl_addr_t)) { + _on_light_color_change_with_source = callback; + } + private: // save instance of the class in order to use it in static functions static ZigbeeColorDimmerSwitch *_instance; zb_device_params_t *_device; + espHsvColor_t _light_color_hsv; + espXyColor_t _light_color_xy; + espRgbColor_t _light_color_rgb; + + void (*_on_light_state_change)(bool); + void (*_on_light_state_change_with_source)(bool, uint8_t, esp_zb_zcl_addr_t); + void (*_on_light_level_change)(uint8_t); + void (*_on_light_level_change_with_source)(uint8_t, uint8_t, esp_zb_zcl_addr_t); + void (*_on_light_color_change)(uint8_t, uint8_t, uint8_t); + void (*_on_light_color_change_with_source)(uint8_t, uint8_t, uint8_t, uint8_t, esp_zb_zcl_addr_t); + void findEndpoint(esp_zb_zdo_match_desc_req_param_t *cmd_req); void bindCb(esp_zb_zdp_status_t zdo_status, void *user_ctx); void findCb(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx); static void bindCbWrapper(esp_zb_zdp_status_t zdo_status, void *user_ctx); static void findCbWrapper(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx); - void calculateXY(uint8_t red, uint8_t green, uint8_t blue, uint16_t &x, uint16_t &y); + void zbAttributeRead(uint16_t cluster_id, const esp_zb_zcl_attribute_t *attribute, uint8_t src_endpoint, esp_zb_zcl_addr_t src_address) override; }; #endif // CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp b/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp index d3e3aae4cf7..a81c63aed06 100644 --- a/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp @@ -66,7 +66,8 @@ void ZigbeeSwitch::findCb(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t ZigbeeSwitch *instance = static_cast(user_ctx); if (zdo_status == ESP_ZB_ZDP_STATUS_SUCCESS) { log_d("Found light endpoint"); - esp_zb_zdo_bind_req_param_t bind_req = {0}; + esp_zb_zdo_bind_req_param_t bind_req; + memset(&bind_req, 0, sizeof(bind_req)); zb_device_params_t *light = (zb_device_params_t *)malloc(sizeof(zb_device_params_t)); light->endpoint = endpoint; light->short_addr = addr; @@ -108,7 +109,8 @@ void ZigbeeSwitch::findEndpoint(esp_zb_zdo_match_desc_req_param_t *cmd_req) { // Methods to control the light void ZigbeeSwitch::lightToggle() { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; @@ -123,7 +125,8 @@ void ZigbeeSwitch::lightToggle() { void ZigbeeSwitch::lightToggle(uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -139,7 +142,8 @@ void ZigbeeSwitch::lightToggle(uint16_t group_addr) { void ZigbeeSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -156,7 +160,8 @@ void ZigbeeSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) { void ZigbeeSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -176,7 +181,8 @@ void ZigbeeSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { void ZigbeeSwitch::lightOn() { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; @@ -191,7 +197,8 @@ void ZigbeeSwitch::lightOn() { void ZigbeeSwitch::lightOn(uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -207,7 +214,8 @@ void ZigbeeSwitch::lightOn(uint16_t group_addr) { void ZigbeeSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -224,7 +232,8 @@ void ZigbeeSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) { void ZigbeeSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -244,7 +253,8 @@ void ZigbeeSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { void ZigbeeSwitch::lightOff() { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; @@ -259,7 +269,8 @@ void ZigbeeSwitch::lightOff() { void ZigbeeSwitch::lightOff(uint16_t group_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; @@ -275,7 +286,8 @@ void ZigbeeSwitch::lightOff(uint16_t group_addr) { void ZigbeeSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; @@ -292,7 +304,8 @@ void ZigbeeSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) { void ZigbeeSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { if (_is_bound) { - esp_zb_zcl_on_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; @@ -312,7 +325,8 @@ void ZigbeeSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { void ZigbeeSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant) { if (_is_bound) { - esp_zb_zcl_on_off_off_with_effect_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_off_with_effect_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.effect_id = effect_id; @@ -328,7 +342,8 @@ void ZigbeeSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant) void ZigbeeSwitch::lightOnWithSceneRecall() { if (_is_bound) { - esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; log_v("Sending 'light on with scene recall' command"); @@ -339,9 +354,11 @@ void ZigbeeSwitch::lightOnWithSceneRecall() { log_e("Light not bound"); } } + void ZigbeeSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, uint16_t time_off) { if (_is_bound) { - esp_zb_zcl_on_off_on_with_timed_off_cmd_t cmd_req = {0}; + esp_zb_zcl_on_off_on_with_timed_off_cmd_t cmd_req; + memset(&cmd_req, 0, sizeof(cmd_req)); cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_control = on_off_control; //TODO: Test how it works, then maybe change API @@ -356,4 +373,86 @@ void ZigbeeSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, } } +void ZigbeeSwitch::getLightState() { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeSwitch::getLightState(uint16_t group_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeSwitch::getLightState(uint8_t endpoint, uint16_t short_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeSwitch::getLightState(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + read_req.zcl_basic_cmd.src_endpoint = _endpoint; + read_req.zcl_basic_cmd.dst_endpoint = endpoint; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_ON_OFF; + read_req.attr_number = 1; + uint16_t attr_id = ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID; + read_req.attr_field = &attr_id; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); + } +} + +void ZigbeeSwitch::zbAttributeRead(uint16_t cluster_id, const esp_zb_zcl_attribute_t *attribute, uint8_t src_endpoint, esp_zb_zcl_addr_t src_address) { + if (cluster_id == ESP_ZB_ZCL_CLUSTER_ID_ON_OFF) { + if (attribute->id == ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID && attribute->data.type == ESP_ZB_ZCL_ATTR_TYPE_BOOL) { + bool light_state = attribute->data.value ? *(bool *)attribute->data.value : false; + if (_on_light_state_change) { + _on_light_state_change(light_state); + } + if (_on_light_state_change_with_source) { + _on_light_state_change_with_source(light_state, src_endpoint, src_address); + } + } + } +} #endif // CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeSwitch.h b/libraries/Zigbee/src/ep/ZigbeeSwitch.h index f449843d85c..09c17355763 100644 --- a/libraries/Zigbee/src/ep/ZigbeeSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeSwitch.h @@ -48,15 +48,32 @@ class ZigbeeSwitch : public ZigbeeEP { void lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, uint16_t time_off); void lightOnWithSceneRecall(); + void getLightState(); + void getLightState(uint16_t group_addr); + void getLightState(uint8_t endpoint, uint16_t short_addr); + void getLightState(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); + + void onLightStateChange(void (*callback)(bool)) { + _on_light_state_change = callback; + } + void onLightStateChangeWithSource(void (*callback)(bool, uint8_t, esp_zb_zcl_addr_t)) { + _on_light_state_change_with_source = callback; + } + private: // save instance of the class in order to use it in static functions static ZigbeeSwitch *_instance; zb_device_params_t *_device; + + void (*_on_light_state_change)(bool); + void (*_on_light_state_change_with_source)(bool, uint8_t, esp_zb_zcl_addr_t); + void findEndpoint(esp_zb_zdo_match_desc_req_param_t *cmd_req); void bindCb(esp_zb_zdp_status_t zdo_status, void *user_ctx); void findCb(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx); static void findCbWrapper(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx); static void bindCbWrapper(esp_zb_zdp_status_t zdo_status, void *user_ctx); + void zbAttributeRead(uint16_t cluster_id, const esp_zb_zcl_attribute_t *attribute, uint8_t src_endpoint, esp_zb_zcl_addr_t src_address) override; }; #endif // CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp b/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp index b08c256ab6b..e076aff79f0 100644 --- a/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp @@ -79,7 +79,8 @@ void ZigbeeThermostat::findCb(esp_zb_zdp_status_t zdo_status, uint16_t addr, uin ZigbeeThermostat *instance = static_cast(user_ctx); if (zdo_status == ESP_ZB_ZDP_STATUS_SUCCESS) { log_i("Found temperature sensor"); - esp_zb_zdo_bind_req_param_t bind_req = {0}; + esp_zb_zdo_bind_req_param_t bind_req; + memset(&bind_req, 0, sizeof(bind_req)); /* Store the information of the remote device */ zb_device_params_t *sensor = (zb_device_params_t *)malloc(sizeof(zb_device_params_t)); sensor->endpoint = endpoint; @@ -169,7 +170,8 @@ void ZigbeeThermostat::zbAttributeRead(uint16_t cluster_id, const esp_zb_zcl_att void ZigbeeThermostat::getTemperature() { /* Send "read attributes" command to all bound sensors */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT; @@ -186,7 +188,8 @@ void ZigbeeThermostat::getTemperature() { void ZigbeeThermostat::getTemperature(uint16_t group_addr) { /* Send "read attributes" command to the group */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; @@ -204,7 +207,8 @@ void ZigbeeThermostat::getTemperature(uint16_t group_addr) { void ZigbeeThermostat::getTemperature(uint8_t endpoint, uint16_t short_addr) { /* Send "read attributes" command to specific endpoint */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_endpoint = endpoint; @@ -223,7 +227,8 @@ void ZigbeeThermostat::getTemperature(uint8_t endpoint, uint16_t short_addr) { void ZigbeeThermostat::getTemperature(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { /* Send "read attributes" command to specific endpoint */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_endpoint = endpoint; @@ -245,7 +250,8 @@ void ZigbeeThermostat::getTemperature(uint8_t endpoint, esp_zb_ieee_addr_t ieee_ void ZigbeeThermostat::getSensorSettings() { /* Send "read attributes" command to all bound sensors */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT; @@ -273,7 +279,8 @@ void ZigbeeThermostat::getSensorSettings() { void ZigbeeThermostat::getSensorSettings(uint16_t group_addr) { /* Send "read attributes" command to the group */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; @@ -302,7 +309,8 @@ void ZigbeeThermostat::getSensorSettings(uint16_t group_addr) { void ZigbeeThermostat::getSensorSettings(uint8_t endpoint, uint16_t short_addr) { /* Send "read attributes" command to specific endpoint */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_endpoint = endpoint; @@ -332,7 +340,8 @@ void ZigbeeThermostat::getSensorSettings(uint8_t endpoint, uint16_t short_addr) void ZigbeeThermostat::getSensorSettings(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { /* Send "read attributes" command to specific endpoint */ - esp_zb_zcl_read_attr_cmd_t read_req = {0}; + esp_zb_zcl_read_attr_cmd_t read_req; + memset(&read_req, 0, sizeof(read_req)); read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_endpoint = endpoint; @@ -365,7 +374,8 @@ void ZigbeeThermostat::getSensorSettings(uint8_t endpoint, esp_zb_ieee_addr_t ie void ZigbeeThermostat::setTemperatureReporting(uint16_t min_interval, uint16_t max_interval, float delta) { /* Send "configure report attribute" command to all bound sensors */ - esp_zb_zcl_config_report_cmd_t report_cmd = {0}; + esp_zb_zcl_config_report_cmd_t report_cmd; + memset(&report_cmd, 0, sizeof(report_cmd)); report_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_cmd.zcl_basic_cmd.src_endpoint = _endpoint; report_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT; @@ -392,7 +402,8 @@ void ZigbeeThermostat::setTemperatureReporting(uint16_t min_interval, uint16_t m void ZigbeeThermostat::setTemperatureReporting(uint16_t group_addr, uint16_t min_interval, uint16_t max_interval, float delta) { /* Send "configure report attribute" command to the group */ - esp_zb_zcl_config_report_cmd_t report_cmd = {0}; + esp_zb_zcl_config_report_cmd_t report_cmd; + memset(&report_cmd, 0, sizeof(report_cmd)); report_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; report_cmd.zcl_basic_cmd.src_endpoint = _endpoint; report_cmd.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; @@ -420,7 +431,8 @@ void ZigbeeThermostat::setTemperatureReporting(uint16_t group_addr, uint16_t min void ZigbeeThermostat::setTemperatureReporting(uint8_t endpoint, uint16_t short_addr, uint16_t min_interval, uint16_t max_interval, float delta) { /* Send "configure report attribute" command to specific endpoint */ - esp_zb_zcl_config_report_cmd_t report_cmd = {0}; + esp_zb_zcl_config_report_cmd_t report_cmd; + memset(&report_cmd, 0, sizeof(report_cmd)); report_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; report_cmd.zcl_basic_cmd.src_endpoint = _endpoint; report_cmd.zcl_basic_cmd.dst_endpoint = endpoint; @@ -449,7 +461,8 @@ void ZigbeeThermostat::setTemperatureReporting(uint8_t endpoint, uint16_t short_ void ZigbeeThermostat::setTemperatureReporting(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr, uint16_t min_interval, uint16_t max_interval, float delta) { /* Send "configure report attribute" command to specific endpoint */ - esp_zb_zcl_config_report_cmd_t report_cmd = {0}; + esp_zb_zcl_config_report_cmd_t report_cmd; + memset(&report_cmd, 0, sizeof(report_cmd)); report_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; report_cmd.zcl_basic_cmd.src_endpoint = _endpoint; report_cmd.zcl_basic_cmd.dst_endpoint = endpoint; From 4deb5e552639aa25a5321bb7149cfd0b50cab51d Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:34:28 +0200 Subject: [PATCH 27/32] Runtime Flash Clock detection (#11903) * getFlashFrequencyMHz * Refactor source frequency logic for ESP32 Updated source frequency handling for ESP32 and ESP32S3 targets. * fix compile for esp32 * Add default case for core clock selection * move in Esp.cpp * Refactor flash clock register base address usage Replaced FLASH_SPI0_BASE with DR_REG_SPI0_BASE for clock register access. * Refactor flash frequency functions with HAL support Refactor flash frequency functions to use ESP-IDF HAL for better maintainability and chip-specific handling. * Update Esp.cpp * Remove isFlashHighPerformanceModeEnabled function Removed isFlashHighPerformanceModeEnabled function declaration. * Remove HPM Mode check from debug report Removed check for High Performance Mode in chip debug report. * Improve getFlashClockDivider documentation and logic Enhanced the documentation for the getFlashClockDivider function and added handling for modern chips using the SPIMEM structure. * Refactor getFlashClockDivider for ESP32 target * Add includes for ESP32P4 and ESP32C5 targets * Update includes for ESP32 target configurations * Refactor includes for ESP32 chip compatibility Updated includes for modern ESP32 chips to prioritize newer spi_mem_c_struct.h. * Refactor flash chip mode handling for ESP32 variants * Update getFlashChipMode for ESP32C5 target support * Refactor getFlashClockDivider comments for clarity * Update clock handling for ESP32-C5 * SPI1 not SPI0 * c5 fix * update comments * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/Esp.cpp | 86 ++++++++++++++++++++++++++++--- cores/esp32/Esp.h | 5 ++ cores/esp32/chip-debug-report.cpp | 30 ++++------- 3 files changed, 94 insertions(+), 27 deletions(-) diff --git a/cores/esp32/Esp.cpp b/cores/esp32/Esp.cpp index 061404977f9..5f5a7a353e8 100644 --- a/cores/esp32/Esp.cpp +++ b/cores/esp32/Esp.cpp @@ -36,6 +36,22 @@ extern "C" { #include "esp_chip_info.h" #include "esp_mac.h" #include "esp_flash.h" + +// Include HAL layer for flash clock access +#include "hal/spi_flash_ll.h" +#if CONFIG_IDF_TARGET_ESP32 +#include "soc/spi_struct.h" +#else +// All modern chips (S2, S3, C2, C3, C5, C6, H2, P4) use spimem +#include "hal/spimem_flash_ll.h" +// Try to include the newer c_struct header first, fall back to regular struct +#if __has_include("soc/spi_mem_c_struct.h") +#include "soc/spi_mem_c_struct.h" +#else +#include "soc/spi_mem_struct.h" +#endif +#endif + #ifdef ESP_IDF_VERSION_MAJOR // IDF 4+ #if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4 #include "esp32/rom/spi_flash.h" @@ -348,17 +364,13 @@ uint32_t EspClass::getFlashChipSpeed(void) { return magicFlashChipSpeed(fhdr.spi_speed); } -// FIXME for P4 -#if !defined(CONFIG_IDF_TARGET_ESP32P4) FlashMode_t EspClass::getFlashChipMode(void) { -#if CONFIG_IDF_TARGET_ESP32S2 +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32P4 || CONFIG_IDF_TARGET_ESP32C5 uint32_t spi_ctrl = REG_READ(PERIPHS_SPI_FLASH_CTRL); -#else -#if CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 +#elif CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6 uint32_t spi_ctrl = REG_READ(DR_REG_SPI0_BASE + 0x8); #else uint32_t spi_ctrl = REG_READ(SPI_CTRL_REG(0)); -#endif #endif /* Not all of the following constants are already defined in older versions of spi_reg.h, so do it manually for now*/ if (spi_ctrl & BIT(24)) { //SPI_FREAD_QIO @@ -374,9 +386,7 @@ FlashMode_t EspClass::getFlashChipMode(void) { } else { return (FM_SLOW_READ); } - return (FM_DOUT); } -#endif // if !defined(CONFIG_IDF_TARGET_ESP32P4) uint32_t EspClass::magicFlashChipSize(uint8_t flashByte) { /* @@ -516,3 +526,63 @@ uint64_t EspClass::getEfuseMac(void) { esp_efuse_mac_get_default((uint8_t *)(&_chipmacid)); return _chipmacid; } + +// ============================================================================ +// Flash Frequency Runtime Detection +// ============================================================================ + +/** + * @brief Read the source clock frequency using ESP-IDF HAL functions + * @return Source clock frequency in MHz (80, 120, 160, or 240) + */ +uint8_t EspClass::getFlashSourceFrequencyMHz(void) { +#if CONFIG_IDF_TARGET_ESP32 + // ESP32: Use HAL function + return spi_flash_ll_get_source_clock_freq_mhz(0); // host_id = 0 for SPI0 +#else + // All modern MCUs: Use spimem HAL function + return spimem_flash_ll_get_source_freq_mhz(); +#endif +} + +/** + * @brief Read the clock divider from hardware using HAL structures + * Based on ESP-IDF HAL implementation: + * - ESP32: Uses SPI1.clock (typedef in spi_flash_ll.h) + * - All newer MCUs: Use SPIMEM1.clock (typedef in spimem_flash_ll.h) + * @return Clock divider value (1 = no division, 2 = divide by 2, etc.) + */ +uint8_t EspClass::getFlashClockDivider(void) { +#if CONFIG_IDF_TARGET_ESP32 + // ESP32: Flash uses SPI1 + // See: line 52: esp-idf/components/hal/esp32/include/hal/spi_flash_ll.h + if (SPI1.clock.clk_equ_sysclk) { + return 1; // 1:1 clock + } + return SPI1.clock.clkcnt_n + 1; +#else + // All newer MCUs: Flash uses SPIMEM1 + // See: esp-idf/components/hal/esp32*/include/hal/spimem_flash_ll.h + // Example S3: line 38: typedef typeof(SPIMEM1.clock.val) spimem_flash_ll_clock_reg_t; + // Example C5: lines 97-99: esp-idf/components/soc/esp32c5/mp/include/soc/spi_mem_struct.h + if (SPIMEM1.clock.clk_equ_sysclk) { + return 1; // 1:1 clock + } + return SPIMEM1.clock.clkcnt_n + 1; +#endif +} + +/** + * @brief Get the actual flash frequency in MHz + * @return Flash frequency in MHz (80, 120, 160, or 240) + */ +uint32_t EspClass::getFlashFrequencyMHz(void) { + uint8_t source = getFlashSourceFrequencyMHz(); + uint8_t divider = getFlashClockDivider(); + + if (divider == 0) { + divider = 1; // Safety check + } + + return source / divider; +} diff --git a/cores/esp32/Esp.h b/cores/esp32/Esp.h index 0b496c91c1b..7d5266f7b1a 100644 --- a/cores/esp32/Esp.h +++ b/cores/esp32/Esp.h @@ -92,6 +92,11 @@ class EspClass { uint32_t getFlashChipSpeed(); FlashMode_t getFlashChipMode(); + // Flash frequency runtime detection + uint32_t getFlashFrequencyMHz(); + uint8_t getFlashSourceFrequencyMHz(); + uint8_t getFlashClockDivider(); + uint32_t magicFlashChipSize(uint8_t flashByte); uint32_t magicFlashChipSpeed(uint8_t flashByte); FlashMode_t magicFlashChipMode(uint8_t flashByte); diff --git a/cores/esp32/chip-debug-report.cpp b/cores/esp32/chip-debug-report.cpp index 8592031ee3f..753e7346775 100644 --- a/cores/esp32/chip-debug-report.cpp +++ b/cores/esp32/chip-debug-report.cpp @@ -9,6 +9,7 @@ #include "soc/efuse_reg.h" #include "soc/rtc.h" #include "soc/spi_reg.h" +#include "soc/soc.h" #if CONFIG_IDF_TARGET_ESP32S2 #include "esp32s2/rom/spi_flash.h" #endif @@ -16,6 +17,7 @@ #include "Arduino.h" #include "esp32-hal-periman.h" +#include "chip-debug-report.h" #define chip_report_printf log_printf @@ -138,25 +140,15 @@ static void printFlashInfo(void) { chip_report_printf(" Block Size : %8lu B (%6.1f KB)\n", g_rom_flashchip.block_size, b2kb(g_rom_flashchip.block_size)); chip_report_printf(" Sector Size : %8lu B (%6.1f KB)\n", g_rom_flashchip.sector_size, b2kb(g_rom_flashchip.sector_size)); chip_report_printf(" Page Size : %8lu B (%6.1f KB)\n", g_rom_flashchip.page_size, b2kb(g_rom_flashchip.page_size)); - esp_image_header_t fhdr; - esp_flash_read(esp_flash_default_chip, (void *)&fhdr, ESP_FLASH_IMAGE_BASE, sizeof(esp_image_header_t)); - if (fhdr.magic == ESP_IMAGE_HEADER_MAGIC) { - uint32_t f_freq = 0; - switch (fhdr.spi_speed) { -#if CONFIG_IDF_TARGET_ESP32H2 - case 0x0: f_freq = 32; break; - case 0x2: f_freq = 16; break; - case 0xf: f_freq = 64; break; -#else - case 0x0: f_freq = 40; break; - case 0x1: f_freq = 26; break; - case 0x2: f_freq = 20; break; - case 0xf: f_freq = 80; break; -#endif - default: f_freq = fhdr.spi_speed; break; - } - chip_report_printf(" Bus Speed : %lu MHz\n", f_freq); - } + + // Runtime flash frequency detection from hardware registers + uint32_t actual_freq = ESP.getFlashFrequencyMHz(); + uint8_t source_freq = ESP.getFlashSourceFrequencyMHz(); + uint8_t divider = ESP.getFlashClockDivider(); + + chip_report_printf(" Bus Speed : %lu MHz\n", actual_freq); + chip_report_printf(" Flash Frequency : %lu MHz (source: %u MHz, divider: %u)\n", actual_freq, source_freq, divider); + chip_report_printf(" Bus Mode : "); #if CONFIG_ESPTOOLPY_OCT_FLASH chip_report_printf("OPI\n"); From 69e233f63578e5a2ecde4fabbdb7b467c1a2a5ea Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 8 Oct 2025 16:14:40 +0300 Subject: [PATCH 28/32] IDF release/v5.5 (#11853) * IDF release/v5.5 4b2b5d7b * IDF release/v5.5 07e9bf49 --- package/package_esp32_index.template.json | 340 +++++++++++----------- 1 file changed, 170 insertions(+), 170 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 7382af86779..77b203fc056 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -51,27 +51,27 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.5-129cd0d2-v4" + "version": "idf-release_v5.5-07e9bf49-v1" }, { "packager": "esp32", "name": "xtensa-esp-elf-gcc", - "version": "esp-14.2.0_20241119" + "version": "esp-14.2.0_20250730" }, { "packager": "esp32", "name": "xtensa-esp-elf-gdb", - "version": "16.2_20250324" + "version": "16.3_20250913" }, { "packager": "esp32", "name": "riscv32-esp-elf-gcc", - "version": "esp-14.2.0_20241119" + "version": "esp-14.2.0_20250730" }, { "packager": "esp32", "name": "riscv32-esp-elf-gdb", - "version": "16.2_20250324" + "version": "16.3_20250913" }, { "packager": "esp32", @@ -104,311 +104,311 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.5-129cd0d2-v4", + "version": "idf-release_v5.5-07e9bf49-v1", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-129cd0d2-v4.zip", - "checksum": "SHA-256:be9402929176a556007fea48db7bb79da431614a2e153c54f92c8314f6ccd099", - "size": "446164326" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.5/esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.5-07e9bf49-v1.zip", + "checksum": "SHA-256:e5ae9e62d781df941128a526e653bb82decde844604b5ccee62efd12c6b2eaa6", + "size": "448900656" } ] }, { "name": "xtensa-esp-elf-gcc", - "version": "esp-14.2.0_20241119", + "version": "esp-14.2.0_20250730", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-x86_64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:b1859df334a85541ae746e1b86439f59180d87f8cf1cc04c2e770fadf9f006e9", - "size": "323678089" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-x86_64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2031cbec81edf5f863afcaba44ce8d05d2a570c48ad514f0d43be7f9419198d8", + "size": "326342823" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-aarch64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:7ff023033a5c00e55b9fc0a0b26d18fb0e476c24e24c5b0459bcb2e05a3729f1", - "size": "320064691" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-aarch64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:0ac7087a07b554477f66043b6cd81189b3b15d89d51dc08767b1af469f3dd532", + "size": "322745855" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-arm-linux-gnueabi.tar.gz", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:bb11dbf3ed25d4e0cc9e938749519e8236cfa2609e85742d311f1d869111805a", - "size": "319454139" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-arm-linux-gnueabi.tar.gz", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:8a64d968832a3ede4481fcec8140968384942c52f817c4af347401ef024b52a5", + "size": "322129706" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-i586-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-i586-linux-gnu.tar.gz", - "checksum": "SHA-256:5ac611dca62ec791d413d1f417d566c444b006d2a4f97bd749b15f782d87249b", - "size": "328335914" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-i586-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:a9e3b5f516a00b6b580c7c7bb983e536ea76fb39cac1cbc3d0e632c9f790c71c", + "size": "330989568" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-x86_64-apple-darwin_signed.tar.gz", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-x86_64-apple-darwin_signed.tar.gz", - "checksum": "SHA-256:15b3e60362028eaeff9156dc82dac3f1436b4aeef3920b28d7650974d8c34751", - "size": "336215844" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-x86_64-apple-darwin.tar.gz", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-x86_64-apple-darwin.tar.gz", + "checksum": "SHA-256:7f6e9273b0c2330869f847dd6a12c7a95eda572de5f58bd5dc4550869395e01f", + "size": "338869041" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-aarch64-apple-darwin_signed.tar.gz", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-aarch64-apple-darwin_signed.tar.gz", - "checksum": "SHA-256:45c475518735133789bacccad31f872318b7ecc0b31cc9b7924aad880034f0bf", - "size": "318797396" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-aarch64-apple-darwin.tar.gz", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-aarch64-apple-darwin.tar.gz", + "checksum": "SHA-256:8ce30a1b662dc0d57266146c2a144cb8238761fe8b118c0610ff19533dd35d78", + "size": "321443711" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip", - "checksum": "SHA-256:b30e450e0af279783c54a9ae77c3b367dd556b78eda930a92ec7b784a74c28c8", - "size": "382457717" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-i686-w64-mingw32.zip", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-i686-w64-mingw32.zip", + "checksum": "SHA-256:77020244927a0deaabb650ea1c56ee1d355ca9fdad78d0f53b1a80075ecabcba", + "size": "391479409" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-x86_64-w64-mingw32.zip", - "archiveFileName": "xtensa-esp-elf-14.2.0_20241119-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:62ae704777d73c30689efff6e81178632a1ca44d1a2d60f4621eb997e040e028", - "size": "386316009" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-x86_64-w64-mingw32.zip", + "archiveFileName": "xtensa-esp-elf-14.2.0_20250730-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:9ce39218884cfbf428f9f6b1cb6afd9341e327f5e1a8d1d0369c21ae6e3b0828", + "size": "396050234" } ] }, { "name": "xtensa-esp-elf-gdb", - "version": "16.2_20250324", + "version": "16.3_20250913", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-x86_64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:27b58ab12248e04277c4fdc74038cf0a001d5142df091ab94939ad35053738fd", - "size": "36361058" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-x86_64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:16d05c9104ff84529ac3799abb04d5666c193131ab461f153040721728b48730", + "size": "36396804" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-aarch64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:24f85aa778e1605098a13ff7bd29d5760767faf012705c8915cb08b32cad0206", - "size": "35442104" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-aarch64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:ecbd53ba28cf24301be8260249bfcfb60567f938f4402797617c8a0fc170dc7d", + "size": "35457879" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-arm-linux-gnueabi.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:c73e43038b6d50374cd0ee714370ce748189e0b00404d581babd2bb0115c4785", - "size": "31260410" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-arm-linux-gnueabi.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:c0895e88797089fd6b16e1cb986c5c85a880e0e8dc03bde1016c7771bc10ddba", + "size": "31288407" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-i586-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-i586-linux-gnu.tar.gz", - "checksum": "SHA-256:dc7b8aad0fb1c6a1abfdb8dff4f08221ea08a0f28fb837f181969ac1174d4dc6", - "size": "35067894" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-i586-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:64ffefb7625edae77a03a13fd9bd07db088dec9d145eb1124de66f11510f7558", + "size": "35094067" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-x86_64-apple-darwin21.1.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-x86_64-apple-darwin21.1.tar.gz", - "checksum": "SHA-256:398c429cfe696bad01d636c5488cadc87b20471c1b5ed02c60eee5ef2a775c93", - "size": "54992785" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-x86_64-apple-darwin24.5.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-x86_64-apple-darwin24.5.tar.gz", + "checksum": "SHA-256:8341493abc87e6ae468f4eda16c768b2ddb20c98336e1c491a3801ad823680ae", + "size": "45646032" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-aarch64-apple-darwin21.1.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-aarch64-apple-darwin21.1.tar.gz", - "checksum": "SHA-256:b6d85c0d76d653bb55f9d06b0cd509eab7e99db541c88b8c849c64827e9d74a9", - "size": "43538967" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-aarch64-apple-darwin24.5.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-aarch64-apple-darwin24.5.tar.gz", + "checksum": "SHA-256:251e3be9c9436d9ab7fee6c05519fd816a05e63bd47495e24ea4e354881a851c", + "size": "39809369" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-i686-w64-mingw32.zip", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-i686-w64-mingw32.zip", - "checksum": "SHA-256:f748d6b65fdf66733b82e12d0d85a05e3134122416280379df129cfebe2aa4b2", - "size": "32189419" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-i686-w64-mingw32.zip", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-i686-w64-mingw32.zip", + "checksum": "SHA-256:8fc9fa6a934523b6ad6e787cf1664d48496bae456fd85ea7589e3684ce3bbbe5", + "size": "32824604" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-x86_64-w64-mingw32.zip", - "archiveFileName": "xtensa-esp-elf-gdb-16.2_20250324-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:e970fc3ec8a1d0acee2432e91e0a01b348613a0425aacfa981b2fc505fe920cc", - "size": "32290997" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-x86_64-w64-mingw32.zip", + "archiveFileName": "xtensa-esp-elf-gdb-16.3_20250913-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:99a2243b9a75bbac95a672cc3ab4b36013429ab5b4583e7a28339e3015a3fdfa", + "size": "33835839" } ] }, { "name": "riscv32-esp-elf-gcc", - "version": "esp-14.2.0_20241119", + "version": "esp-14.2.0_20250730", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-x86_64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:a16942465d33c7f0334c16e83bc6feb62e06eeb79cf19099293480bb8d48c0cd", - "size": "593721156" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-x86_64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:05b3fe041866c2bee400c3a5bc591beb710795aee3bab63b7c95e2e47f1f4cf4", + "size": "596288860" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-aarch64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:22486233d0e0fd58a54ae453b701f195f1432fc6f2e17085b9d6c8d5d9acefb7", - "size": "587879927" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-aarch64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:e1c63b7dc9348af0a642b1694a7f5b83fdb08ad1fb4ec0742f52864eddfe0573", + "size": "590413157" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-arm-linux-gnueabi.tar.gz", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:27a72d5d96cdb56dae2a1da5dfde1717c18a8c1f9a1454c8e34a8bd34abe662d", - "size": "586531522" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-arm-linux-gnueabi.tar.gz", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:433a232e515a75f9155ab50900cfeb25f6522f40faf9e24a0126d67448e31784", + "size": "589108924" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-i586-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-i586-linux-gnu.tar.gz", - "checksum": "SHA-256:b7bd6e4cd53a4c55831d48e96a3d500bfffb091bec84a30bc8c3ad687e3eb3a2", - "size": "597070471" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-i586-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:b28e95b39f64e485da4cb9e2c93904cefeb46ce17390cfe8844cbd96354921d4", + "size": "599653621" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-x86_64-apple-darwin_signed.tar.gz", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-x86_64-apple-darwin_signed.tar.gz", - "checksum": "SHA-256:5f8b571e1aedbe9f856f3bdeca6600cd5510ccff1ca102c4f001421eda560585", - "size": "602343061" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-x86_64-apple-darwin.tar.gz", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-x86_64-apple-darwin.tar.gz", + "checksum": "SHA-256:07fc04efb5ee40c75f526761424d1e8cd1b486393b8edc1dc558a5eaa6524120", + "size": "604869144" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-aarch64-apple-darwin_signed.tar.gz", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-aarch64-apple-darwin_signed.tar.gz", - "checksum": "SHA-256:a7276042a7eb2d33c2dff7167539e445c32c07d43a2c6827e86d035642503e0b", - "size": "578521565" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-aarch64-apple-darwin.tar.gz", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-aarch64-apple-darwin.tar.gz", + "checksum": "SHA-256:654e2c0d14e8c8955a166a800af9081bd2fdad41a89c20659a20eeff6c0f287b", + "size": "581049206" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip", - "checksum": "SHA-256:54193a97bd75205678ead8d11f00b351cfa3c2a6e5ab5d966341358b9f9422d7", - "size": "672055172" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-i686-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-i686-w64-mingw32.zip", + "checksum": "SHA-256:ac8816920e0bc6c4032abc27f4962b2b2f59b231ed86e0002476196f9f1f0d35", + "size": "686131875" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-x86_64-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-14.2.0_20241119-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:24c8407fa467448d394e0639436a5ede31caf1838e35e8435e19df58ebed438c", - "size": "677812937" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-x86_64-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-14.2.0_20250730-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:a41e5219f0ff66cde3da3ac096b55d60fef4a1fb746590893c4c47f5437f192a", + "size": "692761883" } ] }, { "name": "riscv32-esp-elf-gdb", - "version": "16.2_20250324", + "version": "16.3_20250913", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-x86_64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:f9b172d8d72d0a1e2b0b80127df29263a0cb0d0c4e998e09c27031bfac09f3ec", - "size": "36528201" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-x86_64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:4e3cf8b7d11c7a2d1b50f40b1c50c0671dfe7eb13782c27c8a8cfdc8548bcdd4", + "size": "36557187" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-aarch64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:68bb6a85fb58b8a738f799e8fb4fa1f56cfeffc4de803ceb03c8a33cb2cd919d", - "size": "35643464" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-aarch64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:8f1f4f24fa534c76ed9d71efffbf728cc30169e911742d7bd67dd0fdcf5f3ae3", + "size": "35664185" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-arm-linux-gnueabi.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:673038ab9fb2b7391ff9252824194e3b9e40668efe9ce54d1e582a9d6c51f04a", - "size": "32154574" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-arm-linux-gnueabi.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:ac4fc85e3daf190b21598ec468933dc2659033580715560f45827da25e15b285", + "size": "32183532" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-i586-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-i586-linux-gnu.tar.gz", - "checksum": "SHA-256:62f05d5fe08145b25e423dd0b3f1ae260be99abf5462b8cfd918bf2231e26e30", - "size": "35410891" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-i586-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:905dcd78558d7d559a95dc1eacc4572ea908be4ae6b1c937ea63a98df4482ca9", + "size": "35438945" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-x86_64-apple-darwin21.1.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-x86_64-apple-darwin21.1.tar.gz", - "checksum": "SHA-256:63ae12cfbab648e2d2ca7a700a0c615c4f36a6fbe6876c11ba108115ee0d60f2", - "size": "55359246" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-x86_64-apple-darwin24.5.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-x86_64-apple-darwin24.5.tar.gz", + "checksum": "SHA-256:2d5e5efead0b189e13cfe2670ca9d6d5965378ef3632d0b163a14f2f0536c274", + "size": "45892529" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-aarch64-apple-darwin21.1.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-aarch64-apple-darwin21.1.tar.gz", - "checksum": "SHA-256:bfbe49774f839020cef988537da0a06896dfe4a382674c62285361ed9bd4aee3", - "size": "43926592" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-aarch64-apple-darwin24.5.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-aarch64-apple-darwin24.5.tar.gz", + "checksum": "SHA-256:92771492084746fd22521c7c5b52bf1ed6dd86ef3cafe60e771bbdb4f0943f5a", + "size": "40145407" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-i686-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-i686-w64-mingw32.zip", - "checksum": "SHA-256:e8b84eec990ff514729b3770edf2b543f36670f43663ce0c3b624fb4884812ca", - "size": "32914955" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-i686-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-i686-w64-mingw32.zip", + "checksum": "SHA-256:c6a36c469d3b76e2b442be207814f7c3f71f21faf6faab4dd33fdedd56d89c01", + "size": "33531234" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-x86_64-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-gdb-16.2_20250324-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:37c79178900c19ca7487c26af4b5ad6b0d3f34683bd0e9c2ddd39038c999e429", - "size": "32667353" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-x86_64-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-gdb-16.3_20250913-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:32e79cb43b40f3b256193139b1fefd2782e3eaf82ee317b757ec8ba18b35159d", + "size": "34196400" } ] }, From 43c079fc58f9aa530610405b1ba8c586151e26bc Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:38:51 -0300 Subject: [PATCH 29/32] fix(ota): Fix authentication when using stored MD5 hashes (#11905) * fix(ota): Fix authentication when using stored MD5 hashes * change(tools): Push generated binaries to PR * fix(ota): Re-send invitation on failure * change(tools): Push generated binaries to PR * Potential fix for code scanning alert no. 503: Use of a broken or weak cryptographic hashing algorithm on sensitive data Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * change(tools): Push generated binaries to PR * fix message * change(tools): Push generated binaries to PR * Add errors for setPasswordHash * fix compilation error * ci(pre-commit): Apply automatic fixes * change(tools): Push generated binaries to PR * fix pre-commit errors * change(tools): Push generated binaries to PR --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/HEXBuilder.cpp | 14 ++ cores/esp32/HEXBuilder.h | 3 + libraries/ArduinoOTA/src/ArduinoOTA.cpp | 21 +++ tools/espota.exe | Bin 6086960 -> 6089960 bytes tools/espota.py | 211 ++++++++++++++++++------ 5 files changed, 199 insertions(+), 50 deletions(-) diff --git a/cores/esp32/HEXBuilder.cpp b/cores/esp32/HEXBuilder.cpp index 4298ad65d6a..52c53feafa8 100644 --- a/cores/esp32/HEXBuilder.cpp +++ b/cores/esp32/HEXBuilder.cpp @@ -18,6 +18,7 @@ */ #include "HEXBuilder.h" +#include static uint8_t hex_char_to_byte(uint8_t c) { return (c >= 'a' && c <= 'f') ? (c - ((uint8_t)'a' - 0xa)) @@ -26,6 +27,19 @@ static uint8_t hex_char_to_byte(uint8_t c) { : 0x10; // unknown char is 16 } +bool HEXBuilder::isHexString(const char *str, size_t len) { + for (size_t i = 0; i < len; i++) { + if (isxdigit(str[i]) == 0) { + return false; + } + } + return true; +} + +bool HEXBuilder::isHexString(String str) { + return isHexString(str.c_str(), str.length()); +} + size_t HEXBuilder::hex2bytes(unsigned char *out, size_t maxlen, String &in) { return hex2bytes(out, maxlen, in.c_str()); } diff --git a/cores/esp32/HEXBuilder.h b/cores/esp32/HEXBuilder.h index c5b8a8a88f4..dc977c938c3 100644 --- a/cores/esp32/HEXBuilder.h +++ b/cores/esp32/HEXBuilder.h @@ -32,5 +32,8 @@ class HEXBuilder { static String bytes2hex(const unsigned char *in, size_t len); static size_t bytes2hex(char *out, size_t maxlen, const unsigned char *in, size_t len); + + static bool isHexString(const char *str, size_t len); + static bool isHexString(String str); }; #endif diff --git a/libraries/ArduinoOTA/src/ArduinoOTA.cpp b/libraries/ArduinoOTA/src/ArduinoOTA.cpp index c5214171012..a5b0d09de58 100644 --- a/libraries/ArduinoOTA/src/ArduinoOTA.cpp +++ b/libraries/ArduinoOTA/src/ArduinoOTA.cpp @@ -19,6 +19,7 @@ #include "ArduinoOTA.h" #include "NetworkClient.h" #include "ESPmDNS.h" +#include "HEXBuilder.h" #include "SHA2Builder.h" #include "PBKDF2_HMACBuilder.h" #include "Update.h" @@ -86,6 +87,26 @@ ArduinoOTAClass &ArduinoOTAClass::setPassword(const char *password) { ArduinoOTAClass &ArduinoOTAClass::setPasswordHash(const char *password) { if (_state == OTA_IDLE && password) { + size_t len = strlen(password); + bool is_hex = HEXBuilder::isHexString(password, len); + + if (!is_hex) { + log_e("Invalid password hash. Expected hex string (0-9, a-f, A-F)."); + return *this; + } + + if (len == 32) { + // Warn if MD5 hash is detected (32 hex characters) + log_w("MD5 password hash detected. MD5 is deprecated and insecure."); + log_w("Please use setPassword() with plain text or setPasswordHash() with SHA256 hash (64 chars)."); + log_w("To generate SHA256: echo -n 'yourpassword' | sha256sum"); + } else if (len == 64) { + log_i("Using SHA256 password hash."); + } else { + log_e("Invalid password hash length. Expected 32 (deprecated MD5) or 64 (SHA256) characters."); + return *this; + } + // Store the pre-hashed password directly _password.clear(); _password = password; diff --git a/tools/espota.exe b/tools/espota.exe index 957b1c0311503f43b35022e2d09f1d25b5be3a61..2748d038100975cf7775235dd2d811fd9856fd0f 100644 GIT binary patch delta 249271 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

=rK44K?Lyu?L-H< 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 delta 246480 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%0APc)SPhj`C{`KAqr<&l!@Jus? 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%0ALT;YUC1)bG2h$XNa7t1-mpmX4u3(c91W}Sj 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%0D^@6k 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 Date: Wed, 8 Oct 2025 13:13:57 -0300 Subject: [PATCH 30/32] change(version): Update core version to 3.3.2 --- .github/ISSUE_TEMPLATE/Issue-report.yml | 1 + .gitlab/workflows/common.yml | 2 +- cores/esp32/esp_arduino_version.h | 2 +- docs/conf_common.py | 2 +- libraries/ArduinoOTA/library.properties | 2 +- libraries/AsyncUDP/library.properties | 2 +- libraries/BLE/library.properties | 2 +- libraries/BluetoothSerial/library.properties | 2 +- libraries/DNSServer/library.properties | 2 +- libraries/EEPROM/library.properties | 2 +- libraries/ESP32/library.properties | 2 +- libraries/ESP_I2S/library.properties | 2 +- libraries/ESP_NOW/library.properties | 2 +- libraries/ESP_SR/library.properties | 2 +- libraries/ESPmDNS/library.properties | 2 +- libraries/Ethernet/library.properties | 2 +- libraries/FFat/library.properties | 2 +- libraries/FS/library.properties | 2 +- libraries/HTTPClient/library.properties | 2 +- libraries/HTTPUpdate/library.properties | 2 +- libraries/HTTPUpdateServer/library.properties | 2 +- libraries/Hash/library.properties | 2 +- libraries/Insights/library.properties | 2 +- libraries/LittleFS/library.properties | 2 +- libraries/Matter/library.properties | 2 +- libraries/NetBIOS/library.properties | 2 +- libraries/Network/library.properties | 2 +- libraries/NetworkClientSecure/library.properties | 2 +- libraries/OpenThread/library.properties | 2 +- libraries/PPP/library.properties | 2 +- libraries/Preferences/library.properties | 2 +- libraries/RainMaker/library.properties | 2 +- libraries/SD/library.properties | 2 +- libraries/SD_MMC/library.properties | 2 +- libraries/SPI/library.properties | 2 +- libraries/SPIFFS/library.properties | 2 +- libraries/SimpleBLE/library.properties | 2 +- libraries/TFLiteMicro/library.properties | 2 +- libraries/Ticker/library.properties | 2 +- libraries/USB/library.properties | 2 +- libraries/Update/library.properties | 2 +- libraries/WebServer/library.properties | 2 +- libraries/WiFi/library.properties | 2 +- libraries/WiFiProv/library.properties | 2 +- libraries/Wire/library.properties | 2 +- libraries/Zigbee/library.properties | 2 +- package.json | 2 +- platform.txt | 2 +- 48 files changed, 48 insertions(+), 47 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Issue-report.yml b/.github/ISSUE_TEMPLATE/Issue-report.yml index 4ff0f87c435..af97de73644 100644 --- a/.github/ISSUE_TEMPLATE/Issue-report.yml +++ b/.github/ISSUE_TEMPLATE/Issue-report.yml @@ -43,6 +43,7 @@ body: - latest stable Release (if not listed below) - latest development Release Candidate (RC-X) - latest master (checkout manually) + - v3.3.2 - v3.3.1 - v3.3.0 - v3.2.1 diff --git a/.gitlab/workflows/common.yml b/.gitlab/workflows/common.yml index debdfaf252c..5702954e9e9 100644 --- a/.gitlab/workflows/common.yml +++ b/.gitlab/workflows/common.yml @@ -13,7 +13,7 @@ stages: variables: ESP_IDF_VERSION: "5.5" - ESP_ARDUINO_VERSION: "3.3.1" + ESP_ARDUINO_VERSION: "3.3.2" ############# # `default` # diff --git a/cores/esp32/esp_arduino_version.h b/cores/esp32/esp_arduino_version.h index 4f03cd500b1..20cb911956d 100644 --- a/cores/esp32/esp_arduino_version.h +++ b/cores/esp32/esp_arduino_version.h @@ -23,7 +23,7 @@ extern "C" { /** Minor version number (x.X.x) */ #define ESP_ARDUINO_VERSION_MINOR 3 /** Patch version number (x.x.X) */ -#define ESP_ARDUINO_VERSION_PATCH 1 +#define ESP_ARDUINO_VERSION_PATCH 2 /** * Macro to convert ARDUINO version number into an integer diff --git a/docs/conf_common.py b/docs/conf_common.py index 45937027fb8..1ef2e5ee2e6 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -4,7 +4,7 @@ # Used for substituting variables in the documentation rst_prolog = """ -.. |version| replace:: 3.3.1 +.. |version| replace:: 3.3.2 .. |idf_version| replace:: 5.5 """ diff --git a/libraries/ArduinoOTA/library.properties b/libraries/ArduinoOTA/library.properties index 22059842e13..c4e5ff88a65 100644 --- a/libraries/ArduinoOTA/library.properties +++ b/libraries/ArduinoOTA/library.properties @@ -1,5 +1,5 @@ name=ArduinoOTA -version=3.3.1 +version=3.3.2 author=Ivan Grokhotkov and Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables Over The Air upgrades, via wifi and espota.py UDP request/TCP download. diff --git a/libraries/AsyncUDP/library.properties b/libraries/AsyncUDP/library.properties index 2332d43cf9d..24b48d2e4de 100644 --- a/libraries/AsyncUDP/library.properties +++ b/libraries/AsyncUDP/library.properties @@ -1,5 +1,5 @@ name=ESP32 Async UDP -version=3.3.1 +version=3.3.2 author=Me-No-Dev maintainer=Me-No-Dev sentence=Async UDP Library for ESP32 diff --git a/libraries/BLE/library.properties b/libraries/BLE/library.properties index 3c8291a88c1..730ab0ea315 100644 --- a/libraries/BLE/library.properties +++ b/libraries/BLE/library.properties @@ -1,5 +1,5 @@ name=BLE -version=3.3.1 +version=3.3.2 author=Neil Kolban maintainer=lucasssvaz sentence=BLE functions for ESP32 diff --git a/libraries/BluetoothSerial/library.properties b/libraries/BluetoothSerial/library.properties index 99b4dfad957..3ced43c52ea 100644 --- a/libraries/BluetoothSerial/library.properties +++ b/libraries/BluetoothSerial/library.properties @@ -1,5 +1,5 @@ name=BluetoothSerial -version=3.3.1 +version=3.3.2 author=Evandro Copercini maintainer=Evandro Copercini sentence=Simple UART to Classical Bluetooth bridge for ESP32 diff --git a/libraries/DNSServer/library.properties b/libraries/DNSServer/library.properties index aa6672baa60..e30f5a39555 100644 --- a/libraries/DNSServer/library.properties +++ b/libraries/DNSServer/library.properties @@ -1,5 +1,5 @@ name=DNSServer -version=3.3.1 +version=3.3.2 author=Kristijan Novoselić maintainer=Kristijan Novoselić, sentence=A simple DNS server for ESP32. diff --git a/libraries/EEPROM/library.properties b/libraries/EEPROM/library.properties index 72403037ca4..e6728c5d808 100644 --- a/libraries/EEPROM/library.properties +++ b/libraries/EEPROM/library.properties @@ -1,5 +1,5 @@ name=EEPROM -version=3.3.1 +version=3.3.2 author=Ivan Grokhotkov maintainer=Paolo Becchi sentence=Enables reading and writing data a sequential, addressable FLASH storage diff --git a/libraries/ESP32/library.properties b/libraries/ESP32/library.properties index 1b7b8152a29..864c315224b 100644 --- a/libraries/ESP32/library.properties +++ b/libraries/ESP32/library.properties @@ -1,5 +1,5 @@ name=ESP32 -version=3.3.1 +version=3.3.2 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 sketches examples diff --git a/libraries/ESP_I2S/library.properties b/libraries/ESP_I2S/library.properties index b780838d6aa..7145fb7dccd 100644 --- a/libraries/ESP_I2S/library.properties +++ b/libraries/ESP_I2S/library.properties @@ -1,5 +1,5 @@ name=ESP_I2S -version=3.3.1 +version=3.3.2 author=me-no-dev maintainer=me-no-dev sentence=Library for ESP I2S communication diff --git a/libraries/ESP_NOW/library.properties b/libraries/ESP_NOW/library.properties index 3fa4982f055..a1868930307 100644 --- a/libraries/ESP_NOW/library.properties +++ b/libraries/ESP_NOW/library.properties @@ -1,5 +1,5 @@ name=ESP_NOW -version=3.3.1 +version=3.3.2 author=me-no-dev maintainer=P-R-O-C-H-Y sentence=Library for ESP_NOW diff --git a/libraries/ESP_SR/library.properties b/libraries/ESP_SR/library.properties index e0cc31d1209..b39120f015d 100644 --- a/libraries/ESP_SR/library.properties +++ b/libraries/ESP_SR/library.properties @@ -1,5 +1,5 @@ name=ESP_SR -version=3.3.1 +version=3.3.2 author=me-no-dev maintainer=me-no-dev sentence=Library for ESP Sound Recognition diff --git a/libraries/ESPmDNS/library.properties b/libraries/ESPmDNS/library.properties index 2fd581224e3..4d0f1d4eef9 100644 --- a/libraries/ESPmDNS/library.properties +++ b/libraries/ESPmDNS/library.properties @@ -1,5 +1,5 @@ name=ESPmDNS -version=3.3.1 +version=3.3.2 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 mDNS Library diff --git a/libraries/Ethernet/library.properties b/libraries/Ethernet/library.properties index 54cc62fd869..a9bff23f7f1 100644 --- a/libraries/Ethernet/library.properties +++ b/libraries/Ethernet/library.properties @@ -1,5 +1,5 @@ name=Ethernet -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection (local and Internet) using the ESP32 Ethernet. diff --git a/libraries/FFat/library.properties b/libraries/FFat/library.properties index 0e52dc07a43..a94339dc87e 100644 --- a/libraries/FFat/library.properties +++ b/libraries/FFat/library.properties @@ -1,5 +1,5 @@ name=FFat -version=3.3.1 +version=3.3.2 author=Hristo Gochkov, Ivan Grokhtkov, Larry Bernstone maintainer=Hristo Gochkov sentence=ESP32 FAT on Flash File System diff --git a/libraries/FS/library.properties b/libraries/FS/library.properties index 44a64eb8389..8dac5fc3235 100644 --- a/libraries/FS/library.properties +++ b/libraries/FS/library.properties @@ -1,5 +1,5 @@ name=FS -version=3.3.1 +version=3.3.2 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 File System diff --git a/libraries/HTTPClient/library.properties b/libraries/HTTPClient/library.properties index 6456a38e66e..79717c13b37 100644 --- a/libraries/HTTPClient/library.properties +++ b/libraries/HTTPClient/library.properties @@ -1,5 +1,5 @@ name=HTTPClient -version=3.3.1 +version=3.3.2 author=Markus Sattler maintainer=Markus Sattler sentence=HTTP Client for ESP32 diff --git a/libraries/HTTPUpdate/library.properties b/libraries/HTTPUpdate/library.properties index 1d5d9a7d416..c61ceee9fac 100644 --- a/libraries/HTTPUpdate/library.properties +++ b/libraries/HTTPUpdate/library.properties @@ -1,5 +1,5 @@ name=HTTPUpdate -version=3.3.1 +version=3.3.2 author=Markus Sattler maintainer=Markus Sattler sentence=Http Update for ESP32 diff --git a/libraries/HTTPUpdateServer/library.properties b/libraries/HTTPUpdateServer/library.properties index 170ffdbbc58..e391d05ae91 100644 --- a/libraries/HTTPUpdateServer/library.properties +++ b/libraries/HTTPUpdateServer/library.properties @@ -1,5 +1,5 @@ name=HTTPUpdateServer -version=3.3.1 +version=3.3.2 author=Hristo Kapanakov maintainer= sentence=Simple HTTP Update server based on the WebServer diff --git a/libraries/Hash/library.properties b/libraries/Hash/library.properties index f70127eecff..6e7ed56919c 100644 --- a/libraries/Hash/library.properties +++ b/libraries/Hash/library.properties @@ -1,5 +1,5 @@ name=Hash -version=3.3.1 +version=3.3.2 author=lucasssvaz maintainer=lucasssvaz sentence=Bundle of hashing functions for the ESP32 diff --git a/libraries/Insights/library.properties b/libraries/Insights/library.properties index aaf3c451f17..24904296fe8 100644 --- a/libraries/Insights/library.properties +++ b/libraries/Insights/library.properties @@ -1,5 +1,5 @@ name=ESP Insights -version=3.3.1 +version=3.3.2 author=Sanket Wadekar maintainer=Sanket Wadekar sentence=ESP Insights diff --git a/libraries/LittleFS/library.properties b/libraries/LittleFS/library.properties index 0e4c22fb765..e94daaa9602 100644 --- a/libraries/LittleFS/library.properties +++ b/libraries/LittleFS/library.properties @@ -1,5 +1,5 @@ name=LittleFS -version=3.3.1 +version=3.3.2 author= maintainer= sentence=LittleFS for esp32 diff --git a/libraries/Matter/library.properties b/libraries/Matter/library.properties index 92946866d94..522e777f852 100644 --- a/libraries/Matter/library.properties +++ b/libraries/Matter/library.properties @@ -1,5 +1,5 @@ name=Matter -version=3.3.1 +version=3.3.2 author=Rodrigo Garcia | GitHub @SuGlider maintainer=Rodrigo Garcia sentence=Library for supporting Matter environment on ESP32. diff --git a/libraries/NetBIOS/library.properties b/libraries/NetBIOS/library.properties index 522d930c685..7a28a36e016 100644 --- a/libraries/NetBIOS/library.properties +++ b/libraries/NetBIOS/library.properties @@ -1,5 +1,5 @@ name=NetBIOS -version=3.3.1 +version=3.3.2 author=Pablo@xpablo.cz maintainer=Hristo Gochkov sentence=Enables NBNS (NetBIOS) name resolution. diff --git a/libraries/Network/library.properties b/libraries/Network/library.properties index cac1b8357a3..5c848a0fcc1 100644 --- a/libraries/Network/library.properties +++ b/libraries/Network/library.properties @@ -1,5 +1,5 @@ name=Networking -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=General network management library. diff --git a/libraries/NetworkClientSecure/library.properties b/libraries/NetworkClientSecure/library.properties index ff332bf8796..8d74c2b8f37 100644 --- a/libraries/NetworkClientSecure/library.properties +++ b/libraries/NetworkClientSecure/library.properties @@ -1,5 +1,5 @@ name=NetworkClientSecure -version=3.3.1 +version=3.3.2 author=Evandro Luis Copercini maintainer=Github Community sentence=Enables secure network connection (local and Internet) using the ESP32 built-in WiFi. diff --git a/libraries/OpenThread/library.properties b/libraries/OpenThread/library.properties index 621a9145a58..147793e59d6 100644 --- a/libraries/OpenThread/library.properties +++ b/libraries/OpenThread/library.properties @@ -1,5 +1,5 @@ name=OpenThread -version=3.3.1 +version=3.3.2 author=Rodrigo Garcia | GitHub @SuGlider maintainer=Rodrigo Garcia sentence=Library for OpenThread Network on ESP32. diff --git a/libraries/PPP/library.properties b/libraries/PPP/library.properties index 4123bdfb998..eaaf349d847 100644 --- a/libraries/PPP/library.properties +++ b/libraries/PPP/library.properties @@ -1,5 +1,5 @@ name=PPP -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection using GSM Modem. diff --git a/libraries/Preferences/library.properties b/libraries/Preferences/library.properties index 60ef6797565..aa64864c7bd 100644 --- a/libraries/Preferences/library.properties +++ b/libraries/Preferences/library.properties @@ -1,5 +1,5 @@ name=Preferences -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Provides friendly access to ESP32's Non-Volatile Storage diff --git a/libraries/RainMaker/library.properties b/libraries/RainMaker/library.properties index dc0afeb0b23..580c9115cfb 100644 --- a/libraries/RainMaker/library.properties +++ b/libraries/RainMaker/library.properties @@ -1,5 +1,5 @@ name=ESP RainMaker -version=3.3.1 +version=3.3.2 author=Sweety Mhaiske maintainer=Hristo Gochkov sentence=ESP RainMaker Support diff --git a/libraries/SD/library.properties b/libraries/SD/library.properties index 523c5c5c0fe..2c5a2b6a16c 100644 --- a/libraries/SD/library.properties +++ b/libraries/SD/library.properties @@ -1,5 +1,5 @@ name=SD -version=3.3.1 +version=3.3.2 author=Arduino, SparkFun maintainer=Arduino sentence=Enables reading and writing on SD cards. For all Arduino boards. diff --git a/libraries/SD_MMC/library.properties b/libraries/SD_MMC/library.properties index 9061c1bd4f8..f7fe194e586 100644 --- a/libraries/SD_MMC/library.properties +++ b/libraries/SD_MMC/library.properties @@ -1,5 +1,5 @@ name=SD_MMC -version=3.3.1 +version=3.3.2 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 SDMMC File System diff --git a/libraries/SPI/library.properties b/libraries/SPI/library.properties index 5ea42f3779b..1e9b1aa5a5b 100644 --- a/libraries/SPI/library.properties +++ b/libraries/SPI/library.properties @@ -1,5 +1,5 @@ name=SPI -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. For all Arduino boards, BUT Arduino DUE. diff --git a/libraries/SPIFFS/library.properties b/libraries/SPIFFS/library.properties index 6c6c89d3bb6..f516aed2ee2 100644 --- a/libraries/SPIFFS/library.properties +++ b/libraries/SPIFFS/library.properties @@ -1,5 +1,5 @@ name=SPIFFS -version=3.3.1 +version=3.3.2 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 SPIFFS File System diff --git a/libraries/SimpleBLE/library.properties b/libraries/SimpleBLE/library.properties index e495c486172..b6f189bb7f0 100644 --- a/libraries/SimpleBLE/library.properties +++ b/libraries/SimpleBLE/library.properties @@ -1,5 +1,5 @@ name=SimpleBLE -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Provides really simple BLE advertizer with just on and off diff --git a/libraries/TFLiteMicro/library.properties b/libraries/TFLiteMicro/library.properties index 63f226143ef..8e5f6d95718 100644 --- a/libraries/TFLiteMicro/library.properties +++ b/libraries/TFLiteMicro/library.properties @@ -1,5 +1,5 @@ name=TFLite Micro -version=3.3.1 +version=3.3.2 author=Sanket Wadekar maintainer=Sanket Wadekar sentence=TensorFlow Lite for Microcontrollers diff --git a/libraries/Ticker/library.properties b/libraries/Ticker/library.properties index 1a59ed42598..b978f9a805e 100644 --- a/libraries/Ticker/library.properties +++ b/libraries/Ticker/library.properties @@ -1,5 +1,5 @@ name=Ticker -version=3.3.1 +version=3.3.2 author=Bert Melis maintainer=Hristo Gochkov sentence=Allows to call functions with a given interval. diff --git a/libraries/USB/library.properties b/libraries/USB/library.properties index 968dd315e75..d9229c9d7b9 100644 --- a/libraries/USB/library.properties +++ b/libraries/USB/library.properties @@ -1,5 +1,5 @@ name=USB -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=ESP32S2 USB Library diff --git a/libraries/Update/library.properties b/libraries/Update/library.properties index e74c2024165..a192318bb73 100644 --- a/libraries/Update/library.properties +++ b/libraries/Update/library.properties @@ -1,5 +1,5 @@ name=Update -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=ESP32 Sketch Update Library diff --git a/libraries/WebServer/library.properties b/libraries/WebServer/library.properties index 968c5a7e933..e89eb90221c 100644 --- a/libraries/WebServer/library.properties +++ b/libraries/WebServer/library.properties @@ -1,5 +1,5 @@ name=WebServer -version=3.3.1 +version=3.3.2 author=Ivan Grokhotkov maintainer=Ivan Grokhtkov sentence=Simple web server library diff --git a/libraries/WiFi/library.properties b/libraries/WiFi/library.properties index 362cd3b129c..9c9a267361b 100644 --- a/libraries/WiFi/library.properties +++ b/libraries/WiFi/library.properties @@ -1,5 +1,5 @@ name=WiFi -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection (local and Internet) using the ESP32 built-in WiFi. diff --git a/libraries/WiFiProv/library.properties b/libraries/WiFiProv/library.properties index 95ca3fb57a4..87bc5691201 100644 --- a/libraries/WiFiProv/library.properties +++ b/libraries/WiFiProv/library.properties @@ -1,5 +1,5 @@ name=WiFiProv -version=3.3.1 +version=3.3.2 author=Switi Mhaiske maintainer=Hristo Gochkov sentence=Enables provisioning. diff --git a/libraries/Wire/library.properties b/libraries/Wire/library.properties index 4380db94a88..c4abd55152d 100644 --- a/libraries/Wire/library.properties +++ b/libraries/Wire/library.properties @@ -1,5 +1,5 @@ name=Wire -version=3.3.1 +version=3.3.2 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For esp8266 boards. diff --git a/libraries/Zigbee/library.properties b/libraries/Zigbee/library.properties index 0267ee8dbb2..8cb401d713a 100644 --- a/libraries/Zigbee/library.properties +++ b/libraries/Zigbee/library.properties @@ -1,5 +1,5 @@ name=Zigbee -version=3.3.1 +version=3.3.2 author=P-R-O-C-H-Y maintainer=Jan Procházka sentence=Enables zigbee connection with the ESP32 diff --git a/package.json b/package.json index db45d78020e..f4b8a6824da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "framework-arduinoespressif32", - "version": "3.3.1", + "version": "3.3.2", "description": "Arduino Wiring-based Framework for the Espressif ESP32, ESP32-P4, ESP32-S and ESP32-C series of SoCs", "keywords": [ "framework", diff --git a/platform.txt b/platform.txt index 04fa390dddf..a9258e8d7a5 100644 --- a/platform.txt +++ b/platform.txt @@ -1,5 +1,5 @@ name=ESP32 Arduino -version=3.3.1 +version=3.3.2 tools.esp32-arduino-libs.path={runtime.platform.path}/tools/esp32-arduino-libs tools.esp32-arduino-libs.path.windows={runtime.platform.path}\tools\esp32-arduino-libs From 628c3e748307f552d8539f89bf462e0b9e84549b Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 8 Oct 2025 13:22:47 -0300 Subject: [PATCH 31/32] ci(release): Use PAT for pushing to master --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 267385b0bb8..acba6c54e68 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,7 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: + token: ${{ secrets.TOOLS_UPLOAD_PAT }} ref: ${{ github.event.release.target_commitish }} fetch-depth: 0 @@ -33,5 +34,5 @@ jobs: - name: Build Release env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.TOOLS_UPLOAD_PAT }} run: bash ./.github/scripts/on-release.sh From ee98cf3ca1bccebcfb9e74ed906b51983e416202 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 16:41:55 +0000 Subject: [PATCH 32/32] change(version): Update core version to 3.3.2 --- .github/ISSUE_TEMPLATE/Issue-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/Issue-report.yml b/.github/ISSUE_TEMPLATE/Issue-report.yml index af97de73644..79d8adb71bb 100644 --- a/.github/ISSUE_TEMPLATE/Issue-report.yml +++ b/.github/ISSUE_TEMPLATE/Issue-report.yml @@ -44,6 +44,7 @@ body: - latest development Release Candidate (RC-X) - latest master (checkout manually) - v3.3.2 + - v3.3.2 - v3.3.1 - v3.3.0 - v3.2.1

Etx8eIHhuF)E$|oo@qF-tMSBcFM?Iu#+&WD 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 delta 284266 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