diff --git a/platformio.ini b/platformio.ini index 5e2fb59c..862a5900 100644 --- a/platformio.ini +++ b/platformio.ini @@ -73,9 +73,10 @@ default_envs = ; wemos_shield_esp32_16MB_SPM1423_XL ; wemos_shield_esp32_16MB_LineIn_M ;; + esp32_4MB_V4_M ;; esp32 4MB standard - HUB75 not included esp32dev_compat ;; legacy esp32_pico_4MB_V4_S ;; PICO D4 board - esp32_4MB_V4_S ;; esp32 4MB - HUB75 supported + esp32_4MB_V4_S_HUB75 ;; 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 @@ -1811,14 +1812,14 @@ lib_ignore = ${esp8266.lib_ignore} ;; Warning: the build-in LittleFS (arduino-esp32 2.0.x) seems to be "slightly different" from Lorol LittleFS. ;; When upgrading to the new framework, it might be necessary to first do a chip erase (make sure you have a backup of cfg.json and presets.json) -; compiled with ESP-IDF 4.4.1; HUB75 supported -[env:esp32_4MB_V4_S] +; compiled with ESP-IDF 4.4.1; HUB75 supported, OTA compatible with upstream +[env:esp32_4MB_V4_S_HUB75] 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_RELEASE_NAME=esp32_4MB_V4_S_HUB75 -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 WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions. @@ -1829,6 +1830,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags} -D WLED_DISABLE_MQTT -D WLED_DISABLE_INFRARED -D WLED_DISABLE_ESPNOW ;; might help in case of WiFi connectivity problems + -D WLED_ENABLE_PIXELFORGE + -D WLEDMM_SAVE_FLASH ; -D WLED_DEBUG ; -D SR_DEBUG ; -D MIC_LOGGER @@ -1840,8 +1843,45 @@ 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.DMXin_lib_ignore} -; RAM: [=== ] 25.3% (used 83052 bytes from 327680 bytes) -; Flash: [==========] 98.2% (used 1544273 bytes from 1572864 bytes) +; RAM: [=== ] 25.5% (used 83396 bytes from 327680 bytes) +; Flash: [==========] 98.2% (used 1543949 bytes from 1572864 bytes) + +[env:esp32_4MB_V4_S] ;; legacy alias +extends = env:esp32_4MB_V4_S_HUB75 + +; standard MM build for classic esp32; HUB75 not included +[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_ENABLE_PIXELFORGE + ;;-D WLEDMM_SAVE_FLASH + ;;-D WLED_DISABLE_PARTICLESYSTEM1D ;; may exceed flash size limit + ;;-D WLED_DISABLE_PARTICLESYSTEM2D ;; may exceed 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 + ;;${common_mm.animartrix_lib_ignore} +build_unflags = ${esp32_4MB_V4_M_base.build_unflags} + ${common_mm.HUB75_build_flags} ;; over the flash size limit + ;;-D USERMOD_ANIMARTRIX ;; Tips our memory usage over the limit + ;; -D USERMOD_ARTIFX + ;; -D USERMOD_AUTO_SAVE + ;; -D WLED_ENABLE_HUB75MATRIX + -D WLED_DISABLE_ADALIGHT + -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_INFRARED ;RAM 136 bytes; FLASH 24492 bytes +; RAM: [== ] 24.3% (used 79660 bytes from 327680 bytes) +; Flash: [========= ] 87.7% (used 1494213 bytes from 1703936 bytes) [env:esp32_4MB_V4_S_eth] extends = esp32_4MB_V4_S_base @@ -1858,6 +1898,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags} -D WLED_DISABLE_HUESYNC -D WLED_DISABLE_MQTT -D WLED_DISABLE_INFRARED + -D WLED_ENABLE_PIXELFORGE ; -D WLED_DEBUG ; -D SR_DEBUG ; -D MIC_LOGGER @@ -1870,6 +1911,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags} 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.6% (used 84048 bytes from 327680 bytes) +; Flash: [==========] 96.1% (used 1637085 bytes from 1703936 bytes) ;; softhack007: my favourite HUB75 buildenv - fastest possible [env:esp32_4MB_V4_HUB75_forum] @@ -1903,6 +1946,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags} -D WLED_DISABLE_INFRARED -D WLED_DISABLE_ADALIGHT -D WLED_ENABLE_FULL_FONTS ;; increases firmware size by 6848 bytes + -D WLED_ENABLE_PIXELFORGE ;; -D WLED_DEBUG ;; -D SR_DEBUG -D WLED_BOOTUPDELAY=350 @@ -1910,7 +1954,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags} -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_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 -DCONFIG_MBEDTLS_DYNAMIC_BUFFER=1 ;; optional - seems to move more buffers into PSRAM ;; -D CONFIG_ESP32_REV_MIN=3 ;; disables PSRAM bug workarounds in the core, reducing the code size and improving overall performance. @@ -1928,38 +1972,8 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compila board_build.partitions = ${esp32.big_partitions} board_build.f_flash = 80000000L ; use full 80MHz speed for flash (default = 40Mhz) board_build.flash_mode = qio ; (dio = dual i/o; more compatible than qio = quad i/o) -; RAM: [== ] 23.7% (used 77720 bytes from 327680 bytes) -; Flash: [========= ] 93.1% (used 1768897 bytes from 1900544 bytes) - -; 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_INFRARED ;RAM 136 bytes; FLASH 24492 bytes ;; softhack007 disabled to stay below 100% flash size - ;;-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 - ${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: [== ] 23.9% (used 78204 bytes from 327680 bytes) -; Flash: [========= ] 85.8% (used 1349585 bytes from 1572864 bytes) +; RAM: [== ] 23.9% (used 78400 bytes from 327680 bytes) +; Flash: [==========] 98.1% (used 1863653 bytes from 1900544 bytes) ;; V4 build for 16MB flash, optimized for speed; HUB75 supported [env:esp32_16MB_V4_S] @@ -2071,6 +2085,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags} -D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes -D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes ewowi: disabled to stay below 100% + -D WLED_ENABLE_PIXELFORGE ; -D WLED_DEBUG ; -D SR_DEBUG ; -D MIC_LOGGER @@ -2083,8 +2098,8 @@ lib_ignore = ;; ${common_mm.HUB75_lib_ignore} ${common_mm.animartrix_lib_ignore} ${common_mm.DMXin_lib_ignore} -;; RAM: [== ] 15.5% (used 50664 bytes from 327680 bytes) -;; Flash: [======== ] 75.7% (used 1289229 bytes from 1703936 bytes) +;; RAM: [== ] 18.0% (used 58916 bytes from 327680 bytes) +;; Flash: [========= ] 94.2% (used 1605257 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. @@ -2135,8 +2150,8 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation ${common_mm.animartrix_lib_ignore} ;; ${common_mm.HUB75_lib_ignore} -;; RAM: [== ] 15.7% (used 51340 bytes from 327680 bytes) -;; Flash: [======== ] 75.4% (used 1284377 bytes from 1703936 bytes) +;; RAM: [== ] 18.2% (used 59608 bytes from 327680 bytes) +;; Flash: [========= ] 94.5% (used 1610657 bytes from 1703936 bytes) # ------------------------------------------------------------------------------