platformio maintenance

* updates flash size statistics
* moved all MM specific dependencies into [common_mm] to simplify maintenance of versions
* "V4_xp" = experimental arduino-esp32 v2.0.14
This commit is contained in:
Frank
2024-05-01 02:15:59 +02:00
parent 08d73646fd
commit 4597a88516

View File

@@ -324,8 +324,8 @@ lib_deps =
${env.lib_deps}
;; Compatibility with upstream --> you should prefer using ${common_mm.build_flags_S} and ${common_mm.lib_deps_S}
AR_build_flags = -D USERMOD_AUDIOREACTIVE -D UM_AUDIOREACTIVE_USE_NEW_FFT
AR_lib_deps = https://github.com/softhack007/arduinoFFT.git#develop @ 1.9.2 ;; used for USERMOD_AUDIOREACTIVE - optimized version, 10% faster on -S2/-C3
AR_build_flags = ${common_mm.AR_build_flags}
AR_lib_deps = ${common_mm.AR_lib_deps} ;; optimized version, 10% faster on -S2/-C3
;; WLEDMM begin
@@ -338,10 +338,9 @@ platformV4_packages_pre =
platformV4 = espressif32@ ~6.3.2
platformV4_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)
;;; experimental: latest V4 platform with latest arduino-esp32 2.0.9 + ESP-IDF 4.4.4 (may or may not work)
platformV4_xp = espressif32@ ~6.4.0
platformV4_packages_xp = platformio/framework-arduinoespressif32 @ ~3.20009.0 ;; arduino-esp32 v2.0.9+
;; platformV4_packages_xp = platformio/framework-arduinoespressif32 @ ~3.20011.0 ;; arduino-esp32 v2.0.11 (latest one supported in platformio)
;;; experimental: latest V4 platform with latest arduino-esp32 2.0.14 + ESP-IDF 4.4.6 (may or may not work)
platformV4_xp = espressif32@ ~6.5.0
platformV4_packages_xp = platformio/framework-arduinoespressif32 @ 3.20014.231204 ;; arduino-esp32 2.0.14
build_flagsV4 = -g
-DARDUINO_ARCH_ESP32 -DESP32
@@ -355,7 +354,7 @@ build_flagsV4 = -g
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 !!
makuna/NeoPixelBus @ 2.7.5
https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.git @ 3.0.10
${common_mm.HUB75_lib_deps}
${env.lib_deps}
@@ -1005,6 +1004,24 @@ build_disable_sync_interfaces =
-D WLED_DISABLE_ADALIGHT ;; WLEDMM this board does not have a serial-to-USB chip. Better to disable serial protocols, to avoid crashes (see upstream #3128)
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
AR_build_flags = -D USERMOD_AUDIOREACTIVE -D UM_AUDIOREACTIVE_USE_NEW_FFT ;; WLEDMM audioreactive usermod, licensed under GPLv3
AR_lib_deps = https://github.com/softhack007/arduinoFFT.git#develop @ 1.9.2 ;; used for USERMOD_AUDIOREACTIVE - optimized version, 10% faster on -S2/-C3
animartrix_build_flags = -D USERMOD_ANIMARTRIX ;; WLEDMM usermod: CC BY-NC 3.0 licensed effects by Stefan Petrick
animartrix_lib_deps = https://github.com/netmindz/animartrix.git#18bf17389e57c69f11bc8d04ebe1d215422c7fb7
animartrix_lib_ignore = animartrix ;; to remove the animartrix lib dependancy (saves a few bytes)
DMXin_build_flags = -D WLED_ENABLE_DMX_INPUT ;; WLEDMM DMX physical input - requires ESP-IDF v4.4.x
DMXin_lib_deps = https://github.com/someweisguy/esp_dmx.git#47db25d ;; for DMX_INPUT
DMXin_lib_ignore = esp_dmx ;; to remove the esp-dmx lib dependancy (saves a few bytes)
HUB75_build_flags =
-D WLED_ENABLE_HUB75MATRIX ;-D SPIRAM_FRAMEBUFFER ;; WLEDMM HUB75 support - requires ESP-IDF v4.4.x
-D NO_GFX ; Disable the use of Adafruit_GFX by the HUB75 driver
HUB75_lib_deps = https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.git @ 3.0.10
HUB75_lib_ignore = ESP32 HUB75 LED MATRIX PANEL DMA Display ;; to remove the HUB75 lib dependancy (saves a few bytes)
build_flags_S =
-Wall -Wformat -Woverflow -Wuninitialized -Winit-self -Warray-bounds ; enables more warnings
-Wno-attributes -Wno-unused-variable -Wno-unused-function -Wno-deprecated-declarations ;disables some stupid warnings
@@ -1012,20 +1029,15 @@ build_flags_S =
-D WLED_USE_MY_CONFIG
; -D WLED_DISABLE_2D ;; un-comment to build a firmware without 2D matrix support
; -D WLED_USE_CIE_BRIGHTNESS_TABLE ;; experimental: use different color / brightness lookup table
-D USERMOD_AUDIOREACTIVE
${common_mm.AR_build_flags} ; use latest (upstream) FFTLib, instead of older library modified by blazoncek. Slightly faster, more accurate, needs 2KB RAM extra
-D USERMOD_AUTO_PLAYLIST
-D UM_AUDIOREACTIVE_USE_NEW_FFT ; use latest (upstream) FFTLib, instead of older library modified by blazoncek. Slightly faster, more accurate, needs 2KB RAM extra
; -D USERMOD_ARTIFX ;; WLEDMM usermod - temporarily moved into "_M", due to problems in "_S" when compiling with -O2
-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
lib_deps_S =
;; https://github.com/kosme/arduinoFFT#develop @ 1.9.2+sha.419d7b0 ;; used for USERMOD_AUDIOREACTIVE - using "known working" hash
https://github.com/softhack007/arduinoFFT.git#develop @ 1.9.2 ;; used for USERMOD_AUDIOREACTIVE - optimized version, 10% faster on -S2/-C3
animartrix_build_flags = -D USERMOD_ANIMARTRIX ;; WLEDMM usermod: CC BY-NC 3.0 licensed effects by Stefan Petrick
animartrix_lib_deps = https://github.com/netmindz/animartrix.git#18bf17389e57c69f11bc8d04ebe1d215422c7fb7
${common_mm.AR_lib_deps} ;; used for USERMOD_AUDIOREACTIVE - optimized version, 10% faster on -S2/-C3
build_flags_M =
-D USERMOD_ARTIFX ; WLEDMM usermod - temporarily moved into "_M", due to problems in "_S" when compiling with -O2
@@ -1134,9 +1146,9 @@ build_flags = ${common.build_flags} ${common_mm.build_flags_S} ${common_mm.build
-Wshadow=compatible-local ;; emit warning in case a local variable "shadows" another local one
;-Wstack-usage=2732 ;; warn if a function needs more that 30% of availeable stack ("stack usage might be unbounded", "stack usage is 2824 bytes")
;-Wsuggest-attribute=const -Wsuggest-attribute=pure ;; ask compiler for hints on attributes
-D WLED_ENABLE_DMX_INPUT
${common_mm.DMXin_build_flags}
lib_deps = ${common_mm.lib_deps_S} ;; do not include ${esp32.lib_depsV4} here !!!!
https://github.com/someweisguy/esp_dmx.git#47db25d ;; for DMX_INPUT
${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}
@@ -1570,8 +1582,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
; RAM: [=== ] 27.7% (used 90664 bytes from 327680 bytes)
; Flash: [==========] 95.1% (used 1495497 bytes from 1572864 bytes)
; RAM: [=== ] 28.1% (used 91960 bytes from 327680 bytes)
; Flash: [==========] 97.8% (used 1537777 bytes from 1572864 bytes)
; compiled with ESP-IDF 4.4.1
[env:esp32_4MB_V4_M]
extends = esp32_4MB_V4_M_base
@@ -1582,16 +1594,21 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
-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
-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
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
${common_mm.animartrix_lib_ignore}
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 WLED_ENABLE_HUB75MATRIX
;; RAM: [=== ] 25.9% (used 84708 bytes from 327680 bytes)
;; Flash: [==========] 98.5% (used 1549033 bytes from 1572864 bytes)
;; RAM: [=== ] 28.0% (used 91664 bytes from 327680 bytes)
;; Flash: [==========] 99.9% (used 1572053 bytes from 1572864 bytes)
;; V4 build for 16MB flash, optimized for speed
[env:esp32_16MB_V4_S]
@@ -1662,6 +1679,8 @@ monitor_filters = esp32_exception_decoder
extends = esp32_4MB_V4_S_base
board = lolin_d32_pro
;board = esp32cam
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
-D WLED_ENABLE_HUB75MATRIX ;; uses too much flash
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_PSRAM_S
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
@@ -1679,8 +1698,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D MIC_LOGGER
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
;; RAM: [== ] 24.3% (used 79524 bytes from 327680 bytes)
;; Flash: [========= ] 93.2% (used 1466389 bytes from 1572864 bytes)
;; RAM: [== ] 20.4% (used 66960 bytes from 327680 bytes)
;; Flash: [==========] 98.7% (used 1553129 bytes from 1572864 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.
@@ -1694,6 +1713,7 @@ build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
-DARDUINO_EVENT_RUNNING_CORE=1 ;; we want to run wifi on core0, so remove the standard flag
-mfix-esp32-psram-cache-issue ;; this fix is not needed any more for revision 3
-mfix-esp32-psram-cache-strategy=memw ;; same as above
-D WLED_ENABLE_HUB75MATRIX ;; uses too much flash
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-DARDUINO_EVENT_RUNNING_CORE=0 ;; assign Wifi to core0, to have more CPU on core#1 (arduino loop)
@@ -1718,8 +1738,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D MIC_LOGGER
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
;; RAM: [==== ] 35.9% (used 117688 bytes from 327680 bytes)
;; Flash: [========= ] 94.5% (used 1487097 bytes from 1572864 bytes)
;; RAM: [== ] 20.4% (used 66976 bytes from 327680 bytes)
;; Flash: [==========] 97.0% (used 1525833 bytes from 1572864 bytes)
;; PSRAM build env that only leaves 300Kb for filesystem (instead of 1MB), but adds 300kB for program space
[env:esp32_4MB_PSRAM_M]
@@ -1743,8 +1763,8 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
; -D MIC_LOGGER
lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps}
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
;; RAM: [== ] 24.9% (used 81484 bytes from 327680 bytes)
;; Flash: [======== ] 84.6% (used 1607857 bytes from 1900544 bytes)
;; RAM: [== ] 20.7% (used 67672 bytes from 327680 bytes)
;; Flash: [========= ] 90.4% (used 1718421 bytes from 1900544 bytes)
# ------------------------------------------------------------------------------
@@ -1978,6 +1998,7 @@ build_unflags = ${common.build_unflags}
-D WLED_ENABLE_DMX_INPUT ;; needs more testing
-DWLEDMM_FASTPATH ;; needs more testing on -S2
-DUSERMOD_RTC
-D WLED_ENABLE_HUB75MATRIX
build_flags = ${common.build_flags} ${esp32s2.build_flags}
; ${Debug_Flags.build_flags} ;ewowi: enabling debug causes Error: The program size (1463330 bytes) is greater than maximum allowed (1441792 bytes)
@@ -2034,6 +2055,7 @@ 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
-DWLEDMM_FASTPATH ;; needs more testing on -S2
-D WLED_ENABLE_HUB75MATRIX
build_flags = ${common.build_flags} ${esp32s2.build_flags}
;; ${Debug_Flags.build_flags}
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
@@ -2122,8 +2144,8 @@ 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: [== ] 23.7% (used 77780 bytes from 327680 bytes)
; Flash: [========= ] 93.9% (used 1477456 bytes from 1572864 bytes)
; RAM: [=== ] 25.9% (used 84884 bytes from 327680 bytes)
; Flash: [==========] 99.1% (used 1557952 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]
@@ -2141,6 +2163,8 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags}
-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
; RAM: [=== ] 25.8% (used 84700 bytes from 327680 bytes)
; Flash: [==========] 98.9% (used 1554906 bytes from 1572864 bytes)
;; MM environment for "seeed xiao -C3" boards
[env:seeed_esp32c3_4MB_S]
@@ -2152,6 +2176,7 @@ board_build.flash_mode = qio
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
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
@@ -2171,11 +2196,10 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags}
-D WLED_USE_MY_CONFIG
;-D WLED_DEBUG -D SR_DEBUG
lib_deps = ${esp32c3.lib_deps} ${common_mm.lib_deps_S}
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
monitor_filters = esp32_exception_decoder
; RAM: [== ] 23.8% (used 77908 bytes from 327680 bytes)
; Flash: [========= ] 90.9% (used 1429302 bytes from 1572864 bytes)
; RAM: [== ] 23.6% (used 77460 bytes from 327680 bytes)
; Flash: [========= ] 91.7% (used 1442092 bytes from 1572864 bytes)
# ------------------------------------------------------------------------------
# custom board environments
@@ -2392,19 +2416,18 @@ build_flags = ${esp32_4MB_M_base.build_flags}
; -D WLED_DISABLE_MQTT
; -D WLED_DISABLE_INFRARED
; -D WLED_ENABLE_DMX
; RAM: [== ] 24.4% (used 79812 bytes from 327680 bytes)
; Flash: [========= ] 90.4% (used 1422581 bytes from 1572864 bytes)
; RAM: [=== ] 26.0% (used 85236 bytes from 327680 bytes)
; Flash: [==========] 97.1% (used 1527049 bytes from 1572864 bytes)
;; experimental
;; PICO environment with ESP-IDF v4.4.1 / arduino-esp32 v2.0.4
;; PICO environment with ESP-IDF v4.4.4 / arduino-esp32 v2.0.9
[env:esp32_pico_4MB_V4_S]
extends = esp32_4MB_V4_S_base
board = pico32
;platform = espressif32@~5.2.0 ;; alternative platform, might help in case you experience bootloops due to corrupted flash filesystem
;platform_packages =
upload_speed = 256000 ;; or 115200 ;; or 460800 ; or 921600 (slower speeds are better when flashing without a soldered connection)
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
-D WLED_ENABLE_HUB75MATRIX ;; not enough 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
@@ -2412,13 +2435,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D SERVERNAME='"WLED-pico32-V4"'
-D WLED_WATCHDOG_TIMEOUT=0
; -D WLED_WATCHDOG_TIMEOUT=60
; -D WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
-D WLED_DISABLE_ADALIGHT ;; WLEDMM this board does not have a serial-to-USB chip. Better to disable serial protocols, to avoid crashes (see upstream #3128)
; -D WLED_DISABLE_LOXONE
; -D WLED_DISABLE_ALEXA
; -D WLED_DISABLE_HUESYNC
; -D WLED_DISABLE_MQTT
; -D WLED_DISABLE_INFRARED
; -D WLED_DEBUG
; -D SR_DEBUG
-D LEDPIN=2
@@ -2430,16 +2447,16 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D SR_ENABLE_DEFAULT ;; enable audioreactive at first start - no need to manually set "enable", then reboot
; -D WLED_USE_MY_CONFIG
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
; RAM: [=== ] 25.4% (used 83144 bytes from 327680 bytes)
; Flash: [==========] 96.4% (used 1516029 bytes from 1572864 bytes)
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
; RAM: [=== ] 27.9% (used 91448 bytes from 327680 bytes)
; Flash: [==========] 96.2% (used 1513557 bytes from 1572864 bytes)
;
[env:adafruit_matrixportal_esp32s3]
extends = esp32_4MB_V4_M_base
platform = espressif32@ ~6.5.0 ;; first platform release supporting matrixportal
platform_packages = platformio/framework-arduinoespressif32 @ 3.20014.231204 ;; arduino-esp32 2.0.14 needed - previous versions were missing files for matrixportal
platform = ${esp32.platformV4_xp} ;; 6.5.0 = first platform release supporting matrixportal
platform_packages = ${esp32.platformV4_packages_xp} ;; arduino-esp32 2.0.14 needed - previous versions were missing files for matrixportal
board = adafruit_matrixportal_esp32s3
build_unflags = ${env:esp32S3_8MB_M.build_unflags} ;; use the same as "normal" S3 buildenv
@@ -2453,11 +2470,14 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
-D LOLIN_WIFI_FIX ;; try this in case Wifi does not work
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
-D WLED_USE_PSRAM -DBOARD_HAS_PSRAM ; tells WLED that PSRAM shall be used
-D WLED_ENABLE_HUB75MATRIX -D NO_GFX ;-D SPIRAM_FRAMEBUFFER
${common_mm.HUB75_build_flags}
-D DEFAULT_LED_TYPE=101
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ;; ;; do not include ${esp32.lib_depsV4} !!!!
${common_mm.animartrix_lib_deps}
https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.git @ 3.0.10
${common_mm.HUB75_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
monitor_filters = esp32_exception_decoder
;
; RAM: [== ] 20.4% (used 66984 bytes from 327680 bytes)
; Flash: [========= ] 94.8% (used 1491489 bytes from 1572864 bytes)