From 793a01f7ca8648f0c5616df3b456c0d6856b00ac Mon Sep 17 00:00:00 2001 From: Christian Schwinne Date: Sat, 3 Jul 2021 13:52:23 +0200 Subject: [PATCH] Bus wrapper simplification (#2054) * Use RMTN method * Simplify BusWrapper * Update PlatformIO configuration * Fix non-included dependencies --- package-lock.json | 2 +- package.json | 2 +- platformio.ini | 172 +++++--------- platformio_override.ini.sample | 1 + wled00/bus_manager.h | 2 +- wled00/bus_wrapper.h | 407 ++++++--------------------------- wled00/html_other.h | 2 +- wled00/html_settings.h | 2 +- wled00/wled.h | 4 +- 9 files changed, 127 insertions(+), 467 deletions(-) diff --git a/package-lock.json b/package-lock.json index b34eaf41..4e213a6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.13.0-b0", + "version": "0.13.0-b1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2838d7f7..f2385587 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.13.0-b0", + "version": "0.13.0-b1", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/platformio.ini b/platformio.ini index c4dec217..5f907b24 100644 --- a/platformio.ini +++ b/platformio.ini @@ -73,7 +73,6 @@ debug_flags = -D DEBUG=1 -D WLED_DEBUG -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT # ------------------------------------------------------------------------------ # FLAGS: ldscript (available ldscripts at https://github.com/esp8266/Arduino/tree/master/tools/sdk/ld) -# ldscript_512k ( 512 KB) = 487 KB sketch, 4 KB eeprom, no spiffs, 16 KB reserved # ldscript_1m0m (1024 KB) = 999 KB sketch, 4 KB eeprom, no spiffs, 16 KB reserved # ldscript_2m1m (2048 KB) = 1019 KB sketch, 4 KB eeprom, 1004 KB spiffs, 16 KB reserved # ldscript_4m1m (4096 KB) = 1019 KB sketch, 4 KB eeprom, 1002 KB spiffs, 16 KB reserved, 2048 KB empty/ota? @@ -129,28 +128,6 @@ ldscript_2m512k = eagle.flash.2m512.ld ldscript_2m1m = eagle.flash.2m1m.ld ldscript_4m1m = eagle.flash.4m1m.ld -[esp8266] -build_flags = - -DESP8266 - -DFP_IN_IROM - ;-Wno-deprecated-declarations - ;-Wno-register -; 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 - -DVTABLES_IN_FLASH -; restrict to minimal mime-types - -DMIMETYPE_MINIMAL - -[esp32] -build_flags = -g - -DARDUINO_ARCH_ESP32 - -DCONFIG_LITTLEFS_FOR_IDF_3_2 - [scripts_defaults] extra_scripts = pre:pio-scripts/set_version.py @@ -180,10 +157,6 @@ upload_speed = 115200 lib_compat_mode = strict lib_deps = fastled/FastLED @ 3.4.0 - NeoPixelBus @ 2.6.4 - ESPAsyncTCP @ 1.2.0 - ESPAsyncUDP - AsyncTCP @ 1.0.3 IRremoteESP8266 @ 2.7.18 https://github.com/lorol/LITTLEFS.git https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.2 @@ -200,11 +173,41 @@ lib_deps = ; adafruit/Adafruit CCS811 Library @ 1.0.4 ; adafruit/Adafruit Si7021 Library @ 1.4.0 -lib_ignore = - AsyncTCP - extra_scripts = ${scripts_defaults.extra_scripts} +[esp8266] +build_flags = + -DESP8266 + -DFP_IN_IROM + ;-Wno-deprecated-declarations + ;-Wno-register +; 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 + -DVTABLES_IN_FLASH +; restrict to minimal mime-types + -DMIMETYPE_MINIMAL + +lib_deps = + ${env.lib_deps} + # ESPAsyncTCP @ 1.2.0 + ESPAsyncUDP + makuna/NeoPixelBus @ 2.6.4 # 2.6.5 and newer do not compile on ESP core < 3.0.0 + +[esp32] +build_flags = -g + -DARDUINO_ARCH_ESP32 + -DCONFIG_LITTLEFS_FOR_IDF_3_2 + +lib_deps = + ${env.lib_deps} + https://github.com/Makuna/NeoPixelBus.git # until next upstream release + AsyncTCP @ 1.0.3 + # ------------------------------------------------------------------------------ # WLED BUILDS # ------------------------------------------------------------------------------ @@ -216,6 +219,7 @@ 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 +lib_deps = ${esp8266.lib_deps} [env:esp01_1m_full] board = esp01_1m @@ -224,6 +228,7 @@ 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 +lib_deps = ${esp8266.lib_deps} [env:esp07] board = esp07 @@ -232,6 +237,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} [env:d1_mini] board = d1_mini @@ -241,6 +247,7 @@ upload_speed = 921600 board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} monitor_filters = esp8266_exception_decoder [env:heltec_wifi_kit_8] @@ -250,6 +257,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} [env:h803wf] board = d1_mini @@ -258,15 +266,14 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} -D LEDPIN=1 -D WLED_DISABLE_INFRARED +lib_deps = ${esp8266.lib_deps} [env:esp32dev] board = esp32dev platform = espressif32@2.0 build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP +build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 #-D WLED_DISABLE_BROWNOUT_DET +lib_deps = ${esp32.lib_deps} [env:esp32_eth] board = esp32-poe @@ -274,9 +281,7 @@ platform = espressif32@2.0 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 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP +lib_deps = ${esp32.lib_deps} [env:esp8285_4CH_MagicHome] board = esp8285 @@ -285,6 +290,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA +lib_deps = ${esp8266.lib_deps} [env:esp8285_4CH_H801] board = esp8285 @@ -293,6 +299,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA +lib_deps = ${esp8266.lib_deps} [env:esp8285_5CH_H801] board = esp8285 @@ -301,6 +308,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA +lib_deps = ${esp8266.lib_deps} [env:d1_mini_5CH_Shojo_PCB] board = d1_mini @@ -309,6 +317,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} -D WLED_USE_SHOJO_PCB +lib_deps = ${esp8266.lib_deps} # ------------------------------------------------------------------------------ # DEVELOPMENT BOARDS @@ -322,6 +331,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} ${common.debug_flags} +lib_deps = ${esp8266.lib_deps} [env:d1_mini_ota] board = d1_mini @@ -333,6 +343,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} [env:anavi_miracle_controller] board = d1_mini @@ -341,79 +352,12 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} -D LEDPIN=12 -D IRPIN=-1 -D RLYPIN=2 +lib_deps = ${esp8266.lib_deps} # ------------------------------------------------------------------------------ # custom board configurations # ------------------------------------------------------------------------------ -[env:custom_LEDPIN_4] -board = d1_mini -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 LEDPIN=4 -D IRPIN=5 - -[env:custom_LEDPIN_16] -board = d1_mini -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 LEDPIN=16 - - -[env:custom_LEDPIN_3] -board = d1_mini -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 LEDPIN=3 - -[env:custom_APA102] -board = d1_mini -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 USE_APA102 - -[env:custom_WS2801] -board = d1_mini -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 USE_WS2801 - -[env:custom32_LEDPIN_16] -board = esp32dev -platform = espressif32@3.2 -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D LEDPIN=16 -D RLYPIN=19 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP - -[env:custom32_APA102] -board = esp32dev -platform = espressif32@3.2 -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D USE_APA102 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP - -[env:custom32_TOUCHPIN_T0] -board = esp32dev -platform = espressif32@3.2 -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} -D TOUCHPIN=T0 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP - [env:wemos_shield_esp32] board = esp32dev platform = espressif32@3.2 @@ -428,21 +372,16 @@ build_flags = ${common.build_flags_esp32} ; -D USERMOD_DALLASTEMPERATURE_CELCIUS ; -D USERMOD_FOUR_LINE_DISPLAY ; -D TEMPERATURE_PIN=21 -lib_deps = ${env.lib_deps} +lib_deps = ${esp8266.lib_deps} ; OneWire@~2.3.5 ; milesburton/DallasTemperature@^3.9.0 ; U8g2@~2.27.2 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP [env:m5atom] board = esp32dev build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D LEDPIN=27 -D BTNPIN=39 -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP +lib_deps = ${esp32.lib_deps} platform = espressif32@3.2 [env:sp501e] @@ -450,6 +389,7 @@ board = esp_wroom_02 platform = ${common.platform_wled_default} board_build.ldscript = ${common.ldscript_2m512k} build_flags = ${common.build_flags_esp8266} -D LEDPIN=3 -D BTNPIN=1 +lib_deps = ${esp8266.lib_deps} # ------------------------------------------------------------------------------ # travis test board configurations @@ -479,6 +419,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_2m512k} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} [env:codm-controller-0.6-rev2] board = esp_wroom_02 @@ -487,6 +428,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_4m1m} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} # ------------------------------------------------------------------------------ # EleksTube-IPS @@ -495,8 +437,6 @@ build_flags = ${common.build_flags_esp8266} board = esp32dev platform = espressif32@3.2 upload_speed = 921600 -lib_deps = ${env.lib_deps} - TFT_eSPI build_flags = ${common.build_flags_esp32} -D WLED_DISABLE_BROWNOUT_DET -D WLED_DISABLE_INFRARED -D USERMOD_RTC -D USERMOD_ELEKSTUBE_IPS @@ -518,7 +458,5 @@ build_flags = ${common.build_flags_esp32} -D WLED_DISABLE_BROWNOUT_DET -D WLED_D -D SPI_FREQUENCY=40000000 -D USER_SETUP_LOADED monitor_filters = esp32_exception_decoder -lib_ignore = - ESPAsyncTCP - ESPAsyncUDP +lib_deps = ${esp32.lib_deps} TFT_eSPI \ No newline at end of file diff --git a/platformio_override.ini.sample b/platformio_override.ini.sample index 7df8ce8d..6371e476 100644 --- a/platformio_override.ini.sample +++ b/platformio_override.ini.sample @@ -14,6 +14,7 @@ platform_packages = ${common.platform_packages} board_build.ldscript = ${common.ldscript_1m128k} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp8266} +lib_deps = ${esp8266.lib_deps} ; ********************************************************************* ; *** Use custom settings from file my_config.h -DWLED_USE_MY_CONFIG diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index e8d569db..3517288c 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -120,7 +120,7 @@ class BusDigital : public Bus { _len = bc.count + _skip; _iType = PolyBus::getI(bc.type, _pins, nr); if (_iType == I_NONE) return; - _busPtr = PolyBus::create(_iType, _pins, _len); + _busPtr = PolyBus::create(_iType, _pins, _len, nr); _valid = (_busPtr != nullptr); _colorOrder = bc.colorOrder; //Serial.printf("Successfully inited strip %u (len %u) with type %u and pins %u,%u (itype %u)\n",nr, len, type, pins[0],pins[1],_iType); diff --git a/wled00/bus_wrapper.h b/wled00/bus_wrapper.h index e5e5db54..b1b2ae97 100644 --- a/wled00/bus_wrapper.h +++ b/wled00/bus_wrapper.h @@ -36,66 +36,38 @@ /*** ESP32 Neopixel methods ***/ //RGB -#define I_32_R0_NEO_3 17 -#define I_32_R1_NEO_3 18 -#define I_32_R2_NEO_3 19 -#define I_32_R3_NEO_3 20 -#define I_32_R4_NEO_3 21 -#define I_32_R5_NEO_3 22 -#define I_32_R6_NEO_3 23 -#define I_32_R7_NEO_3 24 -#define I_32_I0_NEO_3 25 -#define I_32_I1_NEO_3 26 +#define I_32_RN_NEO_3 17 +#define I_32_I0_NEO_3 18 +#define I_32_I1_NEO_3 19 //RGBW -#define I_32_R0_NEO_4 27 -#define I_32_R1_NEO_4 28 -#define I_32_R2_NEO_4 29 -#define I_32_R3_NEO_4 30 -#define I_32_R4_NEO_4 31 -#define I_32_R5_NEO_4 32 -#define I_32_R6_NEO_4 33 -#define I_32_R7_NEO_4 34 -#define I_32_I0_NEO_4 35 -#define I_32_I1_NEO_4 36 +#define I_32_RN_NEO_4 20 +#define I_32_I0_NEO_4 21 +#define I_32_I1_NEO_4 22 //400Kbps -#define I_32_R0_400_3 37 -#define I_32_R1_400_3 38 -#define I_32_R2_400_3 39 -#define I_32_R3_400_3 40 -#define I_32_R4_400_3 41 -#define I_32_R5_400_3 42 -#define I_32_R6_400_3 43 -#define I_32_R7_400_3 44 -#define I_32_I0_400_3 45 -#define I_32_I1_400_3 46 +#define I_32_RN_400_3 23 +#define I_32_I0_400_3 24 +#define I_32_I1_400_3 25 //TM1814 (RGBW) -#define I_32_R0_TM1_4 47 -#define I_32_R1_TM1_4 48 -#define I_32_R2_TM1_4 49 -#define I_32_R3_TM1_4 50 -#define I_32_R4_TM1_4 51 -#define I_32_R5_TM1_4 52 -#define I_32_R6_TM1_4 53 -#define I_32_R7_TM1_4 54 -#define I_32_I0_TM1_4 55 -#define I_32_I1_TM1_4 56 +#define I_32_RN_TM1_4 26 +#define I_32_I0_TM1_4 27 +#define I_32_I1_TM1_4 28 //Bit Bang theoratically possible, but very undesirable and not needed (no pin restrictions on RMT and I2S) //APA102 -#define I_HS_DOT_3 57 //hardware SPI -#define I_SS_DOT_3 58 //soft SPI +#define I_HS_DOT_3 29 //hardware SPI +#define I_SS_DOT_3 30 //soft SPI //LPD8806 -#define I_HS_LPD_3 59 -#define I_SS_LPD_3 60 +#define I_HS_LPD_3 31 +#define I_SS_LPD_3 32 //WS2801 -#define I_HS_WS1_3 61 -#define I_SS_WS1_3 62 +#define I_HS_WS1_3 33 +#define I_SS_WS1_3 34 //P9813 -#define I_HS_P98_3 63 -#define I_SS_P98_3 64 +#define I_HS_P98_3 35 +#define I_SS_P98_3 36 /*** ESP8266 Neopixel methods ***/ @@ -125,47 +97,19 @@ /*** ESP32 Neopixel methods ***/ #ifdef ARDUINO_ARCH_ESP32 //RGB -#define B_32_R0_NEO_3 NeoPixelBrightnessBus -#define B_32_R1_NEO_3 NeoPixelBrightnessBus -#define B_32_R2_NEO_3 NeoPixelBrightnessBus -#define B_32_R3_NEO_3 NeoPixelBrightnessBus -#define B_32_R4_NEO_3 NeoPixelBrightnessBus -#define B_32_R5_NEO_3 NeoPixelBrightnessBus -#define B_32_R6_NEO_3 NeoPixelBrightnessBus -#define B_32_R7_NEO_3 NeoPixelBrightnessBus +#define B_32_RN_NEO_3 NeoPixelBrightnessBus #define B_32_I0_NEO_3 NeoPixelBrightnessBus #define B_32_I1_NEO_3 NeoPixelBrightnessBus //RGBW -#define B_32_R0_NEO_4 NeoPixelBrightnessBus -#define B_32_R1_NEO_4 NeoPixelBrightnessBus -#define B_32_R2_NEO_4 NeoPixelBrightnessBus -#define B_32_R3_NEO_4 NeoPixelBrightnessBus -#define B_32_R4_NEO_4 NeoPixelBrightnessBus -#define B_32_R5_NEO_4 NeoPixelBrightnessBus -#define B_32_R6_NEO_4 NeoPixelBrightnessBus -#define B_32_R7_NEO_4 NeoPixelBrightnessBus +#define B_32_RN_NEO_4 NeoPixelBrightnessBus #define B_32_I0_NEO_4 NeoPixelBrightnessBus #define B_32_I1_NEO_4 NeoPixelBrightnessBus //400Kbps -#define B_32_R0_400_3 NeoPixelBrightnessBus -#define B_32_R1_400_3 NeoPixelBrightnessBus -#define B_32_R2_400_3 NeoPixelBrightnessBus -#define B_32_R3_400_3 NeoPixelBrightnessBus -#define B_32_R4_400_3 NeoPixelBrightnessBus -#define B_32_R5_400_3 NeoPixelBrightnessBus -#define B_32_R6_400_3 NeoPixelBrightnessBus -#define B_32_R7_400_3 NeoPixelBrightnessBus +#define B_32_RN_400_3 NeoPixelBrightnessBus #define B_32_I0_400_3 NeoPixelBrightnessBus #define B_32_I1_400_3 NeoPixelBrightnessBus //TM1814 (RGBW) -#define B_32_R0_TM1_4 NeoPixelBrightnessBus -#define B_32_R1_TM1_4 NeoPixelBrightnessBus -#define B_32_R2_TM1_4 NeoPixelBrightnessBus -#define B_32_R3_TM1_4 NeoPixelBrightnessBus -#define B_32_R4_TM1_4 NeoPixelBrightnessBus -#define B_32_R5_TM1_4 NeoPixelBrightnessBus -#define B_32_R6_TM1_4 NeoPixelBrightnessBus -#define B_32_R7_TM1_4 NeoPixelBrightnessBus +#define B_32_RN_TM1_4 NeoPixelBrightnessBus #define B_32_I0_TM1_4 NeoPixelBrightnessBus #define B_32_I1_TM1_4 NeoPixelBrightnessBus //Bit Bang theoratically possible, but very undesirable and not needed (no pin restrictions on RMT and I2S) @@ -225,44 +169,16 @@ class PolyBus { case I_HS_P98_3: (static_cast(busPtr))->Begin(); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R1_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R2_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R3_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R4_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R5_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R6_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R7_NEO_3: (static_cast(busPtr))->Begin(); break; + case I_32_RN_NEO_3: (static_cast(busPtr))->Begin(); break; case I_32_I0_NEO_3: (static_cast(busPtr))->Begin(); break; case I_32_I1_NEO_3: (static_cast(busPtr))->Begin(); break; - case I_32_R0_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R1_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R2_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R3_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R4_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R5_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R6_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R7_NEO_4: (static_cast(busPtr))->Begin(); break; + case I_32_RN_NEO_4: (static_cast(busPtr))->Begin(); break; case I_32_I0_NEO_4: (static_cast(busPtr))->Begin(); break; case I_32_I1_NEO_4: (static_cast(busPtr))->Begin(); break; - case I_32_R0_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R1_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R2_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R3_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R4_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R5_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R6_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R7_400_3: (static_cast(busPtr))->Begin(); break; + case I_32_RN_400_3: (static_cast(busPtr))->Begin(); break; case I_32_I0_400_3: (static_cast(busPtr))->Begin(); break; case I_32_I1_400_3: (static_cast(busPtr))->Begin(); break; - case I_32_R0_TM1_4: beginTM1814(busPtr); break; - case I_32_R1_TM1_4: beginTM1814(busPtr); break; - case I_32_R2_TM1_4: beginTM1814(busPtr); break; - case I_32_R3_TM1_4: beginTM1814(busPtr); break; - case I_32_R4_TM1_4: beginTM1814(busPtr); break; - case I_32_R5_TM1_4: beginTM1814(busPtr); break; - case I_32_R6_TM1_4: beginTM1814(busPtr); break; - case I_32_R7_TM1_4: beginTM1814(busPtr); break; + case I_32_RN_TM1_4: beginTM1814(busPtr); break; case I_32_I0_TM1_4: beginTM1814(busPtr); break; case I_32_I1_TM1_4: beginTM1814(busPtr); break; // ESP32 can (and should, to avoid inadvertantly driving the chip select signal) specify the pins used for SPI, but only in begin() @@ -277,7 +193,7 @@ class PolyBus { case I_SS_P98_3: (static_cast(busPtr))->Begin(); break; } }; - static void* create(uint8_t busType, uint8_t* pins, uint16_t len) { + static void* create(uint8_t busType, uint8_t* pins, uint16_t len, uint8_t channel) { void* busPtr = nullptr; switch (busType) { case I_NONE: break; @@ -300,44 +216,16 @@ class PolyBus { case I_8266_BB_TM1_4: busPtr = new B_8266_BB_TM1_4(len, pins[0]); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: busPtr = new B_32_R0_NEO_3(len, pins[0]); break; - case I_32_R1_NEO_3: busPtr = new B_32_R1_NEO_3(len, pins[0]); break; - case I_32_R2_NEO_3: busPtr = new B_32_R2_NEO_3(len, pins[0]); break; - case I_32_R3_NEO_3: busPtr = new B_32_R3_NEO_3(len, pins[0]); break; - case I_32_R4_NEO_3: busPtr = new B_32_R4_NEO_3(len, pins[0]); break; - case I_32_R5_NEO_3: busPtr = new B_32_R5_NEO_3(len, pins[0]); break; - case I_32_R6_NEO_3: busPtr = new B_32_R6_NEO_3(len, pins[0]); break; - case I_32_R7_NEO_3: busPtr = new B_32_R7_NEO_3(len, pins[0]); break; + case I_32_RN_NEO_3: busPtr = new B_32_RN_NEO_3(len, pins[0], (NeoBusChannel)channel); break; case I_32_I0_NEO_3: busPtr = new B_32_I0_NEO_3(len, pins[0]); break; case I_32_I1_NEO_3: busPtr = new B_32_I1_NEO_3(len, pins[0]); break; - case I_32_R0_NEO_4: busPtr = new B_32_R0_NEO_4(len, pins[0]); break; - case I_32_R1_NEO_4: busPtr = new B_32_R1_NEO_4(len, pins[0]); break; - case I_32_R2_NEO_4: busPtr = new B_32_R2_NEO_4(len, pins[0]); break; - case I_32_R3_NEO_4: busPtr = new B_32_R3_NEO_4(len, pins[0]); break; - case I_32_R4_NEO_4: busPtr = new B_32_R4_NEO_4(len, pins[0]); break; - case I_32_R5_NEO_4: busPtr = new B_32_R5_NEO_4(len, pins[0]); break; - case I_32_R6_NEO_4: busPtr = new B_32_R6_NEO_4(len, pins[0]); break; - case I_32_R7_NEO_4: busPtr = new B_32_R7_NEO_4(len, pins[0]); break; + case I_32_RN_NEO_4: busPtr = new B_32_RN_NEO_4(len, pins[0], (NeoBusChannel)channel); break; case I_32_I0_NEO_4: busPtr = new B_32_I0_NEO_4(len, pins[0]); break; case I_32_I1_NEO_4: busPtr = new B_32_I1_NEO_4(len, pins[0]); break; - case I_32_R0_400_3: busPtr = new B_32_R0_400_3(len, pins[0]); break; - case I_32_R1_400_3: busPtr = new B_32_R1_400_3(len, pins[0]); break; - case I_32_R2_400_3: busPtr = new B_32_R2_400_3(len, pins[0]); break; - case I_32_R3_400_3: busPtr = new B_32_R3_400_3(len, pins[0]); break; - case I_32_R4_400_3: busPtr = new B_32_R4_400_3(len, pins[0]); break; - case I_32_R5_400_3: busPtr = new B_32_R5_400_3(len, pins[0]); break; - case I_32_R6_400_3: busPtr = new B_32_R6_400_3(len, pins[0]); break; - case I_32_R7_400_3: busPtr = new B_32_R7_400_3(len, pins[0]); break; + case I_32_RN_400_3: busPtr = new B_32_RN_400_3(len, pins[0], (NeoBusChannel)channel); break; case I_32_I0_400_3: busPtr = new B_32_I0_400_3(len, pins[0]); break; case I_32_I1_400_3: busPtr = new B_32_I1_400_3(len, pins[0]); break; - case I_32_R0_TM1_4: busPtr = new B_32_R0_TM1_4(len, pins[0]); break; - case I_32_R1_TM1_4: busPtr = new B_32_R1_TM1_4(len, pins[0]); break; - case I_32_R2_TM1_4: busPtr = new B_32_R2_TM1_4(len, pins[0]); break; - case I_32_R3_TM1_4: busPtr = new B_32_R3_TM1_4(len, pins[0]); break; - case I_32_R4_TM1_4: busPtr = new B_32_R4_TM1_4(len, pins[0]); break; - case I_32_R5_TM1_4: busPtr = new B_32_R5_TM1_4(len, pins[0]); break; - case I_32_R6_TM1_4: busPtr = new B_32_R6_TM1_4(len, pins[0]); break; - case I_32_R7_TM1_4: busPtr = new B_32_R7_TM1_4(len, pins[0]); break; + case I_32_RN_TM1_4: busPtr = new B_32_RN_TM1_4(len, pins[0], (NeoBusChannel)channel); break; case I_32_I0_TM1_4: busPtr = new B_32_I0_TM1_4(len, pins[0]); break; case I_32_I1_TM1_4: busPtr = new B_32_I1_TM1_4(len, pins[0]); break; #endif @@ -376,44 +264,16 @@ class PolyBus { case I_8266_BB_TM1_4: (static_cast(busPtr))->Show(); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R1_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R2_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R3_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R4_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R5_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R6_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R7_NEO_3: (static_cast(busPtr))->Show(); break; + case I_32_RN_NEO_3: (static_cast(busPtr))->Show(); break; case I_32_I0_NEO_3: (static_cast(busPtr))->Show(); break; case I_32_I1_NEO_3: (static_cast(busPtr))->Show(); break; - case I_32_R0_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R1_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R2_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R3_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R4_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R5_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R6_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R7_NEO_4: (static_cast(busPtr))->Show(); break; + case I_32_RN_NEO_4: (static_cast(busPtr))->Show(); break; case I_32_I0_NEO_4: (static_cast(busPtr))->Show(); break; case I_32_I1_NEO_4: (static_cast(busPtr))->Show(); break; - case I_32_R0_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R1_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R2_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R3_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R4_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R5_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R6_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R7_400_3: (static_cast(busPtr))->Show(); break; + case I_32_RN_400_3: (static_cast(busPtr))->Show(); break; case I_32_I0_400_3: (static_cast(busPtr))->Show(); break; case I_32_I1_400_3: (static_cast(busPtr))->Show(); break; - case I_32_R0_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R1_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R2_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R3_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R4_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R5_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R6_TM1_4: (static_cast(busPtr))->Show(); break; - case I_32_R7_TM1_4: (static_cast(busPtr))->Show(); break; + case I_32_RN_TM1_4: (static_cast(busPtr))->Show(); break; case I_32_I0_TM1_4: (static_cast(busPtr))->Show(); break; case I_32_I1_TM1_4: (static_cast(busPtr))->Show(); break; #endif @@ -449,44 +309,16 @@ class PolyBus { case I_8266_BB_TM1_4: return (static_cast(busPtr))->CanShow(); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R1_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R2_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R3_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R4_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R5_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R6_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R7_NEO_3: return (static_cast(busPtr))->CanShow(); break; + case I_32_RN_NEO_3: return (static_cast(busPtr))->CanShow(); break; case I_32_I0_NEO_3: return (static_cast(busPtr))->CanShow(); break; case I_32_I1_NEO_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R0_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R1_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R2_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R3_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R4_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R5_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R6_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R7_NEO_4: return (static_cast(busPtr))->CanShow(); break; + case I_32_RN_NEO_4: return (static_cast(busPtr))->CanShow(); break; case I_32_I0_NEO_4: return (static_cast(busPtr))->CanShow(); break; case I_32_I1_NEO_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R0_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R1_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R2_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R3_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R4_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R5_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R6_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R7_400_3: return (static_cast(busPtr))->CanShow(); break; + case I_32_RN_400_3: return (static_cast(busPtr))->CanShow(); break; case I_32_I0_400_3: return (static_cast(busPtr))->CanShow(); break; case I_32_I1_400_3: return (static_cast(busPtr))->CanShow(); break; - case I_32_R0_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R1_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R2_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R3_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R4_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R5_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R6_TM1_4: return (static_cast(busPtr))->CanShow(); break; - case I_32_R7_TM1_4: return (static_cast(busPtr))->CanShow(); break; + case I_32_RN_TM1_4: return (static_cast(busPtr))->CanShow(); break; case I_32_I0_TM1_4: return (static_cast(busPtr))->CanShow(); break; case I_32_I1_TM1_4: return (static_cast(busPtr))->CanShow(); break; #endif @@ -546,44 +378,16 @@ class PolyBus { case I_8266_BB_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R1_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R2_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R3_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R4_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R5_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R6_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R7_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; + case I_32_RN_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_32_I0_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_32_I1_NEO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R0_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R1_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R2_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R3_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R4_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R5_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R6_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R7_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; + case I_32_RN_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; case I_32_I0_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; case I_32_I1_NEO_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R0_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R1_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R2_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R3_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R4_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R5_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R6_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R7_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; + case I_32_RN_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_32_I0_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_32_I1_400_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; - case I_32_R0_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R1_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R2_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R3_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R4_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R5_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R6_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; - case I_32_R7_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; + case I_32_RN_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; case I_32_I0_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; case I_32_I1_TM1_4: (static_cast(busPtr))->SetPixelColor(pix, col); break; #endif @@ -619,44 +423,16 @@ class PolyBus { case I_8266_BB_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R1_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R2_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R3_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R4_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R5_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R6_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R7_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; + case I_32_RN_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I0_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I1_NEO_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R0_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R1_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R2_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R3_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R4_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R5_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R6_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R7_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; + case I_32_RN_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I0_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I1_NEO_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R0_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R1_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R2_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R3_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R4_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R5_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R6_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R7_400_3: (static_cast(busPtr))->SetBrightness(b); break; + case I_32_RN_400_3: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I0_400_3: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I1_400_3: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R0_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R1_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R2_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R3_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R4_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R5_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R6_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; - case I_32_R7_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; + case I_32_RN_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I0_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; case I_32_I1_TM1_4: (static_cast(busPtr))->SetBrightness(b); break; #endif @@ -693,44 +469,16 @@ class PolyBus { case I_8266_BB_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R1_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R2_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R3_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R4_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R5_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R6_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R7_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; + case I_32_RN_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I0_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I1_NEO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R0_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R1_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R2_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R3_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R4_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R5_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R6_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R7_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; + case I_32_RN_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I0_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I1_NEO_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R0_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R1_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R2_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R3_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R4_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R5_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R6_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R7_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; + case I_32_RN_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I0_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I1_400_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R0_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R1_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R2_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R3_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R4_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R5_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R6_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; - case I_32_R7_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; + case I_32_RN_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I0_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_32_I1_TM1_4: col = (static_cast(busPtr))->GetPixelColor(pix); break; #endif @@ -784,44 +532,16 @@ class PolyBus { case I_8266_BB_TM1_4: delete (static_cast(busPtr)); break; #endif #ifdef ARDUINO_ARCH_ESP32 - case I_32_R0_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R1_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R2_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R3_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R4_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R5_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R6_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R7_NEO_3: delete (static_cast(busPtr)); break; + case I_32_RN_NEO_3: delete (static_cast(busPtr)); break; case I_32_I0_NEO_3: delete (static_cast(busPtr)); break; case I_32_I1_NEO_3: delete (static_cast(busPtr)); break; - case I_32_R0_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R1_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R2_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R3_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R4_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R5_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R6_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R7_NEO_4: delete (static_cast(busPtr)); break; + case I_32_RN_NEO_4: delete (static_cast(busPtr)); break; case I_32_I0_NEO_4: delete (static_cast(busPtr)); break; case I_32_I1_NEO_4: delete (static_cast(busPtr)); break; - case I_32_R0_400_3: delete (static_cast(busPtr)); break; - case I_32_R1_400_3: delete (static_cast(busPtr)); break; - case I_32_R2_400_3: delete (static_cast(busPtr)); break; - case I_32_R3_400_3: delete (static_cast(busPtr)); break; - case I_32_R4_400_3: delete (static_cast(busPtr)); break; - case I_32_R5_400_3: delete (static_cast(busPtr)); break; - case I_32_R6_400_3: delete (static_cast(busPtr)); break; - case I_32_R7_400_3: delete (static_cast(busPtr)); break; + case I_32_RN_400_3: delete (static_cast(busPtr)); break; case I_32_I0_400_3: delete (static_cast(busPtr)); break; case I_32_I1_400_3: delete (static_cast(busPtr)); break; - case I_32_R0_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R1_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R2_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R3_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R4_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R5_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R6_TM1_4: delete (static_cast(busPtr)); break; - case I_32_R7_TM1_4: delete (static_cast(busPtr)); break; + case I_32_RN_TM1_4: delete (static_cast(busPtr)); break; case I_32_I0_TM1_4: delete (static_cast(busPtr)); break; case I_32_I1_TM1_4: delete (static_cast(busPtr)); break; #endif @@ -872,18 +592,19 @@ class PolyBus { return I_8266_U0_TM1_4 + offset; } #else //ESP32 - uint8_t offset = num; //RMT bus # == bus index in BusManager - if (offset > 9) return I_NONE; + uint8_t offset = 0; //0 = RMT (num 0-7) 8 = I2S0 9 = I2S1 + if (num > 9) return I_NONE; + if (num > 7) offset = num -7; switch (busType) { case TYPE_WS2812_RGB: case TYPE_WS2812_WWA: - return I_32_R0_NEO_3 + offset; + return I_32_RN_NEO_3 + offset; case TYPE_SK6812_RGBW: - return I_32_R0_NEO_4 + offset; + return I_32_RN_NEO_4 + offset; case TYPE_WS2811_400KHZ: - return I_32_R0_400_3 + offset; + return I_32_RN_400_3 + offset; case TYPE_TM1814: - return I_32_R0_TM1_4 + offset; + return I_32_RN_TM1_4 + offset; } #endif } diff --git a/wled00/html_other.h b/wled00/html_other.h index 8fb128d1..ed1f6f11 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -42,7 +42,7 @@ function B(){window.history.back()}function U(){document.getElementById("uf").st .bt{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.3ch solid #333;display:inline-block;font-size:20px;margin:8px;margin-top:12px}input[type=file]{font-size:16px}body{font-family:Verdana,sans-serif;text-align:center;background:#222;color:#fff;line-height:200%}#msg{display:none}

WLED Software Update

-Installed version: 0.13.0-b0
Download the latest binary: Download the latest binary:

Software Update
Enable ArduinoOTA:

About

WLED - version 0.13.0-b0


Contributors, dependencies and special thanks
A huge thank you to everyone who helped me create WLED!

diff --git a/wled00/wled.h b/wled00/wled.h index 3f71d8fa..6e5b97ec 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -3,12 +3,12 @@ /* Main sketch, global variable declarations @title WLED project sketch - @version 0.13.0-b0 + @version 0.13.0-b1 @author Christian Schwinne */ // version code in format yymmddb (b = daily build) -#define VERSION 2107021 +#define VERSION 2107022 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG