Skip to content

Commit 42b4b63

Browse files
committed
Merge branch 'mdev' into HUB75-VirtualMatrixPanel
2 parents 6ccb38d + b63e72e commit 42b4b63

File tree

21 files changed

+5804
-383
lines changed

21 files changed

+5804
-383
lines changed

platformio.ini

Lines changed: 65 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,22 @@
4848
; ===================
4949

5050
default_envs =
51-
esp32_4MB_S ;; experimental, optimized for speed
52-
esp32_4MB_M ;; esp32 recommended default
53-
esp32_4MB_M_eth
54-
esp32_4MB_M_debug
55-
esp32_4MB_XL
56-
; esp32_16MB_S ;; experimental, optimized for speed
57-
esp32_16MB_M ;; esp32 recommended for boards with 16MB flash
58-
esp32_16MB_M_eth
59-
; esp32_16MB_M_debug
60-
; esp32_16MB_XL
61-
esp32_pico_4MB_M
51+
; Netmindz: Disable the non-V4 envs as we only build using V4 now, TBC if we rename thr _V4 to be without and delete existing
52+
; or maintain the _V4 as we have "trained" our users that certain things are _V4 only plus the bootloader issue if you OTA from V3 to a V4
53+
54+
; esp32_4MB_S ;; experimental, optimized for speed
55+
; esp32_4MB_M ;; esp32 recommended default
56+
; esp32_4MB_M_eth
57+
; esp32_4MB_M_debug
58+
; esp32_4MB_XL
59+
; ; esp32_16MB_S ;; experimental, optimized for speed
60+
; esp32_16MB_M ;; esp32 recommended for boards with 16MB flash
61+
; esp32_16MB_M_eth
62+
; ; esp32_16MB_M_debug
63+
; ; esp32_16MB_XL
64+
; esp32_pico_4MB_M
6265
;;
63-
wemos_shield_esp32_4MB_M
66+
; wemos_shield_esp32_4MB_M
6467
; wemos_shield_esp32_4MB_ICS4343x_M
6568
; wemos_shield_esp32_4MB_SPM1423_M
6669
; wemos_shield_esp32_4MB_LineIn_M
@@ -126,11 +129,6 @@ extra_configs =
126129
# arduino core 2.6.3 = platformIO 2.3.2
127130
# arduino core 2.7.0 = platformIO 2.5.0
128131
# ------------------------------------------------------------------------------
129-
arduino_core_2_6_3 = espressif8266@2.3.3
130-
arduino_core_2_7_4 = espressif8266@2.6.2
131-
arduino_core_3_0_0 = espressif8266@3.0.0
132-
arduino_core_3_2_0 = espressif8266@3.2.0
133-
arduino_core_4_1_0 = espressif8266@4.1.0
134132
arduino_core_3_1_2 = espressif8266@4.2.1
135133

136134
# Development platforms
@@ -145,13 +143,6 @@ platform_packages = platformio/toolchain-xtensa @ ~2.100300.220621 #2.40802.2005
145143
platformio/tool-esptool #@ ~1.413.0
146144
platformio/tool-esptoolpy #@ ~1.30000.0
147145

148-
## previous platform for 8266, in case of problems with the new one
149-
## you'll need makuna/NeoPixelBus@ 2.6.9 for arduino_core_3_2_0, which does not support Ucs890x
150-
;; platform_wled_default = ${common.arduino_core_3_2_0}
151-
;; platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7
152-
;; platformio/toolchain-xtensa @ ~2.40802.200502
153-
;; platformio/tool-esptool @ ~1.413.0
154-
;; platformio/tool-esptoolpy @ ~1.30000.0
155146

156147
# ------------------------------------------------------------------------------
157148
# FLAGS: DEBUG
@@ -212,7 +203,7 @@ build_flags =
212203
build_unflags =
213204

214205
build_flags_esp8266 = ${common.build_flags} ${esp8266.build_flags}
215-
build_flags_esp32 = ${common.build_flags} ${esp32.build_flags}
206+
build_flags_esp32 = ${common.build_flags} ${esp32_idf_V4.build_flags}
216207
build_flags_esp32_V4= ${common.build_flags} ${esp32_idf_V4.build_flags}
217208

218209
ldscript_1m128k = eagle.flash.1m128.ld
@@ -260,7 +251,9 @@ lib_deps =
260251
;; https://github.com/softhack007/FastLED.git#ESP32-C6 ;; patched version needed for -C6
261252
IRremoteESP8266 @ 2.8.2
262253
;;makuna/NeoPixelBus @ 2.7.5 ;; WLEDMM will be added in board specific sections
263-
https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.2.1 ;; newer with bugfixes and stability improvements
254+
https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.4.0
255+
bitbank2/AnimatedGIF@^1.4.7
256+
https://github.com/Aircoookie/GifDecoder#bc3af18
264257
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
265258
#TFT_eSPI
266259
#For compatible OLED display uncomment following
@@ -301,7 +294,8 @@ build_flags =
301294
; -D PIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48_SECHEAP_SHARED ;; (experimental) adds some extra heap, but may cause slowdown
302295
-D USERMOD_AUDIOREACTIVE
303296
-D NON32XFER_HANDLER ;; ask forgiveness for PROGMEM misuse
304-
297+
-D WLED_DISABLE_PARTICLESYSTEM2D
298+
305299
lib_deps =
306300
#https://github.com/lorol/LITTLEFS.git
307301
ESPAsyncTCP @ 1.2.2
@@ -330,33 +324,12 @@ platform_packages_compat =
330324
platformio/tool-esptool #@ ~1.413.0
331325
platformio/tool-esptoolpy #@ ~1.30000.0
332326

333-
;; experimental - for using older NeoPixelBus 2.7.9
334-
lib_deps_compat =
335-
ESPAsyncTCP @ 1.2.2
336-
ESPAsyncUDP
337-
ESP8266PWM
338-
fastled/FastLED @ 3.6.0
339-
IRremoteESP8266 @ 2.8.2
340-
makuna/NeoPixelBus @ 2.7.9
341-
https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.2.1
342327

343328

344329
[esp32]
345-
#platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip
346-
platform = espressif32@3.5.0
347-
348-
platform_packages = framework-arduinoespressif32 @ https://github.com/Aircoookie/arduino-esp32.git#1.0.6.4
349-
350-
build_flags = -g
351-
-DARDUINO_ARCH_ESP32
352-
#-DCONFIG_LITTLEFS_FOR_IDF_3_2
353-
-D CONFIG_ASYNC_TCP_USE_WDT=0
354-
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
355-
#use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x
356-
-D LOROL_LITTLEFS
357-
; -D WLEDMM_TWOPATH ;; use I2S1 as the second bus --> ~15% faster on "V3" builds - may flicker a bit more
358-
; -D WLEDMM_SLOWPATH ;; don't use I2S for LED bus
359-
; -DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
330+
platform = ${esp32_idf_V4.platform}
331+
platform_packages = ${esp32_idf_V4.platform_packages}
332+
build_flags = ${esp32_idf_V4.build_flags}
360333

361334
default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv ;; WLED standard for 4MB flash: 1.4MB firmware, 1MB filesystem
362335
;default_partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; WLEDMM alternative for 4MB flash: 1.8MB firmware, 256KB filesystem (esptool erase_flash needed before changing)
@@ -367,14 +340,7 @@ big_partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; 1.8MB firmware, 256KB
367340
large_partitions = tools/WLED_ESP32_8MB.csv
368341
extreme_partitions = tools/WLED_ESP32_16MB_9MB_FS.csv
369342

370-
lib_deps =
371-
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 !!
372-
; https://github.com/lorol/LITTLEFS.git
373-
; WLEDMM specific: use patched version of lorol LittleFS
374-
https://github.com/softhack007/LITTLEFS-threadsafe.git#master
375-
makuna/NeoPixelBus @ 2.7.5
376-
;; makuna/NeoPixelBus @ 2.7.9 ;; experimental
377-
${env.lib_deps}
343+
lib_deps = ${esp32_idf_V4.lib_deps}
378344

379345
;; Compatibility with upstream --> you should prefer using ${common_mm.build_flags_S} and ${common_mm.lib_deps_S}
380346
AR_build_flags = ${common_mm.AR_build_flags}
@@ -417,9 +383,6 @@ lib_depsV4 =
417383
;; WLEDMM end
418384

419385
[esp32_idf_V4]
420-
;; experimental build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5
421-
;; very similar to the normal ESP32 flags, but omitting Lorol LittleFS, as littlefs is included in the new framework already.
422-
;;
423386
;; please note that you can NOT update existing ESP32 installs with a "V4" build. Also updating by OTA will not work properly.
424387
;; You need to completely erase your device (esptool erase_flash) first, then install the "V4" build from VSCode+platformio.
425388

@@ -1071,7 +1034,7 @@ AR_build_flags = -D USERMOD_AUDIOREACTIVE -D UM_AUDIOREACTIVE_USE_NEW_FFT ;; WLE
10711034
AR_lib_deps = https://github.com/softhack007/arduinoFFT.git#develop @ 1.9.2 ;; used for USERMOD_AUDIOREACTIVE - optimized version, 10% faster on -S2/-C3
10721035

10731036
animartrix_build_flags = -D USERMOD_ANIMARTRIX ;; WLEDMM usermod: CC BY-NC 3.0 licensed effects by Stefan Petrick
1074-
animartrix_lib_deps = https://github.com/netmindz/animartrix.git#657f754783268b648e1d56b3cd31c810379d0c89 ;; Dirty state fix
1037+
animartrix_lib_deps = https://github.com/netmindz/animartrix.git#bd556cef92a6fee9777c0a7304c9de1a84cba184 ;; init state fix
10751038
animartrix_lib_ignore = animartrix ;; to remove the animartrix lib dependancy (saves a few bytes)
10761039

10771040
DMXin_build_flags = -D WLED_ENABLE_DMX_INPUT ;; WLEDMM DMX physical input - requires ESP-IDF v4.4.x
@@ -1108,6 +1071,7 @@ build_flags_S =
11081071
; -D USERMOD_ARTIFX ;; WLEDMM usermod - temporarily moved into "_M", due to problems in "_S" when compiling with -O2
11091072
-D WLEDMM_FASTPATH ;; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
11101073
; -D WLED_DEBUG_HEAP ;; WLEDMM enable heap debugging
1074+
-D WLED_ENABLE_GIF
11111075

11121076
lib_deps_S =
11131077
;; https://github.com/kosme/arduinoFFT#develop @ 1.9.2+sha.419d7b0 ;; used for USERMOD_AUDIOREACTIVE - using "known working" hash
@@ -1613,6 +1577,9 @@ build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA
16131577
-D WLED_DISABLE_HUESYNC
16141578
-D WLED_DISABLE_ESPNOW ;; exceeds flash size limits
16151579
-D WLED_DISABLE_INFRARED ;; exceeds flash size limits
1580+
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
1581+
-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
1582+
16161583
lib_deps = ${esp8266.lib_deps}
16171584
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
16181585
; RAM: [====== ] 60.6% (used 49616 bytes from 81920 bytes)
@@ -1643,12 +1610,36 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
16431610
; -D SR_DEBUG
16441611
; -D MIC_LOGGER
16451612
${common_mm.HUB75_build_flags}
1613+
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
16461614
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
16471615
${common_mm.HUB75_lib_deps}
16481616
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
16491617
; RAM: [=== ] 25.5% (used 83400 bytes from 327680 bytes)
16501618
; Flash: [==========] 97.3% (used 1530013 bytes from 1572864 bytes)
16511619

1620+
[env:esp32_4MB_V4_S_eth]
1621+
extends = esp32_4MB_V4_S_base
1622+
build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
1623+
-D WLED_RELEASE_NAME=esp32_4MB_V4_S
1624+
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
1625+
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
1626+
-D WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
1627+
-D WLEDMM_SAVE_FLASH
1628+
-D WLED_DISABLE_LOXONE
1629+
-D WLED_DISABLE_ALEXA
1630+
-D WLED_DISABLE_HUESYNC
1631+
-D WLED_DISABLE_MQTT
1632+
-D WLED_DISABLE_INFRARED
1633+
; -D WLED_DEBUG
1634+
; -D SR_DEBUG
1635+
; -D MIC_LOGGER
1636+
${common_mm.HUB75_build_flags}
1637+
-D WLED_USE_ETHERNET
1638+
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
1639+
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
1640+
${common_mm.HUB75_lib_deps}
1641+
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
1642+
16521643
;; softhack007: my favourite HUB75 buildenv - fastest possible
16531644
[env:esp32_4MB_V4_HUB75_forum]
16541645
extends = esp32_4MB_V4_S_base
@@ -2231,6 +2222,8 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
22312222
; -D WLED_DEBUG
22322223
; -D SR_DEBUG
22332224
; -D MIC_LOGGER
2225+
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
2226+
-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
22342227
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
22352228
lib_ignore =
22362229
IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
@@ -2439,7 +2432,8 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags}
24392432
;-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; for I2C Qwiic connector
24402433
-D SR_DMTYPE=1 -D I2S_SDPIN=5 -D I2S_WSPIN=6 -D I2S_CKPIN=4 -D MCLK_PIN=7
24412434
; -D WLED_USE_MY_CONFIG
2442-
2435+
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
2436+
-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
24432437
lib_deps = ${esp32c3.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M}
24442438
lib_ignore =
24452439
;IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
@@ -2463,6 +2457,8 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags}
24632457
-D WLED_DISABLE_BROWNOUT_DET ;; the board only has a 500mA LDO, better to disable brownout detection
24642458
-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)
24652459
-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; avoid pin conflicts
2460+
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
2461+
-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
24662462
; RAM: [== ] 24.6% (used 80556 bytes from 327680 bytes)
24672463
; Flash: [==========] 97.3% (used 1530346 bytes from 1572864 bytes)
24682464

@@ -2489,7 +2485,8 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags}
24892485
-D WLED_DISABLE_BROWNOUT_DET ;; the board only has a 500mA LDO, better to disable brownout detection
24902486
-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)
24912487
-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; avoid pin conflicts
2492-
2488+
-D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit
2489+
-D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit
24932490
; RAM: [== ] 24.0% (used 78676 bytes from 327680 bytes)
24942491
; Flash: [==========] 96.4% (used 1516068 bytes from 1572864 bytes)
24952492

@@ -2725,7 +2722,7 @@ build_flags = ${esp32_4MB_S_base.build_flags}
27252722
[env:esp32_pico_4MB_M]
27262723
extends = esp32_4MB_M_base
27272724
board = pico32
2728-
board_build.flash_mode = dout ;; (dout = dual out; more compatible than qio = quad i/o)
2725+
board_build.flash_mode = dio ;; (dout = dual out; more compatible than qio = quad i/o)
27292726
upload_speed = 256000 ;; or 115200 ;; or 460800 ; or 921600 (slower speeds are better when flashing without a soldered connection)
27302727

27312728
build_flags = ${esp32_4MB_M_base.build_flags}
@@ -2815,7 +2812,7 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
28152812
; Serial debug enabled -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
28162813
-D ARDUINO_USB_CDC_ON_BOOT=0
28172814
-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)
2818-
${common_mm.animartrix_build_flags}
2815+
; ${common_mm.animartrix_build_flags}
28192816
${common_mm.build_disable_sync_interfaces}
28202817
-D LOLIN_WIFI_FIX ;; try this in case Wifi does not work
28212818
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
@@ -2825,7 +2822,7 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
28252822
${common_mm.HUB75_build_flags}
28262823
-D DEFAULT_LED_TYPE=101
28272824
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S} ;; ;; do not include ${esp32.lib_depsV4} !!!!
2828-
${common_mm.animartrix_lib_deps}
2825+
; ${common_mm.animartrix_lib_deps}
28292826
${common_mm.HUB75_lib_deps}
28302827

28312828
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation

usermods/BME280_v2/usermod_bme280.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ class UsermodBME280 : public Usermod
245245
// from the UI and values read from sensor, then publish to broker
246246
if (temperature != lastTemperature || PublishAlways)
247247
{
248-
publishMqtt("temperature", String(temperature, TemperatureDecimals).c_str());
248+
publishMqtt("temperature", String(temperature, (unsigned)TemperatureDecimals).c_str());
249249
}
250250

251251
lastTemperature = temperature; // Update last sensor temperature for next loop
@@ -258,17 +258,17 @@ class UsermodBME280 : public Usermod
258258

259259
if (humidity != lastHumidity || PublishAlways)
260260
{
261-
publishMqtt("humidity", String(humidity, HumidityDecimals).c_str());
261+
publishMqtt("humidity", String(humidity, (unsigned)HumidityDecimals).c_str());
262262
}
263263

264264
if (heatIndex != lastHeatIndex || PublishAlways)
265265
{
266-
publishMqtt("heat_index", String(heatIndex, TemperatureDecimals).c_str());
266+
publishMqtt("heat_index", String(heatIndex, (unsigned)TemperatureDecimals).c_str());
267267
}
268268

269269
if (dewPoint != lastDewPoint || PublishAlways)
270270
{
271-
publishMqtt("dew_point", String(dewPoint, TemperatureDecimals).c_str());
271+
publishMqtt("dew_point", String(dewPoint, (unsigned)TemperatureDecimals).c_str());
272272
}
273273

274274
lastHumidity = humidity;
@@ -285,7 +285,7 @@ class UsermodBME280 : public Usermod
285285

286286
if (pressure != lastPressure || PublishAlways)
287287
{
288-
publishMqtt("pressure", String(pressure, PressureDecimals).c_str());
288+
publishMqtt("pressure", String(pressure, (unsigned)PressureDecimals).c_str());
289289
}
290290

291291
lastPressure = pressure;

0 commit comments

Comments
 (0)