diff --git a/CHANGELOG.md b/CHANGELOG.md index a2949a608..7cbda3f6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ### Development versions after 0.11.1 release +#### Build 2102050 + +- Version bump to 0.12.0-a0 "Hikari" +- Added FPS indication in info +- Bumped max outputs from 7 to 10 busses for ESP32 + #### Build 2101310 - First alpha configurable multipin diff --git a/package.json b/package.json index ba3add2f4..b9269cfde 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.11.1", + "version": "0.12.0-a0", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/platformio.ini b/platformio.ini index b61cd88b6..858c2b8b6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,7 +12,7 @@ default_envs = travis_esp8266, travis_esp32 # Release binaries -; default_envs = nodemcuv2, esp01_1m_full, esp32dev, custom_WS2801, custom_APA102, custom_LEDPIN_16, custom_LEDPIN_4, custom_LEDPIN_3, custom32_LEDPIN_16, custom32_APA102 +; default_envs = nodemcuv2, esp01_1m_full, esp32dev # Single binaries (uncomment your board) ; default_envs = nodemcuv2 diff --git a/wled00/FX.h b/wled00/FX.h index e6c7cbd8f..ba2fbc6e8 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -651,7 +651,8 @@ class WS2812FX { currentMilliamps, // setStripLen(uint8_t strip, uint16_t len), // getStripLen(uint8_t strip=0), - triwave16(uint16_t); + triwave16(uint16_t), + getFps(); uint32_t now, @@ -808,6 +809,8 @@ class WS2812FX { uint16_t _usedSegmentData = 0; uint16_t _transitionDur = 750; + uint16_t _cumulativeFps = 2; + void load_gradient_palette(uint8_t); void handle_palette(void); diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index 98d0131d8..2a6537df0 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -324,7 +324,12 @@ void WS2812FX::show(void) { // all of the data has been sent. // See https://github.com/Makuna/NeoPixelBus/wiki/ESP32-NeoMethods#neoesp32rmt-methods busses.show(); - _lastShow = millis(); + unsigned long now = millis(); + unsigned long diff = now - _lastShow; + uint16_t fpsCurr = 200; + if (diff > 0) fpsCurr = 1000 / diff; + _cumulativeFps = (3 * _cumulativeFps + fpsCurr) >> 2; + _lastShow = now; } /** @@ -335,6 +340,15 @@ bool WS2812FX::isUpdating() { return !busses.canAllShow(); } +/** + * Returns the refresh rate of the LED strip. Useful for finding out whether a given setup is fast enough. + * Only updates on show() or is set to 0 fps if last show is more than 2 secs ago, so accurary varies + */ +uint16_t WS2812FX::getFps() { + if (millis() - _lastShow > 2000) return 0; + return _cumulativeFps +1; +} + /** * Forces the next frame to be computed on all active segments. */ diff --git a/wled00/const.h b/wled00/const.h index afc235af1..37adacc0f 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -16,7 +16,7 @@ #ifdef ESP8266 #define WLED_MAX_BUSSES 3 #else -#define WLED_MAX_BUSSES 7 +#define WLED_MAX_BUSSES 10 #endif //Usermod IDs diff --git a/wled00/data/index.js b/wled00/data/index.js index 15f6df5d1..563e6fb01 100644 --- a/wled00/data/index.js +++ b/wled00/data/index.js @@ -464,7 +464,7 @@ function populateInfo(i) } } var vcn = "Kuuhaku"; - if (i.ver.startsWith("0.11.")) vcn = "Mirai"; + if (i.ver.startsWith("0.12.")) vcn = "Hikari"; if (i.cn) vcn = i.cn; cn += `v${i.ver} "${vcn}"

@@ -473,7 +473,8 @@ function populateInfo(i) ${inforow("Signal strength",i.wifi.signal +"% ("+ i.wifi.rssi, " dBm)")} ${inforow("Uptime",getRuntimeStr(i.uptime))} ${inforow("Free heap",heap," kB")} - ${inforow("Estimated current",pwru)} + ${inforow("Estimated current",pwru)} + ${inforow("Frames / second",i.leds.fps)} ${inforow("MAC address",i.mac)} ${inforow("Filesystem",i.fs.u + "/" + i.fs.t + " kB (" +Math.round(i.fs.u*100/i.fs.t) + "%)")} ${inforow("Environment",i.arch + " " + i.core + " (" + i.lwip + ")")} diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 4671f4e36..9c92af3b8 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -35,7 +35,7 @@ if (bquot > 100) {var msg = "Too many LEDs for me to handle!"; if (bmax < 10000) msg += " Consider using an ESP32."; alert(msg); return;} if (d.Sf.reportValidity()) d.Sf.submit(); } - function S(){GetV();setABL(); if (maxST>4) bmax=32000; d.getElementById('m1').innerHTML = bmax;} + function S(){GetV();setABL(); if (maxST>4) bmax=64000; d.getElementById('m1').innerHTML = bmax;} function enABL() { var en = d.getElementById('able').checked; diff --git a/wled00/html_other.h b/wled00/html_other.h index 5cf7ec641..cf35d678b 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.11.1
Download the latest binary: Download the latest binary:

diff --git a/wled00/html_settings.h b/wled00/html_settings.h index de5a07279..72398a53a 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -71,7 +71,7 @@ Do not enable if WiFi is working correctly, increases power consumption.
LED Settings