revive old V3 buildenv for esp32 (optional)

Allow users to build with the old "V3" framework if they want. All release builds are still using V4.
* fixed wrong references in some legacy envs
* added ${esp32_legacy.build_unflags}
* changed esp32_4MB_S_base and esp32_4MB_M_base to use old V3 framework
This commit is contained in:
Frank
2025-11-25 00:05:21 +01:00
parent 19c85a7430
commit 21f04370e5

View File

@@ -327,11 +327,14 @@ platform_packages_compat =
platformio/tool-esptoolpy #@ ~1.30000.0
;; old V3 platform for esp32. Not used any more, just kept for reference
;; 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
@@ -629,7 +632,7 @@ extends = env:esp32dev_V4_dio80
board = esp32dev
platform = ${esp32_legacy.platform}
platform_packages = ${esp32_legacy.platform_packages}
build_unflags = ${common.build_unflags}
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}
@@ -644,7 +647,7 @@ monitor_filters = esp32_exception_decoder
board = esp32dev
platform = ${esp32_legacy.platform}
platform_packages = ${esp32_legacy.platform_packages}
build_unflags = ${common.build_unflags}
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}
@@ -679,7 +682,7 @@ board = esp32-poe
platform = ${esp32_legacy.platform}
platform_packages = ${esp32_legacy.platform_packages}
upload_speed = 921600
build_unflags = ${common.build_unflags}
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}
@@ -1216,12 +1219,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)
@@ -1230,7 +1241,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}
@@ -1807,16 +1818,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
@@ -1824,10 +1840,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]
@@ -2821,10 +2837,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
@@ -2844,6 +2861,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)
@@ -2894,15 +2913,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]