move all C3 and S2 builds to tasmota platform

* solved a few platformio.ini problems that lead to an unhealthy mix-up of espressif and tasmota platforms
* re-enabled "full font" support for -C3
* re-enabled full ParticleFX support for -C3
This commit is contained in:
Frank
2025-11-24 14:01:48 +01:00
parent fd0e35fa6c
commit e43fe6cd52

View File

@@ -328,7 +328,7 @@ platform_packages_compat =
[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}
@@ -342,6 +342,7 @@ 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}
@@ -349,6 +350,10 @@ AR_lib_deps = ${common_mm.AR_lib_deps} ;; optimized version, 10% faster on
;; 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
@@ -387,13 +392,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
@@ -418,12 +426,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
@@ -445,9 +453,11 @@ lib_deps =
;; makuna/NeoPixelBus @ 2.7.5 ;; standard
makuna/NeoPixelBus @ 2.7.9 ;; experimental - reduces LED glitches on -S2
${env.lib_deps}
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}
@@ -469,9 +479,11 @@ lib_deps =
makuna/NeoPixelBus @ 2.7.5
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
${env.lib_deps}
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}
@@ -494,6 +506,7 @@ lib_deps =
makuna/NeoPixelBus @ 2.7.5
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
${env.lib_deps}
monitor_filters = esp32_exception_decoder
# ------------------------------------------------------------------------------
@@ -676,8 +689,8 @@ upload_speed = 460800
build_unflags = ${common.build_unflags}
lib_deps = ${esp32c3.lib_deps}
board_build.flash_mode = dio ;; some boards do not boot with the faster "qio" mode
; RAM: [== ] 22.5% (used 73740 bytes from 327680 bytes)
; Flash: [==========] 96.3% (used 1515336 bytes from 1572864 bytes)
; RAM: [== ] 21.2% (used 69312 bytes from 327680 bytes)
; Flash: [======== ] 78.1% (used 1228472 bytes from 1572864 bytes)
[env:esp32s3dev_8MB]
;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM (flash_mode: qio)
@@ -850,8 +863,8 @@ board_build.partitions = tools/WLED_ESP32_2MB_noOTA.csv
board_build.flash_mode = dio
board_upload.flash_size = 2MB
board_upload.maximum_size = 2097152
; RAM: [== ] 23.3% (used 76204 bytes from 327680 bytes)
; Flash: [==========] 95.2% (used 1497536 bytes from 1572864 bytes)
; RAM: [== ] 20.6% (used 67496 bytes from 327680 bytes)
; Flash: [======== ] 77.9% (used 1224652 bytes from 1572864 bytes)
;WLEDMM: see below
; [env:wemos_shield_esp32]
@@ -2276,12 +2289,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"
@@ -2332,19 +2342,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)
@@ -2390,8 +2400,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
@@ -2410,21 +2420,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)
@@ -2441,7 +2450,7 @@ build_unflags = ${common.build_unflags}
;-D WLED_DEBUG_HOST='"192.168.x.x"' ;; to disable net print
${common_mm.animartrix_build_flags} ;; Tips our memory usage over the limit
-DUSERMOD_ARTIFX ;; over the limit
-DWLED_ENABLE_FULL_FONTS ;; removing full unicode support saves 10KB of flash
; -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)
@@ -2457,7 +2466,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
@@ -2465,7 +2474,7 @@ 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_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 =
@@ -2473,8 +2482,9 @@ lib_ignore =
OneWire ; not needed as we don't include USERMOD_DALLASTEMPERATURE
U8g2 ; not needed as we don't include USERMOD_FOUR_LINE_DISPLAY
${common_mm.animartrix_lib_ignore} ;; Tips our memory usage over the limit
; RAM: [== ] 24.7% (used 81004 bytes from 327680 bytes)
; Flash: [==========] 99.2% (used 1559754 bytes from 1572864 bytes)
; 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
@@ -2490,15 +2500,15 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags}
-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 HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; avoid pin conflicts
; RAM: [== ] 24.7% (used 80828 bytes from 327680 bytes)
; Flash: [==========] 99.0% (used 1556768 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
;; -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
@@ -2515,24 +2525,25 @@ 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_PARTICLESYSTEM1D ;; exceeds flash size limit
;; -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
; RAM: [== ] 24.1% (used 78948 bytes from 327680 bytes)
; Flash: [==========] 98.0% (used 1541914 bytes from 1572864 bytes)
; 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 = dio
upload_speed = 460800
build_unflags = ${env:esp32c3dev_4MB_M.build_unflags}
-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
@@ -2543,6 +2554,9 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags}
;-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
@@ -2556,6 +2570,7 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compila
monitor_filters = esp32_exception_decoder
; RAM: [== ] 22.5% (used 73740 bytes from 327680 bytes)
; Flash: [==========] 96.3% (used 1515336 bytes from 1572864 bytes)
# ------------------------------------------------------------------------------
# custom board environments
# ------------------------------------------------------------------------------