diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f6e2981..03bde2e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,27 @@ ## WLED changelog +### Builds after release 0.12.0 + +#### Build 2104030 + +- Fixed ESP32 crash on Drip effect with reversed segment (#1854) +- Added flag `WLED_DISABLE_BROWNOUT_DET` to disable ESP32 brownout detector (off by default) + +### WLED release 0.12.0 + +#### Build 2104020 + +- Allow clearing button/IR/relay pin on platforms that don't support negative numbers +- Removed AUX pin +- Hid some easter eggs, only to be found at easter + ### Development versions between 0.11.1 and 0.12.0 releases +#### Build 2103310 + +- Version bump to 0.12.0 "Hikari" +- Fixed LED settings submission in iOS app + #### Build 2103300 - Version bump to 0.12.0-b5 "Hikari" diff --git a/package.json b/package.json index 66819538..5b75307b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.12.0-b5", + "version": "0.12.0", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/readme.md b/readme.md index 866db4aa..4aa96888 100644 --- a/readme.md +++ b/readme.md @@ -21,6 +21,7 @@ A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control - Segments to set different effects and colors to parts of the LEDs - Settings page - configuration over network - Access Point and station mode - automatic failsafe AP +- Up to 10 LED outputs per instance - Support for RGBW strips - Up to 250 user presets to save and load colors/effects easily, supports cycling through them. - Presets can be used to automatically execute API calls diff --git a/usermods/Temperature/readme.md b/usermods/Temperature/readme.md index 5e26ba69..5b7f5b95 100644 --- a/usermods/Temperature/readme.md +++ b/usermods/Temperature/readme.md @@ -39,7 +39,7 @@ default_envs = d1_mini ... [common] ... -lib_deps_external = +lib_deps = ... #For use SSD1306 OLED display uncomment following U8g2@~2.27.3 @@ -55,4 +55,4 @@ lib_deps_external = * Changed to use async, non-blocking implementation * Do not report low temperatures that indicate an error to mqtt * Disable plugin if temperature sensor not detected -* Report the number of seconds until the first read in the info screen instead of sensor error \ No newline at end of file +* Report the number of seconds until the first read in the info screen instead of sensor error diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 308b864c..f6509e52 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -3081,7 +3081,7 @@ uint16_t WS2812FX::mode_drip(void) gravity *= SEGLEN; int sourcedrop = 12; - for (int j=0;j255) drops[j].col=255; - setPixelColor(int(drops[j].pos),color_blend(BLACK,SEGCOLOR(0),drops[j].col)); + setPixelColor(uint16_t(drops[j].pos),color_blend(BLACK,SEGCOLOR(0),drops[j].col)); drops[j].col += map(SEGMENT.speed, 0, 255, 1, 6); // swelling @@ -3107,8 +3107,9 @@ uint16_t WS2812FX::mode_drip(void) if (drops[j].pos < 0) drops[j].pos = 0; drops[j].vel += gravity; - for (int i=1;i<7-drops[j].colIndex;i++) { // some minor math so we don't expand bouncing droplets - setPixelColor(int(drops[j].pos)+i,color_blend(BLACK,SEGCOLOR(0),drops[j].col/i)); //spread pixel with fade while falling + for (uint16_t i=1;i<7-drops[j].colIndex;i++) { // some minor math so we don't expand bouncing droplets + uint16_t pos = uint16_t(drops[j].pos) +i; //this is BAD, returns a pos >= SEGLEN occasionally + setPixelColor(pos,color_blend(BLACK,SEGCOLOR(0),drops[j].col/i)); //spread pixel with fade while falling } if (drops[j].colIndex > 2) { // during bounce, some water is on the floor diff --git a/wled00/button.cpp b/wled00/button.cpp index 458ff22a..22e71a69 100644 --- a/wled00/button.cpp +++ b/wled00/button.cpp @@ -105,31 +105,4 @@ void handleIO() } offMode = true; } - - //output - if (auxPin>=1 && (auxActive || auxActiveBefore)) - { - if (!auxActiveBefore) - { - auxActiveBefore = true; - switch (auxTriggeredState) - { - case 0: pinMode(auxPin, INPUT); break; - case 1: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, HIGH); break; - case 2: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, LOW); break; - } - auxStartTime = millis(); - } - if ((millis() - auxStartTime > auxTime*1000 && auxTime != 255) || !auxActive) - { - auxActive = false; - auxActiveBefore = false; - switch (auxDefaultState) - { - case 0: pinMode(auxPin, INPUT); break; - case 1: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, HIGH); break; - case 2: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, LOW); break; - } - } - } } diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 435ef438..12611409 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -500,9 +500,6 @@ void serializeConfig() { //JsonObject hw_status = hw.createNestedObject("status"); //hw_status["pin"] = -1; - JsonObject hw_aux = hw.createNestedObject("aux"); - hw_aux["pin"] = auxPin; - JsonObject light = doc.createNestedObject(F("light")); light[F("scale-bri")] = briMultiplier; light[F("pal-mode")] = strip.paletteBlend; diff --git a/wled00/data/index.js b/wled00/data/index.js index d6aacff7..0b62fcfe 100644 --- a/wled00/data/index.js +++ b/wled00/data/index.js @@ -156,6 +156,7 @@ function loadBg(iUrl) { if (iUrl == "") { var today = new Date(); if (today.getMonth() == 11 && (today.getDate() > 23 && today.getDate() < 28)) img.src = "https://aircoookie.github.io/xmas.png"; + else if (today.getMonth() == 3 && (today.getDate() > 3 && today.getDate() < 6)) img.src = "https://aircoookie.github.io/easter.png"; } img.addEventListener('load', (event) => { var a = parseFloat(cfg.theme.alpha.bg); diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 10a73f89..fd830822 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -14,10 +14,14 @@ { window.open("/settings","_self"); } + function off(n){ + d.getElementsByName(n)[0].value = -1; + } function bLimits(b,p,m) { maxB = b; maxM = m; maxPB = p; } - function trySubmit() { + function trySubmit(event) { + event.preventDefault(); var LCs = d.getElementsByTagName("input"); for (i=0; i 100) {var msg = "Too many LEDs for me to handle!"; if (maxM < 10000) msg += " Consider using an ESP32."; alert(msg); return;} + if (d.Sf.checkValidity()) d.Sf.submit(); //https://stackoverflow.com/q/37323914 if (d.Sf.reportValidity()) d.Sf.submit(); } function S(){GetV();setABL();} @@ -255,9 +260,9 @@ -
+
-
+

LED & Hardware setup

Total LED count:
Recommended power supply for brightest white:
@@ -297,11 +302,11 @@
- Relay pin: Active high
- Button pin:
- IR pin:
- AUX pin: + + Button pin:  ×
+ IR pin:  ×
+ Relay pin:  ×
+ Active high

Defaults

Turn LEDs on after power up/reset:
Default brightness: (0-255)

@@ -344,7 +349,7 @@

- +
diff --git a/wled00/data/style.css b/wled00/data/style.css index 41e4c1fe..83404355 100644 --- a/wled00/data/style.css +++ b/wled00/data/style.css @@ -18,6 +18,7 @@ button { font-size: 20px; margin: 8px; margin-top: 12px; + cursor: pointer; } .helpB { text-align: left; diff --git a/wled00/html_other.h b/wled00/html_other.h index 2c515a1a..802e59e4 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.12.0-b5
Download the latest binary: Download the latest binary:

diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 810d889d..34e5a318 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -6,7 +6,7 @@ */ // Autogenerated from wled00/data/style.css, do not edit!! -const char PAGE_settingsCss[] PROGMEM = R"=====()====="; +const char PAGE_settingsCss[] PROGMEM = R"=====()====="; // Autogenerated from wled00/data/settings.htm, do not edit!! @@ -72,13 +72,13 @@ Do not enable if WiFi is working correctly, increases power consumption.
LED Settings