diff --git a/.gitignore b/.gitignore index 02e648b88b..dfbdcc71c8 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ node_modules .idea .direnv +wled00/wled00.ino.cpp diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index 29d75d19da..cab85e35b2 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -1,5 +1,3 @@ FROM gitpod/workspace-full - -USER gitpod -RUN pip3 install -U platformio +USER gitpod diff --git a/.gitpod.yml b/.gitpod.yml index cc416b1c2d..8452f08be7 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,12 +1,11 @@ tasks: - - command: platformio run + - command: pip3 install -U platformio && platformio run image: file: .gitpod.Dockerfile vscode: extensions: - - ms-vscode.cpptools@0.26.3:u3GsZ5PK12Ddr79vh4TWgQ== - - eamodio.gitlens@10.2.1:e0IYyp0efFqVsrZwsIe8CA== - - Atishay-Jain.All-Autocomplete@0.0.23:fbZNfSpnd8XkAHGfAPS2rA== - - 2gua.rainbow-brackets@0.0.6:Tbu8dTz0i+/bgcKQTQ5b8g== + - Atishay-Jain.All-Autocomplete + - esbenp.prettier-vscode + - shardulm94.trailing-spaces diff --git a/CHANGELOG.md b/CHANGELOG.md index 0636b7717b..7d36934454 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,37 @@ -## WLED changelog +## WLED-SR changelog +- upgrade custom effects to ARTI-FX (from MoonModules fork) +- Audio responsive palettes +- beat-sensitive effect variants (Palette, Popcorn, Fireworks, Starburst) +- various effect bugfixes and minor effect improvements +- 2d Lissajous improvements +- Allow up to 9 (instead of 8) LED pins +- better support for some "M5" devices (needs specific firmware build) +- Preview colors bugfix +- Segment offset bugfix +- upgrade to fastLED 3.6.0 +- upgrade to NeoPixelBus 2.7.1 +- woraround for spurious crash in serializePalettes +- audio input filtering improvements +- Low-Cut filter for all audio inputs (reduces noise) +- better handling of analog audio +- Audio core and FFT optimizations +- I2S MCLK pin is configurable, sound settings page cleanups +- Improvements for Line-In I2S boards + +(list of bugfixed to be completed) + + +## WLED upstream changelog + +### Upstream changes backported to WLED-SR +- bugfix for large presets files (>64Kb) +- updated NeoPixelBus to 2.7.1 +- Fixed APA102 output on Ethernet enabled controllers +- Added ability to disable ADAlight (-D WLED_DISABLE_ADALIGHT) +- Remove DST from CST timezone +- Pakistan time-zone (PKT) +- various fixes and enhancements +- Removed Blynk support (servers shut down on 31st Dec 2022) ### WLED release 0.13.3 diff --git a/boards/esp32_16MB-poe.json b/boards/esp32_16MB-poe.json new file mode 100644 index 0000000000..1a8a2c86cd --- /dev/null +++ b/boards/esp32_16MB-poe.json @@ -0,0 +1,38 @@ +{ +"build": { + "arduino": { + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_POE", + "f_cpu": "240000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32-poe", + "partitions": "partitions_16M.csv" +}, +"connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" +], +"debug": { + "openocd_board": "esp-wroom-32.cfg" +}, +"frameworks": [ + "arduino", + "espidf" +], +"name": "ESP32 16MB", +"upload": { + "flash_size": "16MB", + "maximum_ram_size": 327680, + "maximum_size": 16777216, + "require_upload_port": true, + "speed": 2000000 +}, +"url": "https://en.wikipedia.org/wiki/ESP32", +"vendor": "Multiple" +} diff --git a/boards/esp32_16MB.json b/boards/esp32_16MB.json new file mode 100644 index 0000000000..288dbfe969 --- /dev/null +++ b/boards/esp32_16MB.json @@ -0,0 +1,38 @@ +{ +"build": { + "arduino": { + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV", + "f_cpu": "240000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32", + "partitions": "partitions_16M.csv" +}, +"connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" +], +"debug": { + "openocd_board": "esp-wroom-32.cfg" +}, +"frameworks": [ + "arduino", + "espidf" +], +"name": "ESP32 16MB", +"upload": { + "flash_size": "16MB", + "maximum_ram_size": 327680, + "maximum_size": 16777216, + "require_upload_port": true, + "speed": 2000000 +}, +"url": "https://en.wikipedia.org/wiki/ESP32", +"vendor": "Multiple" +} diff --git a/package-lock.json b/package-lock.json index 11d0c1b3e3..058d097602 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wled", - "version": "0.13.3", + "version": "0.13.4-beta", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "wled", - "version": "0.13.3", + "version": "0.13.4-beta", "license": "ISC", "dependencies": { "clean-css": "^4.2.3", diff --git a/package.json b/package.json index 11f9447e7f..02511959d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.13.3", + "version": "0.13.4-beta", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/pio-scripts/output_bins.py b/pio-scripts/output_bins.py index 381970ea68..89719d711f 100644 --- a/pio-scripts/output_bins.py +++ b/pio-scripts/output_bins.py @@ -35,7 +35,7 @@ def bin_rename_copy(source, target, env): if release_name: _create_dirs(["release"]) version = _get_cpp_define_value(env, "WLED_VERSION") - release_file = "{}release{}soundReactive_WLED_{}_{}.bin".format(OUTPUT_DIR, os.path.sep, version, release_name) + release_file = "{}release{}WLEDSR_{}_{}.bin".format(OUTPUT_DIR, os.path.sep, version, release_name) #WLEDSR: add SR postfix to WLED shutil.copy(str(target[0]), release_file) # check if new target files exist and remove if necessary diff --git a/platformio.ini b/platformio.ini index 87faae1ae9..fa6c72b720 100644 --- a/platformio.ini +++ b/platformio.ini @@ -14,12 +14,34 @@ # Release binaries ; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32s2_saola, esp32c3 +# WLEDSR Release binaries +default_envs = + soundReactive_esp32dev + soundReactive_esp32_eth + esp32_4MB_S + esp32_4MB_M ; recommended default + esp32_4MB_S_debug + esp32_4MB_S_micdebug + esp32_16MB_M + esp32_pico_4MB_S + wemos_shield_esp32_4MB_M + wemos_shield_esp32_16MB_M + # WLED sound-reactive binaries ; default_envs = soundReactive_lolin_d32 -default_envs = soundReactive_esp32dev, soundReactive_esp32_eth +; default_envs = soundReactive_esp32dev +; default_envs = soundReactive_esp32_eth +; default_envs = soundReactive_m5atom +; default_envs = soundReactive_m5StickC_Plus +; default_envs = soundReactive_m5stamp-pico + +; WLEDSR binaries +; =================== +; min = SR core (audio, 2D, ARTIFX) +; max = min + USERMOD_DALLASTEMPERATURE + USERMOD_FOUR_LINE_DISPLAY+ USERMOD_ROTARY_ENCODER_UI + USERMOD_AUTO_SAVE # Build everything -; default_envs = esp32dev, esp8285_4CH_MagicHome, codm-controller-0.6-rev2, codm-controller-0.6, esp32s2_saola, d1_mini_5CH_Shojo_PCB, d1_mini, sp501e, travis_esp8266, travis_esp32, nodemcuv2, esp32_eth, anavi_miracle_controller, esp07, esp01_1m_full, m5atom, h803wf, d1_mini_ota, heltec_wifi_kit_8, esp8285_H801, d1_mini_debug, wemos_shield_esp32, elekstube_ips +; default_envs = esp32dev, esp8285_4CH_MagicHome, codm-controller-0_6-rev2, codm-controller-0_6, esp32s2_saola, d1_mini_5CH_Shojo_PCB, d1_mini, sp501e, travis_esp8266, travis_esp32, nodemcuv2, esp32_eth, anavi_miracle_controller, esp07, esp01_1m_full, m5atom, h803wf, d1_mini_ota, heltec_wifi_kit_8, esp8285_H801, d1_mini_debug, wemos_shield_esp32, elekstube_ips # Single binaries (uncomment your board) ; default_envs = elekstube_ips @@ -79,7 +101,7 @@ platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7 # # ------------------------------------------------------------------------------ debug_flags = -D DEBUG=1 -D WLED_DEBUG -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM -#if needed (for memleaks etc) also add; -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" +#if needed (for memory leaks etc) also add; -DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h" #-DDEBUG_ESP_CORE is not working right now # ------------------------------------------------------------------------------ @@ -160,22 +182,24 @@ upload_speed = 115200 # LIBRARIES: required dependencies # Please note that we don't always use the latest version of a library. # -# The following libraries have been included (and some of them changd) in the source: +# The following libraries have been included (and some of them changed) in the source: # ArduinoJson@5.13.5, Blynk@0.5.4(changed), E131@1.0.0(changed), Time@1.5, Timezone@1.2.1 # ------------------------------------------------------------------------------ lib_compat_mode = strict lib_deps = - fastled/FastLED @ 3.5.0 - IRremoteESP8266 @ 2.8.2 - https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7 - #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line + fastled/FastLED @ ~3.6.0 + ;;https://github.com/FastLED/FastLED.git#master @3.6.0+sha.23c67b7 + IRremoteESP8266 @ ~2.8.2 + ;; https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7 + https://github.com/lost-hope/ESPAsyncWebServer.git#master ;; WLEDSR to display .log and .wled files in /edit + #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line #TFT_eSPI - #For use SSD1306 OLED display uncomment following + #For use SSD1306 OLED display uncomment following #U8g2@~2.27.2 - #For Dallas sensor uncomment following 2 lines + #For Dallas sensor uncomment following 2 lines #OneWire@~2.3.5 #milesburton/DallasTemperature@^3.9.0 - #For BME280 sensor uncomment following + #For BME280 sensor uncomment following #BME280@~3.0.0 ; adafruit/Adafruit BMP280 Library @ 2.1.0 ; adafruit/Adafruit CCS811 Library @ 1.0.4 @@ -190,23 +214,23 @@ build_flags = ;-Wno-deprecated-declarations -Wno-register -Wno-misleading-indentation -; NONOSDK22x_190703 = 2.2.2-dev(38a443e) + ; NONOSDK22x_190703 = 2.2.2-dev(38a443e) -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703 -; lwIP 2 - Higher Bandwidth no Features -; -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH -; lwIP 1.4 - Higher Bandwidth (Aircoookie has) - -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH -; VTABLES in Flash + ; lwIP 2 - Higher Bandwidth no Features + ; -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH + ; lwIP 1.4 - Higher Bandwidth (Aircoookie has) + -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH + ; VTABLES in Flash -DVTABLES_IN_FLASH -; restrict to minimal mime-types + ; restrict to minimal mime-types -DMIMETYPE_MINIMAL lib_deps = - ${env.lib_deps} #https://github.com/lorol/LITTLEFS.git ESPAsyncTCP @ 1.2.2 ESPAsyncUDP makuna/NeoPixelBus @ 2.6.9 + ${env.lib_deps} [esp32] #platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip @@ -215,49 +239,28 @@ platform = espressif32@3.5.0 platform_packages = framework-arduinoespressif32 @ https://github.com/Aircoookie/arduino-esp32.git#1.0.6.4 build_flags = -g + -Wno-attributes -Wno-unused-variable -Wno-unused-function ;; WLEDSR disables some stupid warnings, like NeoPixelBus warning: 'maybe_unused' attribute directive ignored -DARDUINO_ARCH_ESP32 #-DCONFIG_LITTLEFS_FOR_IDF_3_2 -D CONFIG_ASYNC_TCP_USE_WDT=0 -#use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x + #use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x -D LOROL_LITTLEFS default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv lib_deps = - ${env.lib_deps} ; https://github.com/lorol/LITTLEFS.git ; WLEDSR specific: use patched version of lorol LittleFS https://github.com/softhack007/LITTLEFS-threadsafe.git#master - makuna/NeoPixelBus @ 2.6.9 + makuna/NeoPixelBus @ 2.7.1 https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 - https://github.com/kosme/arduinoFFT#develop @ 1.9.2 - ; arduinoFFT @ 1.5.6 - -[esp32s2] -build_flags = -g - -DARDUINO_ARCH_ESP32 - -DARDUINO_ARCH_ESP32S2 - -DCONFIG_IDF_TARGET_ESP32S2 - -D CONFIG_ASYNC_TCP_USE_WDT=0 - -DCO - -lib_deps = + https://github.com/kosme/arduinoFFT#develop @ 1.9.2+sha.419d7b0 ${env.lib_deps} - makuna/NeoPixelBus @ 2.6.9 - https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 -[esp32c3] -build_flags = -g - -DARDUINO_ARCH_ESP32 - -DARDUINO_ARCH_ESP32C3 - -DCONFIG_IDF_TARGET_ESP32C3 - -D CONFIG_ASYNC_TCP_USE_WDT=0 - -DCO +## WLEDSR : build-env for ESP32-S2 and ESP32-C3 deleted. They never worked on 0.13.x any way. +## Use MoonModules if you are looking for soundreactive on ESP32-S3 / ESP32-S2 / ESP32-C3 +## https://github.com/MoonModules/WLED -lib_deps = - ${env.lib_deps} - makuna/NeoPixelBus @ 2.6.9 - https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 # ------------------------------------------------------------------------------ # WLED BUILDS @@ -269,7 +272,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=nodemcuv2 lib_deps = ${esp8266.lib_deps} [env:esp8266_2m] @@ -278,7 +281,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_2m512k} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02 +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=esp8266_2m lib_deps = ${esp8266.lib_deps} [env:esp01_1m_full] @@ -287,7 +290,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=esp01_1m_full -D WLED_DISABLE_OTA lib_deps = ${esp8266.lib_deps} [env:esp07] @@ -333,7 +336,7 @@ board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 #-D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=esp32dev #-D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET upload_speed = 921600 lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder @@ -354,7 +357,7 @@ board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_qio80 #-D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=esp32dev_qio80 #-D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} @@ -367,30 +370,11 @@ platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 -D WLED_DISABLE_BLYNK +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=esp32_eth -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 -D WLED_DISABLE_BLYNK lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.default_partitions} -[env:esp32s2_saola] -board = esp32-s2-saola-1 -platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.2/platform-tasmota-espressif32-2.0.2.zip -platform_packages = -framework = arduino -board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv -board_build.flash_mode = qio -upload_speed = 460800 -build_unflags = ${common.build_unflags} -lib_deps = ${esp32s2.lib_deps} - -[env:esp32c3] -board = esp32-c3-devkitm-1 -platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.2/platform-tasmota-espressif32-2.0.2.zip -platform_packages = -framework = arduino -board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv -upload_speed = 460800 -build_unflags = ${common.build_unflags} -lib_deps = ${esp32c3.lib_deps} +## WLEDSR : buildenv for ESP32-S2 and ESP32-C3 deleted. They never worked on 0.13.x any way. [env:esp8285_4CH_MagicHome] board = esp8285 @@ -462,9 +446,10 @@ lib_deps = ${esp8266.lib_deps} board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} -upload_speed = 921600 +upload_speed = 460800 ; 921600 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=soundReactive_esp32dev -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE + -D USERMOD_ARTIFX ; WLEDMM usermod lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} @@ -477,7 +462,8 @@ platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=soundReactive_esp32_eth -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE + -D USERMOD_ARTIFX ; WLEDMM usermod lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.default_partitions} ; board_build.f_flash = 80000000L @@ -490,6 +476,7 @@ platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE + -D USERMOD_ARTIFX ; WLEDMM usermod lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} @@ -503,60 +490,88 @@ platform_packages = ${esp32.platform_packages} upload_speed = 921600 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE + -D USERMOD_ARTIFX ; WLEDMM usermod lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.f_cpu = 240000000L board_upload.flash_size = 16MB board_upload.maximum_size = 16777216 -board_build.partitions = tools/SoundReactive_ESP32_16MB.csv +board_build.partitions = tools/WLED_ESP32_16MB.csv ; for esp32_16MB with 16MB flash board_build.f_flash = 80000000L board_build.flash_mode = qio [env:soundReactive_m5atom] -board = esp32dev +board = m5stack-atom platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 1500000 monitor_speed = 115200 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} - -D WLED_RELEASE_NAME=ESP32 + -D WLED_RELEASE_NAME=soundReactive_m5atom -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE -D LEDPIN=27 -D BTNPIN=39 - -D DMENABLED=5 - -D I2S_SDPIN=26 - -D I2S_WSPIN=32 - -D I2S_CKPIN=-1 + -D I2S_SDPIN=26 -D I2S_WSPIN=32 -D I2S_CKPIN=-1 -D MCLK_PIN=-1 ;; PDM microphone pins + -D DMENABLED=5 -D SR_SQUELCH=5 -D SR_GAIN=75 ;; SPM1423 specific sound settings + ;-D I2S_USE_RIGHT_CHANNEL ;; might be needed, if your microphone uses the right channel instead of left + -D USERMOD_ARTIFX ; WLEDMM usermod lib_deps = ${esp32.lib_deps} + m5stack/M5Atom @ ~0.1.0 ;; specific hardware driver library monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} board_build.f_flash = 80000000L board_build.flash_mode = dio +[env:soundReactive_m5StickC_Plus] +board = m5stick-c +platform = ${esp32.platform} +platform_packages = ${esp32.platform_packages} +upload_speed = 1500000 +monitor_speed = 115200 +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp32} + -D WLED_RELEASE_NAME=soundReactive_m5StickC_Plus + -D WLED_DISABLE_MQTT + -D WLED_DISABLE_LOXONE + -D LEDPIN=32 + -D BTNPIN=37 + ; -D IRPIN=9 ;; gpio 9 will not work in WLED - its a "reserved pin" for flash memory + ; -D STATUSLED=10 ;; gpio 10 will not work either, for the same reason + -D I2S_SDPIN=34 -D I2S_WSPIN=0 -D I2S_CKPIN=-1 -D MCLK_PIN=-1 ;; PDM microphone pins + -D DMENABLED=5 -D SR_SQUELCH=5 -D SR_GAIN=75 ;; SPM1423 specific sound settings + -D I2S_USE_RIGHT_CHANNEL ;; might be needed, if your microphone uses the right channel instead of left + -D USERMOD_ARTIFX ; WLEDMM usermod +lib_deps = ${esp32.lib_deps} + https://github.com/m5stack/M5StickC-Plus.git @ ~0.0.8 ;; specific hardware driver library +monitor_filters = esp32_exception_decoder +board_build.partitions = ${esp32.default_partitions} +board_build.f_flash = 80000000L +;; board_build.flash_mode = dio + [env:soundReactive_m5stamp-pico] -board = esp32dev +board = pico32 platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 1500000 monitor_speed = 115200 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} - -D WLED_RELEASE_NAME=ESP32 + -D WLED_RELEASE_NAME=soundReactive_m5stamp-pico -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE -D LEDPIN=27 -D BTNPIN=39 - -D DMENABLED=5 - -D I2S_SDPIN=32 - -D I2S_WSPIN=33 - -D I2S_CKPIN=-1 + -D I2S_SDPIN=26 -D I2S_WSPIN=32 -D I2S_CKPIN=-1 -D MCLK_PIN=-1 ;; PDM microphone pins + -D DMENABLED=5 -D SR_SQUELCH=5 -D SR_GAIN=75 ;; SPM1423 specific sound settings + ;-D I2S_USE_RIGHT_CHANNEL ;; might be needed, if your microphone uses the right channel instead of left + -D USERMOD_ARTIFX ; WLEDMM usermod lib_deps = ${esp32.lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} board_build.f_flash = 80000000L -board_build.flash_mode = dio +board_build.flash_mode = dout # ------------------------------------------------------------------------------ # custom board configurations @@ -564,7 +579,7 @@ board_build.flash_mode = dio [env:wemos_shield_esp32] board = esp32dev -platform = espressif32@3.2 +platform = ${esp32.platform} upload_speed = 921600 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} @@ -575,6 +590,7 @@ build_flags = ${common.build_flags_esp32} -D UWLED_USE_MY_CONFIG -D USERMOD_DALLASTEMPERATURE -D USERMOD_FOUR_LINE_DISPLAY + -D USERMOD_ARTIFX ; WLEDMM usermod -D TEMPERATURE_PIN=23 lib_deps = ${esp32.lib_deps} OneWire@~2.3.5 @@ -582,6 +598,206 @@ lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.default_partitions} ; board_build.partitions = tools/SoundReactive_ESP32_16MB.csv ; ESP32 16MB +# ------------------------------------------------------------------------------ +# Soundreactive configs (MoonModules style, should eventually replace above) +# ------------------------------------------------------------------------------ + +; shared build flags and lib deps for minimum and maximum config +[common_sr] +build_flags_S = + -Wall -Wformat -Woverflow -Wuninitialized -Winit-self -Warray-bounds ; enables more warnings + -Wno-attributes -Wno-unused-variable -Wno-unused-function -Wno-deprecated-declarations ;disables some stupid warnings + -D WLED_DISABLE_MQTT -D WLED_DISABLE_LOXONE + ;-D WLED_DISABLE_BLYNK ; BLYNK is only provided for backwards compatibility (no new users accepted). Additionally, it calls analogRead() which could confuse analog mics + ;-D WLED_DISABLE_BROWNOUT_DET ; enable if you get "brownout detected" errors at startup + -D USERMOD_ARTIFX ; WLEDMM usermod + ; -D WLED_DEBUG ; lots of generic debug messages + ; -D SR_DEBUG -D NO_MIC_LOGGER ; some extra debug messages from audioreactive + ; -D MIC_LOGGER ; mic signal plotting with arduino serial plotter + ; -D WLED_USE_MY_CONFIG + +lib_deps_S = + ; https://github.com/kosme/arduinoFFT#develop @ 1.9.2 ; used for USERMOD_AUDIOREACTIVE +; monitor_filters = esp32_exception_decoder ; used to show crash details + +build_flags_M = + ; -D WLED_MAX_USERMODS=9 ; default only 4-6 + -D USERMOD_DALLASTEMPERATURE + -D USE_ALT_DISPLAY ; new versions of USERMOD_FOUR_LINE_DISPLAY and USERMOD_ROTARY_ENCODER_UI + -D USERMOD_FOUR_LINE_DISPLAY + -D USERMOD_ROTARY_ENCODER_UI + -D USERMOD_AUTO_SAVE + +lib_deps_M = + OneWire@~2.3.5 ; used for USERMOD_FOUR_LINE_DISPLAY and USERMOD_DALLASTEMPERATURE + olikraus/U8g2 @ ^2.28.8 ; used for USERMOD_FOUR_LINE_DISPLAY + +; end of common + +; base entries (without WLED_RELEASE_NAME) + +; esp32_4MB_S_base: basis for min entries and for max_base +[esp32_4MB_S_base] +board = esp32dev +platform = ${esp32.platform} +upload_speed = 460800 ; or 921600 +platform_packages = ${esp32.platform_packages} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags_esp32} ${common_sr.build_flags_S} +lib_deps = ${esp32.lib_deps} ${common_sr.lib_deps_S} +board_build.partitions = ${esp32.default_partitions} +board_build.f_flash = 80000000L ; use full 80MHz speed for flash (default = 40Mhz) +board_build.flash_mode = dio ; (dio = dual i/o; more compatible than qio = quad i/o) + +;esp32_4MB_M_base: basis for max entries, uses esp32_4MB_S_base, build_flags_M and lib_deps_M +[esp32_4MB_M_base] +extends = esp32_4MB_S_base +build_flags = ${esp32_4MB_S_base.build_flags} ${common_sr.build_flags_M} +lib_deps = ${esp32_4MB_S_base.lib_deps} ${common_sr.lib_deps_M} +board_build.partitions = ${esp32_4MB_S_base.board_build.partitions} +; board_build.partitions = tools/WLED_ESP32-wrover_4MB.csv + +; end of base entries + +; bin entries (with WLED_RELEASE_NAME) + +; esp32_4MB_S: bin entry, uses esp32_4MB_S_base +[env:esp32_4MB_S] +extends = esp32_4MB_S_base +build_flags = ${esp32_4MB_S_base.build_flags} + -D WLED_RELEASE_NAME=esp32_4MB_S ; This will be included in the firmware.bin filename +; RAM: [== ] 24.1% (used 78900 bytes from 327680 bytes) +; Flash: [======== ] 83.7% (used 1315729 bytes from 1572864 bytes) + +; esp32_4MB_S_debug: bin entry, uses esp32_4MB_S_base + WLED_DEBUG +[env:esp32_4MB_S_debug] +extends = esp32_4MB_S_base +build_flags = ${esp32_4MB_S_base.build_flags} + -D WLED_RELEASE_NAME=esp32_4MB_S_debug ; This will be included in the firmware.bin filename + -D WLED_DEBUG ; lots of generic debug messages + -D SR_DEBUG -D NO_MIC_LOGGER ; some extra debug messages from audioreactive + +; esp32_4MB_S_micdebug: bin entry, uses esp32_4MB_S_base + MIC_LOGGER +[env:esp32_4MB_S_micdebug] +extends = esp32_4MB_S_base +build_flags = ${esp32_4MB_S_base.build_flags} + -D WLED_RELEASE_NAME=esp32_4MB_S_micdebug ; This will be included in the firmware.bin filename + -D MIC_LOGGER ;; mic signal plotting with arduino serial plotter + +; esp32_4MB_M: bin entry, uses esp32_4MB_M_base +[env:esp32_4MB_M] +extends = esp32_4MB_M_base +build_flags = ${esp32_4MB_M_base.build_flags} + -D WLED_RELEASE_NAME=esp32_4MB_M ; This will be included in the firmware.bin filename +; RAM: [== ] 24.4% (used 79812 bytes from 327680 bytes) +; Flash: [========= ] 88.6% (used 1393397 bytes from 1572864 bytes) + +; esp32_16MB_M: bin entry, uses esp32_4MB_M_base and adds 16MB settings +[env:esp32_16MB_M] +extends = esp32_4MB_M_base +board = esp32_16MB ; ESP32 with 16MB Flash +board_build.partitions = tools/WLED_ESP32_16MB.csv ; for esp32_16MB with 16MB flash +build_flags = ${esp32_4MB_M_base.build_flags} + -D WLED_RELEASE_NAME=esp32_16MB_M ; This will be included in the firmware.bin filename +; RAM: [=== ] 32.4% (used 106332 bytes from 327680 bytes) +; Flash: [====== ] 62.5% (used 1311017 bytes from 2097152 bytes) + + +; esp8266_4MB_S: bin entry for 8266, with 2D (WIP) +; [env:esp8266_4MB_S] +; extends = env:d1_mini +; upload_speed = 460800 ;115200 +; build_flags = ${common.build_flags_esp8266} +; -D WLED_RELEASE_NAME=esp8266_4MB_S ; This will be included in the firmware.bin filename +; ; -D WLED_DEBUG +; -D WLED_DISABLE_ALEXA +; -D WLED_DISABLE_BLYNK +; -D WLED_DISABLE_HUESYNC +; -D WLED_DISABLE_SOUND +; ; -D WLED_DISABLE_2D +; -UWLED_USE_MY_CONFIG +; ; monitor_filters = esp8266_exception_decoder +; ; RAM: [====== ] 58.7% (used 48056 bytes from 81920 bytes) +; ; Flash: [======== ] 75.7% (used 790428 bytes from 1044464 bytes) + +;; experiemtal environment for boards with PSRAM. +; ; esp32_4MB_PSRAM_M: bin entry, uses esp32_4MB_M_base and adds specific settings +; [env:esp32_4MB_PSRAM_M] +; extends = esp32_4MB_M_base +; board = lolin_d32_pro +; ;board = esp32cam +; build_flags = ${esp32_4MB_M_base.build_flags} +; -D WLED_RELEASE_NAME=esp32_4MB_PSRAM_M +; -D WLED_DISABLE_BROWNOUT_DET +; -D WLED_USE_PSRAM +; ; -D WLED_DEBUG +; ; -D SR_DEBUG -D NO_MIC_LOGGER +; ; -D MIC_LOGGER +# ------------------------------------------------------------------------------ +# custom board configurations +# ------------------------------------------------------------------------------ + +;wemos_shield_esp32_4MB_M_base: base entry, uses esp32_4MB_M_base +[wemos_shield_esp32_4MB_M_base] +extends = esp32_4MB_M_base +build_flags = ${esp32_4MB_M_base.build_flags} + -D ABL_MILLIAMPS_DEFAULT=9500 ; Wemos max 10A + -D LEDPIN=16 + -D RLYPIN=19 + -D BTNPIN=17 + -D IRPIN=18 + -D AUDIOPIN=-1 -D DMENABLED=1 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=14 -D MCLK_PIN=0 + -D TEMPERATURE_PIN=23 + -D FLD_PIN_SCL=22 -D FLD_PIN_SDA=21 + ; -D ENCODER_DT_PIN=18 -D ENCODER_CLK_PIN=5 -D ENCODER_SW_PIN=19 + +;wemos_shield_esp32_4MB_M: bin entry, uses wemos_shield_esp32_4MB_M_base +[env:wemos_shield_esp32_4MB_M] +extends = wemos_shield_esp32_4MB_M_base +build_flags = ${wemos_shield_esp32_4MB_M_base.build_flags} + -D WLED_RELEASE_NAME=wemos_shield_esp32_4MB_M ; This will be included in the firmware.bin filename +; RAM: [=== ] 32.5% (used 106340 bytes from 327680 bytes) +; Flash: [======== ] 83.4% (used 1311049 bytes from 1572864 bytes) + +;wemos_shield_esp32_16MB_M: bin entry, uses wemos_shield_esp32_4MB_M_base and adds 16MB settings +[env:wemos_shield_esp32_16MB_M] +extends = wemos_shield_esp32_4MB_M_base +board = esp32_16MB ; ESP32 with 16MB Flash +board_build.partitions = tools/WLED_ESP32_16MB.csv ; for esp32_16MB with 16MB flash +build_flags = ${wemos_shield_esp32_4MB_M_base.build_flags} + -D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_M ; This will be included in the firmware.bin filename +; RAM: [=== ] 32.5% (used 106340 bytes from 327680 bytes) +; Flash: [====== ] 62.5% (used 1311049 bytes from 2097152 bytes) + +; ESP32 WLED pico board with builtin ICS-43432 microphpone +[env:esp32_pico_4MB_S] +extends = esp32_4MB_S_base +board = pico32 +board_build.flash_mode = dout ;; (dout = dual out; more compatible than qio = quad i/o) +upload_speed = 256000 ;; or 115200 ;; or 460800 ; or 921600 (slower speeds are better when flashing without a soldered connection) +build_flags = ${esp32_4MB_S_base.build_flags} + -D WLED_RELEASE_NAME=esp32_pico_4MB_S ; This will be included in the firmware.bin filename + -D WLED_DISABLE_BROWNOUT_DET + -D SERVERNAME='"WLEDSR-pico32"' + -D WLED_DISABLE_ADALIGHT ;; WLEDSR this board does not have an onboard serial-to-USB chip. Better to disable serial protocols, to avoid crashes (see upstream #3128) + -D USERMOD_AUTO_SAVE + -D LEDPIN=2 + -D RLYPIN=-1 -D BTNPIN=-1 -D IRPIN=-1 + -D HW_PIN_SCL=22 -D HW_PIN_SDA=21 + -D FLD_PIN_SCL=22 -D FLD_PIN_SDA=21 + -D AUDIOPIN=-1 -D DMENABLED=1 -D I2S_SDPIN=25 -D I2S_WSPIN=15 -D I2S_CKPIN=14 + -D SR_SQUELCH=6 -D SR_GAIN=30 ; ICS-4343x specific + ; -D MCLK_PIN=0 + ; -D WLED_DEBUG ; lots of generic debug messages + ; -D SR_DEBUG -D NO_MIC_LOGGER ; some extra debug messages from audioreactive + ; -D MIC_LOGGER ; mic signal plotting with arduino serial plotter + ; -D WLED_USE_MY_CONFIG + ; -D WLED_USE_CIE_BRIGHTNESS_TABLE +; RAM: [=== ] 32.5% (used 106356 bytes from 327680 bytes) +; Flash: [======== ] 81.3% (used 1278269 bytes from 1572864 bytes) +monitor_filters = esp32_exception_decoder +lib_ignore = IRremoteESP8266 ;; for faster compilation + [env:m5atom] board = esp32dev build_unflags = ${common.build_unflags} @@ -624,7 +840,7 @@ platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA -D USERMOD_MY9291 +build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=MY9291 -D WLED_DISABLE_OTA -D USERMOD_MY9291 lib_deps = ${esp8266.lib_deps} # ------------------------------------------------------------------------------ @@ -645,10 +861,10 @@ build_flags = ${common.build_flags_esp32} ${common.debug_flags} ${common.build_f # ------------------------------------------------------------------------------ # codm pixel controller board configurations -# codm-controller-0.6 can also be used for the TYWE3S controller +# codm-controller-0_6 can also be used for the TYWE3S controller # ------------------------------------------------------------------------------ -[env:codm-controller-0.6] +[env:codm-controller-0_6] board = esp_wroom_02 platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} @@ -657,7 +873,7 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} lib_deps = ${esp8266.lib_deps} -[env:codm-controller-0.6-rev2] +[env:codm-controller-0_6-rev2] board = esp_wroom_02 platform = ${common.platform_wled_default} platform_packages = ${common.platform_packages} diff --git a/readme.md b/readme.md index 5746bb883b..af43288bf4 100644 --- a/readme.md +++ b/readme.md @@ -10,12 +10,13 @@
-# Stable Branch -This is the SR `master` branch - the source code for our latest release version [SR WLED v0.13.3](https://github.com/atuline/WLED/releases/tag/v0.13.3). +# Development Branch + +This is the SR `dev`elopment branch, where we test new features and enhancements. The code may or may not work - it is work in progress. - For ESP32 devices (8266 no longer supported) -- *This* branch (`master`) can be a stable baseline for your own project. Use it. -- *Pull Requests* should be created against our [`dev`elopment branch](https://github.com/atuline/WLED/tree/dev). +- *Pull Requests* should be created against this `dev` branch. +- If you are looking for a stable baseline for your own project, please use the released source code from [`master` branch](https://github.com/atuline/WLED/tree/master) diff --git a/tools/SoundReactive_ESP32_16MB.csv b/tools/SoundReactive_ESP32_16MB.csv deleted file mode 100644 index e547a82468..0000000000 --- a/tools/SoundReactive_ESP32_16MB.csv +++ /dev/null @@ -1,6 +0,0 @@ -# Name, Type, SubType, Offsaet, Size, Flags -nvs, data, nvs, 0x9000, 0x5000, -otadata, data, ota, 0xe000, 0x2000, -app0, app, ota_0, 0x10000, 0x200000, -app1, app, ota_1, 0x210000, 0x200000, -spiffs, data, spiffs, 0x410000, 0x7f0000, diff --git a/tools/WLED_ESP32_16MB_9MB_FS.csv b/tools/WLED_ESP32_16MB_9MB_FS.csv new file mode 100644 index 0000000000..9ecac04e39 --- /dev/null +++ b/tools/WLED_ESP32_16MB_9MB_FS.csv @@ -0,0 +1,8 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x5000, +otadata, data, ota, 0xe000, 0x2000, +app0, app, ota_0, 0x10000, 0x300000, +app1, app, ota_1, 0x310000,0x300000, +spiffs, data, spiffs, 0x610000,0x9E0000, +coredump, data, coredump,0xFF0000,0x10000, +# to create/use ffat, see https://github.com/marcmerlin/esp32_fatfsimage \ No newline at end of file diff --git a/tools/WLED_ESP32_2MB_noOTA.csv b/tools/WLED_ESP32_2MB_noOTA.csv new file mode 100644 index 0000000000..7a1cf15f89 --- /dev/null +++ b/tools/WLED_ESP32_2MB_noOTA.csv @@ -0,0 +1,5 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 20K, +otadata, data, ota, 0xe000, 8K, +app0, app, ota_0, 0x10000, 1536K, +spiffs, data, spiffs, 0x190000, 384K, diff --git a/tools/WLED_ESP32_4MB_256KB_FS.csv b/tools/WLED_ESP32_4MB_256KB_FS.csv new file mode 100644 index 0000000000..f9e1be26cb --- /dev/null +++ b/tools/WLED_ESP32_4MB_256KB_FS.csv @@ -0,0 +1,7 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x5000, +otadata, data, ota, 0xe000, 0x2000, +app0, app, ota_0, 0x10000, 0x1D0000, +app1, app, ota_1, 0x1E0000,0x1D0000, +spiffs, data, spiffs, 0x3B0000,0x40000, +coredump, data, coredump,0x3F0000,0x10000, \ No newline at end of file diff --git a/tools/cdata.js b/tools/cdata.js index 6508772e72..f6d8497fcb 100644 --- a/tools/cdata.js +++ b/tools/cdata.js @@ -413,6 +413,14 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; append: ")=====", method: "plaintext", filter: "html-minify", + mangle: (str) => + str + .replace(/\/gms, "") + .replace(/\ - - +