1010# ------------------------------------------------------------------------------
1111
1212# CI/release binaries
13- default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, nodemcuv2_compat, esp8266_2m_compat, esp01_1m_full_compat, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_16MB_opi, esp32s3dev_8MB_opi, esp32s3_4M_qspi, esp32_wrover, usermods
13+ default_envs = nodemcuv2
14+ esp8266_2m
15+ esp01_1m_full
16+ nodemcuv2_160
17+ esp8266_2m_160
18+ esp01_1m_full_160
19+ nodemcuv2_compat
20+ esp8266_2m_compat
21+ esp01_1m_full_compat
22+ esp32dev
23+ esp32dev_debug
24+ esp32_eth
25+ esp32_wrover
26+ lolin_s2_mini
27+ esp32c3dev
28+ esp32c3dev_qio
29+ esp32s3dev_16MB_opi
30+ esp32s3dev_8MB_opi
31+ esp32s3_4M_qspi
32+ usermods
1433
1534src_dir = ./wled00
1635data_dir = ./wled00/data
@@ -110,8 +129,7 @@ ldscript_4m1m = eagle.flash.4m1m.ld
110129
111130[scripts_defaults]
112131extra_scripts =
113- pre:pio-scripts/set_version.py
114- pre:pio-scripts/set_repo.py
132+ pre:pio-scripts/set_metadata.py
115133 post:pio-scripts/output_bins.py
116134 post:pio-scripts/strip-floats.py
117135 pre:pio-scripts/user_config_copy.py
@@ -265,12 +283,14 @@ AR_lib_deps = ;; for pre-usermod-library platformio_override compatibility
265283
266284[esp32_idf_V4]
267285; ; build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5
286+ ; ; *** important: build flags from esp32_idf_V4 are inherited by _all_ esp32-based MCUs: esp32, esp32s2, esp32s3, esp32c3
268287; ;
269288; ; please note that you can NOT update existing ESP32 installs with a "V4" build. Also updating by OTA will not work properly.
270289; ; You need to completely erase your device (esptool erase_flash) first, then install the "V4" build from VSCode+platformio.
271290
272291; ; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
273292platform = 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
293+ platform_packages =
274294build_unflags = ${common.build_unflags}
275295build_flags = -g
276296 -Wshadow =compatible-local ; ; emit warning in case a local variable "shadows" another local one
@@ -285,6 +305,7 @@ lib_deps =
285305[esp32s2]
286306; ; generic definitions for all ESP32-S2 boards
287307platform = ${esp32_idf_V4.platform}
308+ platform_packages = ${esp32_idf_V4.platform_packages}
288309build_unflags = ${common.build_unflags}
289310build_flags = -g
290311 -DARDUINO_ARCH_ESP32
@@ -303,6 +324,7 @@ board_build.partitions = ${esp32.default_partitions} ;; default partioning for
303324[esp32c3]
304325; ; generic definitions for all ESP32-C3 boards
305326platform = ${esp32_idf_V4.platform}
327+ platform_packages = ${esp32_idf_V4.platform_packages}
306328build_unflags = ${common.build_unflags}
307329build_flags = -g
308330 -DARDUINO_ARCH_ESP32
@@ -321,6 +343,7 @@ board_build.flash_mode = qio
321343[esp32s3]
322344; ; generic definitions for all ESP32-S3 boards
323345platform = ${esp32_idf_V4.platform}
346+ platform_packages = ${esp32_idf_V4.platform_packages}
324347build_unflags = ${common.build_unflags}
325348build_flags = -g
326349 -DESP32
@@ -429,21 +452,31 @@ custom_usermods = audioreactive
429452[env:esp32dev]
430453board = esp32dev
431454platform = ${esp32_idf_V4.platform}
455+ platform_packages = ${esp32_idf_V4.platform_packages}
432456build_unflags = ${common.build_unflags}
433457custom_usermods = audioreactive
434- build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME =\" ESP32_V4 \" # -D WLED_DISABLE_BROWNOUT_DET
458+ build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME =\" ESP32 \" # -D WLED_DISABLE_BROWNOUT_DET
435459 -DARDUINO_USB_CDC_ON_BOOT =0 ; ; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
436460lib_deps = ${esp32_idf_V4.lib_deps}
437461monitor_filters = esp32_exception_decoder
438462board_build.partitions = ${esp32.default_partitions}
439463board_build.flash_mode = dio
440464
465+ [env:esp32dev_debug]
466+ extends = env:esp32dev
467+ upload_speed = 921600
468+ build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags}
469+ -D WLED_DEBUG
470+ -D WLED_RELEASE_NAME =\" ESP32_DEBUG\"
471+
441472[env:esp32dev_8M]
442473board = esp32dev
443474platform = ${esp32_idf_V4.platform}
475+ platform_packages = ${esp32_idf_V4.platform_packages}
444476custom_usermods = audioreactive
445477build_unflags = ${common.build_unflags}
446478build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME =\" ESP32_8M\" # -D WLED_DISABLE_BROWNOUT_DET
479+ -DARDUINO_USB_CDC_ON_BOOT =0 ; ; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
447480lib_deps = ${esp32_idf_V4.lib_deps}
448481monitor_filters = esp32_exception_decoder
449482board_build.partitions = ${esp32.large_partitions}
@@ -455,9 +488,11 @@ board_build.flash_mode = dio
455488[env:esp32dev_16M]
456489board = esp32dev
457490platform = ${esp32_idf_V4.platform}
491+ platform_packages = ${esp32_idf_V4.platform_packages}
458492custom_usermods = audioreactive
459493build_unflags = ${common.build_unflags}
460494build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME =\" ESP32_16M\" # -D WLED_DISABLE_BROWNOUT_DET
495+ -DARDUINO_USB_CDC_ON_BOOT =0 ; ; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
461496lib_deps = ${esp32_idf_V4.lib_deps}
462497monitor_filters = esp32_exception_decoder
463498board_build.partitions = ${esp32.extreme_partitions}
@@ -469,10 +504,12 @@ board_build.flash_mode = dio
469504[env:esp32_eth]
470505board = esp32-poe
471506platform = ${esp32_idf_V4.platform}
507+ platform_packages = ${esp32_idf_V4.platform_packages}
472508upload_speed = 921600
473509custom_usermods = audioreactive
474510build_unflags = ${common.build_unflags}
475511build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME =\" ESP32_Ethernet\" -D RLYPIN =-1 -D WLED_USE_ETHERNET -D BTNPIN =-1
512+ -DARDUINO_USB_CDC_ON_BOOT =0 ; ; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
476513; -D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
477514lib_deps = ${esp32.lib_deps}
478515board_build.partitions = ${esp32.default_partitions}
@@ -487,13 +524,15 @@ board_build.partitions = ${esp32.extended_partitions}
487524custom_usermods = audioreactive
488525build_unflags = ${common.build_unflags}
489526build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME =\" ESP32_WROVER\"
527+ -DARDUINO_USB_CDC_ON_BOOT =0 ; ; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
490528 -DBOARD_HAS_PSRAM -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
491529 -D DATA_PINS =25
492530lib_deps = ${esp32_idf_V4.lib_deps}
493531
494532[env:esp32c3dev]
495533extends = esp32c3
496534platform = ${esp32c3.platform}
535+ platform_packages = ${esp32c3.platform_packages}
497536framework = arduino
498537board = esp32-c3-devkitm-1
499538board_build.partitions = ${esp32.default_partitions}
@@ -505,12 +544,19 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=
505544upload_speed = 460800
506545build_unflags = ${common.build_unflags}
507546lib_deps = ${esp32c3.lib_deps}
547+ board_build.flash_mode = dio ; safe default, required for OTA updates to 0.16 from older version which used dio (must match the bootloader!)
548+
549+ [env:esp32c3dev_qio]
550+ extends = env:esp32c3dev
551+ build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME =\" ESP32-C3-QIO\"
552+ board_build.flash_mode = qio ; qio is faster and works on almost all boards (some boards may use dio to get 2 extra pins)
508553
509554[env:esp32s3dev_16MB_opi]
510555; ; ESP32-S3 development board, with 16MB FLASH and >= 8MB PSRAM (memory_type: qio_opi)
511556board = esp32-s3-devkitc-1 ; ; generic dev board; the next line adds PSRAM support
512557board_build.arduino.memory_type = qio_opi ; ; use with PSRAM: 8MB or 16MB
513558platform = ${esp32s3.platform}
559+ platform_packages = ${esp32s3.platform_packages}
514560upload_speed = 921600
515561custom_usermods = audioreactive
516562build_unflags = ${common.build_unflags}
@@ -532,6 +578,7 @@ monitor_filters = esp32_exception_decoder
532578board = esp32-s3-devkitc-1 ; ; generic dev board; the next line adds PSRAM support
533579board_build.arduino.memory_type = qio_opi ; ; use with PSRAM: 8MB or 16MB
534580platform = ${esp32s3.platform}
581+ platform_packages = ${esp32s3.platform_packages}
535582upload_speed = 921600
536583custom_usermods = audioreactive
537584build_unflags = ${common.build_unflags}
@@ -550,6 +597,7 @@ monitor_filters = esp32_exception_decoder
550597; ; For ESP32-S3 WROOM-2, a.k.a. ESP32-S3 DevKitC-1 v1.1
551598; ; with >= 16MB FLASH and >= 8MB PSRAM (memory_type: opi_opi)
552599platform = ${esp32s3.platform}
600+ platform_packages = ${esp32s3.platform_packages}
553601board = esp32s3camlcd ; ; this is the only standard board with "opi_opi"
554602board_build.arduino.memory_type = opi_opi
555603upload_speed = 921600
@@ -575,6 +623,7 @@ monitor_filters = esp32_exception_decoder
575623; ; ESP32-S3, with 4MB FLASH and <= 4MB PSRAM (memory_type: qio_qspi)
576624board = lolin_s3_mini ; ; -S3 mini, 4MB flash 2MB PSRAM
577625platform = ${esp32s3.platform}
626+ platform_packages = ${esp32s3.platform_packages}
578627upload_speed = 921600
579628custom_usermods = audioreactive
580629build_unflags = ${common.build_unflags}
@@ -591,6 +640,7 @@ monitor_filters = esp32_exception_decoder
591640
592641[env:lolin_s2_mini]
593642platform = ${esp32s2.platform}
643+ platform_packages = ${esp32s2.platform_packages}
594644board = lolin_s2_mini
595645board_build.partitions = ${esp32.default_partitions}
596646board_build.flash_mode = qio
@@ -617,6 +667,7 @@ lib_deps = ${esp32s2.lib_deps}
617667[env:usermods]
618668board = esp32dev
619669platform = ${esp32_idf_V4.platform}
670+ platform_packages = ${esp32_idf_V4.platform_packages}
620671build_unflags = ${common.build_unflags}
621672build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME =\" ESP32_USERMODS\"
622673 -DTOUCH_CS =9
0 commit comments