diff --git a/CHANGELOG.md b/CHANGELOG.md index 219549ad5..19bf7186d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ ### Builds after release 0.12.0 +#### Build 2109100 + +- Added an auto create segments per bus setting +- Added 15 new palettes from SR branch (PR #2134) +- Fixed segment runtime not reset on FX change via HTTP API +- Changed AsyncTCP dependency to pbolduc fork v1.2.0 + #### Build 2108250 - Added Sync groups (PR #2150) diff --git a/platformio.ini b/platformio.ini index 36643c8f8..cfb97dab0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -205,11 +205,12 @@ lib_deps = build_flags = -g -DARDUINO_ARCH_ESP32 -DCONFIG_LITTLEFS_FOR_IDF_3_2 + -D CONFIG_ASYNC_TCP_USE_WDT=0 lib_deps = ${env.lib_deps} makuna/NeoPixelBus @ 2.6.7 - AsyncTCP @ 1.0.3 + https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 [esp32s2] build_flags = -g @@ -217,11 +218,13 @@ build_flags = -g -DCONFIG_LITTLEFS_FOR_IDF_3_2 -DARDUINO_ARCH_ESP32S2 -DCONFIG_IDF_TARGET_ESP32S2 + -D CONFIG_ASYNC_TCP_USE_WDT=0 + -DCO lib_deps = ${env.lib_deps} makuna/NeoPixelBus @ 2.6.7 - AsyncTCP @ 1.0.3 + https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 # ------------------------------------------------------------------------------ # WLED BUILDS diff --git a/readme.md b/readme.md index fe37d8bf5..64b70bd9a 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ - + diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index 63d46d4f2..09b4555e6 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -100,12 +100,9 @@ void WS2812FX::finalizeInit(void) isOffRefreshRequred |= BusManager::isOffRefreshRequred(bus->getType()); _length += bus->getLength(); } - ledCount = _length; // or we can use busses.getTotalLength() -/* - //make segment 0 cover the entire strip - _segments[0].start = 0; - _segments[0].stop = _length; -*/ + ledCount = _length; + + // We will create default segments im populateDefaultSegments() setBrightness(_brightness); @@ -626,20 +623,33 @@ void WS2812FX::resetSegments() { void WS2812FX::populateDefaultSegments() { uint16_t length = 0; - for (uint8_t i=0; igetStart(); - length += bus->getLength(); - _segments[i].stop = _segments[i].start + bus->getLength(); - _segments[i].mode = DEFAULT_MODE; - _segments[i].colors[0] = DEFAULT_COLOR; - _segments[i].speed = DEFAULT_SPEED; - _segments[i].intensity = DEFAULT_INTENSITY; - _segments[i].grouping = 1; - _segments[i].setOption(SEG_OPTION_SELECTED, 1); - _segments[i].setOption(SEG_OPTION_ON, 1); - _segments[i].opacity = 255; + if (autoSegments) { + for (uint8_t i=0; igetStart(); + length += bus->getLength(); + _segments[i].stop = _segments[i].start + bus->getLength(); + _segments[i].mode = DEFAULT_MODE; + _segments[i].colors[0] = DEFAULT_COLOR; + _segments[i].speed = DEFAULT_SPEED; + _segments[i].intensity = DEFAULT_INTENSITY; + _segments[i].grouping = 1; + _segments[i].setOption(SEG_OPTION_SELECTED, 1); + _segments[i].setOption(SEG_OPTION_ON, 1); + _segments[i].opacity = 255; + } + } else { + _segments[0].start = 0; + _segments[0].stop = _length; + _segments[0].mode = DEFAULT_MODE; + _segments[0].colors[0] = DEFAULT_COLOR; + _segments[0].speed = DEFAULT_SPEED; + _segments[0].intensity = DEFAULT_INTENSITY; + _segments[0].grouping = 1; + _segments[0].setOption(SEG_OPTION_SELECTED, 1); + _segments[0].setOption(SEG_OPTION_ON, 1); + _segments[0].opacity = 255; } } diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index a5fba1e59..1aa64202e 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -215,6 +215,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { JsonObject light = doc[F("light")]; CJSON(briMultiplier, light[F("scale-bri")]); CJSON(strip.paletteBlend, light[F("pal-mode")]); + CJSON(autoSegments, light[F("aseg")]); float light_gc_bri = light["gc"]["bri"]; float light_gc_col = light["gc"]["col"]; // 2.8 @@ -599,6 +600,7 @@ void serializeConfig() { JsonObject light = doc.createNestedObject(F("light")); light[F("scale-bri")] = briMultiplier; light[F("pal-mode")] = strip.paletteBlend; + light[F("aseg")] = autoSegments; JsonObject light_gc = light.createNestedObject("gc"); light_gc["bri"] = (strip.gammaCorrectBri) ? 2.8 : 1.0; diff --git a/wled00/const.h b/wled00/const.h index 28533eba8..6973b1432 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -215,7 +215,7 @@ #define ERR_FS_BEGIN 10 // Could not init filesystem (no partition?) #define ERR_FS_QUOTA 11 // The FS is full or the maximum file size is reached #define ERR_FS_PLOAD 12 // It was attempted to load a preset that does not exist -#define ERR_FS_IRLOAD 13 // Loading of ir.json failed +#define ERR_FS_IRLOAD 13 // It was attempted to load an IR JSON cmd, but the "ir.json" file does not exist #define ERR_FS_GENERAL 19 // A general unspecified filesystem error occured #define ERR_OVERTEMP 30 // An attached temperature sensor has measured above threshold temperature (not implemented) #define ERR_OVERCURRENT 31 // An attached current sensor has measured a current above the threshold (not implemented) diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 1e5699163..a8a8c2e7e 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -389,7 +389,9 @@ Reverse (rotated 180°):
+ + Make a segment for each output:
+
Touch threshold:
IR GPIO:

Touch threshold:
IR GPIO: