diff --git a/.gitignore b/.gitignore
index 5a928325..41341648 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
.pioenvs
.piolibdeps
.vscode
+.vscode/extensions.json
esp01-update.sh
platformio_override.ini
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6369804d..fc4d034d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-## [WLED upstream](https://github.com/Aircoookie/WLED/tree/0_14_1) changelog
+## [WLED upstream](https://github.com/wled/WLED/tree/0_14_1) changelog
#### Build 2403290
- WLED 0.14.3 release
diff --git a/package-lock.json b/package-lock.json
index 74a18035..796f683b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "wled",
- "version": "14.5.1-dev",
+ "version": "14.7.0-dev",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "wled",
- "version": "14.5.1-dev",
+ "version": "14.7.0-dev",
"license": "EUPL-1.2",
"dependencies": {
"clean-css": "^4.2.3",
diff --git a/package.json b/package.json
index 2e826712..9487b088 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wled",
- "version": "14.5.1-dev",
+ "version": "14.7.0-dev",
"description": "Tools for WLED project",
"main": "tools/cdata.js",
"directories": {
@@ -13,14 +13,14 @@
},
"repository": {
"type": "git",
- "url": "git+https://github.com/MoonModules/WLED.git"
+ "url": "git+https://github.com/MoonModules/WLED-MM.git"
},
"author": "",
"license": "EUPL-1.2",
"bugs": {
- "url": "https://github.com/MoonModules/WLED/issues"
+ "url": "https://github.com/MoonModules/WLED-MM/issues"
},
- "homepage": "https://github.com/MoonModules/WLED#readme",
+ "homepage": "https://github.com/MoonModules/WLED-MM#readme",
"dependencies": {
"clean-css": "^4.2.3",
"html-minifier-terser": "^5.1.1",
diff --git a/pio-scripts/conditional_usb_mode.py b/pio-scripts/conditional_usb_mode.py
new file mode 100644
index 00000000..cb737300
--- /dev/null
+++ b/pio-scripts/conditional_usb_mode.py
@@ -0,0 +1,135 @@
+#!/usr/bin/env python3
+"""
+Conditional USB Mode Script for WLED-MM
+
+This script automatically manages ARDUINO_USB_MODE based on the build context:
+- For development builds: ARDUINO_USB_MODE=1 (allows USB debugging)
+- For release builds (CI): ARDUINO_USB_MODE is removed (prevents hanging, allows normal boot)
+
+The script detects release builds by checking for the WLED_RELEASE environment variable
+which is set to True in the GitHub Actions CI workflow.
+
+CRITICAL: This change only applies to boards with USB-OTG (ARDUINO_USB_CDC_ON_BOOT=1).
+For boards with classical UART-to-USB chips (ARDUINO_USB_CDC_ON_BOOT=0),
+ARDUINO_USB_MODE=1 is harmless and left unchanged.
+
+IMPORTANT: We remove ARDUINO_USB_MODE entirely for release builds rather than setting
+it to 0, because ARDUINO_USB_MODE=0 breaks Serial functionality when CDC_ON_BOOT=1.
+When ARDUINO_USB_MODE is undefined, the framework uses appropriate defaults.
+"""
+## This script was created with the help of an AI, reviewed and tested by @softhack007
+
+Import('env')
+import os
+
+def has_cdc_on_boot_enabled(env):
+ """
+ Check if ARDUINO_USB_CDC_ON_BOOT is set to 1 in the build configuration.
+
+ Returns True if CDC_ON_BOOT=1, False otherwise.
+ This is used to identify boards with USB-OTG (native USB) vs UART-to-USB chips.
+ """
+ build_unflags = env.get('BUILD_UNFLAGS', [])
+ build_flags = env.get('BUILD_FLAGS', [])
+ cpp_defines = env.get('CPPDEFINES', [])
+
+ # Check in raw build unflags - unflags have priority over flags
+ for unflag in build_unflags:
+ if isinstance(unflag, str) and 'ARDUINO_USB_CDC_ON_BOOT=1' in unflag:
+ return False
+
+ # Check in CPPDEFINES
+ for define in cpp_defines:
+ if isinstance(define, (list, tuple)) and len(define) == 2:
+ if define[0] == 'ARDUINO_USB_CDC_ON_BOOT' and define[1] == '1':
+ return True
+
+ # # Check in raw build flags - results can be misleading, because this ignores build_unflags
+ for flag in build_flags:
+ if isinstance(flag, str) and 'ARDUINO_USB_CDC_ON_BOOT=1' in flag:
+ return True
+
+ return False
+
+def has_usb_mode_enabled(env):
+ """
+ Check if ARDUINO_USB_MODE is set to 1 in the build configuration.
+
+ Returns True if USB_MODE=1, False otherwise.
+ """
+ build_unflags = env.get('BUILD_UNFLAGS', [])
+ build_flags = env.get('BUILD_FLAGS', [])
+ cpp_defines = env.get('CPPDEFINES', [])
+ # Check in raw build unflags - unflags have priority over flags
+ for unflag in build_unflags:
+ if isinstance(unflag, str) and 'ARDUINO_USB_MODE=1' in unflag:
+ return False
+
+ # Check in CPPDEFINES
+ for define in cpp_defines:
+ if isinstance(define, (list, tuple)) and len(define) == 2:
+ if define[0] == 'ARDUINO_USB_MODE' and define[1] == '1':
+ return True
+
+ # Check in raw build flags - results can be misleading, because this ignores build_unflags
+ for flag in build_flags:
+ if isinstance(flag, str) and 'ARDUINO_USB_MODE=1' in flag:
+ return True
+
+ return False
+
+def conditional_usb_mode(env):
+ """
+ Conditionally manage ARDUINO_USB_MODE based on build context.
+
+ For ESP32-C3, ESP32-S2, and ESP32-S3 variants with USB-OTG (CDC_ON_BOOT=1):
+ - Development builds: ARDUINO_USB_MODE=1 (default, good for debugging)
+ - Release builds: ARDUINO_USB_MODE removed (prevents hanging, preserves Serial functionality)
+
+ For boards with classical UART-to-USB chip (CDC_ON_BOOT=0):
+ - ARDUINO_USB_MODE=1 is harmless and left unchanged
+
+ Note: We remove the flag entirely rather than setting to 0, because
+ ARDUINO_USB_MODE=0 breaks Serial functionality with CDC_ON_BOOT=1.
+ """
+
+ # Check if this is a release build (CI sets WLED_RELEASE=True)
+ is_release_build = os.environ.get('WLED_RELEASE', '').lower() in ('true', '1', 'yes')
+
+ if is_release_build:
+ # Check if this board uses USB-OTG (CDC_ON_BOOT=1)
+ if not has_cdc_on_boot_enabled(env):
+ print("WLED Release build detected - board uses UART-to-USB chip (CDC_ON_BOOT=0)")
+ print(" Keeping ARDUINO_USB_MODE=1 (harmless for UART-to-USB boards)")
+ return
+
+ print("WLED Release build detected - board uses USB-OTG (CDC_ON_BOOT=1)")
+ print(" Removing ARDUINO_USB_MODE definition for production")
+
+ # Check if ARDUINO_USB_MODE=1 is present
+ if has_usb_mode_enabled(env):
+ # Remove ARDUINO_USB_MODE entirely - don't set it to 0 as that breaks Serial
+ # When undefined, the framework uses appropriate defaults based on CDC_ON_BOOT
+ env.Append(BUILD_UNFLAGS=["-DARDUINO_USB_MODE=1"])
+ print(f" Removed ARDUINO_USB_MODE definition (was 1)")
+
+ else:
+ # Development build
+ has_usb_mode = has_usb_mode_enabled(env)
+ has_cdc_boot = has_cdc_on_boot_enabled(env)
+
+ if has_usb_mode and has_cdc_boot:
+ print("Development build detected - keeping ARDUINO_USB_MODE=1 for USB-OTG debugging")
+ # Warning in orange/yellow using ANSI color codes
+ print("\033[93m WARNING: This build is NOT suitable for production devices!\033[0m")
+ print("\033[93m Production builds require WLED_RELEASE=True environment variable.\033[0m")
+ elif has_cdc_boot:
+ # CDC_ON_BOOT=1 present but not USB_MODE=1
+ print("Development build detected - USB-OTG enabled, but ARDUINO_USB_MODE=1 missing for debugging")
+ elif has_usb_mode:
+ # USB_MODE=1 present but not CDC_ON_BOOT=1 (UART-to-USB board)
+ print("Development build detected - board uses UART-to-USB chip")
+ # If neither flag is present, don't print anything
+
+# Apply the conditional USB mode logic
+conditional_usb_mode(env)
diff --git a/pio-scripts/output_bins.py b/pio-scripts/output_bins.py
index 3a55ced8..6b5ed337 100644
--- a/pio-scripts/output_bins.py
+++ b/pio-scripts/output_bins.py
@@ -49,7 +49,7 @@ def wledmm_print_build_info(env):
found = False
for item in all_flags:
- if 'WLED_RELEASE_NAME' in item[0] or 'WLED_VERSION' in item[0] or 'ARDUINO_USB_CDC_ON_BOOT' in item[0]:
+ if 'WLED_RELEASE_NAME' in item[0] or 'WLED_VERSION' in item[0] or 'ARDUINO_USB_CDC_ON_BOOT' in item[0] or 'ARDUINO_USB_MODE' in item[0]:
if first: print("\nUsermods and Features:")
print_my_item(item)
first = False
diff --git a/platformio.ini b/platformio.ini
index 96c06b9e..cd2e7e41 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -73,22 +73,23 @@ default_envs =
; wemos_shield_esp32_16MB_SPM1423_XL
; wemos_shield_esp32_16MB_LineIn_M
;;
- esp32_4MB_V4_S ;; experimental; HUB75 supported
- esp32_4MB_V4_HUB75_forum ;; experimental; HUB75 supported (forum pinout)
- esp32_16MB_V4_S ;; experimental - optimized for speed; HUB75 supported
- esp32_16MB_V4_M ;; experimental; HUB75 supported
- ; esp32_16MB_V4_M_debug ;; experimental
- ; esp32_pico_4MB_V4_S ;; experimental - may work better in case you experience wifi connectivity problems
- ;;
- esp32_4MB_PSRAM_S ;; WROVER experimental; HUB75 supported
+ esp32dev_compat ;; legacy
+ esp32_pico_4MB_V4_S ;; PICO D4 board
+ esp32_4MB_V4_S ;; esp32 4MB - HUB75 supported
+ esp32_4MB_V4_HUB75_forum ;; esp32 4MB - HUB75 supported (forum pinout)
+ esp32_4MB_M_eth ;; esp32 4MB with ethernet support
; esp32_4MB_PSRAM_REV3_S ;; WROVER-E experimental, optimized for WROVER-E with "revision3" chip
+ esp32_4MB_PSRAM_S ;; esp32 WROVER with PSRAM; HUB75 supported
+ esp32_16MB_V4_S ;; esp32 16MB - HUB75 supported, optimized for speed
+ esp32_16MB_V4_M ;; esp32 16MB - HUB75 supported
+ esp32_16MB_V4_M_debug ;; esp32 16MB - for out-of-the-box debugging
;;
- esp32S3_4MB_S ;; for HD-WF2 (HUB75 supported)
+ esp32S3_4MB_S ;; experimental, for HD-WF2 (HUB75 supported)
esp32S3_8MB_S ;; experimental, optimized for speed, HUB75 supported
- esp32S3_8MB_M ;; HUB75 supported
+ ;; esp32S3_8MB_M ;; HUB75 supported
esp32S3_4MB_PSRAM_S ;; for lolin s3 mini, S3 zero, S3 super mini - optimized for speed (no HUB75 support)
esp32S3_4MB_PSRAM_M ;; for lolin s3 mini, S3 zero, S3 super mini (no HUB75 support)
- esp32S3_8MB_PSRAM_M ;; experiemental; HUB75 supported
+ esp32S3_8MB_PSRAM_M ;; for S3 with 8MB flash, HUB75 supported
esp32S3_16MB_PSRAM_M_HUB75 ;; for S3 with 16MB flash, HUB75 supported (MOONHUB HUB75 adapter board)
esp32S3_WROOM-2_M ;; for S3 WROOM-2; HUB75 supported
;;
@@ -220,6 +221,7 @@ ldscript_16m14m = eagle.flash.16m14m.ld
extra_scripts =
pre:pio-scripts/set_version.py
pre:pio-scripts/build-html.py
+ pre:pio-scripts/conditional_usb_mode.py
post:pio-scripts/output_bins.py
post:pio-scripts/strip-floats.py
pre:pio-scripts/user_config_copy.py
@@ -246,12 +248,12 @@ upload_speed = 115200
# ------------------------------------------------------------------------------
lib_compat_mode = strict
lib_deps =
- fastled/FastLED @ 3.6.0
- ;; fastled/FastLED @ 3.7.1
+ ;;fastled/FastLED @ 3.6.0 ;; default from upstream WLED
+ fastled/FastLED @ 3.7.1 ;; needed to prevent compiler errors when using newer framework versions
;; https://github.com/softhack007/FastLED.git#ESP32-C6 ;; patched version needed for -C6
IRremoteESP8266 @ 2.8.2
;;makuna/NeoPixelBus @ 2.7.5 ;; WLEDMM will be added in board specific sections
- https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.4.0
+ https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.4.2
bitbank2/AnimatedGIF@^1.4.7
https://github.com/Aircoookie/GifDecoder#bc3af18
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
@@ -325,9 +327,36 @@ platform_packages_compat =
platformio/tool-esptoolpy #@ ~1.30000.0
+;; old V3 platform for esp32. Can be a fallback option when hitting flash size limits
+[esp32_legacy]
+platform = espressif32@3.5.0
+platform_packages = framework-arduinoespressif32 @ https://github.com/Aircoookie/arduino-esp32.git#1.0.6.4
+build_unflags = ${common.build_unflags}
+ -Wshadow=compatible-local ;; not supported by older compilers
+build_flags = -g
+ -Wno-unused-variable -Wno-unused-function ;; removes noise
+ -DARDUINO_ARCH_ESP32
+ -D CONFIG_ASYNC_TCP_USE_WDT=0
+ -D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
+ -D CONFIG_ASYNC_TCP_STACK_SIZE=9472
+ -D LOROL_LITTLEFS ;; use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x
+ -DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE
+lib_deps =
+ esp32async/AsyncTCP @ 3.4.7
+ ; https://github.com/lorol/LITTLEFS.git
+ https://github.com/softhack007/LITTLEFS-threadsafe.git#master ;; WLEDMM specific: patched version of lorol LittleFS with improved thread safety
+ makuna/NeoPixelBus @ 2.7.5
+ ;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
+ ${env.lib_deps}
+board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs
+default_partitions = ${esp32.default_partitions} ;; backwards compatibility
+board_build.f_flash = 80000000L
+board_build.flash_mode = dout ;; avoid dio/quot/qio - these are broken in arduino-esp32 1.0.6.x
+
+;; standard platform for esp32
[esp32]
-platform = ${esp32_idf_V4.platform}
+platform = ${esp32_idf_V4.platform} ;; default = tasmota (= default from esp32_idf_V4)
platform_packages = ${esp32_idf_V4.platform_packages}
build_flags = ${esp32_idf_V4.build_flags}
@@ -341,13 +370,19 @@ large_partitions = tools/WLED_ESP32_8MB.csv
extreme_partitions = tools/WLED_ESP32_16MB_9MB_FS.csv
lib_deps = ${esp32_idf_V4.lib_deps}
+monitor_filters = esp32_exception_decoder
;; Compatibility with upstream --> you should prefer using ${common_mm.build_flags_S} and ${common_mm.lib_deps_S}
AR_build_flags = ${common_mm.AR_build_flags}
AR_lib_deps = ${common_mm.AR_lib_deps} ;; optimized version, 10% faster on -S2/-C3
+board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs
;; WLEDMM begin
+;; tasmota platform - reduces firmaware size by ~280KB
+platformTasmota = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.02/platform-espressif32.zip ;; Tasmota Arduino Core 2.0.9 with IPv6 support, based on IDF 4.4.4
+platform_packagesTasmota =
+
;; ** For compiling with latest Frameworks (IDF4.4.x and arduino-esp32 v2.0.x) **
;;; previous standard V4 platform
platformV4_pre = espressif32@5.2.0
@@ -366,6 +401,7 @@ build_flagsV4 = -g
-DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE
-D CONFIG_ASYNC_TCP_USE_WDT=0
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
+ -D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
; -D WLEDMM_TWOPATH ;; use I2S1 as the second bus --> slightly faster on some setups
; -D WLEDMM_SLOWPATH ;; don't use I2S for LED bus
; -DARDUINO_USB_CDC_ON_BOOT=0 ;; mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
@@ -373,7 +409,7 @@ build_flagsV4 = -g
;;; V4.4.x libraries (without LOROL_LITTLEFS; with newer NeoPixelBus)
lib_depsV4 =
- 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 !!
+ esp32async/AsyncTCP @ 3.4.7
makuna/NeoPixelBus @ 2.7.5
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
${common_mm.HUB75_lib_deps}
@@ -385,13 +421,16 @@ lib_depsV4 =
[esp32_idf_V4]
;; 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.
+;; uses arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
-;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
+;; standard platform - RECOMMENDED for debugging! The tasmota platform has removed all kernel error reporting code
;; platform = espressif32@ ~6.3.2
;; platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
-platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.02/platform-espressif32.zip ;; Tasmota Arduino Core 2.0.9 with IPv6 support, based on IDF 4.4.4
-platform_packages =
+;; Tasmota Arduino Core 2.0.9 with IPv6 support, based on IDF 4.4.4. Warning: all kernel error asserts removed
+platform = ${esp32.platformTasmota}
+platform_packages = ${esp32.platform_packagesTasmota}
+
build_unflags = ${common.build_unflags}
build_flags = -g
-Wshadow=compatible-local ;; emit warning in case a local variable "shadows" another local one
@@ -399,15 +438,17 @@ build_flags = -g
#-DCONFIG_LITTLEFS_FOR_IDF_3_2
-D CONFIG_ASYNC_TCP_USE_WDT=0
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
+ -D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
-DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
; -D WLEDMM_TWOPATH ;; use I2S1 as the second bus --> slightly faster on some setups
; -D WLEDMM_SLOWPATH ;; don't use I2S for LED bus
default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
lib_deps =
- https://github.com/pbolduc/AsyncTCP.git @ 1.2.0
+ esp32async/AsyncTCP @ 3.4.7
makuna/NeoPixelBus @ 2.7.5
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
${env.lib_deps}
+board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs
[esp32s2]
;; generic definitions for all ESP32-S2 boards
@@ -415,12 +456,12 @@ lib_deps =
;; platform_packages =
;; toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
;; toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch5
-;; standard platform
-platform = espressif32@ ~6.3.2
-platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
-;; tasmota platform (optional)
-;; platform = ${esp32_idf_V4.platform}
-;; platform_packages = ${esp32_idf_V4.platform_packages}
+;; standard espressif platform
+;; platform = espressif32@ ~6.3.2
+;; platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
+;; inherit tasmota platform from esp32_idf_V4
+platform = ${esp32_idf_V4.platform}
+platform_packages = ${esp32_idf_V4.platform_packages}
board_build.flash_mode = dio ;; prevents build error: sdkconfig.h: No such file or directory
build_flags = -g
@@ -430,6 +471,7 @@ build_flags = -g
-DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE ;; WLEDMM
-D CONFIG_ASYNC_TCP_USE_WDT=0
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=8614 ;; WLEDMM increase stack by 1Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
+ -D CONFIG_ASYNC_TCP_STACK_SIZE=8614 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0
-DCO
-DARDUINO_USB_MODE=0 ;; this flag is mandatory for ESP32-S2 !
@@ -437,13 +479,16 @@ build_flags = -g
;; ARDUINO_USB_CDC_ON_BOOT
lib_deps =
- https://github.com/pbolduc/AsyncTCP.git @ 1.2.0
+ esp32async/AsyncTCP @ 3.4.7
;; makuna/NeoPixelBus @ 2.7.5 ;; standard
makuna/NeoPixelBus @ 2.7.9 ;; experimental - reduces LED glitches on -S2
${env.lib_deps}
+board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs
+monitor_filters = esp32_exception_decoder
[esp32c3]
;; generic definitions for all ESP32-C3 boards
+;; inherit tasmota platform from esp32_idf_V4
platform = ${esp32_idf_V4.platform}
platform_packages = ${esp32_idf_V4.platform_packages}
build_unflags = ${common.build_unflags}
@@ -454,19 +499,23 @@ build_flags = -g
-DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE ;; WLEDMM
-D CONFIG_ASYNC_TCP_USE_WDT=0
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
+ -D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
-DCO
-DARDUINO_USB_MODE=1 ;; this flag is mandatory for ESP32-C3
;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry:
;; ARDUINO_USB_CDC_ON_BOOT
lib_deps =
- https://github.com/pbolduc/AsyncTCP.git @ 1.2.0
+ esp32async/AsyncTCP @ 3.4.7
makuna/NeoPixelBus @ 2.7.5
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
${env.lib_deps}
+board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs
+monitor_filters = esp32_exception_decoder
[esp32s3]
;; generic definitions for all ESP32-S3 boards
+;; inherit tasmota platform from esp32_idf_V4
platform = ${esp32_idf_V4.platform}
platform_packages = ${esp32_idf_V4.platform_packages}
build_unflags = ${common.build_unflags}
@@ -479,15 +528,18 @@ build_flags = -g
-DWLEDMM_NO_SERIAL_WAIT ;; WLEDMM don't wait for serial on -S3 (unless WLED_DEBUG is set)
-D CONFIG_ASYNC_TCP_USE_WDT=0
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
+ -D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_DFU_ON_BOOT=0
-DCO
;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry:
;; ARDUINO_USB_MODE, ARDUINO_USB_CDC_ON_BOOT
lib_deps =
- https://github.com/pbolduc/AsyncTCP.git @ 1.2.0
+ esp32async/AsyncTCP @ 3.4.7
makuna/NeoPixelBus @ 2.7.5
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
${env.lib_deps}
+board_build.partitions = ${esp32.large_partitions} ;; default partioning for 8MB flash - can be overridden in build envs
+monitor_filters = esp32_exception_decoder
# ------------------------------------------------------------------------------
@@ -577,66 +629,90 @@ build_unflags = ${common.build_unflags}
build_flags = ${common.build_flags_esp8266} -D LEDPIN=1 -D WLED_DISABLE_INFRARED
lib_deps = ${esp8266.lib_deps}
+;; two aliases for lazy users
[env:esp32dev]
-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 #-D WLED_DISABLE_BROWNOUT_DET
-lib_deps = ${esp32.lib_deps}
-monitor_filters = esp32_exception_decoder
-board_build.partitions = ${esp32.default_partitions}
+extends = env:esp32dev_V4
+[env:esp32_wrover]
+extends = env:esp32_4MB_PSRAM_S
-[env:esp32dev_qio80]
+;; legacy build for OTA compatibility with upstream 0.15.x, slow but safe
+[env:esp32dev_compat]
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_qio80 #-D WLED_DISABLE_BROWNOUT_DET
-lib_deps = ${esp32.lib_deps}
+platform = ${esp32_legacy.platform}
+platform_packages = ${esp32_legacy.platform_packages}
+build_unflags = ${esp32_legacy.build_unflags}
+build_flags = ${common.build_flags} ${esp32_legacy.build_flags} -D WLED_RELEASE_NAME=ESP32_compat #-D WLED_DISABLE_BROWNOUT_DET
+ ${esp32.AR_build_flags}
+lib_deps = ${esp32_legacy.lib_deps}
+ ${esp32.AR_lib_deps}
+board_build.partitions = ${esp32_legacy.default_partitions}
monitor_filters = esp32_exception_decoder
-board_build.partitions = ${esp32.default_partitions}
+;; RAM: [== ] 23.2% (used 75944 bytes from 327680 bytes)
+;; Flash: [========= ] 88.5% (used 1391917 bytes from 1572864 bytes)
+
+;; legacy build for OTA compatibility with upstream 0.15.x, faster due to qio mode
+[env:esp32dev_qio80_compat]
+board = esp32dev
+platform = ${esp32_legacy.platform}
+platform_packages = ${esp32_legacy.platform_packages}
+build_unflags = ${esp32_legacy.build_unflags}
+build_flags = ${common.build_flags} ${esp32_legacy.build_flags} -D WLED_RELEASE_NAME=ESP32_qio80_compat #-D WLED_DISABLE_BROWNOUT_DET
+ ${esp32.AR_build_flags}
+lib_deps = ${esp32_legacy.lib_deps}
+ ${esp32.AR_lib_deps}
+board_build.partitions = ${esp32_legacy.default_partitions}
board_build.f_flash = 80000000L
board_build.flash_mode = qio
+monitor_filters = esp32_exception_decoder
-[env:esp32dev_V4_dio80]
-;; experimental ESP32 env using ESP-IDF V4.4.x
-;; Warning: this build environment is not stable!!
-;; please erase your device before installing.
+[env:esp32dev_V4]
board = esp32dev
platform = ${esp32_idf_V4.platform}
+platform_packages = ${esp32_idf_V4.platform_packages}
build_unflags = ${common.build_unflags}
-build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=ESP32_V4_qio80 #-D WLED_DISABLE_BROWNOUT_DET
+build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=ESP32_V4 #-D WLED_DISABLE_BROWNOUT_DET
+ ${esp32.AR_build_flags}
lib_deps = ${esp32_idf_V4.lib_deps}
+ ${esp32.AR_lib_deps}
monitor_filters = esp32_exception_decoder
board_build.partitions = ${esp32_idf_V4.default_partitions}
board_build.f_flash = 80000000L
board_build.flash_mode = dio
+;; alias name for env:esp32_4MB_M_eth; improves compatibility with old platformio_override.ini entries
[env:esp32_eth]
-board = esp32-poe
-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 ;; ESP-NOW requires wifi, may crash with ethernet only
-lib_deps = ${esp32.lib_deps}
-board_build.partitions = ${esp32.default_partitions}
+extends = env:esp32_4MB_M_eth
-[env:esp32s2_saola]
-board = esp32-s2-saola-1
-platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.2/platform-tasmota-espressif32-2.0.2.zip
-platform_packages =
-framework = arduino
-board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
-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}
+;; legacy build for OTA compatibility with upstream 0.15.x
+;; --> use [env:esp32_4MB_M_eth] (4MB) or [env:esp32_16MB_M_eth]
+[env:esp32_eth_compat]
+board = esp32-poe
+platform = ${esp32_legacy.platform}
+platform_packages = ${esp32_legacy.platform_packages}
+upload_speed = 921600
+build_unflags = ${esp32_legacy.build_unflags}
+build_flags = ${common.build_flags} ${esp32_legacy.build_flags} -D WLED_RELEASE_NAME=ESP32_Ethernet_compat -D RLYPIN=-1
+ -D WLED_USE_ETHERNET -D BTNPIN=-1
+ -D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
+ ${esp32.AR_build_flags}
+lib_deps = ${esp32_legacy.lib_deps}
+ ${esp32.AR_lib_deps}
+board_build.partitions = ${esp32_legacy.default_partitions}
+
+;; WLEDMM: use WLEDMM build environments
+;;[env:esp32s2_saola]
+;;board = esp32-s2-saola-1
+;;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.2/platform-tasmota-espressif32-2.0.2.zip
+;;platform_packages =
+;;framework = arduino
+;;board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
+;;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}
;; WLEDMM: use WLEDMM build environments
;; [env:esp32_wrover]
@@ -658,6 +734,7 @@ lib_deps = ${esp32s2.lib_deps}
[env:esp32c3dev]
extends = esp32c3
platform = ${esp32c3.platform}
+platform_packages = ${esp32c3.platform_packages}
framework = arduino
board = esp32-c3-devkitm-1
board_build.partitions = ${esp32.default_partitions}
@@ -669,61 +746,64 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=
upload_speed = 460800
build_unflags = ${common.build_unflags}
lib_deps = ${esp32c3.lib_deps}
-board_build.flash_mode = qio
+board_build.flash_mode = dio ;; some boards do not boot with the faster "qio" mode
+; RAM: [== ] 24.0% (used 78624 bytes from 327680 bytes)
+; Flash: [========= ] 91.7% (used 1441933 bytes from 1572864 bytes)
-[env:esp32s3dev_8MB]
+;; WLEDMM: use WLEDMM build environments
+;; [env:esp32s3dev_8MB]
;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM (flash_mode: qio)
-board = esp32-s3-devkitc-1
-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} -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=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB")
- ;-D WLED_DEBUG
-lib_deps = ${esp32s3.lib_deps}
- ${esp32.AR_lib_deps}
-board_build.partitions = ${esp32.large_partitions}
-board_build.f_flash = 80000000L
-board_build.flash_mode = qio
-; board_build.flash_mode = dio ;; try this if you have problems at startup
-monitor_filters = esp32_exception_decoder
+;; board = esp32-s3-devkitc-1
+;; 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} -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=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB")
+;; ;-D WLED_DEBUG
+;; lib_deps = ${esp32s3.lib_deps}
+;; ${esp32.AR_lib_deps}
+;; board_build.partitions = ${esp32.large_partitions}
+;; board_build.f_flash = 80000000L
+;; 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_opi]
+;; [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
-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=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
- -D WLED_USE_PSRAM_JSON -DALL_JSON_TO_PSRAM ; WLEDMM --> force all JSON stuff into PSRAM; gives more free heap
-lib_deps = ${esp32s3.lib_deps}
- ${esp32.AR_lib_deps}
-board_build.partitions = ${esp32.large_partitions}
-board_build.f_flash = 80000000L
-board_build.flash_mode = qio
-monitor_filters = esp32_exception_decoder
+;; 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
+;; 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=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
+;; -D WLED_USE_PSRAM_JSON -DALL_JSON_TO_PSRAM ; WLEDMM --> force all JSON stuff into PSRAM; gives more free heap
+;; lib_deps = ${esp32s3.lib_deps}
+;; ${esp32.AR_lib_deps}
+;; board_build.partitions = ${esp32.large_partitions}
+;; board_build.f_flash = 80000000L
+;; board_build.flash_mode = qio
+;; monitor_filters = esp32_exception_decoder
-[env:esp32s3dev_16MB_PSRAM_opi]
-extends = env:esp32s3dev_8MB_PSRAM_opi
-board_build.partitions = tools/WLED_ESP32_16MB.csv
-board_upload.flash_size = 16MB
+;; [env:esp32s3dev_16MB_PSRAM_opi]
+;; extends = env:esp32s3dev_8MB_PSRAM_opi
+;; board_build.partitions = tools/WLED_ESP32_16MB.csv
+;; board_upload.flash_size = 16MB
-[env:esp32s3dev_8MB_PSRAM_qspi]
+;; [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
+;; 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
@@ -823,25 +903,26 @@ lib_deps = ${esp32s2.lib_deps}
# custom board configurations
# ------------------------------------------------------------------------------
-[env:esp32c3dev_2MB]
-;; for ESP32-C3 boards with 2MB flash (instead of 4MB).
-;; this board need a specific partition file. OTA not possible.
-extends = esp32c3
-platform = ${esp32c3.platform}
-platform_packages = ${esp32c3.platform_packages}
-board = esp32-c3-devkitm-1
-build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3
- -D WLED_WATCHDOG_TIMEOUT=0
- -D WLED_DISABLE_OTA
- ; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB
- -DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip
-build_unflags = ${common.build_unflags}
-upload_speed = 115200
-lib_deps = ${esp32c3.lib_deps}
-board_build.partitions = tools/WLED_ESP32_2MB_noOTA.csv
-board_build.flash_mode = dio
-board_upload.flash_size = 2MB
-board_upload.maximum_size = 2097152
+;; WLEDMM: use [env:esp32c3dev_2MB_M] (WLEDMM build environment)
+;; [env:esp32c3dev_2MB]
+;; ;; for ESP32-C3 boards with 2MB flash (instead of 4MB).
+;; ;; this board need a specific partition file. OTA not possible.
+;; extends = esp32c3
+;; platform = ${esp32c3.platform}
+;; platform_packages = ${esp32c3.platform_packages}
+;; board = esp32-c3-devkitm-1
+;; build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3
+;; -D WLED_WATCHDOG_TIMEOUT=0
+;; -D WLED_DISABLE_OTA
+;; ; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB
+;; -DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip
+;; build_unflags = ${common.build_unflags}
+;; upload_speed = 115200
+;; lib_deps = ${esp32c3.lib_deps}
+;; board_build.partitions = tools/WLED_ESP32_2MB_noOTA.csv
+;; board_build.flash_mode = dio
+;; board_upload.flash_size = 2MB
+;; board_upload.maximum_size = 2097152
;WLEDMM: see below
; [env:wemos_shield_esp32]
@@ -1072,6 +1153,7 @@ build_flags_S =
-D WLEDMM_FASTPATH ;; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
; -D WLED_DEBUG_HEAP ;; WLEDMM enable heap debugging
-D WLED_ENABLE_GIF
+ ; -D WLED_ENABLE_FULL_FONTS ;; uncomment for (limited) unicode support in scrolling text - warning: increases firmware size by 6848 bytes
lib_deps_S =
;; https://github.com/kosme/arduinoFFT#develop @ 1.9.2+sha.419d7b0 ;; used for USERMOD_AUDIOREACTIVE - using "known working" hash
@@ -1087,6 +1169,7 @@ build_flags_M =
-D USERMOD_FOUR_LINE_DISPLAY
-D USERMOD_ROTARY_ENCODER_UI
-D USERMOD_AUTO_SAVE
+ -D WLED_ENABLE_FULL_FONTS ;; enables (limited) unicode support in scrolling text - warning: increases firmware size by 6848 bytes
${common_mm.animartrix_build_flags}
${common_mm.NetDebug_build_flags}
@@ -1145,12 +1228,20 @@ lib_deps_XL =
; common defaults for all MM environments
[esp32_4MB_S_base]
board = esp32dev
-platform = ${esp32.platform}
-platform_packages = ${esp32.platform_packages}
+;; legacy V3 platform
+platform = ${esp32_legacy.platform}
+platform_packages = ${esp32_legacy.platform_packages}
+build_unflags = ${esp32_legacy.build_unflags}
+build_flags = ${common.build_flags} ${esp32_legacy.build_flags} ${common_mm.build_flags_S} ${common_mm.build_disable_sync_interfaces}
+lib_deps = ${esp32_legacy.lib_deps} ${common_mm.lib_deps_S}
+lib_ignore = ${common_mm.DMXin_lib_ignore} ;; requires V4 framework
upload_speed = 460800 ; or 921600
-build_unflags = ${common.build_unflags}
-build_flags = ${common.build_flags_esp32} ${common_mm.build_flags_S} ${common_mm.build_disable_sync_interfaces}
-lib_deps = ${esp32.lib_deps} ${common_mm.lib_deps_S}
+;; new V4 platform
+;;platform = ${esp32.platform}
+;;platform_packages = ${esp32.platform_packages}
+;;build_unflags = ${common.build_unflags}
+;;build_flags = ${common.build_flags_esp32} ${common_mm.build_flags_S} ${common_mm.build_disable_sync_interfaces}
+;;lib_deps = ${esp32.lib_deps} ${common_mm.lib_deps_S}
board_build.partitions = ${esp32.default_partitions}
board_build.f_flash = 80000000L ; use full 80MHz speed for flash (default = 40Mhz)
board_build.flash_mode = dio ; (dio = dual i/o; more compatible than qio = quad i/o)
@@ -1159,7 +1250,7 @@ monitor_filters = esp32_exception_decoder
;common default for all max environments
[esp32_4MB_M_base]
extends = esp32_4MB_S_base
-build_flags = ${common.build_flags_esp32} ${common_mm.build_flags_S} ${common_mm.build_flags_M} ;; we don't want common_mm.build_disable_sync_interfaces, so we cannot inherit from esp32_4MB_S_base
+build_flags = ${common.build_flags} ${esp32_legacy.build_flags} ${common_mm.build_flags_S} ${common_mm.build_flags_M} ;; we don't want common_mm.build_disable_sync_interfaces, so we cannot inherit from esp32_4MB_S_base
build_unflags = ${esp32_4MB_S_base.build_unflags}
lib_deps = ${esp32_4MB_S_base.lib_deps} ${common_mm.lib_deps_M}
@@ -1173,6 +1264,9 @@ lib_deps = ${esp32_4MB_M_base.lib_deps} ${common_mm.lib_deps_XL}
[esp32_4MB_V4_S_base]
board = esp32dev
upload_speed = 460800 ; or 921600
+;;platform = ${esp32.platform} ;; "V4" = tasmota = standard
+;;platform_packages = ${esp32.platform_packages}
+;; softhack007: back to standard espressif platform, due to bad UX when OTA updating a previous versions - slow, unresponsive, wifi lost, out of RAM
platform = ${esp32.platformV4}
platform_packages = ${esp32.platformV4_packages}
build_unflags = ${common.build_unflags}
@@ -1186,7 +1280,8 @@ lib_deps = ${common_mm.lib_deps_S} ;; do not incl
${common_mm.DMXin_lib_deps}
esp32_build_flags = ${esp32.build_flagsV4} ${esp32_4MB_V4_S_base.build_flags} ;; this is for esp32 only, including specific "V4" flags
esp32_lib_deps = ${esp32.lib_depsV4} ${esp32_4MB_V4_S_base.lib_deps} ;; this is for esp32 only, including specific "V4" flags
-board_build.partitions = ${esp32.default_partitions}
+;;board_build.partitions = ${esp32.default_partitions}
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
board_build.f_flash = 80000000L ; use full 80MHz speed for flash (default = 40Mhz)
board_build.flash_mode = dio ; (dio = dual i/o; more compatible than qio = quad i/o)
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
@@ -1287,14 +1382,23 @@ build_flags = ${esp32_4MB_M_base.build_flags}
[env:esp32_4MB_M_eth]
extends = esp32_4MB_M_base
+;;board_build.partitions = ${esp32.default_partitions}
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_M_eth
-D WLED_USE_ETHERNET
-D RLYPIN=-1 -D BTNPIN=-1 ;; Prevent clash
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
-D WLEDMM_SAVE_FLASH
-; RAM: [== ] 24.2% (used 79404 bytes from 327680 bytes)
-; Flash: [==========] 97.8% (used 1538025 bytes from 1572864 bytes)
+ ;-D WLED_DISABLE_ALEXA
+ ;-D WLED_DISABLE_HUESYNC ;; Over the limits ?
+ ;-D WLED_DISABLE_LOXONE ;; Over the limits
+ ;-D WLED_DISABLE_MQTT
+ -D WLED_DISABLE_INFRARED ;; Over the limit
+ -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+; RAM: [== ] 24.1% (used 78904 bytes from 327680 bytes)
+; Flash: [==========] 98.5% (used 1548489 bytes from 1572864 bytes
[env:esp32_4MB_XL]
extends = esp32_4MB_XL_base
@@ -1315,8 +1419,8 @@ board_build.partitions = tools/WLED_ESP32_4MB_256KB_FS.csv
[env:esp32_16MB_S]
extends = esp32_4MB_S_base
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
build_unflags = ${esp32_4MB_S_base.build_unflags}
${Speed_Flags.build_unflags} ;; to override -Os
build_flags = ${esp32_4MB_S_base.build_flags}
@@ -1335,9 +1439,9 @@ lib_deps = ${esp32_4MB_S_base.lib_deps}
extends = esp32_4MB_M_base
build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_16MB_M
-board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+board = esp32_16MB
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
; RAM: [== ] 24.2% (used 79196 bytes from 327680 bytes)
; Flash: [======= ] 73.6% (used 1542905 bytes from 2097152 bytes)
@@ -1368,8 +1472,8 @@ build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_16MB_M_debug
monitor_filters = esp32_exception_decoder
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
; RAM: [== ] 24.3% (used 79468 bytes from 327680 bytes)
; Flash: [======== ] 76.7% (used 1609205 bytes from 2097152 bytes)
@@ -1377,17 +1481,17 @@ board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for
extends = esp32_4MB_XL_base
build_flags = ${esp32_4MB_XL_base.build_flags}
-D WLED_RELEASE_NAME=esp32_16MB_XL
-board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+board = esp32_16MB
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
; RAM: [== ] 24.5% (used 80140 bytes from 327680 bytes)
; Flash: [======== ] 77.8% (used 1631929 bytes from 2097152 bytes)
[env:esp32_16MB_M_eth]
extends = esp32_4MB_M_base
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
board = esp32_16MB-poe ;; needed for ethernet boards (selects "esp32-poe" as variant)
build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_16MB_M_eth ; This will be included in the firmware.bin filename
@@ -1403,10 +1507,14 @@ upload_speed = 460800 ;115200
board_build.f_cpu = 160000000L ;; we want 160Mhz (default = 80Mhz)
build_flags = ${common.build_flags_esp8266}
-D WLED_RELEASE_NAME=esp8266_2MB_S
+ -D WLED_USE_UNREAL_MATH ;; may cause some wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM
+ -D WLEDMM_SAVE_FLASH
-D WLED_DISABLE_ALEXA
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
+ -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
;; -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
;; -D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes
; -D WLED_DISABLE_2D
@@ -1415,8 +1523,8 @@ build_flags = ${common.build_flags_esp8266}
; -D WLED_DEBUG
; monitor_filters = esp8266_exception_decoder
;; lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [====== ] 60.8% (used 49836 bytes from 81920 bytes)
-; Flash: [======== ] 83.3% (used 869783 bytes from 1044464 bytes)
+; RAM: [====== ] 61.3% (used 50224 bytes from 81920 bytes)
+; Flash: [========= ] 87.6% (used 915303 bytes from 1044464 bytes)
[env:esp8266_4MB_S]
extends = env:d1_mini
@@ -1431,13 +1539,17 @@ build_flags = ${common.build_flags_esp8266}
;; -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
;; -D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes
; -D WLED_DISABLE_2D
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D
+ -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+ -D WLEDMM_SAVE_FLASH
+ -D WLED_USE_UNREAL_MATH
; -UWLED_USE_MY_CONFIG
${common_mm.NetDebug_build_flags}
; -D WLED_DEBUG
; monitor_filters = esp8266_exception_decoder
;; lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [====== ] 60.8% (used 49824 bytes from 81920 bytes)
-; Flash: [======== ] 83.3% (used 869779 bytes from 1044464 bytes)
+; RAM: [====== ] 61.3% (used 50220 bytes from 81920 bytes)
+; Flash: [========= ] 89.5% (used 934483 bytes from 1044464 bytes)
[env:esp8266_4MB_M]
extends = env:d1_mini
upload_speed = 460800 ;115200
@@ -1447,6 +1559,10 @@ build_flags = ${common.build_flags_esp8266}
-D WLED_DISABLE_ALEXA
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_LOXONE
+ -D WLEDMM_SAVE_FLASH
+ -D WLED_USE_UNREAL_MATH
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
; -D USERMOD_AUDIOREACTIVE
; -UWLED_USE_MY_CONFIG
; -D USERMOD_PIRSWITCH
@@ -1467,8 +1583,8 @@ lib_deps = ${esp8266.lib_deps}
OneWire@~2.3.5 ; used for USERMOD_FOUR_LINE_DISPLAY and USERMOD_DALLASTEMPERATURE
olikraus/U8g2 @ ^2.28.8 ; used for USERMOD_FOUR_LINE_DISPLAY
ElectronicCats/MPU6050 @ 0.6.0 ; used for USERMOD_MPU6050_IMU
-; RAM: [====== ] 63.0% (used 51632 bytes from 81920 bytes)
-; Flash: [========= ] 88.5% (used 924179 bytes from 1044464 bytes)
+; RAM: [====== ] 63.0% (used 51608 bytes from 81920 bytes)
+; Flash: [========= ] 94.9% (used 991039 bytes from 1044464 bytes)
; Blaz env (for reference purposes)
[env:d1_mini_temp]
@@ -1478,7 +1594,6 @@ build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266
-D WLED_DISABLE_ALEXA
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_LOXONE
- -D WLED_DISABLE_AUDIO ;WLEDMM not used anywhere
-D WLED_ENABLE_SIMPLE_UI
-D USERMOD_FOUR_LINE_DISPLAY
-D USE_ALT_DISPlAY
@@ -1515,6 +1630,10 @@ build_flags = ${common.build_flags_esp8266}
-D WLED_DISABLE_ALEXA
-D WLED_DISABLE_HUESYNC
; -D WLED_DEBUG ${common.debug_flags} ;; un-comment for debug messages
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+ -D WLEDMM_SAVE_FLASH
+ ;; -D WLED_USE_UNREAL_MATH
${common_mm.NetDebug_build_flags}
;; -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
; -D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
@@ -1526,8 +1645,8 @@ build_flags = ${common.build_flags_esp8266}
; -UWLED_USE_MY_CONFIG
monitor_filters = esp8266_exception_decoder
; lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [====== ] 59.3% (used 48616 bytes from 81920 bytes)
-; Flash: [======== ] 77.0% (used 804236 bytes from 1044464 bytes)
+; RAM: [====== ] 61.5% (used 50400 bytes from 81920 bytes)
+; Flash: [========= ] 90.1% (used 941059 bytes from 1044464 bytes)
[env:esp8266pro_16MB_M]
extends = env:d1_mini
@@ -1547,7 +1666,11 @@ build_flags = ${common.build_flags_esp8266}
-D WLED_DISABLE_LOXONE
; -D USERMOD_AUDIOREACTIVE
; -D USERMOD_ARTIFX ; to be done
- ;; -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
+ -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D
+ -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+ -D WLEDMM_SAVE_FLASH
+ ;; -D WLED_USE_UNREAL_MATH
-D USERMOD_PIRSWITCH
-D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S3 (autodetect broken?)
-D USERMOD_MULTI_RELAY
@@ -1562,8 +1685,8 @@ lib_deps = ${esp8266.lib_deps}
OneWire@~2.3.5 ; used for USERMOD_FOUR_LINE_DISPLAY and USERMOD_DALLASTEMPERATURE
olikraus/U8g2 @ ^2.28.8 ; used for USERMOD_FOUR_LINE_DISPLAY
ElectronicCats/MPU6050 @ 0.6.0 ; used for USERMOD_MPU6050_IMU
-; RAM: [====== ] 63.8% (used 52272 bytes from 81920 bytes)
-; Flash: [========= ] 90.4% (used 944487 bytes from 1044464 bytes)
+; RAM: [====== ] 62.9% (used 51508 bytes from 81920 bytes)
+; Flash: [==========] 96.2% (used 1005115 bytes from 1044464 bytes)
[env:esp01_1MB_S]
board = esp01_1m
@@ -1573,17 +1696,21 @@ board_build.ldscript = ${common.ldscript_1m128k}
build_unflags = ${common.build_unflags}
build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA
-D WLED_RELEASE_NAME=esp01_1MB_S
+ -D WLED_USE_UNREAL_MATH ;; may cause some wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM
-D WLED_DISABLE_ALEXA
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_ESPNOW ;; exceeds flash size limits
-D WLED_DISABLE_INFRARED ;; exceeds flash size limits
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
-
+ -D WLEDMM_SAVE_FLASH
+ ;; -D WLED_DISABLE_LOXONE
+ ;; -D WLED_DISABLE_MQTT
+ ;; -D WLED_DISABLE_2D ;; last resort to reduce flash size
lib_deps = ${esp8266.lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [====== ] 60.6% (used 49616 bytes from 81920 bytes)
-; Flash: [==========] 99.8% (used 890835 bytes from 892912 bytes)
+; RAM: [====== ] 60.3% (used 49408 bytes from 81920 bytes)
+; Flash: [==========] 98.6% (used 880331 bytes from 892912 bytes)
# ------------------------------------------------------------------------------
@@ -1595,6 +1722,9 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compila
; compiled with ESP-IDF 4.4.1; HUB75 supported
[env:esp32_4MB_V4_S]
extends = esp32_4MB_V4_S_base
+board_build.partitions = ${esp32.default_partitions} ;; compatible with upstream
+build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
+ ${common_mm.DMXin_build_flags} ;; exceeds flash size limits
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_V4_S
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
@@ -1606,19 +1736,25 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_MQTT
-D WLED_DISABLE_INFRARED
+ -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
${common_mm.HUB75_build_flags}
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
${common_mm.HUB75_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [=== ] 25.5% (used 83400 bytes from 327680 bytes)
-; Flash: [==========] 97.3% (used 1530013 bytes from 1572864 bytes)
+ ${common_mm.DMXin_lib_ignore}
+; RAM: [=== ] 25.3% (used 83052 bytes from 327680 bytes)
+; Flash: [==========] 98.2% (used 1544273 bytes from 1572864 bytes)
[env:esp32_4MB_V4_S_eth]
extends = esp32_4MB_V4_S_base
+;;board_build.partitions = ${esp32.default_partitions}
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_V4_S
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
@@ -1634,6 +1770,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D SR_DEBUG
; -D MIC_LOGGER
${common_mm.HUB75_build_flags}
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
-D WLED_USE_ETHERNET
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
@@ -1671,11 +1808,13 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_DISABLE_MQTT
-D WLED_DISABLE_INFRARED
-D WLED_DISABLE_ADALIGHT
+ -D WLED_ENABLE_FULL_FONTS ;; increases firmware size by 6848 bytes
;; -D WLED_DEBUG
;; -D SR_DEBUG
-D WLED_BOOTUPDELAY=350
${common_mm.HUB75_build_flags}
- -DESP32_FORUM_PINOUT
+ -DESP32_FORUM_PINOUT
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
${common_mm.animartrix_build_flags}
;;-DARDUINO_EVENT_RUNNING_CORE=0 ;; assign Wifi to core0, to have more CPU on core#1 (arduino loop)
;;-DARDUINO_RUNNING_CORE=1 ;; should be default, but does not hurt
@@ -1701,16 +1840,21 @@ board_build.flash_mode = qio ; (dio = dual i/o; more compatible than qio = quad
; compiled with ESP-IDF 4.4.1
[env:esp32_4MB_V4_M]
extends = esp32_4MB_V4_M_base
+;; needs tasmota framework; will exceed flash limits with default framework
+platform = ${esp32.platform} ;; "V4" tasmota
+platform_packages = ${esp32.platform_packages}
build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_V4_M
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
- -D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
- -D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
- -D WLED_DISABLE_HUESYNC ;RAM 122 bytes; FLASH 6308 bytes
- -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes ;; softhack007 disabled to stay below 100% flash size
+ ;;-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
+ ;;-D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
+ ;;-D WLED_DISABLE_HUESYNC ;RAM 122 bytes; FLASH 6308 bytes
+ ;;-D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes ;; softhack007 disabled to stay below 100% flash size
-D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes ;; softhack007 disabled to stay below 100% flash size
- -D WLEDMM_SAVE_FLASH
+ ;;-D WLEDMM_SAVE_FLASH
+ ;;-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;;-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
${common_mm.HUB75_lib_ignore} ;; over the flash size limit
@@ -1718,10 +1862,10 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compila
build_unflags = ${esp32_4MB_V4_M_base.build_unflags}
-D USERMOD_ANIMARTRIX ;; Tips our memory usage over the limit
-D USERMOD_ARTIFX
- -D USERMOD_AUTO_SAVE
+ ;; -D USERMOD_AUTO_SAVE
-D WLED_ENABLE_HUB75MATRIX
-; RAM: [=== ] 26.1% (used 85632 bytes from 327680 bytes)
-; Flash: [==========] 99.5% (used 1565065 bytes from 1572864 bytes)
+; RAM: [== ] 23.9% (used 78204 bytes from 327680 bytes)
+; Flash: [========= ] 85.8% (used 1349585 bytes from 1572864 bytes)
;; V4 build for 16MB flash, optimized for speed; HUB75 supported
[env:esp32_16MB_V4_S]
@@ -1738,13 +1882,14 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D JSON_BUFFER_SIZE=18432 -D MIN_HEAP_SIZE=6144
-D MAX_SEGMENT_DATA=40960 ;; default 32767
${common_mm.HUB75_build_flags}
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
${common_mm.animartrix_build_flags}
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
${common_mm.HUB75_lib_deps}
${common_mm.animartrix_lib_deps}
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
;; optimized-for-speed build
; RAM: [== ] 23.7% (used 77704 bytes from 327680 bytes)
; Flash: [======== ] 84.4% (used 1770341 bytes from 2097152 bytes)
@@ -1764,13 +1909,14 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
-D FLD_PIN_SCL=-1 -D FLD_PIN_SDA=-1 ; use global!
-D HW_PIN_SCL=22 -D HW_PIN_SDA=21
${common_mm.HUB75_build_flags}
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
${common_mm.animartrix_build_flags}
lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps}
${common_mm.HUB75_lib_deps}
${common_mm.animartrix_lib_deps}
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
; RAM: [=== ] 25.7% (used 84104 bytes from 327680 bytes)
; Flash: [======== ] 80.7% (used 1692269 bytes from 2097152 bytes)
@@ -1788,8 +1934,8 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps}
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
monitor_filters = esp32_exception_decoder
; RAM: [=== ] 26.4% (used 86356 bytes from 327680 bytes)
; Flash: [======== ] 83.6% (used 1753461 bytes from 2097152 bytes)
@@ -1800,9 +1946,10 @@ extends = esp32_4MB_V4_S_base
board = lolin_d32_pro
;board = esp32cam
;board = ttgo-t7-v14-mini32
-board_build.partitions = ${esp32.extended_partitions}
board_build.f_flash = 80000000L
-;board_build.flash_mode = dio
+;;board_build.flash_mode = qio
+board_build.flash_mode = dio
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
-D WLED_ENABLE_DMX
@@ -1815,6 +1962,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
-D WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
-D WLEDMM_SAVE_FLASH
+ -mfix-esp32-psram-cache-issue ;; Older ESP32 (rev.<3) need a PSRAM fix (increases static RAM used) https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/external-ram.html
+ -D LEDPIN=25 -D DATA_PINS=25 ; avoid pin 16 = PSRAM
-DBOARD_HAS_PSRAM ;; -D WLED_USE_PSRAM ;; WLED_USE_PSRAM causes major slow-down (slow LEDs) on some ESP32 boards
-D WLED_USE_PSRAM_JSON -DALL_JSON_TO_PSRAM ; WLEDMM --> force all JSON stuff into PSRAM; gives more free heap
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
@@ -1826,6 +1975,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D SR_DEBUG
; -D MIC_LOGGER
${common_mm.HUB75_build_flags}
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
${common_mm.HUB75_lib_deps}
lib_ignore =
@@ -1833,8 +1983,8 @@ lib_ignore =
;; ${common_mm.HUB75_lib_ignore}
${common_mm.animartrix_lib_ignore}
${common_mm.DMXin_lib_ignore}
-;; RAM: [== ] 17.8% (used 58236 bytes from 327680 bytes)
-;; Flash: [========= ] 90.0% (used 1534209 bytes from 1703936 bytes)
+;; RAM: [== ] 15.5% (used 50664 bytes from 327680 bytes)
+;; Flash: [======== ] 75.7% (used 1289229 bytes from 1703936 bytes)
;; similar to 4MB_PSRAM_S, but optimized for WROVER-E (chip revision >= 3) that doesn't need any workarounds for PSRAM any more
;; tl;dr: its faster on PSRAM. But it will not work on all boards.
@@ -1843,9 +1993,9 @@ extends = esp32_4MB_V4_S_base
;board = esp32cam
board = lolin_d32_pro
;board = ttgo-t7-v14-mini32
-board_build.partitions = ${esp32.extended_partitions}
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
board_build.f_flash = 80000000L
-board_build.flash_mode = dio
+board_build.flash_mode = qio
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
;;${Speed_Flags.build_unflags} ;; to override -Os
@@ -1866,6 +2016,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_PSRAM_REV3_S
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
+ -D LEDPIN=25 -D DATA_PINS=25 ; avoid pin 16 = PSRAM
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
-D WLED_DISABLE_HUESYNC ; RAM 122 bytes; FLASH 6308 bytes
-D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
@@ -1877,14 +2028,15 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D SR_DEBUG
; -D MIC_LOGGER
${common_mm.HUB75_build_flags}
+ -D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
${common_mm.HUB75_lib_deps}
lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
${common_mm.animartrix_lib_ignore}
;; ${common_mm.HUB75_lib_ignore}
-;; RAM: [== ] 18.0% (used 58920 bytes from 327680 bytes)
-;; Flash: [========= ] 90.6% (used 1542929 bytes from 1703936 bytes)
+;; RAM: [== ] 15.7% (used 51340 bytes from 327680 bytes)
+;; Flash: [======== ] 75.4% (used 1284377 bytes from 1703936 bytes)
# ------------------------------------------------------------------------------
@@ -1894,6 +2046,9 @@ lib_ignore =
[env:esp32S3_4MB_S] ;; Use for HD-WF2
extends = esp32_4MB_V4_M_base
+;; use standard espressif platform - tasmota platform seems to have problems when there is no PSRAM (sdkconfig.h file not found)
+platform = ${esp32.platformV4}
+platform_packages = ${esp32.platformV4_packages}
board = esp32-s3-devkitc-1
build_unflags =
-D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S3 (autodetect broken?)
@@ -1919,10 +2074,16 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S}
${common_mm.HUB75_lib_deps}
${common_mm.animartrix_lib_deps}
+board_build.f_flash = 80000000L
+board_build.flash_mode = dio
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
[env:esp32S3_8MB_M]
extends = esp32_4MB_V4_M_base
+;; use standard espressif platform - tasmota platform seems to have problems when there is no PSRAM (sdkconfig.h file not found)
+platform = ${esp32.platformV4}
+platform_packages = ${esp32.platformV4_packages}
board = esp32-s3-devkitc-1
build_unflags =
-D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S3 (autodetect broken?)
@@ -1976,6 +2137,9 @@ board_build.flash_mode = qio
;; HUB75 supported, but may still hve pin conflicts
[env:esp32S3_8MB_PSRAM_M]
extends = esp32_4MB_V4_M_base
+;; we have enough flash - use standard espressif platform instead of tasmota
+platform = ${esp32.platformV4}
+platform_packages = ${esp32.platformV4_packages}
board = esp32-s3-devkitc-1 ;; generic S3 dev board; the next line adds PSRAM support
board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB
@@ -2020,6 +2184,9 @@ board_build.partitions = tools/WLED_ESP32_8MB.csv
[env:esp32S3_8MB_S]
;; MM for ESP32-S3 boards - FASTPATH + optimize for speed; ; HUB75 support included (may still have pin conflicts)
extends = esp32_4MB_V4_M_base
+;; use standard espressif platform - tasmota platform seems to have problems when there is no PSRAM (sdkconfig.h file not found)
+platform = ${esp32.platformV4}
+platform_packages = ${esp32.platformV4_packages}
board = esp32-s3-devkitc-1 ;; generic S3 dev board
board_build.flash_mode = qio ;; use "dio" if your board gets unstable with "qio"
build_unflags = ${env:esp32S3_8MB_M.build_unflags} ;; use the same as "normal" S3 buildenv
@@ -2067,6 +2234,9 @@ board_build.partitions = tools/WLED_ESP32_8MB.csv
;; MOONHUB HUB75 adapter board
[env:esp32S3_16MB_PSRAM_M_HUB75]
extends = env:esp32S3_8MB_PSRAM_M
+;; we have enough flash - use standard espressif platform instead of tasmota
+platform = ${esp32.platformV4}
+platform_packages = ${esp32.platformV4_packages}
board = lilygo-t7-s3
board_build.arduino.memory_type = qio_opi
board_build.flash_mode = qio
@@ -2106,15 +2276,21 @@ lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_
board_build.partitions = ${esp32.extreme_partitions}
board_upload.flash_size = 16MB
board_upload.maximum_size =16777216
-; RAM: [== ] 19.0% (used 62332 bytes from 327680 bytes)
-; Flash: [====== ] 57.7% (used 1813585 bytes from 3145728 bytes)
+; RAM: [== ] 19.1% (used 62712 bytes from 327680 bytes)
+; Flash: [====== ] 60.1% (used 1891929 bytes from 3145728 bytes)
;; MM for ESP32-S3 WROOM-2, a.k.a. ESP32-S3 DevKitC-1 v1.1
-;; with >= 16MB FLASH and >= 8MB PSRAM (memory_type: opi_opi)
+;; with 16MB FLASH and >= 8MB PSRAM (memory_type: opi_opi)
;; includes HUB75 and AnimArtix
[env:esp32S3_WROOM-2_M]
extends = env:esp32S3_8MB_PSRAM_M
+;; tasmota platform
+;; platform = ${esp32s3.platform}
+;; platform_packages = ${esp32s3.platform_packages}
+;; we have enough flash - use standard espressif platform instead of tasmota
+platform = ${esp32.platformV4}
+platform_packages = ${esp32.platformV4_packages}
board_build.flash_mode = dout ;; dummy value - bootloader will switch to "opi"
board_build.arduino.memory_type = opi_opi
board = esp32s3camlcd ;; this is the only standard board with "opi_opi"
@@ -2145,9 +2321,24 @@ lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_
${common_mm.HUB75_lib_deps}
${common_mm.animartrix_lib_deps}
+;; MM for ESP32-S3 WROOM-2 with 32MB flash and PSRAM
+[env:esp32S3_WROOM-2_M_32MB]
+extends = env:esp32S3_WROOM-2_M
+board_build.partitions = tools/WLED_ESP32_32MB.csv
+board_upload.flash_size = 32MB
+board_upload.maximum_size = 33554432
+;; replace WLED_RELEASE_NAME, keep everything else
+build_unflags = ${env:esp32S3_WROOM-2_M.build_unflags}
+ -D WLED_RELEASE_NAME=esp32S3_WROOM-2_M
+build_flags = ${env:esp32S3_WROOM-2_M.build_flags}
+ -D WLED_RELEASE_NAME=esp32S3_WROOM-2_M_32MB
+
+
;; MM for esp32-s3 zero/supermini and lolin S3 mini boards - fastpath, optimize for speed
[env:esp32S3_4MB_PSRAM_S]
extends = env:esp32S3_8MB_S
+platform = ${esp32s3.platform}
+platform_packages = ${esp32s3.platform_packages}
board = lolin_s3_mini ;; -S3 mini: 4MB flash 2MB PSRAM
board_build.partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; 1.8MB firmware, 256KB filesystem (esptool erase_flash needed when changing from "standard WLED" partitions)
;; board_build.partitions = tools/WLED_ESP32_4MB_512KB_FS.csv ;; 1.7MB firmware, 500KB filesystem (esptool erase_flash needed when changing from "standard WLED" partitions)
@@ -2165,13 +2356,13 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
-D WLED_DISABLE_ADALIGHT ;; disables serial protocols - recommended for Hardware-CDC USB (Serial RX will receive junk commands when RX pin is unconnected, unless its pulled down by resistor)
${Speed_Flags.build_flags_V4} ;; optimize for speed instead of size
-D WLEDMM_FASTPATH ;; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
- -D WLEDMM_SAVE_FLASH
+ ;; -D WLEDMM_SAVE_FLASH
${common_mm.animartrix_build_flags}
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
- -D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
- -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
- -D WLED_DISABLE_HUESYNC ;RAM 122 bytes; FLASH 6308 bytes
+ ;; -D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
+ ;; -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
+ ;; -D WLED_DISABLE_HUESYNC ;RAM 122 bytes; FLASH 6308 bytes
-D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes
-D LEDPIN=21
-D BTNPIN=-1 -D RLYPIN=-1 -D IRPIN=-1
@@ -2187,14 +2378,16 @@ lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
${common_mm.HUB75_lib_ignore}
${common_mm.DMXin_lib_ignore}
-; RAM: [== ] 18.6% (used 60828 bytes from 327680 bytes)
-; Flash: [======== ] 76.9% (used 1461829 bytes from 1900544 bytes)
+; RAM: [== ] 16.1% (used 52912 bytes from 327680 bytes)
+; Flash: [======= ] 66.2% (used 1257281 bytes from 1900544 bytes)
;; MM for esp32-s3 zero/supermini and lolin S3 mini boards - standard
[env:esp32S3_4MB_PSRAM_M]
extends = env:esp32S3_8MB_M
+platform = ${esp32s3.platform}
+platform_packages = ${esp32s3.platform_packages}
board = lolin_s3_mini ;; -S3 mini: 4MB flash 2MB PSRAM
-board_build.partitions = ${esp32.default_partitions}
+board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem
build_unflags = ${common.build_unflags}
-D WLED_ENABLE_HUB75MATRIX ;; board does not have enough pins for HUB75
-D USERMOD_ANIMARTRIX ;; not enough flash
@@ -2218,21 +2411,20 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
-D WLED_DISABLE_INFRARED ; RAM 136 bytes; FLASH 24492 bytes - disabled to stay below 100%
;; -D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
;; -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
- -D WLEDMM_SAVE_FLASH
+ ;; -D WLEDMM_SAVE_FLASH
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
- -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
- -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
${common_mm.HUB75_lib_ignore}
${common_mm.DMXin_lib_ignore}
${common_mm.animartrix_lib_ignore}
-; RAM: [== ] 18.7% (used 61172 bytes from 327680 bytes)
-; Flash: [==========] 97.7% (used 1536157 bytes from 1572864 bytes)
-
+; RAM: [== ] 16.1% (used 52744 bytes from 327680 bytes)
+; Flash: [======== ] 83.5% (used 1312937 bytes from 1572864 bytes)
# ------------------------------------------------------------------------------
# esp32-S2 environments
@@ -2243,12 +2435,9 @@ lib_ignore =
;; to ewowi - i'll optimize this entry later, as a few things can be inherited for sure. To softhack: sure ;-)
[env:esp32s2_tinyUF2_PSRAM_S]
extends = esp32_4MB_V4_S_base
-;;platform = ${esp32s2.platform} ;; using 5.2.0, due to massive connectivity problems on -S2 with 5.3.0
-;;platform_packages = ${esp32s2.platform_packages}
-
;; tasmota platform needed, as we are over flash size limits for the standard platform
-platform = ${esp32_idf_V4.platform}
-platform_packages = ${esp32_idf_V4.platform_packages}
+platform = ${esp32s2.platform}
+platform_packages = ${esp32s2.platform_packages}
board = adafruit_qtpy_esp32s2
board_build.partitions = tools/partitions-4MB_spiffs-tinyuf2.csv ;; this is needed for tinyUF2 bootloader! Filename has to end in "tinyuf2.csv"
@@ -2299,19 +2488,19 @@ lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
OneWire ; not needed as we don't include USERMOD_DALLASTEMPERATURE
monitor_filters = esp32_exception_decoder
-; RAM: [== ] 17.9% (used 58548 bytes from 327680 bytes)
-; Flash: [======== ] 82.0% (used 1182554 bytes from 1441792 bytes)
+; RAM: [== ] 17.9% (used 58728 bytes from 327680 bytes)
+; Flash: [======== ] 83.6% (used 1204774 bytes from 1441792 bytes)
;; MM environment for generic ESP32-S2, with PSRAM, 4MB flash (300kB filesystem to have more program space)
;; PINs assignments optimized for use with serg74 "mini shield"
[env:esp32s2_PSRAM_M]
extends = esp32_4MB_V4_M_base
-;; standard platform
-platform = ${esp32s2.platform} ;; using 5.2.0, due to massive connectivity problems on -S2 with 5.3.0
+;; default tasmota platform
+platform = ${esp32s2.platform}
platform_packages = ${esp32s2.platform_packages}
-;; tasmota platform (optional)
-;; platform = ${esp32_idf_V4.platform}
-;; platform_packages = ${esp32_idf_V4.platform_packages}
+;; standard espressif platform (optional)
+;; platform = ${esp32.platformV4}
+;; platform_packages = ${esp32.platformV4_packages}
board = lolin_s2_mini
board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem (esptool erase_flash needed when changing from "standard WLED" partitions)
@@ -2357,8 +2546,8 @@ lib_ignore =
${common_mm.HUB75_lib_ignore}
${common_mm.DMXin_lib_ignore}
monitor_filters = esp32_exception_decoder
-; RAM: [== ] 20.5% (used 67256 bytes from 327680 bytes)
-; Flash: [========= ] 93.3% (used 1590266 bytes from 1703936 bytes)
+; RAM: [== ] 18.2% (used 59640 bytes from 327680 bytes)
+; Flash: [======== ] 80.3% (used 1368130 bytes from 1703936 bytes)
[env:esp32s2_PSRAM_S]
extends = env:esp32s2_PSRAM_M
@@ -2377,21 +2566,20 @@ lib_deps = ${env:esp32s2_PSRAM_M.lib_deps}
lib_ignore = ${env:esp32s2_PSRAM_M.lib_ignore}
U8g2
${common_mm.animartrix_lib_ignore}
-; RAM: [== ] 20.4% (used 66792 bytes from 327680 bytes)
-; Flash: [========= ] 94.8% (used 1490390 bytes from 1572864 bytes)
-
+; RAM: [== ] 18.1% (used 59176 bytes from 327680 bytes)
+; Flash: [======== ] 81.0% (used 1273946 bytes from 1572864 bytes)
# ------------------------------------------------------------------------------
# esp32-C3 environments
# ------------------------------------------------------------------------------
-;; MM environment for generic ESP32-C3 -> 4MB flash, no PSRAM
+;; MM environment for generic ESP32-C3 -> 4MB flash, qio mode, no PSRAM
[env:esp32c3dev_4MB_M]
extends = esp32_4MB_V4_S_base
;board_build.flash_mode = dout
-platform = ${esp32.platformV4}
-platform_packages = ${esp32.platformV4_packages}
+platform = ${esp32c3.platform}
+platform_packages = ${esp32c3.platform_packages}
board_build.flash_mode = qio
board = esp32-c3-devkitm-1
;board_build.partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; 1.8MB firmware, 256KB filesystem (esptool erase_flash needed when changing from "standard WLED" partitions)
@@ -2406,9 +2594,9 @@ build_unflags = ${common.build_unflags}
-D WLED_ENABLE_DMX ;; disabled because it does not work with ESP-IDF 4.4.x (buggy driver in SparkFunDMX)
-D WLED_ENABLE_DMX_INPUT ;; needs more testing
;-D WLED_DEBUG_HOST='"192.168.x.x"' ;; to disable net print
- -D USERMOD_ANIMARTRIX ;; Tips our memory usage over the limit
+ ${common_mm.animartrix_build_flags} ;; Tips our memory usage over the limit
-DUSERMOD_ARTIFX ;; over the limit
- -DWLEDMM_FASTPATH ;; needs more testing on -C3
+ ; -DWLED_ENABLE_FULL_FONTS ;; removing full unicode support saves 10KB of flash
build_flags = ${common.build_flags} ${esp32c3.build_flags}
; -D WLED_DISABLE_OTA ;; OTA is not possible for boards with 2MB flash only (like some Ai-Thinker ESP32-C3-12F models)
@@ -2424,7 +2612,7 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags}
-D WLEDMM_WIFI_POWERON_HACK -DLOLIN_WIFI_FIX ;; use this _only_ if your device is not able to make a WiFI connection!
;-D WLED_DISABLE_INFRARED ;; save flash space
;-D WLED_DISABLE_ALEXA ;; save flash space
- -D WLEDMM_SAVE_FLASH
+ ;-D WLEDMM_SAVE_FLASH
-D LEDPIN=8 ;; onboard neopixel 5x5 Matrix. Attach your own LEDs to GPIO 20
-D BTNPIN=9
; -D STATUSLED=10 ;; onboard LED
@@ -2432,15 +2620,17 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags}
;-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; for I2C Qwiic connector
-D SR_DMTYPE=1 -D I2S_SDPIN=5 -D I2S_WSPIN=6 -D I2S_CKPIN=4 -D MCLK_PIN=7
; -D WLED_USE_MY_CONFIG
- -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
- -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
lib_deps = ${esp32c3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
lib_ignore =
;IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
OneWire ; not needed as we don't include USERMOD_DALLASTEMPERATURE
U8g2 ; not needed as we don't include USERMOD_FOUR_LINE_DISPLAY
-; RAM: [== ] 24.6% (used 80732 bytes from 327680 bytes)
-; Flash: [==========] 97.5% (used 1533360 bytes from 1572864 bytes)
+ ${common_mm.animartrix_lib_ignore} ;; Tips our memory usage over the limit
+; RAM: [== ] 22.1% (used 72408 bytes from 327680 bytes)
+; Flash: [======== ] 83.5% (used 1313420 bytes from 1572864 bytes)
+
;; MM environment for ESP32-C3 "mini" and "super mini" -> flash mode "dio" instead of "qio" (see #101)
[env:esp32c3mini_dio_4MB_M]
extends = env:esp32c3dev_4MB_M
@@ -2455,18 +2645,16 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags}
-DARDUINO_USB_CDC_ON_BOOT=0
-D WLED_RELEASE_NAME=esp32c3mini_dio_4MB_M
-D WLED_DISABLE_BROWNOUT_DET ;; the board only has a 500mA LDO, better to disable brownout detection
- -D WLED_DISABLE_ADALIGHT ;; to disable serial protocols for boards with CDC USB (Serial RX will receive junk commands, unless its pulled down by resistor)
-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; avoid pin conflicts
- -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
- -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
-; RAM: [== ] 24.6% (used 80556 bytes from 327680 bytes)
-; Flash: [==========] 97.3% (used 1530346 bytes from 1572864 bytes)
+; RAM: [== ] 22.0% (used 72240 bytes from 327680 bytes)
+; Flash: [======== ] 83.4% (used 1311474 bytes from 1572864 bytes)
[env:esp32c3dev_2MB_M]
extends = env:esp32c3dev_4MB_M
board = lolin_c3_mini
;;; replace WLED_RELEASE_NAME, disable CDC_ON_BOOT
build_unflags = ${env:esp32c3dev_4MB_M.build_unflags}
+ ;; -DWLED_ENABLE_FULL_FONTS ;; removing full unicode support saves 10KB of flash
-DARDUINO_USB_CDC_ON_BOOT=1
-D WLED_RELEASE_NAME=esp32c3dev_4MB_M
@@ -2483,34 +2671,38 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags}
-DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip
-D WLED_RELEASE_NAME=esp32c3dev_2MB_M
-D WLED_DISABLE_BROWNOUT_DET ;; the board only has a 500mA LDO, better to disable brownout detection
- -D WLED_DISABLE_ADALIGHT ;; to disable serial protocols for boards with CDC USB (Serial RX will receive junk commands, unless its pulled down by resistor)
+ ; -D WLED_DISABLE_ADALIGHT ;; to disable serial protocols for boards with CDC USB (Serial RX will receive junk commands, unless its pulled down by resistor)
-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; avoid pin conflicts
- -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
- -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
-; RAM: [== ] 24.0% (used 78676 bytes from 327680 bytes)
-; Flash: [==========] 96.4% (used 1516068 bytes from 1572864 bytes)
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+; RAM: [== ] 21.5% (used 70296 bytes from 327680 bytes)
+; Flash: [======== ] 82.5% (used 1297438 bytes from 1572864 bytes)
;; MM environment for "seeed xiao -C3" boards
[env:seeed_esp32c3_4MB_S]
extends = env:esp32c3dev_4MB_M
board = seeed_xiao_esp32c3
-platform = ${esp32.platformV4_pre} ;; standard IDF 4.4.1 platform - seems to work better for seeed xiao board
+platform = ${esp32.platformV4_pre} ;; older espressif ESP-IDF v4.4.1 platform - seems to work better for seeed xiao board
platform_packages = ${esp32.platformV4_packages_pre}
-board_build.flash_mode = qio
+board_build.flash_mode = dio
upload_speed = 460800
build_unflags = ${env:esp32c3dev_4MB_M.build_unflags}
- -DWLEDMM_FASTPATH ;; needs more testing on -C3
-D WLED_ENABLE_HUB75MATRIX ;; not enough pins
+ -DARDUINO_USB_CDC_ON_BOOT=1 ;; hangs on boot
+ ; -DWLED_ENABLE_FULL_FONTS ;; removing full unicode support saves 10KB of flash
build_flags = ${common.build_flags} ${esp32c3.build_flags}
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
${common_mm.build_flags_S} -Wno-misleading-indentation -Wno-format-truncation
-D WLED_RELEASE_NAME=seeed_esp32c3_4MB_S
- -DARDUINO_USB_CDC_ON_BOOT=1 ;; enable CDC USB -> needed for debugging over serial USB
+ -DARDUINO_USB_CDC_ON_BOOT=0 ;; disable CDC USB, as the older framework has problems with it
-D WLED_DISABLE_ADALIGHT ;; to disable serial protocols when using CDC USB (Serial RX pin will receive junk commands, unless its pulled down by resistor)
-D WLED_DISABLE_INFRARED ;; save flash space
;-D WLED_DISABLE_ALEXA ;; save flash space
;-D WLED_DISABLE_HUESYNC ;; save flash space
;-D WLED_DISABLE_LOXONE ;; save flash space
+ ;; -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
+ ;; -D WLEDMM_SAVE_FLASH
;-D WLEDMM_WIFI_POWERON_HACK -DLOLIN_WIFI_FIX ;; use this _only_ if your device is not able to make a WiFI connection!
-D LEDPIN=3 ;; attach your LEDs to GPIO3 aka "D1" / "A1"
-D BTNPIN=9
@@ -2522,8 +2714,9 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags}
lib_deps = ${esp32c3.lib_deps} ${common_mm.lib_deps_S}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
monitor_filters = esp32_exception_decoder
-; RAM: [== ] 22.4% (used 73388 bytes from 327680 bytes)
-; Flash: [========= ] 92.7% (used 1458598 bytes from 1572864 bytes)
+; RAM: [== ] 22.5% (used 73740 bytes from 327680 bytes)
+; Flash: [==========] 96.3% (used 1515336 bytes from 1572864 bytes)
+
# ------------------------------------------------------------------------------
# custom board environments
# ------------------------------------------------------------------------------
@@ -2602,15 +2795,16 @@ extends = wemos_shield_esp32_4MB_S_base
build_flags = ${wemos_shield_esp32_4MB_S_base.build_flags}
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_S
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
[env:wemos_shield_esp32_16MB_M]
extends = wemos_shield_esp32_4MB_M_base
build_flags = ${wemos_shield_esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_M
-board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+board = esp32_16MB
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
;board_build.flash_mode = qio
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
; Flash: [======= ] 66.4% (used 1393421 bytes from 2097152 bytes)
@@ -2629,8 +2823,8 @@ extends = wemos_shield_esp32_4MB_XL_base
build_flags = ${wemos_shield_esp32_4MB_XL_base.build_flags} ${Shield_ICS4343x.build_flags}
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_ICS4343x_XL
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
; RAM: [== ] 24.4% (used 80044 bytes from 327680 bytes)
; Flash: [======= ] 67.9% (used 1424185 bytes from 2097152 bytes)
@@ -2638,9 +2832,9 @@ board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for
extends = wemos_shield_esp32_4MB_M_base
build_flags = ${wemos_shield_esp32_4MB_M_base.build_flags} ${Shield_SPM1423.build_flags}
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_SPM1423_M
-board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+board = esp32_16MB
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
; Flash: [========= ] 88.6% (used 1393421 bytes from 1572864 bytes)
@@ -2649,8 +2843,8 @@ extends = wemos_shield_esp32_4MB_XL_base
build_flags = ${wemos_shield_esp32_4MB_XL_base.build_flags} ${Shield_SPM1423.build_flags}
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_SPM1423_XL
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
; Flash: [========= ] 88.6% (used 1393421 bytes from 1572864 bytes)
@@ -2660,8 +2854,8 @@ build_unflags = ${common.build_unflags} ${Shield_LineIn.build_unflags}
build_flags = ${wemos_shield_esp32_4MB_M_base.build_flags} ${Shield_LineIn.build_flags}
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_LineIn_M
board = esp32_16MB
-board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
-;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
+;board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
+board_build.partitions = ${esp32.extreme_partitions} ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
# ------------------------------------------------------------------------------
@@ -2671,10 +2865,11 @@ board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for
;https://www.athom.tech/blank-1/wled-esp32-music-addressable-led-strip-controller
[env:athom_music_esp32_4MB_M]
extends = esp32_4MB_M_base
-build_unflags = ${common.build_unflags}
+build_unflags = ${esp32_legacy.build_unflags}
-D USERMOD_ARTIFX ;; disabled to save some program space in flash
-D USERMOD_DALLASTEMPERATURE ;; disabled - flash space is too tight for this
-D USERMOD_ROTARY_ENCODER_UI ;; see above
+ ${common_mm.DMXin_build_flags}
build_flags = ${esp32_4MB_M_base.build_flags}
${Athom_PDMmic.build_flags}
-D WLED_AP_SSID_UNIQUE
@@ -2694,6 +2889,8 @@ build_flags = ${esp32_4MB_M_base.build_flags}
; -D PWM_PIN=-1
; -D WLED_USE_MY_CONFIG
-D WLEDMM_SAVE_FLASH
+lib_ignore = ${esp32_4MB_M_base.lib_ignore}
+ ${common_mm.DMXin_lib_ignore}
; RAM: [=== ] 26.3% (used 86204 bytes from 327680 bytes)
; Flash: [========= ] 93.6% (used 1471681 bytes from 1572864 bytes)
@@ -2744,15 +2941,18 @@ build_flags = ${esp32_4MB_M_base.build_flags}
; -D MCLK_PIN=0
-D SR_ENABLE_DEFAULT ;; enable at first start - no need to manually set "enable", then reboot
; -D WLED_USE_MY_CONFIG
- ; -D WLED_DISABLE_LOXONE
+ -D WLED_DISABLE_LOXONE ;; exceeds flash size limits
; -D WLED_DISABLE_ALEXA
; -D WLED_DISABLE_HUESYNC
; -D WLED_DISABLE_MQTT
; -D WLED_DISABLE_INFRARED
; -D WLED_ENABLE_DMX
-; RAM: [=== ] 26.0% (used 85236 bytes from 327680 bytes)
-; Flash: [==========] 97.1% (used 1527049 bytes from 1572864 bytes)
-
+ -D WLEDMM_SAVE_FLASH
+ -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
+ -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
+ ;; -D WLED_DISABLE_PARTICLESYSTEM2D
+; RAM: [== ] 24.2% (used 79424 bytes from 327680 bytes)
+; Flash: [==========] 99.9% (used 1571177 bytes from 1572864 bytes)
;; experimental
;; PICO environment with ESP-IDF v4.4.4 / arduino-esp32 v2.0.9
[env:esp32_pico_4MB_V4_S]
@@ -2762,6 +2962,7 @@ upload_speed = 256000 ;; or 115200 ;; or 460800 ; or 921600 (slower speeds are
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
-D WLED_ENABLE_HUB75MATRIX ;; not enough pins
+ ${common_mm.DMXin_build_flags} ;; board is too small, no pins
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
-D WLED_RELEASE_NAME=esp32_pico_4MB_V4_S
@@ -2781,14 +2982,17 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D MCLK_PIN=0
-D SR_ENABLE_DEFAULT ;; enable audioreactive at first start - no need to manually set "enable", then reboot
; -D WLED_USE_MY_CONFIG
+ -D WLEDMM_SAVE_FLASH
+ -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems
+ ;;-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit (default_partitions only)
+ ;;-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit (default_partitions only)
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
${common_mm.HUB75_lib_ignore}
-; RAM: [=== ] 27.9% (used 91528 bytes from 327680 bytes)
-; Flash: [==========] 96.7% (used 1521457 bytes from 1572864 bytes)
-;
-
+ ${common_mm.DMXin_lib_ignore}
+; RAM: [=== ] 26.0% (used 85100 bytes from 327680 bytes)
+; Flash: [========= ] 90.0% (used 1534269 bytes from 1703936 bytes)
[env:adafruit_matrixportal_esp32s3_legacy]
; ESP32-S3 processor, 8 MB flash, 2 MB of PSRAM, dedicated driver pins for HUB75
diff --git a/readme.md b/readme.md
index a44a82b3..7404cd5f 100644
--- a/readme.md
+++ b/readme.md
@@ -1,12 +1,11 @@
-
-
+
+
-
@@ -14,7 +13,7 @@
-MoonModules/WLED is a fork of [Aircoookie/WLED](https://github.com/Aircoookie/WLED) which contains latest merge of v0.14 of WLED with [additional features](https://mm.kno.wled.ge/moonmodules/what-is-moonmodules/).
+MoonModules/WLED is a fork of [wled/WLED](https://github.com/wled/WLED) which contains latest merge of v0.14 of WLED with [additional features](https://mm.kno.wled.ge/moonmodules/what-is-moonmodules/).
This fork is created by members of the [Atuline/WLED](https://github.com/atuline/WLED) team to make development against v0.14 possible while still preserving [Atuline/WLED v0.13.x](https://github.com/atuline/WLED/tree/dev) as a stable and supported version. The Atuline/WLED fork is also called WLED SR (Sound Reactive).
@@ -33,4 +32,4 @@ We welcome contributions to this project! See [contributing](https://github.com/
## *Disclaimer:*
-Using this software is the users responsibility as it is not bug free. Therefore contributors of this repo are not reliable for anything including but not limited to spontaneous combustion of the entire led strip, the house and the inevitable heat death of the universe
+Using this software is the users responsibility as it is not bug free. Therefore contributors of this repo are not liable for anything including but not limited to spontaneous combustion of the entire led strip, the house and the inevitable heat death of the universe
diff --git a/tools/WLED_ESP32_32MB.csv b/tools/WLED_ESP32_32MB.csv
new file mode 100644
index 00000000..2aa06e6f
--- /dev/null
+++ b/tools/WLED_ESP32_32MB.csv
@@ -0,0 +1,7 @@
+# Name, Type, SubType, Offset, Size, Flags
+nvs, data, nvs, 0x9000, 0x5000,
+otadata, data, ota, 0xe000, 0x2000,
+app0, app, ota_0, 0x10000, 0x300000,
+app1, app, ota_1, 0x310000,0x300000,
+spiffs, data, spiffs, 0x610000,0x19E0000,
+coredump, data, coredump,,64K
diff --git a/tools/cdata.js b/tools/cdata.js
index 561d390e..d9664551 100644
--- a/tools/cdata.js
+++ b/tools/cdata.js
@@ -63,7 +63,10 @@ function adoptVersionAndRepo(html) {
// Replace we
html = strReplace(html, "https://github.com/atuline/WLED", repoUrl);
html = strReplace(html, "https://github.com/Aircoookie/WLED", repoUrl);
- html = strReplace(html, "https://github.com/MoonModules/WLED", repoUrl); //WLEDMM
+ // html = strReplace(html, "https://github.com/wled-dev/WLED", repoUrl); // replacing upstream break "credits"
+ // html = strReplace(html, "https://github.com/wled/WLED", repoUrl);
+ // html = strReplace(html, "https://github.com/MoonModules/WLED", repoUrl); //WLEDMM
+ // html = strReplace(html, "https://github.com/MoonModules/WLED-MM", repoUrl); //WLEDMM - not necessary to replace ourselves ;-)
}
let version = packageJson.version;
if (version) {
@@ -416,6 +419,12 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()=====";
method: "gzip",
filter: "html-minify",
},
+ {
+ file: "404mini.htm",
+ name: "PAGE_404_mini",
+ method: "gzip",
+ filter: "html-minify",
+ },
{
file: "favicon.ico",
name: "favicon",
diff --git a/tools/partitions-16MB_spiffs-tinyuf2.csv b/tools/partitions-16MB_spiffs-tinyuf2.csv
new file mode 100644
index 00000000..238710e9
--- /dev/null
+++ b/tools/partitions-16MB_spiffs-tinyuf2.csv
@@ -0,0 +1,10 @@
+# ESP-IDF Partition Table
+# Name, Type, SubType, Offset, Size, Flags
+# bootloader.bin,, 0x1000, 32K
+# partition table,, 0x8000, 4K
+nvs, data, nvs, 0x9000, 20K,
+otadata, data, ota, 0xe000, 8K,
+ota_0, app, ota_0, 0x10000, 2048K,
+ota_1, app, ota_1, 0x210000, 2048K,
+uf2, app, factory,0x410000, 256K,
+spiffs, data, spiffs, 0x450000, 11968K,
diff --git a/usermods/artifx/artifx.js b/usermods/artifx/artifx.js
index f2386448..19819ca6 100644
--- a/usermods/artifx/artifx.js
+++ b/usermods/artifx/artifx.js
@@ -78,7 +78,7 @@ function populateCEEditor(name, segID)
+ Congratulations! You have found the page that exists in the place where no page should exist - a peculiar phenomenon
+ of the web that continues to baffle researchers.
Akemi has compiled a list of other mysteries that she recommends for further investigation.
+
+
+
+
Akemi's Top 10 Mysteries Worth Exploring:
+
+
+
+
Dark Matter - Accounts for 85% of the universe's mass yet remains completely invisible. Akemi notes this is considerably more elusive than your car keys.
+
Dark Energy - An unknown force accelerating the universe's expansion at an alarming rate. Akemi suggests it may simply be late for something important.
+
The Missing Antimatter - After the Big Bang, matter inexplicably survived while antimatter did not. Akemi calls this "a fortunate asymmetry for carbon-based life forms."
+
The Origin of Life - How non-living chemistry spontaneously organized itself into living cells. Akemi admits this transition remains "inconveniently unexplained."
+
Consciousness - The phenomenon by which organized matter becomes aware of itself. How does a bunch of squishy brain stuff create the feeling of being "you"? Philosophy meets neuroscience and nobody wins. Akemi recommends not thinking about this too hard.
+
The Identity of Satoshi Nakamoto - Creator of Bitcoin who vanished completely from the digital realm. Akemi notes this as "masterful execution of the Irish goodbye."
+
Sailing Stones of Death Valley - Rocks that traverse the desert floor leaving trails. While ice and wind are implicated, Akemi maintains they're "just showing off."
+
Anomalous Deep Ocean Acoustics - Unexplained sounds from the ocean depths, including the famous "Bloop." Akemi has no comment, but looks nervous.
+
Quantum Gravity - The incompatibility of general relativity and quantum mechanics. Akemi cheerfully notes we don't actually understand how reality works.
+
The Arrow of Time - Why causality flows in only one direction despite physics allowing both. Akemi suggests entropy is "quite insistent about this."
+
Turritopsis dohrnii - A jellyfish capable of reversing its aging process. Akemi lists this under "Biological Cheat Codes."
+
+
+
+
\ No newline at end of file
diff --git a/wled00/data/404mini.htm b/wled00/data/404mini.htm
new file mode 100644
index 00000000..28044502
--- /dev/null
+++ b/wled00/data/404mini.htm
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ Not found
+
+
+
+
+
404 Not Found
+ Akemi does not know where you are headed...
+
+
+ Congratulations! You have found the page that exists in the place where no page should exist – a peculiar phenomenon
+ of the web that continues to baffle researchers.
+
+
+
\ No newline at end of file
diff --git a/wled00/data/index.css b/wled00/data/index.css
index deb0cc64..1c3a08c5 100644
--- a/wled00/data/index.css
+++ b/wled00/data/index.css
@@ -707,7 +707,7 @@ img {
#wbal .sliderdisplay { background: linear-gradient(90deg, #ff8f1f 0%, #fff 50%, #cbdbff); }
/* wrapper divs hidden by default */
-#liveview, #liveview2D, #roverstar, #pql
+#liveview, #liveview2D, #roverstar, #pql,
#rgbwrap, #swrap, #hwrap, #kwrap, #wwrap, #wbal, #qcs-w, #hexw,
.clear-icon, .edit-icon, .ptxt {
display: none;
diff --git a/wled00/data/index.js b/wled00/data/index.js
index bd27f952..68b72209 100644
--- a/wled00/data/index.js
+++ b/wled00/data/index.js
@@ -697,6 +697,8 @@ function populateInfo(i)
//if (i.ver.includes("0.14.1-b")) vcn = "Fried Chicken"; // final line of "One Vision" by Queen
if (i.ver.includes("0.14.3-b")) vcn = "Fried Chicken";
if (i.ver.includes("14.5.")) vcn = "Small Step";
+ if (i.ver.includes("14.6.")) vcn = "New Light";
+ if (i.ver.includes("14.7.")) vcn = "Next Step";
cn += `v${i.ver} "${vcn}"