diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index 34b5904de5..937dfa9c50 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -48,7 +48,7 @@ body:
attributes:
label: What version/release of MM WLED?
description: You can find this in by going to Config -> Security & Updates -> Scroll to Bottom. Copy and paste the entire line after "Server message"
- placeholder: "e.g. build 2401290, WLEDMM_0.14.1-b32.40_esp32_4MB_M.bin"
+ placeholder: "e.g. build 2401290, WLEDMM_14.5.0-beta_esp32_4MB_M.bin"
validations:
required: true
- type: dropdown
diff --git a/.github/workflows/wled-ci.yml b/.github/workflows/wled-ci.yml
index d311af4ac0..8a44db719d 100644
--- a/.github/workflows/wled-ci.yml
+++ b/.github/workflows/wled-ci.yml
@@ -6,7 +6,7 @@ jobs:
get_default_envs:
name: Gather Environments
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Cache pip
@@ -31,7 +31,7 @@ jobs:
build:
name: Builds
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
needs: get_default_envs
strategy:
fail-fast: false
@@ -74,7 +74,7 @@ jobs:
path: build_output/release/*.bin
release:
name: Create Release
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
needs: [get_default_envs, build]
if: startsWith(github.ref, 'refs/tags/')
steps:
diff --git a/package-lock.json b/package-lock.json
index 59697131a3..9d3712007c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "wled",
- "version": "0.14.1-b32.41.dev",
+ "version": "14.5.0-beta",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "wled",
- "version": "0.14.1-b32.41.dev",
+ "version": "14.5.0-beta",
"license": "EUPL-1.2",
"dependencies": {
"clean-css": "^4.2.3",
diff --git a/package.json b/package.json
index b6763b3347..9a600a2a9e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wled",
- "version": "0.14.1-b32.41.dev",
+ "version": "14.5.0-beta",
"description": "Tools for WLED project",
"main": "tools/cdata.js",
"directories": {
diff --git a/platformio.ini b/platformio.ini
index 642be4a125..17209ff734 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -55,11 +55,11 @@ default_envs =
esp32_4MB_XL
; esp32_16MB_S ;; experimental, optimized for speed
esp32_16MB_M ;; esp32 recommended for boards with 16MB flash
+ esp32_16MB_M_eth
; esp32_16MB_M_debug
; esp32_16MB_XL
- esp8266_2MB_S
- esp8266_4MB_S ;; recommended for 8266 with audio sync
- esp8266_4MB_M
+ esp32_pico_4MB_M
+ ;;
wemos_shield_esp32_4MB_M
; wemos_shield_esp32_4MB_ICS4343x_M
; wemos_shield_esp32_4MB_SPM1423_M
@@ -69,38 +69,49 @@ default_envs =
; wemos_shield_esp32_16MB_SPM1423_M
; wemos_shield_esp32_16MB_SPM1423_XL
; wemos_shield_esp32_16MB_LineIn_M
- esp32_pico_4MB_M
- esp32_4MB_PSRAM_S
- ; esp32_4MB_PSRAM_REV3_S ;; experimental, optimized for WROVER-E with "revision3" chip
- esp32S3_4MB_S
- esp32S3_8MB_S ;; experimental, optimized for speed
- esp32S3_8MB_M
- esp32S3_4MB_PSRAM_S ;; for lolin s3 mini, S3 zero, S3 super mini - optimized for speed
- esp32S3_4MB_PSRAM_M ;; for lolin s3 mini, S3 zero, S3 super mini
- esp32S3_8MB_PSRAM_M ;; experiemental
- esp32S3_16MB_PSRAM_M_HUB75 ;; for S3 with 16MB flash, and MOONHUB HUB75 adapter board
- esp32S3_WROOM-2_M ;; for S3 WROOM-2
- ;; esp32s2_tinyUF2_PSRAM_S ;; experimental - only for adafruit -S2 boards with tinyUF2 bootloader !!!
+ ;;
+ esp32_4MB_V4_S ;; experimental; HUB75 supported
+ esp32_4MB_V4_HUB75_forum ;; experimental; HUB75 supported (forum pinout)
+ esp32_16MB_V4_S ;; experimental - optimized for speed; HUB75 supported
+ esp32_16MB_V4_M ;; experimental; HUB75 supported
+ ; esp32_16MB_V4_M_debug ;; experimental
+ ; esp32_pico_4MB_V4_S ;; experimental - may work better in case you experience wifi connectivity problems
+ ;;
+ esp32_4MB_PSRAM_S ;; WROVER experimental; HUB75 supported
+ ; esp32_4MB_PSRAM_REV3_S ;; WROVER-E experimental, optimized for WROVER-E with "revision3" chip
+ ;;
+ esp32S3_4MB_S ;; for HD-WF2 (HUB75 supported)
+ esp32S3_8MB_S ;; experimental, optimized for speed, HUB75 supported
+ esp32S3_8MB_M ;; HUB75 supported
+ esp32S3_4MB_PSRAM_S ;; for lolin s3 mini, S3 zero, S3 super mini - optimized for speed (no HUB75 support)
+ esp32S3_4MB_PSRAM_M ;; for lolin s3 mini, S3 zero, S3 super mini (no HUB75 support)
+ esp32S3_8MB_PSRAM_M ;; experiemental; HUB75 supported
+ esp32S3_16MB_PSRAM_M_HUB75 ;; for S3 with 16MB flash, HUB75 supported (MOONHUB HUB75 adapter board)
+ esp32S3_WROOM-2_M ;; for S3 WROOM-2; HUB75 supported
+ ;;
esp32s2_PSRAM_S ;; OTA-compatible with upstream
esp32s2_PSRAM_M ;; for lolin S2 mini
- esp32c3dev_4MB_M ;; experimental
+ ;; esp32s2_tinyUF2_PSRAM_S ;; experimental - only for adafruit -S2 boards with tinyUF2 bootloader !!!
+ ;;
esp32c3dev_2MB_M ;; experimental - 2MB Flash, no OTA
+ esp32c3dev_4MB_M ;; experimental
esp32c3mini_dio_4MB_M ;; for boards that need "dio" flash mode (instead of qio)
seeed_esp32c3_4MB_S ;; experimental
- esp32_4MB_V4_S ;; experimental
- esp32_16MB_V4_S ;; experimental - optimized for speed
- esp32_16MB_V4_M ;; experimental
- esp32_16MB_V4_M_debug ;; experimental
- esp32_pico_4MB_V4_S ;; experimental - may work better in case you experience wifi connectivity problems
- esp8266pro_16MB_S
+ ;;
+ esp8266_2MB_S
+ esp8266_4MB_S ;; recommended for 8266 with audio sync
+ esp8266_4MB_M
+ ; esp8266pro_16MB_S
esp8266pro_16MB_M
esp01_1MB_S
- esp32_16MB_M_eth
+ ;;
athom_music_esp32_4MB_M
- adafruit_matrixportal_esp32s3
+ adafruit_matrixportal_esp32s3 ;; HUB75 supported
+ ; adafruit_matrixportal_esp32s3_tinyUF2 ;; experimental - uses adafruit bootloader
; Go to MoonModules environments for environments
+
src_dir = ./wled00
data_dir = ./wled00/data
build_cache_dir = ~/.platformio/buildcache
@@ -249,8 +260,6 @@ lib_deps =
;; https://github.com/softhack007/FastLED.git#ESP32-C6 ;; patched version needed for -C6
IRremoteESP8266 @ 2.8.2
;;makuna/NeoPixelBus @ 2.7.5 ;; WLEDMM will be added in board specific sections
- ;;https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7
- ;; https://github.com/lost-hope/ESPAsyncWebServer.git#master ;; WLEDMM to display .log and .wled files in /edit
https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.2.1 ;; newer with bugfixes and stability improvements
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
#TFT_eSPI
@@ -1303,28 +1312,20 @@ build_flags = ${esp32_4MB_S_base.build_flags}
${Speed_Flags.build_flags} ;; -O2 -> optimize for speed instead of size
-D WLED_RELEASE_NAME=esp32_4MB_S
-D WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
- ;; for speed builds, we need to disable some features to stay within 4MB flash
- ;-D WLED_DISABLE_ALEXA
- -D WLED_DISABLE_HUESYNC
- -D WLED_DISABLE_LOXONE
- ;-D WLED_DISABLE_MQTT
- ;-D WLED_DISABLE_INFRARED
- -D WLEDMM_SAVE_FLASH
+ ;-D WLEDMM_SAVE_FLASH
;WLEDMM: disable the next line if you don't need "net Debug". It will free ~2% of flash
${common_mm.NetDebug_build_flags}
-;; normal build
-; RAM: [=== ] 25.0% (used 81988 bytes from 327680 bytes)
-; Flash: [========= ] 87.4% (used 1374677 bytes from 1572864 bytes) WLEDMM: Earlier 85.7
;; optimized-for-speed build
-; RAM: [=== ] 25.4% (used 83244 bytes from 327680 bytes)
-; Flash: [========= ] 93.3% (used 1466821 bytes from 1572864 bytes)
+; RAM: [== ] 23.6% (used 77188 bytes from 327680 bytes)
+; Flash: [========= ] 93.8% (used 1475997 bytes from 1572864 bytes)
[env:esp32_4MB_M]
extends = esp32_4MB_M_base
build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_M
-; RAM: [=== ] 26.0% (used 85244 bytes from 327680 bytes)
-; Flash: [==========] 97.4% (used 1532125 bytes from 1572864 bytes)
+ -D WLEDMM_SAVE_FLASH
+; RAM: [== ] 24.2% (used 79196 bytes from 327680 bytes)
+; Flash: [==========] 97.4% (used 1532425 bytes from 1572864 bytes)
[env:esp32_4MB_M_eth]
extends = esp32_4MB_M_base
@@ -1333,7 +1334,9 @@ build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_USE_ETHERNET
-D RLYPIN=-1 -D BTNPIN=-1 ;; Prevent clash
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
-
+ -D WLEDMM_SAVE_FLASH
+; RAM: [== ] 24.2% (used 79404 bytes from 327680 bytes)
+; Flash: [==========] 97.8% (used 1538025 bytes from 1572864 bytes)
[env:esp32_4MB_XL]
extends = esp32_4MB_XL_base
@@ -1347,8 +1350,8 @@ build_flags = ${esp32_4MB_XL_base.build_flags}
-D WLEDMM_SAVE_FLASH ;; a humble attempt to save a few extra bytes
build_unflags = ${esp32_4MB_XL_base.build_unflags}
board_build.partitions = tools/WLED_ESP32_4MB_256KB_FS.csv
-; RAM: [=== ] 26.3% (used 86188 bytes from 327680 bytes)
-; Flash: [========= ] 85.2% (used 1619513 bytes from 1900544 bytes)
+; RAM: [== ] 24.5% (used 80140 bytes from 327680 bytes)
+; Flash: [========= ] 85.8% (used 1630789 bytes from 1900544 bytes)
;; standard framework build for 16MB flash, optimized for speed
[env:esp32_16MB_S]
@@ -1366,13 +1369,9 @@ build_flags = ${esp32_4MB_S_base.build_flags}
lib_deps = ${esp32_4MB_S_base.lib_deps}
${common_mm.animartrix_lib_deps}
; lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-;;
-;; normal build
-; RAM: [=== ] 25.8% (used 84588 bytes from 327680 bytes)
-; Flash: [======= ] 68.3% (used 1431377 bytes from 2097152 bytes)
;; optimized-for-speed build
-; RAM: [=== ] 25.8% (used 84652 bytes from 327680 bytes)
-; Flash: [======== ] 78.0% (used 1634829 bytes from 2097152 bytes)
+; RAM: [== ] 23.7% (used 77524 bytes from 327680 bytes)
+; Flash: [======= ] 72.9% (used 1528541 bytes from 2097152 bytes)
[env:esp32_16MB_M]
extends = esp32_4MB_M_base
@@ -1381,9 +1380,9 @@ build_flags = ${esp32_4MB_M_base.build_flags}
board = esp32_16MB
board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
- ; RAM: [=== ] 26.0% (used 85244 bytes from 327680 bytes)
- ; Flash: [======= ] 73.1% (used 1532125 bytes from 2097152 bytes)
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
+; RAM: [== ] 24.2% (used 79196 bytes from 327680 bytes)
+; Flash: [======= ] 73.6% (used 1542905 bytes from 2097152 bytes)
[env:esp32_4MB_M_debug]
extends = esp32_4MB_M_base
@@ -1396,13 +1395,14 @@ build_flags = ${esp32_4MB_M_base.build_flags}
-D CORE_DEBUG_LEVEL=2 ;; 2=warning
-D WLED_RELEASE_NAME=esp32_4MB_M_debug
monitor_filters = esp32_exception_decoder
-; RAM: [== ] 24.5% (used 80292 bytes from 327680 bytes)
-; Flash: [========= ] 94.5% (used 1487113 bytes from 1572864 bytes)
+; RAM: [== ] 24.1% (used 79060 bytes from 327680 bytes)
+; Flash: [==========] 99.3% (used 1561969 bytes from 1572864 bytes)
[env:esp32_16MB_M_debug]
extends = esp32_4MB_M_base
build_unflags = ${common.build_unflags}
-D CORE_DEBUG_LEVEL=0
+ -D NDEBUG
build_flags = ${esp32_4MB_M_base.build_flags}
${Debug_Flags.build_flags}
; -D WLED_DEBUG_HEAP ;; WLEDMM enable heap debugging (needs newer framework versions)
@@ -1412,8 +1412,8 @@ monitor_filters = esp32_exception_decoder
board = esp32_16MB
board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
-; RAM: [== ] 24.5% (used 80292 bytes from 327680 bytes)
-; Flash: [======= ] 70.9% (used 1487129 bytes from 2097152 bytes)
+; RAM: [== ] 24.3% (used 79468 bytes from 327680 bytes)
+; Flash: [======== ] 76.7% (used 1609205 bytes from 2097152 bytes)
[env:esp32_16MB_XL]
extends = esp32_4MB_XL_base
@@ -1422,9 +1422,9 @@ build_flags = ${esp32_4MB_XL_base.build_flags}
board = esp32_16MB
board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
- ; RAM: [== ] 24.4% (used 79916 bytes from 327680 bytes)
- ; Flash: [======= ] 67.0% (used 1405701 bytes from 2097152 bytes)
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
+; RAM: [== ] 24.5% (used 80140 bytes from 327680 bytes)
+; Flash: [======== ] 77.8% (used 1631929 bytes from 2097152 bytes)
[env:esp32_16MB_M_eth]
extends = esp32_4MB_M_base
@@ -1435,8 +1435,8 @@ build_flags = ${esp32_4MB_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_16MB_M_eth ; This will be included in the firmware.bin filename
-D WLED_USE_ETHERNET
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
-; RAM: [=== ] 26.1% (used 85452 bytes from 327680 bytes)
-; Flash: [======= ] 73.3% (used 1537945 bytes from 2097152 bytes)
+; RAM: [== ] 24.2% (used 79388 bytes from 327680 bytes)
+; Flash: [======= ] 73.8% (used 1548525 bytes from 2097152 bytes)
[env:esp8266_2MB_S]
@@ -1631,7 +1631,7 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compila
;; 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
+; compiled with ESP-IDF 4.4.1; HUB75 supported
[env:esp32_4MB_V4_S]
extends = esp32_4MB_V4_S_base
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
@@ -1648,12 +1648,12 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
- -D WLED_ENABLE_HUB75MATRIX
-
+ ${common_mm.HUB75_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: [=== ] 28.1% (used 91960 bytes from 327680 bytes)
- ; Flash: [==========] 97.8% (used 1537777 bytes from 1572864 bytes)
+; RAM: [=== ] 25.5% (used 83400 bytes from 327680 bytes)
+; Flash: [==========] 97.3% (used 1530013 bytes from 1572864 bytes)
;; softhack007: my favourite HUB75 buildenv - fastest possible
[env:esp32_4MB_V4_HUB75_forum]
@@ -1667,14 +1667,14 @@ build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
-DARDUINO_EVENT_RUNNING_CORE=1
;;-DCORE_DEBUG_LEVEL=0
;; -D NDEBUG
- -D NO_CIE1931 ;; Do use LED brightness compensation described in CIE 1931
+ ;; -D NO_CIE1931 ;; Do use LED brightness compensation described in CIE 1931
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
;; -Wsuggest-attribute=const -Wsuggest-attribute=pure
;; -Wmissing-noreturn -Wmissing-return
;; -Wall -Wextra
-Wno-unused-value -Wno-format -Wno-type-limits
- -D WLED_RELEASE_NAME=esp32_4MB_V4_HUB75
+ -D WLED_RELEASE_NAME=esp32_4MB_V4_HUB75_forum
${Speed_Flags.build_flags_V4} ;; -O2 -> optimize for speed instead of size
;; -D DEBUG
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
@@ -1689,8 +1689,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
;; -D WLED_DEBUG
;; -D SR_DEBUG
-D WLED_BOOTUPDELAY=350
- -D WLED_ENABLE_HUB75MATRIX -DESP32_FORUM_PINOUT
- ;; -D HUB75_NO_DOUBLEBUFFER ;; -D PIXEL_COLOUR_DEPTH_BITS=12
+ ${common_mm.HUB75_build_flags}
+ -DESP32_FORUM_PINOUT
${common_mm.animartrix_build_flags}
;;-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
@@ -1701,11 +1701,8 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLEDMM_SAVE_FLASH
-D WLED_DISABLE_BROWNOUT_DET
;;-DCORE_DEBUG_LEVEL=1
- ;;-D WLED_DISABLE_PARTICLESYSTEM1D
- ;;-D WLED_DISABLE_PARTICLESYSTEM2D
- ;;-D WLED_DISABLE_PARTICLESYSTEM_BUFFER
-
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
+ ${common_mm.HUB75_lib_deps}
${common_mm.animartrix_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
;; ${common_mm.DMXin_lib_ignore}
@@ -1713,7 +1710,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]
@@ -1737,11 +1735,10 @@ build_unflags = ${esp32_4MB_V4_M_base.build_unflags}
-D USERMOD_ARTIFX
-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: [=== ] 28.0% (used 91664 bytes from 327680 bytes)
-;; Flash: [==========] 99.5% (used 1564945 bytes from 1572864 bytes)
-
-;; V4 build for 16MB flash, optimized for speed
+;; V4 build for 16MB flash, optimized for speed; HUB75 supported
[env:esp32_16MB_V4_S]
extends = esp32_4MB_V4_S_base
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
@@ -1752,20 +1749,22 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-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.
- ;; ${common_mm.animartrix_build_flags} ;; breaks the build - Internal Compiler Error
+ -D WLED_DISABLE_BROWNOUT_DET
+ -D JSON_BUFFER_SIZE=18432 -D MIN_HEAP_SIZE=6144
+ -D MAX_SEGMENT_DATA=40960 ;; default 32767
+ ${common_mm.HUB75_build_flags}
+ ${common_mm.animartrix_build_flags}
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
- ;; ${common_mm.animartrix_lib_deps}
+ ${common_mm.HUB75_lib_deps}
+ ${common_mm.animartrix_lib_deps}
board = esp32_16MB
board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
-;; normal build
-; RAM: [=== ] 25.4% (used 83312 bytes from 327680 bytes)
-; Flash: [======= ] 73.3% (used 1536317 bytes from 2097152 bytes)
;; optimized-for-speed build
-; RAM: [=== ] 26.1% (used 85396 bytes from 327680 bytes)
-; Flash: [======== ] 82.8% (used 1736129 bytes from 2097152 bytes)
+; RAM: [== ] 23.7% (used 77704 bytes from 327680 bytes)
+; Flash: [======== ] 84.4% (used 1770341 bytes from 2097152 bytes)
-; compiled with ESP-IDF 4.4.1
+; compiled with ESP-IDF 4.4.1; HUB75 included (may have PIN conflicts)
[env:esp32_16MB_V4_M]
extends = esp32_4MB_V4_M_base
build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
@@ -1779,17 +1778,22 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
-D ENCODER_DT_PIN=35 -D ENCODER_CLK_PIN=39 -D ENCODER_SW_PIN=5 ; WLEDMM spec by @SERG74: use 35 and 39 instead of 18 and 19 (conflicts)
-D FLD_PIN_SCL=-1 -D FLD_PIN_SDA=-1 ; use global!
-D HW_PIN_SCL=22 -D HW_PIN_SDA=21
+ ${common_mm.HUB75_build_flags}
+ ${common_mm.animartrix_build_flags}
lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps}
+ ${common_mm.HUB75_lib_deps}
+ ${common_mm.animartrix_lib_deps}
board = esp32_16MB
board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
- ; RAM: [== ] 24.8% (used 81316 bytes from 327680 bytes)
- ; Flash: [======= ] 72.9% (used 1528253 bytes from 2097152 bytes)
+; RAM: [=== ] 25.7% (used 84104 bytes from 327680 bytes)
+; Flash: [======== ] 80.7% (used 1692269 bytes from 2097152 bytes)
[env:esp32_16MB_V4_M_debug]
extends = esp32_4MB_V4_M_base
build_unflags = ${common.build_unflags}
-D CORE_DEBUG_LEVEL=0
+ -D NDEBUG
build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
${Debug_Flags.build_flags}
-D CORE_DEBUG_LEVEL=4 ;; 0=none, 1=error, 2=warning, 3=info, 4=debug, 5=verbose
@@ -1802,16 +1806,24 @@ board = esp32_16MB
board_build.partitions = tools/WLED_ESP32_16MB.csv ;; WLED standard for 16MB flash: 2MB firmware, 12 MB filesystem
;board_build.partitions = tools/WLED_ESP32_16MB_9MB_FS.csv ;; WLED extended for 16MB flash: 3.2MB firmware, 9 MB filesystem
monitor_filters = esp32_exception_decoder
-; RAM: [=== ] 25.0% (used 82008 bytes from 327680 bytes)
-; Flash: [======== ] 78.1% (used 1638193 bytes from 2097152 bytes) WLEDMM: Earlier 76.9
+; RAM: [=== ] 26.4% (used 86356 bytes from 327680 bytes)
+; Flash: [======== ] 83.6% (used 1753461 bytes from 2097152 bytes)
-;; experimental environment for boards with PSRAM (needs ESP-IDF 4.4.1).
+;; experimental environment for boards with PSRAM (needs ESP-IDF 4.4.1). HUB75 included (may have PIN conflicts)
[env:esp32_4MB_PSRAM_S]
extends = esp32_4MB_V4_S_base
board = lolin_d32_pro
;board = esp32cam
+;board = ttgo-t7-v14-mini32
+board_build.partitions = ${esp32.extended_partitions}
+board_build.f_flash = 80000000L
+;board_build.flash_mode = dio
+
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
- -D WLED_ENABLE_HUB75MATRIX ;; uses too much flash
+ -D WLED_ENABLE_DMX
+ -D WLED_ENABLE_DMX_INPUT
+ ; -D WLED_ENABLE_HUB75MATRIX ;; uses a lot of flash
+ ; -D USERMOD_ANIMARTRIX ;; uses a lot of memory
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
@@ -1825,14 +1837,19 @@ 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_DMX
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
+ ${common_mm.HUB75_build_flags}
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
-lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-;; RAM: [== ] 20.4% (used 66960 bytes from 327680 bytes)
-;; Flash: [==========] 98.7% (used 1553129 bytes from 1572864 bytes)
+ ${common_mm.HUB75_lib_deps}
+lib_ignore =
+ IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
+ ;; ${common_mm.HUB75_lib_ignore}
+ ${common_mm.animartrix_lib_ignore}
+ ${common_mm.DMXin_lib_ignore}
+;; RAM: [== ] 17.8% (used 58236 bytes from 327680 bytes)
+;; Flash: [========= ] 90.0% (used 1534209 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.
@@ -1840,13 +1857,16 @@ lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compila
extends = esp32_4MB_V4_S_base
;board = esp32cam
board = lolin_d32_pro
-;board_build.partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; Alternative for 4MB flash: 1.8MB firmware, 256KB filesystem (esptool erase_flash needed before changing)
+;board = ttgo-t7-v14-mini32
+board_build.partitions = ${esp32.extended_partitions}
+board_build.f_flash = 80000000L
+board_build.flash_mode = dio
+
build_unflags = ${esp32_4MB_V4_S_base.build_unflags}
;;${Speed_Flags.build_unflags} ;; to override -Os
-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)
@@ -1864,49 +1884,29 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
-D WLED_DISABLE_HUESYNC ; RAM 122 bytes; FLASH 6308 bytes
-D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
- -D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 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_DISABLE_ADALIGHT ;; To disable serial protocols (see upstream #3128)
; -D WLED_ENABLE_DMX
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
+ ${common_mm.HUB75_build_flags}
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
-lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-;; 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]
-extends = esp32_4MB_V4_M_base
-board = lolin_d32_pro
-;board = esp32cam
-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)
-build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags}
- -D WLED_RELEASE_NAME=esp32_4MB_PSRAM_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 WLEDMM_SAVE_FLASH
- -DBOARD_HAS_PSRAM ;; -D WLED_USE_PSRAM ;; WLED_USE_PSRAM causes major slow-down (slow LEDs) on some ESP32 boards
- -D WLED_USE_PSRAM_JSON -DALL_JSON_TO_PSRAM ; WLEDMM --> force all JSON stuff into PSRAM; gives more free heap
- -D WLED_DISABLE_LOXONE ;; FLASH 1272 bytes
- -D WLED_DISABLE_HUESYNC ;; RAM 122 bytes; FLASH 6308 bytes
- -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
- ; -D WLED_ENABLE_DMX
- ; -D WLED_DEBUG
- ; -D SR_DEBUG
- ; -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: [== ] 20.7% (used 67672 bytes from 327680 bytes)
-;; Flash: [========= ] 90.4% (used 1718421 bytes from 1900544 bytes)
+ ${common_mm.HUB75_lib_deps}
+lib_ignore =
+ IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
+ ${common_mm.animartrix_lib_ignore}
+ ;; ${common_mm.HUB75_lib_ignore}
+;; RAM: [== ] 18.0% (used 58920 bytes from 327680 bytes)
+;; Flash: [========= ] 90.6% (used 1542929 bytes from 1703936 bytes)
# ------------------------------------------------------------------------------
# esp32-S3 environments
# ------------------------------------------------------------------------------
+
+
[env:esp32S3_4MB_S] ;; Use for HD-WF2
extends = esp32_4MB_V4_M_base
board = esp32-s3-devkitc-1
@@ -1988,6 +1988,7 @@ board_build.flash_mode = qio
; Flash: [======= ] 70.6% (used 1479573 bytes from 2097152 bytes)
;; MM for ESP32-S3 PSRAM development board, with 8MB FLASH and >= 8MB PSRAM (memory_type: qio_opi)
+;; HUB75 supported, but may still hve pin conflicts
[env:esp32S3_8MB_PSRAM_M]
extends = esp32_4MB_V4_M_base
@@ -2026,14 +2027,13 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
; -D MIC_LOGGER
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
${common_mm.HUB75_lib_deps}
-
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
board_build.partitions = tools/WLED_ESP32_8MB.csv
; RAM: [== ] 21.1% (used 69156 bytes from 327680 bytes)
; Flash: [======== ] 75.9% (used 1591817 bytes from 2097152 bytes)
-;; MM for ESP32-S3 boards - FASTPATH + optimize for speed
[env:esp32S3_8MB_S]
+;; MM for ESP32-S3 boards - FASTPATH + optimize for speed; ; HUB75 support included (may still have pin conflicts)
extends = esp32_4MB_V4_M_base
board = esp32-s3-devkitc-1 ;; generic S3 dev board
board_build.flash_mode = qio ;; use "dio" if your board gets unstable with "qio"
@@ -2047,6 +2047,7 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
;;-D WLED_DISABLE_ADALIGHT ;; disables serial protocols - recommended for Hardware-CDC USB (Serial RX will receive junk commands when RX pin is unconnected, unless its pulled down by resistor)
${Speed_Flags.build_flags_V4} ;; optimize for speed instead of size
-D WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
+ ${common_mm.HUB75_build_flags}
${common_mm.animartrix_build_flags}
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
@@ -2068,15 +2069,13 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
; -D SR_DEBUG
; -D MIC_LOGGER
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S}
+ ${common_mm.HUB75_lib_deps}
${common_mm.animartrix_lib_deps}
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
board_build.partitions = tools/WLED_ESP32_8MB.csv
-;; normal build
-; RAM: [== ] 24.9% (used 81656 bytes from 327680 bytes)
-; Flash: [======= ] 66.1% (used 1386229 bytes from 2097152 bytes)
;; optimized-for-speed build
-; RAM: [=== ] 25.8% (used 84544 bytes from 327680 bytes)
-; Flash: [======== ] 78.1% (used 1638737 bytes from 2097152 bytes)
+; RAM: [=== ] 26.0% (used 85328 bytes from 327680 bytes)
+; Flash: [======== ] 79.9% (used 1674885 bytes from 2097152 bytes)
;; for S3 with 16MB flash, octal PSRAM,
@@ -2167,6 +2166,8 @@ extends = env:esp32S3_8MB_S
board = lolin_s3_mini ;; -S3 mini: 4MB flash 2MB PSRAM
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)
;; board_build.partitions = tools/WLED_ESP32_4MB_512KB_FS.csv ;; 1.7MB firmware, 500KB filesystem (esptool erase_flash needed when changing from "standard WLED" partitions)
+build_unflags = ${common.build_unflags}
+ -D WLED_ENABLE_HUB75MATRIX ;; board does not have enough pins for HUB75
build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-indentation -Wno-format-truncation
${common_mm.build_flags_S}
-D WLED_RELEASE_NAME=esp32S3_4MB_PSRAM_S
@@ -2195,16 +2196,23 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
+lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
+ ${common_mm.animartrix_lib_deps}
lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [== ] 20.4% (used 66908 bytes from 327680 bytes)
-; Flash: [========= ] 87.1% (used 1655529 bytes from 1900544 bytes)
+ ${common_mm.HUB75_lib_ignore}
+ ${common_mm.DMXin_lib_ignore}
+; RAM: [== ] 18.6% (used 60828 bytes from 327680 bytes)
+; Flash: [======== ] 76.9% (used 1461829 bytes from 1900544 bytes)
;; MM for esp32-s3 zero/supermini and lolin S3 mini boards - standard
[env:esp32S3_4MB_PSRAM_M]
extends = env:esp32S3_8MB_M
board = lolin_s3_mini ;; -S3 mini: 4MB flash 2MB PSRAM
board_build.partitions = ${esp32.default_partitions}
+build_unflags = ${common.build_unflags}
+ -D WLED_ENABLE_HUB75MATRIX ;; board does not have enough pins for HUB75
+ -D USERMOD_ANIMARTRIX ;; not enough flash
build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-indentation -Wno-format-truncation
${common_mm.build_flags_S} ${common_mm.build_flags_M}
-D WLED_RELEASE_NAME=esp32S3_4MB_PSRAM_M
@@ -2215,7 +2223,7 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=1 ;; for Serial-to-USB chip
;;-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=1 ;; for Hardware-CDC USB mode
-D WLED_DISABLE_ADALIGHT ;; disables serial protocols - recommended for Hardware-CDC USB (Serial RX will receive junk commands when RX pin is unconnected, unless its pulled down by resistor)
- ${common_mm.animartrix_build_flags}
+ ;; ${common_mm.animartrix_build_flags} ;; not enough flash
-D LEDPIN=21
-D BTNPIN=-1 -D RLYPIN=-1 -D IRPIN=-1 -D AUDIOPIN=-1
-D HW_PIN_SDA=12 -D HW_PIN_SCL=13
@@ -2232,8 +2240,11 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
lib_ignore =
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
-; RAM: [== ] 20.6% (used 67532 bytes from 327680 bytes)
-; Flash: [==========] 98.4% (used 1547445 bytes from 1572864 bytes)
+ ${common_mm.HUB75_lib_ignore}
+ ${common_mm.DMXin_lib_ignore}
+ ${common_mm.animartrix_lib_ignore}
+; RAM: [== ] 18.7% (used 61172 bytes from 327680 bytes)
+; Flash: [==========] 97.7% (used 1536157 bytes from 1572864 bytes)
# ------------------------------------------------------------------------------
@@ -2787,9 +2798,9 @@ platform = ${esp32.platformV4_xp} ;; 6.5.0 = first platform release supporting m
platform_packages = ${esp32.platformV4_packages_xp} ;; arduino-esp32 2.0.14 needed - previous versions were missing files for matrixportal
board = adafruit_matrixportal_esp32s3
-board_build.partitions = ${esp32.large_partitions}
-board_build.f_flash = 80000000L
-board_build.flash_mode = qio
+board_build.partitions = ${esp32.large_partitions} ;; default 8MB WLED partitions
+;; board_build.f_flash = 80000000L ;; this is the default for board = adafruit_matrixportal_esp32s3
+;; board_build.flash_mode = qio ;; ditto
build_unflags = ${env:esp32S3_8MB_M.build_unflags} ;; use the same as "normal" S3 buildenv
-D ARDUINO_USB_CDC_ON_BOOT=1 ;; fix warning: "ARDUINO_USB_CDC_ON_BOOT" redefined; comment out for Serial debug
@@ -2818,5 +2829,19 @@ lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ;; ;; do not include ${e
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)
+; RAM: [== ] 18.4% (used 60456 bytes from 327680 bytes)
+; Flash: [======== ] 79.9% (used 1675601 bytes from 2097152 bytes)
+
+;; this buildenv uses the original bootloader and partions from adafruit
+[env:adafruit_matrixportal_esp32s3_tinyUF2]
+extends = env:adafruit_matrixportal_esp32s3
+board_build.partitions = tools/partitions-8MB_spiffs-tinyuf2.csv ;; use original adafruit 8MB tinyUF2 partitioning
+
+;; we just replace WLED_RELEASE_NAME
+build_unflags = ${env:adafruit_matrixportal_esp32s3.build_unflags}
+ -D WLED_RELEASE_NAME=matrixportal_esp32s3
+build_flags = ${env:adafruit_matrixportal_esp32s3.build_flags}
+ -D WLED_RELEASE_NAME=matrixportal_esp32s3_tinyUF2
+;
+; RAM: [== ] 18.4% (used 60456 bytes from 327680 bytes)
+; Flash: [======== ] 79.9% (used 1675601 bytes from 2097152 bytes)
diff --git a/readme.md b/readme.md
index 83c488e4b4..a44a82b3ae 100644
--- a/readme.md
+++ b/readme.md
@@ -14,7 +14,7 @@
-MoonModules/WLED is a fork from [Aircoookie/WLED](https://github.com/Aircoookie/WLED) which contains latest merge of v0.14 of WLED with [additional features](https://mm.kno.wled.ge/moonmodules/what-is-moonmodules/).
+MoonModules/WLED is a fork of [Aircoookie/WLED](https://github.com/Aircoookie/WLED) which contains latest merge of v0.14 of WLED with [additional features](https://mm.kno.wled.ge/moonmodules/what-is-moonmodules/).
This fork is created by members of the [Atuline/WLED](https://github.com/atuline/WLED) team to make development against v0.14 possible while still preserving [Atuline/WLED v0.13.x](https://github.com/atuline/WLED/tree/dev) as a stable and supported version. The Atuline/WLED fork is also called WLED SR (Sound Reactive).
diff --git a/tools/partitions-8MB_spiffs-tinyuf2.csv b/tools/partitions-8MB_spiffs-tinyuf2.csv
new file mode 100644
index 0000000000..27ed4c2d6a
--- /dev/null
+++ b/tools/partitions-8MB_spiffs-tinyuf2.csv
@@ -0,0 +1,10 @@
+# ESP-IDF Partition Table
+# Name, Type, SubType, Offset, Size, Flags
+# bootloader.bin,, 0x1000, 32K
+# partition table,, 0x8000, 4K
+nvs, data, nvs, 0x9000, 20K,
+otadata, data, ota, 0xe000, 8K,
+ota_0, app, ota_0, 0x10000, 2048K,
+ota_1, app, ota_1, 0x210000, 2048K,
+uf2, app, factory,0x410000, 256K,
+spiffs, data, spiffs, 0x450000, 3776K,
diff --git a/wled00/FX.cpp b/wled00/FX.cpp
index 85a8636b06..f5a95a698a 100644
--- a/wled00/FX.cpp
+++ b/wled00/FX.cpp
@@ -1289,6 +1289,9 @@ static uint16_t mode_fireworks_core(bool useaudio) {
if (valid1) { if (SEGMENT.is2D()) SEGMENT.setPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width, sv1); else SEGMENT.setPixelColor(SEGENV.aux0, sv1); } // restore spark color after blur
if (valid2) { if (SEGMENT.is2D()) SEGMENT.setPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width, sv2); else SEGMENT.setPixelColor(SEGENV.aux1, sv2); } // restore old spark color after blur
+ #if defined(ARDUINO_ARCH_ESP32)
+ random16_add_entropy(esp_random() & 0xFFFF); // improve randomness (esp32)
+ #endif
if (addPixels) // WLEDMM
for (int i=0; i> 2), MAX_RIPPLES); // 56 max for 16 segment ESP8266
uint16_t dataSize = sizeof(ripple) * maxRipples;
+ const uint16_t cols = strip.isMatrix ? SEGMENT.virtualWidth() : 1;
+ const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength();
+ const int16_t maxDim = max(2, (cols + rows) / 4); // WLEDMM
+ #if defined(ARDUINO_ARCH_ESP32)
+ random16_add_entropy(esp_random() & 0xFFFF); // improve randomness (esp32)
+ #endif
+
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
if (SEGENV.call == 0) {SEGENV.setUpLeds(); SEGMENT.fill(BLACK);} // WLEDMM use lossless getPixelColor()
@@ -2638,7 +2648,9 @@ uint16_t ripple_base()
uint16_t cx = rippleorigin >> 8;
uint16_t cy = rippleorigin & 0xFF;
uint8_t mag = scale8(sin8_t((propF>>2)), amp);
- if (propI > 0) SEGMENT.drawCircle(cx, cy, propI, color_blend(SEGMENT.getPixelColorXY(cx + propI, cy), col, mag), true);
+ propI = min(propI, maxDim); // WLEDMM make sure that circles are visible
+ if ((propI > 0) && (unsigned(cx + propI) < cols) && (unsigned(cy) < rows)) // WLEDMM
+ SEGMENT.drawCircle(cx, cy, propI, color_blend(SEGMENT.getPixelColorXY(cx + propI, cy), col, mag), true);
} else
#endif
{
@@ -3687,6 +3699,9 @@ uint16_t mode_exploding_fireworks(void)
float gravity = -0.0004f - (SEGMENT.speed/800000.0f); // m/s/s
gravity *= rows;
+#if defined(ARDUINO_ARCH_ESP32)
+ random16_add_entropy(esp_random() & 0xFFFF); // improves randonmess
+#endif
if (SEGENV.aux0 < 2) { //FLARE
if (SEGENV.aux0 == 0) { //init flare
@@ -3708,7 +3723,7 @@ uint16_t mode_exploding_fireworks(void)
flare->pos += flare->vel;
flare->posX += flare->velX;
flare->pos = constrain(flare->pos, 0, rows-1);
- flare->posX = constrain(flare->posX, 0, cols-strip.isMatrix);
+ flare->posX = constrain(flare->posX, 0, cols-int(strip.isMatrix));
flare->vel += gravity;
flare->col -= 2;
} else {
@@ -3738,10 +3753,10 @@ uint16_t mode_exploding_fireworks(void)
sparks[i].colIndex = random8();
sparks[i].vel *= flare->pos/rows; // proportional to height
sparks[i].velX *= strip.isMatrix ? flare->posX/cols : 0; // proportional to width
- sparks[i].vel *= -gravity *50;
+ sparks[i].vel *= -gravity *50.0f;
}
//sparks[1].col = 345; // this will be our known spark
- *dying_gravity = gravity/2;
+ *dying_gravity = gravity/2.0f;
SEGENV.aux0 = 3;
}
diff --git a/wled00/FX.h b/wled00/FX.h
index 5e8ae60acd..e09246953a 100644
--- a/wled00/FX.h
+++ b/wled00/FX.h
@@ -94,7 +94,7 @@ bool strip_uses_global_leds(void) __attribute__((pure)); // WLEDMM implemented
#define SEGCOLOR(x) strip.segColor(x) /* saves us a few kbytes of code */
#define SEGPALETTE Segment::getCurrentPalette()
#define SEGLEN strip._virtualSegmentLength /* saves us a few kbytes of code */
-#define SPEED_FORMULA_L (5U + (50U*(255U - SEGMENT.speed))/SEGLEN)
+#define SPEED_FORMULA_L (4U + (50U*(255U - SEGMENT.speed))/min(SEGLEN, uint16_t(512))) // WLEDMM limiting the formula to 512 virtual pixels
// some common colors
#define RED (uint32_t)0xFF0000
diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp
index 0d86f4b8a2..71339a380f 100644
--- a/wled00/FX_fcn.cpp
+++ b/wled00/FX_fcn.cpp
@@ -289,7 +289,7 @@ void Segment::resetIfRequired() {
next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0;
reset = false; // setOption(SEG_OPTION_RESET, false);
startFrame(); // WLEDMM update cached propoerties
- if (isActive() && !freeze) fill(BLACK); // WLEDMM start clean
+ if (isActive() && !freeze) { fill(BLACK); needsBlank = false; } // WLEDMM start clean
DEBUG_PRINTLN("Segment reset");
} else if (needsBlank) {
startFrame(); // WLEDMM update cached propoerties
diff --git a/wled00/bus_manager.cpp b/wled00/bus_manager.cpp
index 5080c243c7..e320951ace 100644
--- a/wled00/bus_manager.cpp
+++ b/wled00/bus_manager.cpp
@@ -1266,7 +1266,11 @@ int BusManager::add(BusConfig &bc) {
void BusManager::removeAll() {
DEBUG_PRINTLN(F("Removing all."));
//prevents crashes due to deleting busses while in use.
+#if !defined(ARDUINO_ARCH_ESP32)
while (!canAllShow()) yield();
+#else
+ while (!canAllShow()) delay(2); // WLEDMM on esp32, yield() doesn't work as you think it would
+#endif
for (uint8_t i = 0; i < numBusses; i++) delete busses[i];
numBusses = 0;
// WLEDMM clear cached Bus info
@@ -1277,6 +1281,10 @@ void BusManager::removeAll() {
void __attribute__((hot)) BusManager::show() {
for (unsigned i = 0; i < numBusses; i++) {
+#if 1 && defined(ARDUINO_ARCH_ESP32)
+ unsigned long t0 = millis();
+ while ((busses[i]->canShow() == false) && (millis() - t0 < 80)) delay(1); // WLEDMM experimental: wait until bus driver is ready (max 80ms) - costs us 1-2 fps but reduces flickering
+#endif
busses[i]->show();
}
}
diff --git a/wled00/data/index.css b/wled00/data/index.css
index 617f971bd0..deb0cc64e7 100644
--- a/wled00/data/index.css
+++ b/wled00/data/index.css
@@ -665,6 +665,12 @@ button {
color: #f00;
}
+#heartMM {
+ transition: color 0.9s;
+ font-size: 16px;
+ color: #0f0;
+}
+
img {
max-width: 100%;
max-height: 100%;
diff --git a/wled00/data/index.htm b/wled00/data/index.htm
index e0c9ca547c..57fca4cf8e 100644
--- a/wled00/data/index.htm
+++ b/wled00/data/index.htm
@@ -389,7 +389,7 @@
WLED made with ❤︎ by Aircoookie and the WLED community
- WLED MM made with ❤︎ by Softhack007 & Ewowi and the WLED 2D & Audio Dev community
+ WLED MM made with ❤︎ by Softhack007 & Ewowi and the WLED 2D & Audio Dev community
diff --git a/wled00/data/index.js b/wled00/data/index.js
index bb8b4faf47..cb700dcd72 100644
--- a/wled00/data/index.js
+++ b/wled00/data/index.js
@@ -684,18 +684,20 @@ function populateInfo(i)
urows += inforow(k,val);
}
}
- var vcn = "Kuuhaku";
- if (i.ver.startsWith("0.14.")) vcn = "Hoshi";
+ var vcn = "Small Step"; // WLED-MM 14.5.0, release Dec 2024
+// if (i.ver.startsWith("0.14.")) vcn = "Hoshi";
// if (i.ver.includes("-bl")) vcn = "Supāku";
if (i.cn) vcn = i.cn;
//WLEDMM: add total heap and total PSRAM, and build number, add bin name
- if (i.ver.includes("0.14.0")) vcn = "Lupo"; // check for MM versioning scheme
- if (i.ver.includes("0.14.0-b15")) vcn = "Sitting Ducks"; // late easter egg
- if (i.ver.includes("0.14.0-b2")) vcn = "This is the way"; // recently watched The Mandalorian? I have spoken ;-)
- if (i.ver.includes("0.14.0-b15.22")) vcn = "Lupo";
- if (i.ver.includes("0.14.1-b3")) vcn = "Fried Chicken"; // final line of "One Vision" by Queen
+ //if (i.ver.includes("0.14.0")) vcn = "Lupo"; // check for MM versioning scheme
+ //if (i.ver.includes("0.14.0-b15")) vcn = "Sitting Ducks"; // late easter egg
+ //if (i.ver.includes("0.14.0-b2")) vcn = "This is the way"; // recently watched The Mandalorian? I have spoken ;-)
+ //if (i.ver.includes("0.14.0-b15.22")) vcn = "Lupo";
+ //if (i.ver.includes("0.14.1-b")) vcn = "Fried Chicken"; // final line of "One Vision" by Queen
if (i.ver.includes("0.14.3-b")) vcn = "Fried Chicken";
+ if (i.ver.includes("14.5.")) vcn = "Small Step";
+
cn += `v${i.ver} "${vcn}"