diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c3f7763..a2411cdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ ## WLED changelog -### Development versions after 0.11.1 release +### Development versions between 0.11.1 and 0.12.0 releases + +#### Build 2103290 + +- Version bump to 0.12.0-b4 "Hikari" +- Experimental use of espressif32@3.1.1 +- Fixed RGBW mode disabled after LED settings saved +- Fixed infrared support not compiled in if IRPIN is not defined #### Build 2103230 @@ -233,7 +240,7 @@ #### Build 2011153 - Fixed an ESP32 end-of-file issue -- Fixed useRGBW not read from cfg.json +- Fixed strip.isRgbw not read from cfg.json #### Build 2011152 diff --git a/package.json b/package.json index 3d32c8cf..a1bef2ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.12.0-b2", + "version": "0.12.0-b4", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/platformio.ini b/platformio.ini index 65497f90..e5c6c161 100644 --- a/platformio.ini +++ b/platformio.ini @@ -259,7 +259,7 @@ build_flags = ${common.build_flags_esp8266} -D LEDPIN=1 -D WLED_DISABLE_INFRARED [env:esp32dev] board = esp32dev -platform = espressif32@2.0 +platform = espressif32@3.1.1 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} lib_ignore = @@ -268,7 +268,7 @@ lib_ignore = [env:esp32_eth] board = esp32-poe -platform = espressif32@2.0 +platform = espressif32@3.1.1 upload_speed = 921600 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 @@ -387,7 +387,7 @@ build_flags = ${common.build_flags_esp8266} -D USE_WS2801 [env:custom32_LEDPIN_16] board = esp32dev -platform = espressif32@2.0 +platform = espressif32@3.1.1 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D LEDPIN=16 -D RLYPIN=19 lib_ignore = @@ -396,7 +396,7 @@ lib_ignore = [env:custom32_APA102] board = esp32dev -platform = espressif32@2.0 +platform = espressif32@3.1.1 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D USE_APA102 lib_ignore = @@ -405,7 +405,7 @@ lib_ignore = [env:custom32_TOUCHPIN_T0] board = esp32dev -platform = espressif32@2.0 +platform = espressif32@3.1.1 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} -D TOUCHPIN=T0 lib_ignore = @@ -414,7 +414,7 @@ lib_ignore = [env:wemos_shield_esp32] board = esp32dev -platform = espressif32@2.0 +platform = espressif32@3.1.1 upload_port = /dev/cu.SLAB_USBtoUART monitor_port = /dev/cu.SLAB_USBtoUART upload_speed = 460800 @@ -431,7 +431,7 @@ build_flags = ${common.build_flags_esp32} -D LEDPIN=27 -D BTNPIN=39 lib_ignore = ESPAsyncTCP ESPAsyncUDP -platform = espressif32@2.0 +platform = espressif32@3.1.1 [env:sp501e] board = esp_wroom_02 diff --git a/usermods/usermod_v2_rotary_encoder_ui/platformio_override.ini.sample b/usermods/usermod_v2_rotary_encoder_ui/platformio_override.ini.sample index 3bfa851c..4b9fa955 100644 --- a/usermods/usermod_v2_rotary_encoder_ui/platformio_override.ini.sample +++ b/usermods/usermod_v2_rotary_encoder_ui/platformio_override.ini.sample @@ -4,7 +4,7 @@ default_envs = d1_mini [env:esp32dev] board = esp32dev -platform = espressif32@2.0 +platform = espressif32@3.1.1 build_unflags = ${common.build_unflags} build_flags = ${common.build_flags_esp32} diff --git a/wled00/FX.h b/wled00/FX.h index 6957f655..2cd4b688 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -584,7 +584,7 @@ class WS2812FX { } void - finalizeInit(bool supportWhite, uint16_t countPixels, bool skipFirst), + finalizeInit(uint16_t countPixels, bool skipFirst), service(void), blur(uint8_t), fill(uint32_t), @@ -608,6 +608,7 @@ class WS2812FX { setPixelSegment(uint8_t n); bool + isRgbw = false, gammaCorrectBri = false, gammaCorrectCol = true, applyToAllSelected = true, @@ -813,7 +814,6 @@ class WS2812FX { void handle_palette(void); bool - _useRgbw = false, _skipFirstMode, _triggered; diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index 7556934c..58343c08 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -44,11 +44,9 @@ */ //do not call this method from system context (network callback) -void WS2812FX::finalizeInit(bool supportWhite, uint16_t countPixels, bool skipFirst) +void WS2812FX::finalizeInit(uint16_t countPixels, bool skipFirst) { - if (supportWhite == _useRgbw && countPixels == _length && _skipFirstMode == skipFirst) return; RESET_RUNTIME; - _useRgbw = supportWhite; _length = countPixels; _skipFirstMode = skipFirst; @@ -163,7 +161,7 @@ uint16_t WS2812FX::realPixelIndex(uint16_t i) { void WS2812FX::setPixelColor(uint16_t i, byte r, byte g, byte b, byte w) { //auto calculate white channel value if enabled - if (_useRgbw) { + if (isRgbw) { if (rgbwMode == RGBW_MODE_AUTO_BRIGHTER || (w == 0 && (rgbwMode == RGBW_MODE_DUAL || rgbwMode == RGBW_MODE_LEGACY))) { //white value is set to lowest RGB channel @@ -278,7 +276,7 @@ void WS2812FX::show(void) { } - if (_useRgbw) //RGBW led total output with white LEDs enabled is still 50mA, so each channel uses less + if (isRgbw) //RGBW led total output with white LEDs enabled is still 50mA, so each channel uses less { powerSum *= 3; powerSum = powerSum >> 2; //same as /= 4 diff --git a/wled00/alexa.cpp b/wled00/alexa.cpp index d97f0804..4f406a3f 100644 --- a/wled00/alexa.cpp +++ b/wled00/alexa.cpp @@ -67,7 +67,7 @@ void onAlexaChange(EspalexaDevice* dev) if (espalexaDevice->getColorMode() == EspalexaColorMode::ct) //shade of white { uint16_t ct = espalexaDevice->getCt(); - if (useRGBW) + if (strip.isRgbw) { switch (ct) { //these values empirically look good on RGBW case 199: col[0]=255; col[1]=255; col[2]=255; col[3]=255; break; diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index b482b712..96f4bf42 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -99,7 +99,7 @@ void deserializeConfig() { JsonArray ins = hw_led["ins"]; uint8_t s = 0; //bus iterator - useRGBW = false; + strip.isRgbw = false; busses.removeAll(); uint32_t mem = 0; for (JsonObject elm : ins) { @@ -127,13 +127,13 @@ void deserializeConfig() { uint8_t ledType = elm["type"] | TYPE_WS2812_RGB; bool reversed = elm["rev"]; //RGBW mode is enabled if at least one of the strips is RGBW - useRGBW = (useRGBW || BusManager::isRgbw(ledType)); + strip.isRgbw = (strip.isRgbw || BusManager::isRgbw(ledType)); s++; BusConfig bc = BusConfig(ledType, pins, start, length, colorOrder, reversed); mem += busses.memUsage(bc); if (mem <= MAX_LED_MEMORY) busses.add(bc); } - strip.finalizeInit(useRGBW, ledCount, skipFirstLed); + strip.finalizeInit(ledCount, skipFirstLed); if (hw_led["rev"]) busses.getBus(0)->reversed = true; //set 0.11 global reversed setting for first bus JsonObject hw_btn_ins_0 = hw[F("btn")][F("ins")][0]; @@ -491,7 +491,7 @@ void serializeConfig() { if (irPin>=0) { JsonObject hw_ir = hw.createNestedObject("ir"); hw_ir["pin"] = irPin; - hw_ir[F("type"] = irEnabled; // the byte 'irEnabled' does contain the IR-Remote Type ( 0=disabled ) + hw_ir[F("type")] = irEnabled; // the byte 'irEnabled' does contain the IR-Remote Type ( 0=disabled ) } #endif diff --git a/wled00/colors.cpp b/wled00/colors.cpp index 625d9d10..dfdd53e0 100644 --- a/wled00/colors.cpp +++ b/wled00/colors.cpp @@ -64,7 +64,7 @@ void colorHStoRGB(uint16_t hue, byte sat, byte* rgb) //hue, sat to rgb case 4: rgb[0]=t,rgb[1]=p,rgb[2]=255;break; case 5: rgb[0]=255,rgb[1]=p,rgb[2]=q; } - if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); + if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); } void colorKtoRGB(uint16_t kelvin, byte* rgb) //white spectrum to rgb, calc @@ -111,7 +111,7 @@ void colorCTtoRGB(uint16_t mired, byte* rgb) //white spectrum to rgb, bins } else { rgb[0]=237;rgb[1]=255;rgb[2]=239;//150 } - if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); + if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); } #ifndef WLED_DISABLE_HUESYNC @@ -169,7 +169,7 @@ void colorXYtoRGB(float x, float y, byte* rgb) //coordinates to rgb (https://www rgb[0] = 255.0*r; rgb[1] = 255.0*g; rgb[2] = 255.0*b; - if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); + if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); } void colorRGBtoXY(byte* rgb, float* xy) //rgb to coordinates (https://www.developers.meethue.com/documentation/color-conversions-rgb-xy) diff --git a/wled00/data/index.css b/wled00/data/index.css index 46be01ba..f4b4eaf1 100644 --- a/wled00/data/index.css +++ b/wled00/data/index.css @@ -913,6 +913,7 @@ input[type=number]::-webkit-outer-spin-button { } .lstI { + position: sticky; overflow: hidden; } @@ -930,7 +931,6 @@ input[type=number]::-webkit-outer-spin-button { } .lstI.sticky, .lstI.selected { - position: sticky; z-index: 1; } diff --git a/wled00/html_other.h b/wled00/html_other.h index 977d450e..e8b6b6bf 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}