diff --git a/CHANGELOG.md b/CHANGELOG.md index 756ec2fa76..3c2f51c4ac 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-lock.json b/package-lock.json index e33760d6ae..f5e8d475d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wled", - "version": "0.12.0-b5", + "version": "0.12.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "wled", - "version": "0.12.0-b5", + "version": "0.12.0", "license": "ISC", "dependencies": { "clean-css": "^4.2.3", diff --git a/package.json b/package.json index b5dbf7630e..a94d15b763 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 fd495fa908..7004550ba5 100644 --- a/readme.md +++ b/readme.md @@ -57,6 +57,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/wled00/FX.cpp b/wled00/FX.cpp index 762e4b4ecd..a55ca4792e 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/FX_fcn.cpp b/wled00/FX_fcn.cpp index 96a1c6ab21..8aaebcf2f6 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -191,7 +191,7 @@ void WS2812FX::setPixelColor(uint16_t i, byte r, byte g, byte b, byte w) uint16_t realIndex = realPixelIndex(i); for (uint16_t j = 0; j < SEGMENT.grouping; j++) { - int16_t indexSet = realIndex + (reversed ? -j : j); + int indexSet = realIndex + (reversed ? -j : j); if (indexSet < customMappingSize) indexSet = customMappingTable[indexSet]; if (indexSet >= SEGMENT.start && indexSet < SEGMENT.stop) { busses.setPixelColor(indexSet + skip, col); diff --git a/wled00/button.cpp b/wled00/button.cpp index 458ff22a73..22e71a69bc 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 07c201ba09..94a55b11aa 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -571,9 +571,6 @@ void serializeConfig() { //JsonObject hw_status = hw.createNestedObject("status"); //hw_status["pin"] = -1; - JsonObject hw_aux = hw.createNestedObject("aux"); - hw_aux["pin"] = auxPin; - // Sound Reactive Pin Config JsonObject hw_amic = hw.createNestedObject("analogmic"); hw_amic["pin"] = audioPin; diff --git a/wled00/data/index.js b/wled00/data/index.js index e4126876e1..4e0ce4dd87 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 7875f2a426..5117943f90 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();} @@ -268,9 +273,9 @@ -
+
-
+

LED & Hardware setup

Total LED count:
Recommended power supply for brightest white:
@@ -318,11 +323,11 @@

Hardware setup


- 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)

@@ -365,7 +370,7 @@

Advanced



- +
diff --git a/wled00/data/style.css b/wled00/data/style.css index e0fdfa7077..44cc3facd6 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; } button.disabled, button[disabled] { color: #aaa; diff --git a/wled00/html_other.h b/wled00/html_other.h index 3aefe872ae..f5d443440e 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 9b3de48912..c8d1877c55 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!! @@ -73,13 +73,13 @@ Do not enable if WiFi is working correctly, increases power consumption.
LED Settings