From e6513fef88bb243514176e458c6f06432d1defe8 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Wed, 15 Nov 2023 22:51:03 +0100 Subject: [PATCH 1/6] (WIP) align platformio build env with upstream * espressif32@5.2.0 --> espressif32@5.3.0 * pxmagic.htm added in cdata.js * minor updates in style.css * align some constants and definitions (wled.h, const.h) * npm run build --- CHANGELOG.md | 85 ++++++++++++++++++++++++++++++- platformio.ini | 90 +++++++++++++++++++-------------- tools/cdata.js | 1 + wled00/const.h | 25 ++++++++-- wled00/data/style.css | 10 ++++ wled00/html_settings.h | 111 +++++++++++++++++++++-------------------- wled00/wled.h | 4 +- 7 files changed, 229 insertions(+), 97 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 594fa97e14..b5c660fc21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,92 @@ ## WLED changelog +#### Build 2310010, build 2310130 +- Release of WLED version 0.14.0 "Hoshi" +- Bugfixes for #3400, #3403, #3405 +- minor HTML optimizations +- audioreactive: bugfix for UDP sound sync (partly initialized packets) + +#### Build 2309240 +- Release of WLED beta version 0.14.0-b6 "Hoshi" +- Effect bugfixes and improvements (Meteor, Meteor Smooth, Scrolling Text) +- audioreactive: bugfixes for ES8388 and ES7243 init; minor improvements for analog inputs + +#### Build 2309100 +- Release of WLED beta version 0.14.0-b5 "Hoshi" +- New standard esp32 build with audioreactive +- Effect blending bugfixes, and minor optimizations + +#### Build 2309050 +- Effect blending (#3311) (finally effect transitions!) + *WARNING*: May not work well with ESP8266, with plenty of segments or usermods (low RAM condition)!!! +- Added receive and send sync groups to JSON API (#3317) (you can change sync groups using preset) +- Internal temperature usermod (#3246) +- MQTT server and topic length overrides (#3354) (new build flags) +- Animated Staircase usermod enhancement (#3348) (on/off toggle/relay control) +- Added local time info to Info page (#3351) +- New effect: Rolling Balls (a.k.a. linear bounce) (#1039) +- Various bug fixes and enhancements. + +#### Build 2308110 +- Release of WLED beta version 0.14.0-b4 "Hoshi" +- Reset effect data immediately upon mode change + +#### Build 2308030 +- Improved random palette handling and blending +- Soap bugfix +- Fix ESP-NOW crash with AP mode Always + +#### Build 2307180 +- Bus-level global buffering (#3280) +- Removed per-segment LED buffer (SEGMENT.leds) +- various fixes and improvements (ESP variants platform 5.3.0, effect optimizations, /json/cfg pin allocation) + +#### Build 2307130 +- larger `oappend()` stack buffer (3.5k) for ESP32 +- Preset cycle bugfix (#3262) +- Rotary encoder ALT fix for large LED count (#3276) +- effect updates (2D Plasmaball), `blur()` speedup +- On/Off toggle from nodes view (may show unknown device type on older versions) (#3291) +- various fixes and improvements (ABL, crashes when changing presets with different segments) + +#### Build 2306270 +- ESP-NOW remote support (#3237) +- Pixel Magic tool (display pixel art) (#3249) +- Websocket (peek) fallback when connection cannot be established, WS retries (#3267) +- Add WiFi network scan RPC command to Improv Serial (#3271) +- Longer (custom option available) segment name for ESP32 +- various fixes and improvements + +#### Build 2306210 +- 0.14.0-b3 release +- respect global I2C in all usermods (no local initialization of I2C bus) +- Multi relay usermod compile-time enabled option (-D MULTI_RELAY_ENABLED=true|false) + +#### Build 2306180 +- Added client-side option for applying effect defaults from metadata +- Improved ESP8266 stability by reducing WebSocket response resends +- Updated ESP8266 core to 3.1.2 + +#### Build 2306141 +- Lissajous improvements +- Scrolling Text improvements (leading 0) + +#### Build 2306140 +- Add settings PIN (un)locking to JSON post API + +#### Build 2306130 +- Bumped version to 0.14-b3 (beta 3) +- added pin dropdowns in LED preferences (not for LED pins) and usermods +- introduced (unused ATM) NeoGammaWLEDMethod class +- Reverse proxy support +- PCF8754 support for Rotary encoder (requires wiring INT pin to ESP GPIO) +- Rely on global I2C pins for usermods (breaking change) +- various fixes and enhancements + #### Build 2306020 - Support for segment sets (PR #3171) -- Reduce sound simulation modes to 2 to facilitiate segment sets +- Reduce sound simulation modes to 2 to facilitate segment sets - Trigger button immediately on press if all configured presets are the same (PR #3226) - Changes for allowing Alexa to change light color to White when auto-calculating from RGB (PR #3211) diff --git a/platformio.ini b/platformio.ini index 1e511cf7a0..324a463d00 100644 --- a/platformio.ini +++ b/platformio.ini @@ -11,7 +11,7 @@ # CI binaries ;; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth # ESP32 variant builds are temporarily excluded from CI due to toolchain issues on the GitHub Actions Linux environment -; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB +; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32dev_audioreactive, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB, esp32s3dev_8MB_PSRAM_opi # Release binaries ; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB @@ -34,6 +34,7 @@ ; default_envs = esp8285_4CH_MagicHome ; default_envs = esp8285_H801 ; default_envs = d1_mini_5CH_Shojo_PCB +; default_envs = wemos_shield_esp32 ; default_envs = m5atom ; default_envs = esp32_eth ; default_envs = esp32dev_qio80 @@ -109,13 +110,14 @@ arduino_core_2_7_4 = espressif8266@2.6.2 arduino_core_3_0_0 = espressif8266@3.0.0 arduino_core_3_2_0 = espressif8266@3.2.0 arduino_core_4_1_0 = espressif8266@4.1.0 +arduino_core_3_1_2 = espressif8266@4.2.0 # Development platforms arduino_core_develop = https://github.com/platformio/platform-espressif8266#develop arduino_core_git = https://github.com/platformio/platform-espressif8266#feature/stage # Platform to use for ESP8266 -platform_wled_default = ${common.arduino_core_4_1_0} +platform_wled_default = ${common.arduino_core_3_1_2} # We use 2.7.4.7 for all, includes PWM flicker fix and Wstring optimization #platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7 platform_packages = platformio/framework-arduinoespressif8266 @@ -138,7 +140,7 @@ platform_packages = platformio/framework-arduinoespressif8266 # ------------------------------------------------------------------------------ debug_flags = -D DEBUG=1 -D WLED_DEBUG -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM ;; for esp8266 - -DARDUINOJSON_DEBUG=1 ;; enables some debug asserts in arduinoJSON + -DARDUINOJSON_DEBUG=1 ;; WLEDMM: this enables some debug asserts in arduinoJSON # if needed (for memleaks etc) also add; -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" # -DDEBUG_ESP_CORE is not working right now @@ -230,8 +232,7 @@ upload_speed = 115200 # ------------------------------------------------------------------------------ lib_compat_mode = strict lib_deps = - fastled/FastLED @ 3.6.0 ;; 3.6.0 was release recently - ;https://github.com/FastLED/FastLED.git#master @3.6.0+sha.23c67b7 ;; up to 50% faster - using a "known good" hash, so we get predictable builds + fastled/FastLED @ 3.6.0 IRremoteESP8266 @ 2.8.2 ;;makuna/NeoPixelBus @ 2.7.5 ;; WLEDMM will be added in board specific sections ;;https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7 @@ -258,7 +259,7 @@ build_flags = -DESP8266 -DFP_IN_IROM ;-Wno-deprecated-declarations - ;; -Wno-register ;; leaves some warnings when compiling C files: command-line option '-Wno-register' is valid for C++/ObjC++ but not for C + ;-Wno-register ;; leaves some warnings when compiling C files: command-line option '-Wno-register' is valid for C++/ObjC++ but not for C ;-Dregister= # remove warnings in C++17 due to use of deprecated register keyword by the FastLED library ;; warning: this can be dangerous -Wno-misleading-indentation ; NONOSDK22x_190703 = 2.2.2-dev(38a443e) @@ -299,7 +300,7 @@ build_flags = -g ; -DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3 default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv ;; WLED standard for 4MB flash: 1.4MB firmware, 1MB filesystem -;default_partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; Alternative for 4MB flash: 1.8MB firmware, 256KB filesystem (esptool erase_flash needed before changing) +;default_partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; WLEDMM alternative for 4MB flash: 1.8MB firmware, 256KB filesystem (esptool erase_flash needed before changing) lib_deps = https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 ;; WLEDMM this must be first in the list, otherwise Aircoookie/ESPAsyncWebServer pulls in an older version of AsyncTCP !! @@ -313,22 +314,17 @@ lib_deps = ;; ** For compiling with latest Frameworks (IDF4.4.x and arduino-esp32 v2.0.x) ** ;;; previous standard V4 platform -platformV4_pre = espressif32@ ~5.1.1 -platformV4_packages_pre = - platformio/framework-arduinoespressif32@ ~3.20004.0 +platformV4_pre = espressif32@5.2.0 +platformV4_packages_pre = toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 ;;; standard V4 platform -platformV4 = espressif32@5.2.0 +platformV4 = espressif32@5.3.0 platformV4_packages = - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 - -;;; updated V4 platform (5.3.0) - experimental -;;platformV4_up = espressif32@ ~5.3.0 -;;platformV4_packages_up = ;;; experimental: latest V4 platform with latest arduino-esp32 2.0.9 + ESP-IDF 4.4.4 (may or may not work) -platformV4_xp = espressif32@ ~6.3.0 +platformV4_xp = espressif32@ ~6.4.0 platformV4_packages_xp = platformio/framework-arduinoespressif32 @ ~3.20009.0 ;; arduino-esp32 v2.0.9+ +;; platformV4_packages_xp = platformio/framework-arduinoespressif32 @ ~3.20011.0 ;; arduino-esp32 v2.0.11 (latest one supported in platformio) build_flagsV4 = -g -DARDUINO_ARCH_ESP32 -DESP32 @@ -349,9 +345,8 @@ lib_depsV4 = ;; ;; please note that you can NOT update existing ESP32 installs with a "V4" build. Also updating by OTA will not work properly. ;; You need to completely erase your device (esptool erase_flash) first, then install the "V4" build from VSCode+platformio. -platform = espressif32@5.2.0 +platform = espressif32@5.3.0 platform_packages = - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 build_flags = -g -Wshadow=compatible-local ;; emit warning in case a local variable "shadows" another local one -DARDUINO_ARCH_ESP32 -DESP32 @@ -366,9 +361,8 @@ lib_deps = [esp32s2] ;; generic definitions for all ESP32-S2 boards -platform = espressif32@5.2.0 +platform = espressif32@5.3.0 platform_packages = - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 build_flags = -g -DARDUINO_ARCH_ESP32 -DESP32 ;; WLEDMM -DARDUINO_ARCH_ESP32S2 @@ -388,9 +382,8 @@ lib_deps = [esp32c3] ;; generic definitions for all ESP32-C3 boards -platform = espressif32@5.2.0 +platform = espressif32@5.3.0 platform_packages = - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 build_flags = -g -DARDUINO_ARCH_ESP32 -DESP32 ;; WLEDMM -DARDUINO_ARCH_ESP32C3 @@ -409,9 +402,8 @@ lib_deps = [esp32s3] ;; generic definitions for all ESP32-S3 boards -platform = espressif32@5.2.0 +platform = espressif32@5.3.0 platform_packages = - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 build_flags = -g -DESP32 -DARDUINO_ARCH_ESP32 @@ -461,7 +453,7 @@ lib_deps = ${esp8266.lib_deps} ; board_build.ldscript = ${common.ldscript_1m128k} ; build_unflags = ${common.build_unflags} ; build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA -; ; -D WLED_USE_UNREAL_MATH ;; may cause wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM +; ; -D WLED_USE_UNREAL_MATH ;; may cause wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM ; lib_deps = ${esp8266.lib_deps} [env:esp07] @@ -512,6 +504,21 @@ lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} +;WLEDMM: use WLEDMM build environments +; [env:esp32dev_audioreactive] +; board = esp32dev +; platform = ${esp32.platform} +; platform_packages = ${esp32.platform_packages} +; build_unflags = ${common.build_unflags} +; build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_audioreactive #-D WLED_DISABLE_BROWNOUT_DET +; ${esp32.AR_build_flags} +; lib_deps = ${esp32.lib_deps} +; ${esp32.AR_lib_deps} +; monitor_filters = esp32_exception_decoder +; board_build.partitions = ${esp32.default_partitions} +; ; board_build.f_flash = 80000000L +; ; board_build.flash_mode = dio + [env:esp32dev_qio80] board = esp32dev platform = ${esp32.platform} @@ -545,7 +552,8 @@ platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 -D WLED_DISABLE_ESPNOW +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 + -D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.default_partitions} @@ -559,6 +567,7 @@ board_build.flash_mode = qio upload_speed = 460800 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME=S2_saola + ;-DLOLIN_WIFI_FIX ;; try this in case Wifi does not work -DARDUINO_USB_CDC_ON_BOOT=1 lib_deps = ${esp32s2.lib_deps} @@ -569,8 +578,9 @@ platform_packages = ${esp32c3.platform_packages} framework = arduino board = esp32-c3-devkitm-1 board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv -build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3 +build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=ESP32-C3 -D WLED_WATCHDOG_TIMEOUT=0 + -DLOLIN_WIFI_FIX ; seems to work much better with this -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB ;-DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip upload_speed = 460800 @@ -584,10 +594,10 @@ platform = ${esp32s3.platform} platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 ; or 460800 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32s3.build_flags} +build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=ESP32-S3_8MB -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 -D ARDUINO_USB_CDC_ON_BOOT=0 ;; -D ARDUINO_USB_MODE=1 ;; for boards with serial-to-USB chip - ;-D ARDUINO_USB_CDC_ON_BOOT=1 ;; -D ARDUINO_USB_MODE=0 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") + ;-D ARDUINO_USB_CDC_ON_BOOT=1 ;; -D ARDUINO_USB_MODE=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") ;-D WLED_DEBUG lib_deps = ${esp32s3.lib_deps} board_build.partitions = tools/WLED_ESP32_8MB.csv @@ -596,11 +606,10 @@ board_build.flash_mode = qio ; board_build.flash_mode = dio ;; try this if you have problems at startup monitor_filters = esp32_exception_decoder -[env:esp32s3dev_8MB_PSRAM] -;; ESP32-TinyS3 development board, with 8MB FLASH and 8MB PSRAM (memory_type: qio_opi, qio_qspi, or opi_opi) -;board = um_tinys3 ; -> needs workaround from https://github.com/Aircoookie/WLED/pull/2905#issuecomment-1328049860 -;board = esp32s3box ; -> error: 'esp32_adc2gpio' was not declared in this scope -board = esp32-s3-devkitc-1 ; -> compiles, but does not support PSRAM +[env:esp32s3dev_8MB_PSRAM_opi] +;; ESP32-S3 development board, with 8MB FLASH and >= 8MB PSRAM (memory_type: qio_opi) +board = esp32-s3-devkitc-1 ;; generic dev board; the next line adds PSRAM support +board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB platform = ${esp32s3.platform} platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 @@ -608,7 +617,7 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 ;-D ARDUINO_USB_CDC_ON_BOOT=0 ;; -D ARDUINO_USB_MODE=1 ;; for boards with serial-to-USB chip - -D ARDUINO_USB_CDC_ON_BOOT=1 ;; -D ARDUINO_USB_MODE=0 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") + -D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") ; -D WLED_RELEASE_NAME=ESP32-S3_PSRAM -D WLED_USE_PSRAM -DBOARD_HAS_PSRAM ; tells WLED that PSRAM shall be used lib_deps = ${esp32s3.lib_deps} @@ -617,6 +626,13 @@ board_build.f_flash = 80000000L board_build.flash_mode = qio monitor_filters = esp32_exception_decoder +[env:esp32s3dev_8MB_PSRAM_qspi] +;; ESP32-TinyS3 development board, with 8MB FLASH and PSRAM (memory_type: qio_qspi) +extends = env:esp32s3dev_8MB_PSRAM_opi +;board = um_tinys3 ; -> needs workaround from https://github.com/Aircoookie/WLED/pull/2905#issuecomment-1328049860 +board = esp32-s3-devkitc-1 ;; generic dev board; the next line adds PSRAM support +board_build.arduino.memory_type = qio_qspi ;; use with PSRAM: 2MB or 4MB + [env:esp8285_4CH_MagicHome] board = esp8285 platform = ${common.platform_wled_default} @@ -685,7 +701,7 @@ platform_packages = ${esp32s2.platform_packages} board = lolin_s2_mini board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv build_unflags = ${common.build_unflags} #-DARDUINO_USB_CDC_ON_BOOT=1 -build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME=LolinS2 +build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME=ESP32-S2 -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=1 # try disabling and enabling unflag above in case of board-specific issues, will disable Serial -DARDUINO_USB_MSC_ON_BOOT=0 diff --git a/tools/cdata.js b/tools/cdata.js index 8959a588f6..561d390ef8 100644 --- a/tools/cdata.js +++ b/tools/cdata.js @@ -223,6 +223,7 @@ writeHtmlGzipped("wled00/data/index.htm", "wled00/html_ui.h", 'index'); writeHtmlGzipped("wled00/data/simple.htm", "wled00/html_simple.h", 'simple'); writeHtmlGzipped("wled00/data/pixart/pixart.htm", "wled00/html_pixart.h", 'pixart'); writeHtmlGzipped("wled00/data/cpal/cpal.htm", "wled00/html_cpal.h", 'cpal'); +writeHtmlGzipped("wled00/data/pxmagic/pxmagic.htm", "wled00/html_pxmagic.h", 'pxmagic'); /* writeChunks( "wled00/data", diff --git a/wled00/const.h b/wled00/const.h index 4db4d898aa..8baebad8b9 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -158,7 +158,7 @@ #define CALL_MODE_NO_NOTIFY 5 #define CALL_MODE_FX_CHANGED 6 //no longer used #define CALL_MODE_HUE 7 -#define CALL_MODE_PRESET_CYCLE 8 +#define CALL_MODE_PRESET_CYCLE 8 //no longer used #define CALL_MODE_BLYNK 9 //no longer used #define CALL_MODE_ALEXA 10 #define CALL_MODE_WS_SEND 11 //special call mode, not for notifier, updates websocket only @@ -331,24 +331,43 @@ // WLED Error modes #define ERR_NONE 0 // All good :) -#define ERR_EEP_COMMIT 2 // Could not commit to EEPROM (wrong flash layout?) +#define ERR_DENIED 1 // Permission denied +#define ERR_EEP_COMMIT 2 // Could not commit to EEPROM (wrong flash layout?) OBSOLETE #define ERR_NOBUF 3 // JSON buffer was not released in time, request cannot be handled at this time #define ERR_JSON 9 // JSON parsing failed (input too large?) #define ERR_FS_BEGIN 10 // Could not init filesystem (no partition?) #define ERR_FS_QUOTA 11 // The FS is full or the maximum file size is reached #define ERR_FS_PLOAD 12 // It was attempted to load a preset that does not exist #define ERR_FS_IRLOAD 13 // It was attempted to load an IR JSON cmd, but the "ir.json" file does not exist +#define ERR_FS_RMLOAD 14 // It was attempted to load an remote JSON cmd, but the "remote.json" file does not exist #define ERR_FS_GENERAL 19 // A general unspecified filesystem error occured #define ERR_OVERTEMP 30 // An attached temperature sensor has measured above threshold temperature (not implemented) #define ERR_OVERCURRENT 31 // An attached current sensor has measured a current above the threshold (not implemented) #define ERR_UNDERVOLT 32 // An attached voltmeter has measured a voltage below the threshold (not implemented) -//Timer mode types +// Timer mode types #define NL_MODE_SET 0 //After nightlight time elapsed, set to target brightness #define NL_MODE_FADE 1 //Fade to target brightness gradually #define NL_MODE_COLORFADE 2 //Fade to target brightness and secondary color gradually #define NL_MODE_SUN 3 //Sunrise/sunset. Target brightness is set immediately, then Sunrise effect is started. Max 60 min. +// Settings sub page IDs +#define SUBPAGE_MENU 0 +#define SUBPAGE_WIFI 1 +#define SUBPAGE_LEDS 2 +#define SUBPAGE_UI 3 +#define SUBPAGE_SYNC 4 +#define SUBPAGE_TIME 5 +#define SUBPAGE_SEC 6 +#define SUBPAGE_DMX 7 +#define SUBPAGE_UM 8 +#define SUBPAGE_UPDATE 9 +#define SUBPAGE_2D 10 +#define SUBPAGE_LOCK 251 +#define SUBPAGE_PINREQ 252 +#define SUBPAGE_CSS 253 +#define SUBPAGE_JS 254 +#define SUBPAGE_WELCOME 255 #define NTP_PACKET_SIZE 48 diff --git a/wled00/data/style.css b/wled00/data/style.css index 608cc92fbd..5daca929a4 100644 --- a/wled00/data/style.css +++ b/wled00/data/style.css @@ -61,6 +61,12 @@ button.sml { .hide { display: none; } +.err { + color: #f00; +} +.warn { + color: #fa0; +} input { background: #333; color: #fff; @@ -114,6 +120,10 @@ select { font-family: Verdana, sans-serif; border: 0.5ch solid #333; } +select.pin { + max-width: 120px; + text-overflow: ellipsis; +} tr { line-height: 100%; } diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 286cd10602..1071940513 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -6,61 +6,64 @@ */ // Autogenerated from wled00/data/style.css, do not edit!! -const uint16_t PAGE_settingsCss_length = 847; +const uint16_t PAGE_settingsCss_length = 888; const uint8_t PAGE_settingsCss[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x55, 0xc1, 0x8e, 0x9b, 0x30, - 0x10, 0xfd, 0x15, 0xaa, 0x68, 0xa5, 0xad, 0x14, 0x10, 0x10, 0xc8, 0xa6, 0x46, 0x95, 0xaa, 0xde, - 0x7b, 0xab, 0xaa, 0x4a, 0xd5, 0x1e, 0x0c, 0x1e, 0x82, 0x15, 0x63, 0x23, 0xdb, 0x74, 0x49, 0x11, - 0xff, 0x5e, 0xdb, 0xc0, 0x42, 0xb2, 0x68, 0x7b, 0xa9, 0xa2, 0x44, 0xc4, 0x63, 0xc6, 0x6f, 0xde, - 0xbc, 0x79, 0xae, 0x74, 0xcd, 0x7a, 0x2d, 0xda, 0xa2, 0xf2, 0x71, 0xa1, 0xa9, 0xe0, 0xa8, 0xc6, - 0x9c, 0x36, 0x2d, 0xc3, 0xf6, 0xcf, 0x90, 0x0b, 0x72, 0xed, 0x4b, 0xc1, 0xb5, 0x5f, 0xe2, 0x9a, - 0xb2, 0x2b, 0xfa, 0x01, 0x92, 0x60, 0x8e, 0xf7, 0x0a, 0x73, 0xe5, 0x2b, 0x90, 0xb4, 0xcc, 0x5c, - 0x58, 0xd1, 0x3f, 0x80, 0x22, 0x09, 0x75, 0xa6, 0xa1, 0xd3, 0x3e, 0x66, 0xf4, 0xcc, 0x51, 0x01, - 0x5c, 0x83, 0xcc, 0x72, 0x5c, 0x5c, 0xce, 0x52, 0xb4, 0x9c, 0xa0, 0x5d, 0x1c, 0xc7, 0x59, 0x21, - 0x98, 0x90, 0x68, 0x57, 0x96, 0x65, 0xc6, 0x28, 0x07, 0xbf, 0x02, 0x7a, 0xae, 0x34, 0x8a, 0xc3, - 0xf0, 0x21, 0xab, 0xb1, 0x3c, 0x53, 0x8e, 0xc2, 0xa1, 0x92, 0x7d, 0x2e, 0x24, 0x01, 0xe9, 0x4f, - 0xdb, 0x8f, 0xc7, 0xa3, 0x59, 0x0c, 0x94, 0xc1, 0xfb, 0x42, 0x89, 0xae, 0x50, 0x7c, 0x0c, 0x9b, - 0x6e, 0xc0, 0x7b, 0x8c, 0x2a, 0xf1, 0x1b, 0x64, 0x3f, 0xed, 0x8b, 0x4f, 0xe5, 0x88, 0x81, 0x40, - 0x21, 0xa4, 0x2b, 0x03, 0x71, 0xc1, 0x61, 0x08, 0x72, 0xcd, 0xf7, 0x79, 0xab, 0xb5, 0xe0, 0xfd, - 0x1a, 0xd2, 0xe1, 0x70, 0x58, 0x43, 0xfa, 0x47, 0xb5, 0x23, 0x28, 0x14, 0x1c, 0x8a, 0xca, 0x53, - 0x82, 0x51, 0xe2, 0xb9, 0x04, 0x13, 0x56, 0x89, 0x09, 0x6d, 0x15, 0x8a, 0x93, 0xa6, 0xcb, 0x08, - 0x55, 0x0d, 0xc3, 0x57, 0x44, 0xb9, 0xab, 0x32, 0x67, 0xa2, 0xb8, 0xac, 0xc8, 0x8a, 0x0d, 0xfa, - 0xb9, 0xdc, 0x28, 0x6e, 0x3a, 0xef, 0x34, 0x7e, 0xb3, 0x06, 0x13, 0x42, 0xf9, 0x19, 0xd9, 0xff, - 0x36, 0x90, 0xd5, 0x94, 0xfb, 0x63, 0xc9, 0x89, 0x8d, 0x17, 0xad, 0x54, 0x06, 0x6c, 0x23, 0xa8, - 0x63, 0x77, 0xb3, 0xd6, 0xb1, 0x4c, 0x47, 0xd6, 0x2a, 0xdd, 0x3d, 0x4a, 0x8b, 0x60, 0xd5, 0xbd, - 0xf4, 0xf6, 0xac, 0x15, 0xbe, 0xd0, 0xb3, 0x9f, 0xc8, 0xf2, 0xbd, 0x53, 0x05, 0xe6, 0xfd, 0xb8, - 0xee, 0x6b, 0xd1, 0x20, 0xdf, 0x2d, 0x07, 0xe6, 0x51, 0x8a, 0x97, 0xde, 0xae, 0x84, 0x59, 0x23, - 0x14, 0x75, 0x60, 0x94, 0xa6, 0xc5, 0xe5, 0xba, 0x52, 0xc0, 0xdc, 0x4d, 0xab, 0x83, 0x3f, 0x3e, - 0xe5, 0x04, 0x3a, 0x14, 0x0d, 0x01, 0xe3, 0x97, 0xa9, 0xdd, 0xa6, 0xf5, 0x41, 0x05, 0xac, 0xf9, - 0xda, 0xaf, 0x84, 0xc4, 0xa0, 0xd4, 0x4b, 0x52, 0x9c, 0x1b, 0xe2, 0x5b, 0x0d, 0xd9, 0x08, 0xd4, - 0xc9, 0x20, 0xa8, 0x28, 0x81, 0x7e, 0xa6, 0xdc, 0x71, 0x40, 0x79, 0xd3, 0xea, 0xff, 0xd0, 0xe9, - 0xf4, 0xa6, 0xd3, 0x63, 0x5a, 0x64, 0x4e, 0xc2, 0x39, 0x03, 0x32, 0xab, 0xee, 0x74, 0x3a, 0x8d, - 0x91, 0x5f, 0xfa, 0xda, 0xc0, 0x67, 0xde, 0xd6, 0x39, 0xc8, 0xe7, 0xfd, 0x6a, 0xc9, 0x96, 0xf3, - 0xbc, 0x57, 0xc0, 0xa0, 0xd0, 0xfd, 0xc2, 0x7a, 0x0d, 0xa6, 0x17, 0xf5, 0x4c, 0xb4, 0x69, 0xf7, - 0x46, 0x9a, 0x49, 0xf0, 0x09, 0xd4, 0x1b, 0xc1, 0xa0, 0xeb, 0xe6, 0x89, 0x88, 0xc2, 0x70, 0xf3, - 0xfd, 0xe0, 0x75, 0xc7, 0x29, 0xdd, 0xde, 0x30, 0xc7, 0x8f, 0xc9, 0x76, 0xbc, 0x9e, 0xe2, 0xe9, - 0x71, 0x3b, 0xae, 0xfa, 0x45, 0xa0, 0x9b, 0x00, 0x5e, 0x37, 0xdc, 0x21, 0x2c, 0x2a, 0x28, 0x2e, - 0xb9, 0xe8, 0x9e, 0x7b, 0x2d, 0x0d, 0xf5, 0xa5, 0x90, 0x35, 0x32, 0x0a, 0x63, 0xf0, 0x18, 0x05, - 0xe9, 0xc7, 0x89, 0x16, 0x5f, 0x3a, 0x83, 0x70, 0x42, 0xd3, 0xc4, 0xdb, 0x7c, 0xfd, 0x66, 0xa7, - 0x04, 0x63, 0x08, 0x7a, 0x7d, 0x4e, 0x49, 0x19, 0x3c, 0xaf, 0x68, 0x8f, 0x6c, 0x21, 0x53, 0x33, - 0x16, 0xee, 0xb3, 0xff, 0xae, 0x16, 0x2d, 0xfb, 0xb5, 0xc7, 0x99, 0x0e, 0x3d, 0x98, 0x12, 0x5e, - 0x87, 0xd2, 0xf6, 0x3b, 0x20, 0xe9, 0x4c, 0x8e, 0xf1, 0xcf, 0x0f, 0xb4, 0x6e, 0x84, 0xd4, 0x98, - 0xeb, 0x21, 0x30, 0x3c, 0xac, 0x21, 0x07, 0xa9, 0xf5, 0xd7, 0xdb, 0xf1, 0x1f, 0x76, 0xdf, 0xbf, - 0x7d, 0xf7, 0xb4, 0xd5, 0xe2, 0x22, 0x82, 0x87, 0x61, 0x57, 0xab, 0xf3, 0xed, 0x34, 0xec, 0xb4, - 0xc0, 0x4a, 0xf7, 0xa2, 0xc1, 0x05, 0xd5, 0x57, 0x33, 0xa3, 0x6f, 0x67, 0x32, 0x49, 0x92, 0x3b, - 0x87, 0x48, 0x9d, 0x67, 0x18, 0x2b, 0xa9, 0x9d, 0x32, 0xde, 0xd0, 0x31, 0xe2, 0x7a, 0x5a, 0x99, - 0x96, 0xe5, 0x35, 0x9b, 0xb0, 0xf9, 0xa6, 0x0b, 0x5c, 0x2b, 0x77, 0xfe, 0x32, 0xbd, 0x25, 0xed, - 0x80, 0x6c, 0xdc, 0x12, 0xb3, 0x1b, 0xa4, 0xd9, 0xa2, 0x04, 0xf7, 0x64, 0xae, 0x22, 0xf8, 0xf9, - 0xe8, 0xa7, 0xe1, 0x83, 0xd5, 0x43, 0x37, 0xd9, 0xd3, 0x27, 0x73, 0x59, 0x58, 0x5b, 0x40, 0xa9, - 0x2d, 0xd7, 0x15, 0x17, 0xa8, 0xca, 0x38, 0xd0, 0x5c, 0x61, 0xb4, 0xe5, 0x3a, 0xc7, 0x24, 0x33, - 0xd7, 0x5b, 0x3d, 0x3a, 0x65, 0x89, 0x09, 0x50, 0xee, 0x05, 0xa9, 0xda, 0x2f, 0x8f, 0x5e, 0x6c, - 0x7f, 0x9c, 0x80, 0xd4, 0xcc, 0x5a, 0x00, 0x52, 0x0a, 0xf9, 0x6e, 0xe6, 0x3c, 0x8e, 0x36, 0x33, - 0x0f, 0x5f, 0xec, 0x80, 0x63, 0x4f, 0x15, 0x12, 0x80, 0x7b, 0x98, 0x13, 0xef, 0x71, 0x29, 0xe2, - 0xe9, 0x68, 0xb8, 0xfb, 0xd8, 0xaf, 0x74, 0x0a, 0x35, 0xa6, 0xec, 0xc6, 0x37, 0x9c, 0x72, 0xf7, - 0xef, 0x7b, 0x4b, 0x83, 0x95, 0x7a, 0x31, 0x9d, 0xbb, 0x33, 0x1c, 0xf6, 0xd6, 0x80, 0xee, 0x47, - 0xe0, 0x7d, 0x7c, 0xc9, 0x29, 0xbc, 0xc3, 0xf7, 0x66, 0xe0, 0xc3, 0x7f, 0x0c, 0xfc, 0xe1, 0xce, - 0xd2, 0xc6, 0x41, 0x9c, 0x6e, 0x70, 0x7b, 0x4f, 0x0e, 0x3b, 0x73, 0x2f, 0x2b, 0x6f, 0x9a, 0xc5, - 0x49, 0xc3, 0x89, 0x0d, 0x0c, 0x7f, 0x01, 0xbc, 0xb1, 0xff, 0x31, 0x9d, 0x08, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x56, 0x51, 0x8b, 0xab, 0x38, + 0x14, 0xfe, 0x2b, 0x2e, 0x65, 0x60, 0x2e, 0x54, 0x51, 0xab, 0x9d, 0xde, 0xc8, 0xc2, 0xb2, 0xef, + 0xf7, 0x6d, 0x58, 0x16, 0x96, 0x79, 0x88, 0xe6, 0x58, 0x43, 0x63, 0x22, 0x49, 0xbc, 0xb5, 0x23, + 0xfe, 0xf7, 0x4d, 0xa2, 0x8e, 0xb6, 0x23, 0x73, 0x5f, 0x2e, 0xa5, 0x25, 0xe6, 0xc4, 0xe4, 0x3b, + 0xdf, 0xf9, 0xce, 0x97, 0x56, 0xba, 0x66, 0xbd, 0x16, 0x6d, 0x51, 0xf9, 0xb8, 0xd0, 0x54, 0x70, + 0x54, 0x63, 0x4e, 0x9b, 0x96, 0x61, 0xfb, 0x30, 0xe4, 0x82, 0xdc, 0xfa, 0x52, 0x70, 0xed, 0x97, + 0xb8, 0xa6, 0xec, 0x86, 0xfe, 0x01, 0x49, 0x30, 0xc7, 0x7b, 0x85, 0xb9, 0xf2, 0x15, 0x48, 0x5a, + 0x66, 0x2e, 0xac, 0xe8, 0x3b, 0xa0, 0x48, 0x42, 0x9d, 0x69, 0xe8, 0xb4, 0x8f, 0x19, 0x3d, 0x73, + 0x54, 0x00, 0xd7, 0x20, 0xb3, 0x1c, 0x17, 0x97, 0xb3, 0x14, 0x2d, 0x27, 0x68, 0x17, 0xc7, 0x71, + 0x56, 0x08, 0x26, 0x24, 0xda, 0x95, 0x65, 0x99, 0x31, 0xca, 0xc1, 0xaf, 0x80, 0x9e, 0x2b, 0x8d, + 0xe2, 0x30, 0x7c, 0xca, 0x6a, 0x2c, 0xcf, 0x94, 0xa3, 0x70, 0xa8, 0x64, 0x9f, 0x0b, 0x49, 0x40, + 0xfa, 0xd3, 0xf2, 0xe3, 0xf1, 0x68, 0x26, 0x03, 0x65, 0xf0, 0x5e, 0x29, 0xd1, 0x15, 0x8a, 0x8f, + 0x61, 0xd3, 0x0d, 0x78, 0x8f, 0x51, 0x25, 0x7e, 0x82, 0xec, 0xa7, 0x75, 0xf1, 0xa9, 0x1c, 0x31, + 0x10, 0x28, 0x84, 0x74, 0x69, 0x20, 0x2e, 0x38, 0x0c, 0x41, 0xae, 0xf9, 0x3e, 0x6f, 0xb5, 0x16, + 0xbc, 0x5f, 0x43, 0x3a, 0x1c, 0x0e, 0x6b, 0x48, 0xbf, 0xc8, 0x76, 0x04, 0x85, 0x82, 0x43, 0x51, + 0x79, 0x4a, 0x30, 0x4a, 0x3c, 0xb7, 0xc1, 0x84, 0x55, 0x62, 0x42, 0x5b, 0x85, 0xe2, 0xa4, 0xe9, + 0x32, 0x42, 0x55, 0xc3, 0xf0, 0x0d, 0x51, 0xee, 0xb2, 0xcc, 0x99, 0x28, 0x2e, 0x2b, 0xb2, 0x62, + 0x83, 0x7e, 0x4e, 0x37, 0x8a, 0x9b, 0xce, 0x3b, 0x8d, 0xdf, 0xac, 0xc1, 0x84, 0x50, 0x7e, 0x46, + 0xf6, 0xd9, 0x06, 0xb2, 0x9a, 0x72, 0x7f, 0x4c, 0x39, 0xb1, 0xf1, 0xa2, 0x95, 0xca, 0x80, 0x6d, + 0x04, 0x75, 0xec, 0x6e, 0xe6, 0x3a, 0xa6, 0xe9, 0xc8, 0x5a, 0x6d, 0xf7, 0x88, 0xd2, 0x22, 0x58, + 0x55, 0x2f, 0xbd, 0x3f, 0x6b, 0x85, 0x2f, 0xf4, 0xec, 0x27, 0xb2, 0x7c, 0xef, 0x54, 0x81, 0x79, + 0x3f, 0xce, 0xfb, 0x5a, 0x34, 0xc8, 0x77, 0xd3, 0x81, 0x19, 0x4a, 0x71, 0xed, 0xed, 0x4c, 0x98, + 0x35, 0x42, 0x51, 0x07, 0x46, 0x69, 0x5a, 0x5c, 0x6e, 0x2b, 0x05, 0xcc, 0xd5, 0xb4, 0x3a, 0x78, + 0xf7, 0x29, 0x27, 0xd0, 0xa1, 0x68, 0x08, 0x18, 0xbf, 0x4c, 0xe5, 0x36, 0xa5, 0x0f, 0x2a, 0x60, + 0xcd, 0xdf, 0xfd, 0x4a, 0x48, 0x0c, 0x4a, 0xbd, 0x6c, 0x8a, 0x73, 0x43, 0x7c, 0xab, 0x21, 0x1b, + 0x81, 0x3a, 0x19, 0x04, 0x15, 0x25, 0xd0, 0xcf, 0x94, 0x8f, 0xf5, 0x06, 0x39, 0x8b, 0x42, 0x02, + 0x19, 0x82, 0x2b, 0x96, 0x7c, 0x16, 0x49, 0x89, 0xc3, 0x81, 0xf2, 0xa6, 0xd5, 0xbf, 0x41, 0x09, + 0xe9, 0x9d, 0x12, 0xc6, 0x6d, 0x91, 0x41, 0x82, 0x73, 0x06, 0x64, 0x3e, 0xf0, 0x74, 0x3a, 0x8d, + 0x91, 0xff, 0xf4, 0xad, 0x81, 0x3f, 0x79, 0x5b, 0xe7, 0x20, 0xdf, 0xf6, 0xab, 0x29, 0x9b, 0xee, + 0xdb, 0x5e, 0x01, 0x83, 0x42, 0xf7, 0x4b, 0x55, 0x6a, 0x30, 0xb5, 0xaa, 0xe7, 0x42, 0x18, 0x39, + 0x6c, 0x6c, 0x33, 0x35, 0x44, 0x02, 0xf5, 0x46, 0x30, 0xe8, 0xba, 0xb9, 0x63, 0xa2, 0x30, 0xdc, + 0x7c, 0x3f, 0xf8, 0x58, 0x71, 0x4a, 0xb7, 0x17, 0xcc, 0xf1, 0x63, 0xb2, 0x1d, 0xaf, 0xa7, 0x78, + 0x7a, 0xdc, 0x8e, 0xab, 0x7e, 0x11, 0xf0, 0x26, 0x80, 0x8f, 0x05, 0x0f, 0x08, 0x8b, 0x0a, 0x8a, + 0x4b, 0x2e, 0xba, 0xb7, 0x5e, 0x4b, 0x43, 0x7d, 0x29, 0x64, 0x8d, 0x8c, 0x02, 0x19, 0x3c, 0x47, + 0x41, 0xfa, 0x6d, 0xa2, 0xc5, 0x97, 0xce, 0x40, 0x9c, 0x10, 0x35, 0xf1, 0x36, 0x5f, 0xbf, 0x5b, + 0x29, 0xc1, 0x18, 0x86, 0x5e, 0x9f, 0x53, 0x52, 0x06, 0x6f, 0x2b, 0xda, 0x23, 0x9b, 0xc8, 0x54, + 0x8c, 0x85, 0xfb, 0xec, 0xb7, 0xab, 0x65, 0x3c, 0x22, 0x68, 0xa8, 0xed, 0xa9, 0x6e, 0x6a, 0xbd, + 0xc8, 0x75, 0xa6, 0xd3, 0xbf, 0x75, 0xb6, 0x92, 0x89, 0x2b, 0x02, 0xc6, 0x68, 0xa3, 0xa8, 0x1a, + 0xb4, 0xec, 0xd7, 0xae, 0x69, 0x6a, 0xfa, 0x64, 0x92, 0xfe, 0x68, 0x73, 0xab, 0x90, 0x80, 0xa4, + 0x33, 0x9d, 0xc6, 0x91, 0xff, 0xa0, 0x75, 0x23, 0xa4, 0xc6, 0x5c, 0x0f, 0x81, 0x61, 0x6e, 0x9d, + 0x64, 0x90, 0x5a, 0xc7, 0xbe, 0x37, 0x94, 0x61, 0xf7, 0xfa, 0xe3, 0xd5, 0xd3, 0x56, 0xbd, 0x8b, + 0x6c, 0x9e, 0x86, 0x5d, 0xad, 0xce, 0xf7, 0xfd, 0xb5, 0xd3, 0x02, 0x2b, 0xdd, 0x8b, 0x06, 0x17, + 0x54, 0xdf, 0x4c, 0xd7, 0x7f, 0xee, 0xf2, 0x24, 0x49, 0x1e, 0x3c, 0x27, 0x75, 0x2e, 0x64, 0xcc, + 0xa9, 0x76, 0x5a, 0xfa, 0x44, 0xe0, 0x88, 0xeb, 0x65, 0x65, 0x83, 0xb6, 0x12, 0xd9, 0x84, 0xcd, + 0x37, 0x75, 0xe3, 0x5a, 0xb9, 0xf3, 0x17, 0x3f, 0x28, 0x69, 0x07, 0x64, 0xe3, 0xde, 0x99, 0xfd, + 0x25, 0xcd, 0x16, 0xed, 0xb8, 0x91, 0xb9, 0xdc, 0xe0, 0xdf, 0x67, 0x3f, 0x0d, 0x9f, 0xac, 0x82, + 0x66, 0xd6, 0xbf, 0x9b, 0xeb, 0xc7, 0x1a, 0x0d, 0x4a, 0x6d, 0xba, 0x2e, 0xb9, 0x40, 0x55, 0xc6, + 0xd3, 0xe6, 0x0c, 0xa3, 0x2d, 0x1f, 0x3b, 0x26, 0x99, 0xb9, 0x30, 0xeb, 0xd1, 0x7b, 0x4b, 0x4c, + 0x80, 0x72, 0x2f, 0x48, 0xd5, 0x7e, 0x19, 0x7a, 0xb1, 0xfd, 0x71, 0x92, 0x53, 0x33, 0x6b, 0xd6, + 0x9b, 0x84, 0xfc, 0x72, 0xe7, 0x3c, 0x8e, 0x36, 0x77, 0x1e, 0xfe, 0xb2, 0x96, 0x80, 0x3d, 0x55, + 0x48, 0x00, 0xee, 0x61, 0x4e, 0xbc, 0xe7, 0x25, 0x89, 0x97, 0xa3, 0xe1, 0xee, 0x5b, 0xbf, 0x52, + 0x36, 0xd4, 0x98, 0xb2, 0x3b, 0xa7, 0x71, 0x5a, 0xdf, 0x7f, 0xed, 0x46, 0x0d, 0x56, 0xea, 0x6a, + 0x2a, 0xf7, 0x60, 0x51, 0xec, 0xb3, 0x65, 0x3d, 0x36, 0xcd, 0xd7, 0xf8, 0x92, 0x53, 0xf8, 0x80, + 0xef, 0x93, 0x45, 0x84, 0xbf, 0xb0, 0x88, 0xc3, 0x83, 0x09, 0x8e, 0xad, 0x3b, 0xfd, 0x27, 0xb0, + 0x37, 0xef, 0xb0, 0x33, 0x37, 0xbd, 0xf2, 0xa6, 0xee, 0x9d, 0x34, 0x9c, 0xd8, 0xc0, 0xf0, 0x3f, + 0x39, 0x38, 0xc0, 0xa3, 0xef, 0x08, 0x00, 0x00 }; diff --git a/wled00/wled.h b/wled00/wled.h index e8890695d0..b0673d62b9 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -3,7 +3,7 @@ /* Main sketch, global variable declarations @title WLED project sketch - @version 0.14.0-b2X + @version 0.14.1-b1x @author Christian Schwinne */ @@ -546,7 +546,7 @@ WLED_GLOBAL uint16_t userVar0 _INIT(0), userVar1 _INIT(0); //available for use i // wifi WLED_GLOBAL bool apActive _INIT(false); WLED_GLOBAL bool forceReconnect _INIT(false); -WLED_GLOBAL uint32_t lastReconnectAttempt _INIT(0); +WLED_GLOBAL unsigned long lastReconnectAttempt _INIT(0); WLED_GLOBAL bool interfacesInited _INIT(false); WLED_GLOBAL bool wasConnected _INIT(false); From 6426f3b934b89c3be02dbe2f9891bc26204dd012 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Thu, 16 Nov 2023 10:55:43 +0100 Subject: [PATCH 2/6] sound sync: prevent sequence "roll-back" due to late packets (1->254) this is to prevent that an "old" packet with high sequence number (before counter roll-over) gets accepted wrongly. --- usermods/audioreactive/audio_reactive.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.h index 50448ab178..bdd111437c 100644 --- a/usermods/audioreactive/audio_reactive.h +++ b/usermods/audioreactive/audio_reactive.h @@ -1500,9 +1500,10 @@ class AudioReactive : public Usermod { // validate sequence, discard out-of-sequence packets static uint8_t lastFrameCounter = 0; bool sequenceOK = false; - if(receivedPacket->frameCounter > lastFrameCounter) sequenceOK = true; - if((lastFrameCounter > 248) && (receivedPacket->frameCounter < 12)) sequenceOK = true; // handle roll-over (255 -> 0) - if((sequenceOK == false) && (receivedPacket->frameCounter != 0)) { // always accept "0" - its the legacy value + if(receivedPacket->frameCounter > lastFrameCounter) sequenceOK = true; // sequence OK + if((lastFrameCounter < 12) && (receivedPacket->frameCounter > 248)) sequenceOK = false; // prevent sequence "roll-back" due to late packets (1->254) + if((lastFrameCounter > 248) && (receivedPacket->frameCounter < 12)) sequenceOK = true; // handle roll-over (255 -> 0) + if((sequenceOK == false) && (receivedPacket->frameCounter != 0)) { // always accept "0" - its the legacy value DEBUGSR_PRINTF("Skipping audio frame out of order or duplicated - %u vs %u\n", lastFrameCounter, receivedPacket->frameCounter); return false; // reject out-of sequence frame } From cc8d4e396917387a81fcd04b7c593bde31e41fc6 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Mon, 20 Nov 2023 21:13:35 +0100 Subject: [PATCH 3/6] Merge pull request #3536 from Aircoookie/ntp_errorchecking NTP validation, and rejecting malformed responses (related to #3515) --- wled00/const.h | 3 ++- wled00/ntp.cpp | 31 ++++++++++++++++++++++++++----- wled00/set.cpp | 2 +- wled00/wled.cpp | 2 +- wled00/wled.h | 5 +++-- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/wled00/const.h b/wled00/const.h index 8baebad8b9..6dbc2aaa1a 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -369,7 +369,8 @@ #define SUBPAGE_JS 254 #define SUBPAGE_WELCOME 255 -#define NTP_PACKET_SIZE 48 +#define NTP_PACKET_SIZE 48 // size of NTP recive buffer +#define NTP_MIN_PACKET_SIZE 48 // min expected size - NTP v4 allows for "extended information" appended to the standard fields //maximum number of rendered LEDs - this does not have to match max. physical LEDs, e.g. if there are virtual busses #ifndef MAX_LEDS diff --git a/wled00/ntp.cpp b/wled00/ntp.cpp index 7d056d3c46..ecc11ce0a1 100644 --- a/wled00/ntp.cpp +++ b/wled00/ntp.cpp @@ -199,6 +199,9 @@ void handleNetworkTime() { if (millis() - ntpPacketSentTime > 10000) { + #ifdef ARDUINO_ARCH_ESP32 // I had problems using udp.flush() on 8266 + while (ntpUdp.parsePacket() > 0) ntpUdp.flush(); // flush any existing packets + #endif sendNTPPacket(); ntpPacketSentTime = millis(); } @@ -239,23 +242,41 @@ void sendNTPPacket() ntpUdp.endPacket(); } +static bool isValidNtpResponse(byte * ntpPacket) { + // Perform a few validity checks on the packet + // based on https://github.com/taranais/NTPClient/blob/master/NTPClient.cpp + if((ntpPacket[0] & 0b11000000) == 0b11000000) return false; //reject LI=UNSYNC + // if((ntpPacket[0] & 0b00111000) >> 3 < 0b100) return false; //reject Version < 4 + if((ntpPacket[0] & 0b00000111) != 0b100) return false; //reject Mode != Server + if((ntpPacket[1] < 1) || (ntpPacket[1] > 15)) return false; //reject invalid Stratum + if( ntpPacket[16] == 0 && ntpPacket[17] == 0 && + ntpPacket[18] == 0 && ntpPacket[19] == 0 && + ntpPacket[20] == 0 && ntpPacket[21] == 0 && + ntpPacket[22] == 0 && ntpPacket[23] == 0) //reject ReferenceTimestamp == 0 + return false; + + return true; +} + bool checkNTPResponse() { #ifdef ARDUINO_ARCH_ESP32 ntpUdp.flush(); #endif int cb = ntpUdp.parsePacket(); -#ifdef ARDUINO_ARCH_ESP32 - if (!cb) {ntpUdp.flush(); return false;} // WLEDMM flush buffer -#else - if (!cb) {return false;} // WLEDMM do not flush buffer -#endif + if (cb < NTP_MIN_PACKET_SIZE) { + #ifdef ARDUINO_ARCH_ESP32 // I had problems using udp.flush() on 8266 + if (cb > 0) ntpUdp.flush(); // this avoids memory leaks on esp32 + #endif + return false; + } uint32_t ntpPacketReceivedTime = millis(); DEBUG_PRINT(F("NTP recv, l=")); DEBUG_PRINTLN(cb); byte pbuf[NTP_PACKET_SIZE]; ntpUdp.read(pbuf, NTP_PACKET_SIZE); // read the packet into the buffer + if (!isValidNtpResponse(pbuf)) return false; // verify we have a valid response to client Toki::Time arrived = toki.fromNTP(pbuf + 32); Toki::Time departed = toki.fromNTP(pbuf + 40); diff --git a/wled00/set.cpp b/wled00/set.cpp index 580857efbd..cc68bf4506 100644 --- a/wled00/set.cpp +++ b/wled00/set.cpp @@ -426,7 +426,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) //start ntp if not already connected if (ntpEnabled && WLED_CONNECTED && !ntpConnected) ntpConnected = ntpUdp.begin(ntpLocalPort); - ntpLastSyncTime = 0; // force new NTP query + ntpLastSyncTime = NTP_NEVER; // force new NTP query longitude = request->arg(F("LN")).toFloat(); latitude = request->arg(F("LT")).toFloat(); diff --git a/wled00/wled.cpp b/wled00/wled.cpp index dba772455d..2fd8811701 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -232,7 +232,7 @@ void WLED::loop() if (lastMqttReconnectAttempt > millis()) { rolloverMillis++; lastMqttReconnectAttempt = 0; - ntpLastSyncTime = 0; + ntpLastSyncTime = NTP_NEVER; // force new NTP query strip.restartRuntime(); } if (millis() - lastMqttReconnectAttempt > 30000 || lastMqttReconnectAttempt == 0) { // lastMqttReconnectAttempt==0 forces immediate broadcast diff --git a/wled00/wled.h b/wled00/wled.h index b0673d62b9..cd0072a7cb 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -670,10 +670,11 @@ WLED_GLOBAL String escapedMac; WLED_GLOBAL DNSServer dnsServer; // network time +#define NTP_NEVER 999000000L WLED_GLOBAL bool ntpConnected _INIT(false); WLED_GLOBAL time_t localTime _INIT(0); -WLED_GLOBAL unsigned long ntpLastSyncTime _INIT(999000000L); -WLED_GLOBAL unsigned long ntpPacketSentTime _INIT(999000000L); +WLED_GLOBAL unsigned long ntpLastSyncTime _INIT(NTP_NEVER); +WLED_GLOBAL unsigned long ntpPacketSentTime _INIT(NTP_NEVER); WLED_GLOBAL IPAddress ntpServerIP; WLED_GLOBAL uint16_t ntpLocalPort _INIT(2390); WLED_GLOBAL uint16_t rolloverMillis _INIT(0); From 2d54393c2d0b03d6f9569f70827205edec29a126 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 10 Dec 2023 17:53:07 +0100 Subject: [PATCH 4/6] start of 0.14.0-b27.33 --- package-lock.json | 4 ++-- package.json | 2 +- wled00/improv.cpp | 2 +- wled00/wled.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index da832670db..429c9dda3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wled", - "version": "0.14.0-b27.32", + "version": "0.14.0-b27.33", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "wled", - "version": "0.14.0-b27.32", + "version": "0.14.0-b27.33", "license": "GPL-3.0-or-later", "dependencies": { "clean-css": "^4.2.3", diff --git a/package.json b/package.json index 54e922ad0f..10f0dae990 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.14.0-b27.32", + "version": "0.14.0-b27.33", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/wled00/improv.cpp b/wled00/improv.cpp index 346f7e6447..0dd2b25c96 100644 --- a/wled00/improv.cpp +++ b/wled00/improv.cpp @@ -210,7 +210,7 @@ void sendImprovInfoResponse() { //Use serverDescription if it has been changed from the default "WLED", else mDNS name bool useMdnsName = (strcmp(serverDescription, "WLED") == 0 && strlen(cmDNS) > 0); char vString[32]; - snprintf_P(vString, sizeof(vString)-1, PSTR("0.14.0-b27.32/%i"),VERSION); + snprintf_P(vString, sizeof(vString)-1, PSTR("0.14.0-b27.33/%i"),VERSION); const char *str[4] = {"WLED", vString, bString, useMdnsName ? cmDNS : serverDescription}; sendImprovRPCResult(ImprovRPCType::Request_Info, 4, str); diff --git a/wled00/wled.h b/wled00/wled.h index 1595201c07..7457088966 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2312050 +#define VERSION 2312100 //WLEDMM + Moustachauve/Wled-Native // You can define custom product info from build flags. From 61b1842aadb4f0a16a464916cd9fd80b6632a38a Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 10 Dec 2023 18:08:36 +0100 Subject: [PATCH 5/6] npm run build --- wled00/html_other.h | 76 +++++++++++++++++++++--------------------- wled00/html_settings.h | 38 ++++++++++----------- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/wled00/html_other.h b/wled00/html_other.h index ecf0bb2290..dafe667f5a 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -43,44 +43,44 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; // Autogenerated from wled00/data/update.htm, do not edit!! const uint16_t PAGE_update_length = 607; const uint8_t PAGE_update[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x75, 0x53, 0xd1, 0x6e, 0xd4, 0x30, - 0x10, 0x7c, 0xcf, 0x57, 0x18, 0x3f, 0xdd, 0x49, 0x9c, 0x53, 0x0a, 0x12, 0xa2, 0x24, 0x29, 0x3a, - 0x5a, 0x21, 0x24, 0xaa, 0x56, 0x6a, 0x0b, 0xe2, 0x09, 0x39, 0xf1, 0x26, 0x31, 0xe7, 0xd8, 0xa9, - 0xbd, 0xb9, 0xd3, 0x09, 0xf5, 0xdf, 0x59, 0x3b, 0x77, 0x05, 0xa9, 0xf0, 0x12, 0xc5, 0xc9, 0xec, - 0x64, 0x76, 0x66, 0x52, 0xbc, 0xb8, 0xb8, 0xfe, 0x78, 0xf7, 0xfd, 0xe6, 0x92, 0xf5, 0x38, 0x98, - 0xaa, 0x38, 0x5c, 0x41, 0xaa, 0xaa, 0x18, 0x00, 0x25, 0x6b, 0x9c, 0x45, 0xb0, 0x58, 0xf2, 0x9d, - 0x56, 0xd8, 0x97, 0x0a, 0xb6, 0xba, 0x81, 0x55, 0x3a, 0x70, 0x66, 0xe5, 0x00, 0x25, 0xdf, 0x6a, - 0xd8, 0x8d, 0xce, 0x23, 0xaf, 0xb2, 0x02, 0x35, 0x1a, 0xa8, 0xbe, 0x7d, 0xb9, 0xbc, 0x60, 0xf7, - 0xa3, 0x92, 0x08, 0x45, 0x3e, 0x3f, 0x2a, 0x42, 0xe3, 0xf5, 0x88, 0x55, 0xd6, 0x4e, 0xb6, 0x41, - 0xed, 0x2c, 0x5b, 0x2f, 0x96, 0xbf, 0x76, 0xda, 0x2a, 0xb7, 0x13, 0xbd, 0x0e, 0xe8, 0xfc, 0x5e, - 0xd4, 0xb2, 0xd9, 0x2c, 0x96, 0x8f, 0x4f, 0x90, 0x7b, 0x82, 0x28, 0xd7, 0x4c, 0x03, 0x29, 0x10, - 0x1d, 0xe0, 0xa5, 0x81, 0x78, 0xbb, 0xde, 0x7f, 0x56, 0x0b, 0x3e, 0xb5, 0x7c, 0x29, 0x02, 0xee, - 0x0d, 0x08, 0xa5, 0xc3, 0x68, 0xe4, 0xbe, 0xe4, 0xd6, 0x59, 0xe0, 0x2f, 0xff, 0x3b, 0x32, 0x84, - 0xee, 0xf9, 0x4c, 0x6d, 0x5c, 0xb3, 0xe1, 0x8f, 0x59, 0x91, 0x1f, 0x24, 0x1e, 0xa4, 0xb2, 0xe0, - 0x9b, 0x92, 0xe7, 0x01, 0x10, 0xb5, 0xed, 0x42, 0x1e, 0xc4, 0xcf, 0x70, 0x3e, 0x96, 0xef, 0x78, - 0xf5, 0x17, 0x32, 0x52, 0x55, 0xd9, 0x07, 0x3d, 0x44, 0x03, 0xd8, 0xe4, 0xcd, 0x82, 0xcf, 0xf4, - 0x4d, 0x08, 0x7c, 0xf9, 0x9e, 0x90, 0x09, 0x51, 0xe4, 0xb3, 0xa5, 0xb5, 0x53, 0x7b, 0xe6, 0xac, - 0x71, 0x52, 0x95, 0xfc, 0x13, 0xe0, 0xd7, 0xc5, 0x92, 0xe8, 0xfa, 0xd3, 0x2a, 0xbb, 0x72, 0xce, - 0x5e, 0x39, 0xc5, 0x92, 0x75, 0xb7, 0xae, 0xc5, 0x9d, 0xf4, 0xf0, 0xe4, 0x21, 0x21, 0x8a, 0xd6, - 0xf9, 0x81, 0x51, 0x26, 0xbd, 0xa3, 0xd9, 0x9b, 0xeb, 0xdb, 0x3b, 0xce, 0x64, 0xb2, 0x89, 0x44, - 0x4e, 0x09, 0xc7, 0x99, 0xa6, 0x57, 0xe4, 0x0b, 0xcb, 0x80, 0x1c, 0xdc, 0x8f, 0x14, 0xce, 0x30, - 0x19, 0xd4, 0xa3, 0xf4, 0x98, 0xc7, 0xf9, 0x15, 0xc1, 0x24, 0x27, 0x05, 0x61, 0xaa, 0x07, 0x4d, - 0xa9, 0xde, 0x27, 0x01, 0x61, 0x94, 0x96, 0x35, 0x46, 0x86, 0x50, 0xf2, 0xa0, 0x47, 0x5e, 0x9d, - 0x88, 0x57, 0x6f, 0xc4, 0xc9, 0xaa, 0x3e, 0x7d, 0x2b, 0x5e, 0x9f, 0x46, 0x67, 0x08, 0x40, 0xea, - 0x7d, 0x75, 0xe1, 0x76, 0x49, 0x3d, 0xc3, 0x1e, 0x98, 0xa1, 0x6f, 0x06, 0x64, 0x1e, 0x0c, 0xc8, - 0x00, 0x67, 0xac, 0x90, 0x2c, 0xeb, 0x3d, 0xb4, 0x25, 0xef, 0x11, 0xc7, 0x70, 0x96, 0xe7, 0x9d, - 0xc6, 0x7e, 0xaa, 0x45, 0xe3, 0x86, 0xfc, 0xb0, 0xe0, 0x64, 0x20, 0xe4, 0x71, 0xc9, 0xfc, 0x30, - 0x16, 0x38, 0x43, 0xe9, 0x29, 0xa9, 0x92, 0xff, 0xa8, 0x8d, 0xb4, 0x1b, 0xd2, 0xa3, 0x87, 0x8e, - 0x65, 0xc9, 0xfe, 0x23, 0x11, 0x3d, 0x11, 0xa1, 0xd7, 0x60, 0x54, 0x10, 0xda, 0x1d, 0x78, 0x8f, - 0x14, 0xcf, 0xb8, 0x45, 0xd8, 0x76, 0xe7, 0xc9, 0xf9, 0xb2, 0x25, 0x91, 0xab, 0xf0, 0x30, 0x91, - 0x9b, 0xb1, 0x9f, 0xb9, 0x4c, 0x6b, 0x14, 0xda, 0x8e, 0x13, 0xb2, 0xd9, 0xa2, 0x56, 0x1b, 0x38, - 0x76, 0xf9, 0x68, 0xa4, 0x87, 0x87, 0x49, 0x7b, 0x50, 0x33, 0xba, 0x9e, 0x10, 0xa9, 0x8e, 0x33, - 0x7c, 0xb6, 0x8e, 0xc8, 0xe6, 0x70, 0x5e, 0x14, 0xf9, 0xfc, 0xfa, 0x1f, 0xd0, 0xf9, 0x10, 0xfd, - 0x6e, 0x8c, 0x6e, 0x36, 0x25, 0x5f, 0x47, 0xbb, 0xd7, 0xd4, 0xf2, 0x3f, 0x43, 0x29, 0x97, 0xaa, - 0x50, 0x7a, 0x9b, 0xa5, 0xf8, 0x62, 0x47, 0x89, 0xa6, 0x4a, 0xec, 0x54, 0x3c, 0x21, 0x04, 0x81, - 0x13, 0xf9, 0x4d, 0xda, 0x96, 0x29, 0xc7, 0xac, 0x43, 0xca, 0xcb, 0xd1, 0xc1, 0x79, 0xd2, 0xda, - 0x7a, 0x08, 0x7d, 0x8a, 0x64, 0x94, 0x1d, 0xb0, 0xb3, 0x65, 0x91, 0x13, 0x5f, 0x5c, 0x37, 0x16, - 0x2e, 0xb6, 0x2f, 0xfe, 0xd6, 0xbf, 0x01, 0xb4, 0xad, 0x31, 0xbd, 0xec, 0x03, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x75, 0x53, 0xd1, 0x6e, 0xd3, 0x30, + 0x14, 0x7d, 0xcf, 0x57, 0x78, 0x7e, 0x6a, 0x25, 0xea, 0x8c, 0x0d, 0x09, 0x31, 0x92, 0x0c, 0x95, + 0x4d, 0x08, 0x89, 0x69, 0x95, 0xb6, 0x81, 0x78, 0x42, 0x4e, 0x7c, 0xd3, 0x98, 0x3a, 0x76, 0x66, + 0xdf, 0xb4, 0xaa, 0xd0, 0xfe, 0x9d, 0x6b, 0xa7, 0x1d, 0x48, 0x83, 0x97, 0x28, 0x4e, 0xce, 0x3d, + 0x39, 0xf7, 0x9c, 0x93, 0xe2, 0xe4, 0xea, 0xf6, 0xe3, 0xfd, 0xf7, 0xd5, 0x35, 0xeb, 0xb0, 0x37, + 0x55, 0x71, 0xb8, 0x82, 0x54, 0x55, 0xd1, 0x03, 0x4a, 0xd6, 0x38, 0x8b, 0x60, 0xb1, 0xe4, 0x3b, + 0xad, 0xb0, 0x2b, 0x15, 0x6c, 0x75, 0x03, 0x8b, 0x74, 0xe0, 0xcc, 0xca, 0x1e, 0x4a, 0xbe, 0xd5, + 0xb0, 0x1b, 0x9c, 0x47, 0x5e, 0x65, 0x05, 0x6a, 0x34, 0x50, 0x7d, 0xfb, 0x72, 0x7d, 0xc5, 0x1e, + 0x06, 0x25, 0x11, 0x8a, 0x7c, 0x7a, 0x54, 0x84, 0xc6, 0xeb, 0x01, 0xab, 0xac, 0x1d, 0x6d, 0x83, + 0xda, 0x59, 0xb6, 0x9c, 0xcd, 0x7f, 0xed, 0xb4, 0x55, 0x6e, 0x27, 0x3a, 0x1d, 0xd0, 0xf9, 0xbd, + 0xa8, 0x65, 0xb3, 0x99, 0xcd, 0x9f, 0x9e, 0x21, 0x0f, 0x04, 0x51, 0xae, 0x19, 0x7b, 0x52, 0x20, + 0xd6, 0x80, 0xd7, 0x06, 0xe2, 0xed, 0x72, 0xff, 0x59, 0xcd, 0xf8, 0xd8, 0xf2, 0xb9, 0x08, 0xb8, + 0x37, 0x20, 0x94, 0x0e, 0x83, 0x91, 0xfb, 0x92, 0x5b, 0x67, 0x81, 0xbf, 0xfa, 0xef, 0x48, 0x1f, + 0xd6, 0x2f, 0x67, 0x6a, 0xe3, 0x9a, 0x0d, 0x7f, 0xca, 0x8a, 0xfc, 0x20, 0xf1, 0x20, 0x95, 0x05, + 0xdf, 0x94, 0x3c, 0x0f, 0x80, 0xa8, 0xed, 0x3a, 0xe4, 0x41, 0xfc, 0x0c, 0x97, 0x43, 0xf9, 0x8e, + 0x57, 0x7f, 0x21, 0x23, 0x55, 0x95, 0x7d, 0xd0, 0x7d, 0x34, 0x80, 0x8d, 0xde, 0xcc, 0xf8, 0x44, + 0xdf, 0x84, 0xc0, 0xe7, 0xef, 0x09, 0x99, 0x10, 0x45, 0x3e, 0x59, 0x5a, 0x3b, 0xb5, 0x67, 0xce, + 0x1a, 0x27, 0x55, 0xc9, 0x3f, 0x01, 0x7e, 0x9d, 0xcd, 0x89, 0xae, 0x3b, 0xab, 0xb2, 0x1b, 0xe7, + 0xec, 0x8d, 0x53, 0x2c, 0x59, 0x77, 0xe7, 0x5a, 0xdc, 0x49, 0x0f, 0xcf, 0x1e, 0x12, 0xa2, 0x68, + 0x9d, 0xef, 0x19, 0x65, 0xd2, 0x39, 0x9a, 0x5d, 0xdd, 0xde, 0xdd, 0x73, 0x26, 0x93, 0x4d, 0x24, + 0x72, 0x4c, 0x38, 0xce, 0x34, 0xbd, 0x22, 0x5f, 0x58, 0x06, 0xe4, 0xe0, 0x7e, 0xa0, 0x70, 0xfa, + 0xd1, 0xa0, 0x1e, 0xa4, 0xc7, 0x3c, 0xce, 0x2f, 0x08, 0x26, 0x39, 0x29, 0x08, 0x63, 0xdd, 0x6b, + 0x4a, 0xf5, 0x21, 0x09, 0x08, 0x83, 0xb4, 0xac, 0x31, 0x32, 0x84, 0x92, 0x07, 0x3d, 0xf0, 0xea, + 0x54, 0xbc, 0x7e, 0x23, 0x4e, 0x17, 0xf5, 0xd9, 0x5b, 0x71, 0x7e, 0x1e, 0x9d, 0x21, 0x00, 0xa9, + 0xf7, 0xd5, 0x95, 0xdb, 0x25, 0xf5, 0x0c, 0x3b, 0x60, 0x86, 0xbe, 0x19, 0x90, 0x79, 0x30, 0x20, + 0x03, 0x5c, 0xb0, 0x42, 0xb2, 0xac, 0xf3, 0xd0, 0x96, 0xbc, 0x43, 0x1c, 0xc2, 0x45, 0x9e, 0xaf, + 0x35, 0x76, 0x63, 0x2d, 0x1a, 0xd7, 0xe7, 0x87, 0x05, 0x47, 0x03, 0x21, 0x8f, 0x4b, 0xe6, 0x87, + 0xb1, 0xc0, 0x19, 0x4a, 0x4f, 0x49, 0x95, 0xfc, 0x47, 0x6d, 0xa4, 0xdd, 0x90, 0x1e, 0xdd, 0xaf, + 0x59, 0x96, 0xec, 0x3f, 0x12, 0xd1, 0x13, 0x11, 0x3a, 0x0d, 0x46, 0x05, 0xa1, 0xdd, 0x81, 0xf7, + 0x48, 0xf1, 0x82, 0x5b, 0x84, 0xed, 0xfa, 0x32, 0x39, 0x5f, 0xb6, 0x24, 0x72, 0x11, 0x1e, 0x47, + 0x72, 0x33, 0xf6, 0x33, 0x97, 0x69, 0x8d, 0x42, 0xdb, 0x61, 0x44, 0x36, 0x59, 0xd4, 0x6a, 0x03, + 0xc7, 0x2e, 0x1f, 0x8d, 0xf4, 0xf0, 0x38, 0x6a, 0x0f, 0x6a, 0x42, 0xd7, 0x23, 0x22, 0xd5, 0x71, + 0x82, 0x4f, 0xd6, 0x11, 0xd9, 0x14, 0xce, 0x49, 0x91, 0x4f, 0xaf, 0xff, 0x01, 0x9d, 0x0e, 0xd1, + 0xef, 0xc6, 0xe8, 0x66, 0x53, 0xf2, 0x65, 0xb4, 0x7b, 0x49, 0x2d, 0xff, 0x33, 0x94, 0x72, 0xa9, + 0x0a, 0xa5, 0xb7, 0x59, 0x8a, 0x2f, 0x76, 0x94, 0x68, 0xaa, 0xc4, 0x4e, 0xc5, 0x13, 0x42, 0x10, + 0x38, 0x91, 0xaf, 0xd2, 0xb6, 0x4c, 0x39, 0x66, 0x1d, 0x52, 0x5e, 0x8e, 0x0e, 0xce, 0x93, 0xd6, + 0xd6, 0x43, 0xe8, 0x52, 0x24, 0x83, 0x5c, 0x03, 0xbb, 0x98, 0x17, 0x39, 0xf1, 0xc5, 0x75, 0x63, + 0xe1, 0x62, 0xfb, 0xe2, 0x6f, 0xfd, 0x1b, 0x5f, 0x58, 0xea, 0xbb, 0xec, 0x03, 0x00, 0x00 }; diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 1071940513..1c435010a9 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -1713,25 +1713,25 @@ const uint8_t PAGE_settings_sec[] PROGMEM = { 0x45, 0xb8, 0x35, 0x0e, 0x2f, 0xb4, 0x2e, 0x31, 0x1b, 0xd6, 0xe8, 0x74, 0x43, 0x1a, 0x08, 0x87, 0x68, 0xdd, 0xc2, 0x2c, 0xe8, 0xc7, 0x94, 0xf7, 0xb3, 0x1c, 0xfd, 0x92, 0x8f, 0xe9, 0xf5, 0xc5, 0x05, 0x65, 0x43, 0x8f, 0x5d, 0x4b, 0x43, 0x7c, 0xc3, 0xf6, 0xa3, 0xfb, 0x0f, 0xa3, 0xfd, 0xbd, - 0xd9, 0xc1, 0x9f, 0xa3, 0x07, 0x07, 0xec, 0x3f, 0xff, 0xfa, 0x37, 0x61, 0x30, 0x48, 0x02, 0x76, - 0xb0, 0x7f, 0xf0, 0x80, 0xfd, 0x98, 0x46, 0xba, 0xbc, 0xc2, 0x8f, 0x61, 0x21, 0x54, 0x19, 0x45, - 0xd1, 0xce, 0xfa, 0x21, 0xad, 0x1f, 0x16, 0xe8, 0x19, 0x48, 0x90, 0xcf, 0xcd, 0xfa, 0xc5, 0x8b, - 0x64, 0x3b, 0xdb, 0x9b, 0x89, 0xf6, 0x99, 0x2e, 0x30, 0x59, 0xb1, 0xa3, 0x1a, 0xa3, 0xa0, 0xd9, - 0x56, 0x34, 0xfe, 0xe6, 0x44, 0x84, 0x00, 0xf9, 0xff, 0x01, 0xc8, 0xe1, 0x46, 0xf0, 0x0f, 0x09, - 0x5b, 0xa9, 0xa5, 0x1a, 0xfa, 0x6b, 0x13, 0xdd, 0x16, 0x60, 0xdf, 0x1e, 0xda, 0xc2, 0x5e, 0x62, - 0x64, 0xaa, 0xa8, 0x4e, 0xbf, 0x70, 0x72, 0x77, 0x2b, 0xc6, 0x16, 0x49, 0x17, 0x40, 0xb4, 0x00, - 0x25, 0x9b, 0x7e, 0x62, 0x2b, 0x99, 0x28, 0xd0, 0xae, 0x43, 0x6b, 0x5c, 0x6e, 0x7c, 0xed, 0x1d, - 0xb1, 0xac, 0x46, 0xe7, 0xf4, 0x6f, 0xfd, 0x70, 0x80, 0x1e, 0x88, 0x6b, 0x8f, 0x59, 0xe3, 0x1e, - 0x8e, 0xa6, 0xad, 0x19, 0x4d, 0xbe, 0x48, 0x17, 0xf4, 0x87, 0xe6, 0x27, 0x1a, 0x8f, 0x5c, 0xbf, - 0xc3, 0xa9, 0xe7, 0x71, 0x4c, 0xa8, 0xdc, 0x9b, 0x90, 0xde, 0xff, 0x79, 0xcf, 0xc7, 0xf5, 0x59, - 0x66, 0x70, 0xdd, 0x55, 0x68, 0x25, 0x93, 0x24, 0x5b, 0xd1, 0x8f, 0x05, 0x6d, 0xe7, 0x3e, 0x47, - 0x4f, 0xc7, 0x3d, 0x0c, 0x09, 0x08, 0xf3, 0x9a, 0xc1, 0xe3, 0xc7, 0x70, 0x99, 0xe5, 0x7a, 0x86, - 0x04, 0xc0, 0x5d, 0xda, 0x0c, 0xcf, 0xcf, 0x9e, 0x9d, 0xbe, 0x9c, 0x9c, 0x7e, 0x89, 0x7b, 0xef, - 0xe2, 0x6c, 0xca, 0xf2, 0x46, 0x95, 0xf7, 0x15, 0xed, 0xbe, 0xb3, 0x79, 0x22, 0x0d, 0x1c, 0x84, - 0x47, 0xd6, 0x62, 0x68, 0x40, 0x7b, 0xc1, 0xcd, 0xb5, 0xec, 0x78, 0xd1, 0xaa, 0x8a, 0x13, 0x83, - 0xf9, 0x5b, 0x3d, 0xf3, 0x17, 0x75, 0x6a, 0x7c, 0xb4, 0xa5, 0xe9, 0x32, 0xc4, 0x1a, 0xc4, 0x99, - 0xcd, 0x2f, 0x21, 0xdf, 0x1c, 0xf1, 0xbf, 0x9c, 0xf0, 0x7b, 0x3f, 0x34, 0xe2, 0x0f, 0xa9, 0xf7, - 0xe2, 0x83, 0x6e, 0x36, 0x74, 0xcd, 0xa1, 0x5f, 0x50, 0xff, 0x0b, 0xc6, 0xda, 0x4c, 0x86, 0x51, + 0xd9, 0xc1, 0x9f, 0xa3, 0x07, 0x0f, 0xd8, 0x7f, 0xfe, 0xf5, 0x6f, 0xc2, 0x60, 0x90, 0x04, 0xec, + 0x60, 0xff, 0xe0, 0x01, 0xfb, 0x31, 0x8d, 0x74, 0x79, 0x85, 0x1f, 0xc3, 0x42, 0xa8, 0x32, 0x8a, + 0xa2, 0x9d, 0xf5, 0x43, 0x5a, 0x3f, 0x2c, 0xd0, 0x33, 0x90, 0x20, 0x9f, 0x9b, 0xf5, 0x8b, 0x17, + 0xc9, 0x76, 0xb6, 0x37, 0x13, 0xed, 0x33, 0x5d, 0x60, 0xb2, 0x62, 0x47, 0x35, 0x46, 0x41, 0xb3, + 0xad, 0x68, 0xfc, 0xcd, 0x89, 0x08, 0x01, 0xf2, 0xff, 0x03, 0x90, 0xc3, 0x8d, 0xe0, 0x1f, 0x12, + 0xb6, 0x52, 0x4b, 0x35, 0xf4, 0xd7, 0x26, 0xba, 0x2d, 0xc0, 0xbe, 0x3d, 0xb4, 0x85, 0xbd, 0xc4, + 0xc8, 0x54, 0x51, 0x9d, 0x7e, 0xe1, 0xe4, 0xee, 0x56, 0x8c, 0x2d, 0x92, 0x2e, 0x80, 0x68, 0x01, + 0x4a, 0x36, 0xfd, 0xc4, 0x56, 0x32, 0x51, 0xa0, 0x5d, 0x87, 0xd6, 0xb8, 0xdc, 0xf8, 0xda, 0x3b, + 0x62, 0x59, 0x8d, 0xce, 0xe9, 0xdf, 0xfa, 0xe1, 0x00, 0x3d, 0x10, 0xd7, 0x1e, 0xb3, 0xc6, 0x3d, + 0x1c, 0x4d, 0x5b, 0x33, 0x9a, 0x7c, 0x91, 0x2e, 0xe8, 0x0f, 0xcd, 0x4f, 0x34, 0x1e, 0xb9, 0x7e, + 0x87, 0x53, 0xcf, 0xe3, 0x98, 0x50, 0xb9, 0x37, 0x21, 0xbd, 0xff, 0xf3, 0x9e, 0x8f, 0xeb, 0xb3, + 0xcc, 0xe0, 0xba, 0xab, 0xd0, 0x4a, 0x26, 0x49, 0xb6, 0xa2, 0x1f, 0x0b, 0xda, 0xce, 0x7d, 0x8e, + 0x9e, 0x8e, 0x7b, 0x18, 0x12, 0x10, 0xe6, 0x35, 0x83, 0xc7, 0x8f, 0xe1, 0x32, 0xcb, 0xf5, 0x0c, + 0x09, 0x80, 0xbb, 0xb4, 0x19, 0x9e, 0x9f, 0x3d, 0x3b, 0x7d, 0x39, 0x39, 0xfd, 0x12, 0xf7, 0xde, + 0xc5, 0xd9, 0x94, 0xe5, 0x8d, 0x2a, 0xef, 0x2b, 0xda, 0x7d, 0x67, 0xf3, 0x44, 0x1a, 0x38, 0x08, + 0x8f, 0xac, 0xc5, 0xd0, 0x80, 0xf6, 0x82, 0x9b, 0x6b, 0xd9, 0xf1, 0xa2, 0x55, 0x15, 0x27, 0x06, + 0xf3, 0xb7, 0x7a, 0xe6, 0x2f, 0xea, 0xd4, 0xf8, 0x68, 0x4b, 0xd3, 0x65, 0x88, 0x35, 0x88, 0x33, + 0x9b, 0x5f, 0x42, 0xbe, 0x39, 0xe2, 0x7f, 0x39, 0xe1, 0xf7, 0x7e, 0x68, 0xc4, 0x1f, 0x52, 0xef, + 0xc5, 0x07, 0xdd, 0x6c, 0xe8, 0x9a, 0x43, 0xbf, 0xa0, 0xfe, 0x17, 0x48, 0x2f, 0x3a, 0xd7, 0x51, 0x15, 0x00, 0x00 }; From 423723d4ad8c5229f4213230070d53e2b3e59454 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 10 Dec 2023 18:11:23 +0100 Subject: [PATCH 6/6] changelog - deleted parts not relevnt for WLEDMM removed bugfixes/changes for code not present in WLEDMM --- CHANGELOG.md | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5c660fc21..ebb620ba4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,50 +1,29 @@ ## WLED changelog #### Build 2310010, build 2310130 -- Release of WLED version 0.14.0 "Hoshi" - Bugfixes for #3400, #3403, #3405 - minor HTML optimizations - audioreactive: bugfix for UDP sound sync (partly initialized packets) #### Build 2309240 -- Release of WLED beta version 0.14.0-b6 "Hoshi" - Effect bugfixes and improvements (Meteor, Meteor Smooth, Scrolling Text) - audioreactive: bugfixes for ES8388 and ES7243 init; minor improvements for analog inputs -#### Build 2309100 -- Release of WLED beta version 0.14.0-b5 "Hoshi" -- New standard esp32 build with audioreactive -- Effect blending bugfixes, and minor optimizations - #### Build 2309050 -- Effect blending (#3311) (finally effect transitions!) - *WARNING*: May not work well with ESP8266, with plenty of segments or usermods (low RAM condition)!!! - Added receive and send sync groups to JSON API (#3317) (you can change sync groups using preset) - Internal temperature usermod (#3246) -- MQTT server and topic length overrides (#3354) (new build flags) -- Animated Staircase usermod enhancement (#3348) (on/off toggle/relay control) -- Added local time info to Info page (#3351) - New effect: Rolling Balls (a.k.a. linear bounce) (#1039) - Various bug fixes and enhancements. -#### Build 2308110 -- Release of WLED beta version 0.14.0-b4 "Hoshi" -- Reset effect data immediately upon mode change - #### Build 2308030 -- Improved random palette handling and blending -- Soap bugfix - Fix ESP-NOW crash with AP mode Always #### Build 2307180 -- Bus-level global buffering (#3280) -- Removed per-segment LED buffer (SEGMENT.leds) - various fixes and improvements (ESP variants platform 5.3.0, effect optimizations, /json/cfg pin allocation) #### Build 2307130 - larger `oappend()` stack buffer (3.5k) for ESP32 - Preset cycle bugfix (#3262) -- Rotary encoder ALT fix for large LED count (#3276) - effect updates (2D Plasmaball), `blur()` speedup - On/Off toggle from nodes view (may show unknown device type on older versions) (#3291) - various fixes and improvements (ABL, crashes when changing presets with different segments) @@ -52,14 +31,11 @@ #### Build 2306270 - ESP-NOW remote support (#3237) - Pixel Magic tool (display pixel art) (#3249) -- Websocket (peek) fallback when connection cannot be established, WS retries (#3267) - Add WiFi network scan RPC command to Improv Serial (#3271) -- Longer (custom option available) segment name for ESP32 - various fixes and improvements #### Build 2306210 - 0.14.0-b3 release -- respect global I2C in all usermods (no local initialization of I2C bus) - Multi relay usermod compile-time enabled option (-D MULTI_RELAY_ENABLED=true|false) #### Build 2306180 @@ -74,15 +50,6 @@ #### Build 2306140 - Add settings PIN (un)locking to JSON post API -#### Build 2306130 -- Bumped version to 0.14-b3 (beta 3) -- added pin dropdowns in LED preferences (not for LED pins) and usermods -- introduced (unused ATM) NeoGammaWLEDMethod class -- Reverse proxy support -- PCF8754 support for Rotary encoder (requires wiring INT pin to ESP GPIO) -- Rely on global I2C pins for usermods (breaking change) -- various fixes and enhancements - #### Build 2306020 - Support for segment sets (PR #3171) @@ -92,7 +59,6 @@ #### Build 2305280 - DDP protocol update (#3193) -- added PCF8574 I2C port expander support for Multi relay usermod - MQTT multipacket (fragmented) message fix - added option to retain MQTT brightness and color messages - new ethernet board: @srg74 Ethernet Shield