diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c25fc32..977a5d84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ ## WLED changelog +### Builds after release 0.13.1 + +#### Build 2203160 + +- Version bump to v0.13.2-a0 "Toki" +- Add ability to skip up to 255 LEDs +- Dependency version bumps + ### WLED release 0.13.1 #### Build 2203150 diff --git a/package-lock.json b/package-lock.json index f4767490..4149405b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.13.1-bl7", + "version": "0.13.2-bl0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index e624678a..fb09e820 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.13.1-bl7", + "version": "0.13.2-bl0", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/platformio.ini b/platformio.ini index c55b2426..3edce6d8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -161,7 +161,7 @@ upload_speed = 115200 lib_compat_mode = strict lib_deps = fastled/FastLED @ 3.5.0 - IRremoteESP8266 @ 2.8.1 + IRremoteESP8266 @ 2.8.2 https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.4 #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line #TFT_eSPI @@ -200,10 +200,9 @@ build_flags = lib_deps = ${env.lib_deps} #https://github.com/lorol/LITTLEFS.git - ESPAsyncTCP @ 1.2.0 + ESPAsyncTCP @ 1.2.2 ESPAsyncUDP - #makuna/NeoPixelBus @ 2.6.7 # 2.6.5/2.6.6 and newer do not compile on ESP core < 3.0.0 - makuna/NeoPixelBus @ 2.6.9 # 2.6.5/2.6.6 and newer do not compile on ESP core < 3.0.0 + makuna/NeoPixelBus @ 2.6.9 [esp32] #platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip diff --git a/platformio_override.ini.sample b/platformio_override.ini.sample index 422a5f7e..cd81c517 100644 --- a/platformio_override.ini.sample +++ b/platformio_override.ini.sample @@ -57,7 +57,10 @@ build_flags = ${common.build_flags_esp8266} ; -D DEFAULT_LED_COUNT=30 ; ; set milliampere limit when using ESP pin to power leds -; -D ABL_MILLIAMPS_DEFAULT =850 +; -D ABL_MILLIAMPS_DEFAULT=850 ; ; enable IR by setting remote type -; -D IRTYPE=0 //0 Remote disabled | 1 24-key RGB | 2 24-key with CT | 3 40-key blue | 4 40-key RGB | 5 21-key RGB | 6 6-key black | 7 9-key red | 8 JSON remote +; -D IRTYPE=0 ;0 Remote disabled | 1 24-key RGB | 2 24-key with CT | 3 40-key blue | 4 40-key RGB | 5 21-key RGB | 6 6-key black | 7 9-key red | 8 JSON remote +; +; set default color order of your led strip +; -D DEFAULT_LED_COLOR_ORDER=COL_ORDER_GRB diff --git a/wled00/FX.h b/wled00/FX.h index b4132289..6f5167d3 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -71,7 +71,6 @@ assuming each segment uses the same amount of data. 256 for ESP8266, 640 for ESP32. */ #define FAIR_DATA_PER_SEG (MAX_SEGMENT_DATA / MAX_NUM_SEGMENTS) -#define LED_SKIP_AMOUNT 1 #define MIN_SHOW_DELAY (_frametime < 16 ? 8 : 15) #define NUM_COLORS 3 /* number of colors per segment */ @@ -609,7 +608,7 @@ class WS2812FX { _brightness = DEFAULT_BRIGHTNESS; currentPalette = CRGBPalette16(CRGB::Black); targetPalette = CloudColors_p; - ablMilliampsMax = 850; + ablMilliampsMax = ABL_MILLIAMPS_DEFAULT; currentMilliamps = 0; timebase = 0; resetSegments(); diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index f81a46e6..a86293e1 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -60,6 +60,11 @@ #define DEFAULT_LED_TYPE TYPE_WS2812_RGB #endif +#ifndef DEFAULT_LED_COLOR_ORDER + #define DEFAULT_LED_COLOR_ORDER COL_ORDER_GRB //default to GRB +#endif + + #if MAX_NUM_SEGMENTS < WLED_MAX_BUSSES #error "Max segments must be at least max number of busses!" #endif @@ -87,7 +92,7 @@ void WS2812FX::finalizeInit(void) uint16_t start = prevLen; uint16_t count = defCounts[(i < defNumCounts) ? i : defNumCounts -1]; prevLen += count; - BusConfig defCfg = BusConfig(DEFAULT_LED_TYPE, defPin, start, count, COL_ORDER_GRB, false, 0, RGBW_MODE_MANUAL_ONLY); + BusConfig defCfg = BusConfig(DEFAULT_LED_TYPE, defPin, start, count, DEFAULT_LED_COLOR_ORDER, false, 0, RGBW_MODE_MANUAL_ONLY); busses.add(defCfg); } } diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index 34a09dde..aef332b2 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -601,7 +601,7 @@ class BusManager { //utility to get the approx. memory usage of a given BusConfig static uint32_t memUsage(BusConfig &bc) { uint8_t type = bc.type; - uint16_t len = bc.count; + uint16_t len = bc.count + bc.skipAmount; if (type > 15 && type < 32) { #ifdef ESP8266 if (bc.pins[0] == 3) { //8266 DMA uses 5x the mem diff --git a/wled00/const.h b/wled00/const.h index 692038bc..97ed865b 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -292,7 +292,13 @@ #endif #endif -#define ABL_MILLIAMPS_DEFAULT 850 // auto lower brightness to stay close to milliampere limit +#ifndef ABL_MILLIAMPS_DEFAULT + #define ABL_MILLIAMPS_DEFAULT 850 // auto lower brightness to stay close to milliampere limit +#else + #if ABL_MILLIAMPS_DEFAULT < 250 // make sure value is at least 250 + #define ABL_MILLIAMPS_DEFAULT 250 + #endif +#endif // PWM settings #ifndef WLED_PWM_FREQ diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 3a8b9ae6..0ca00463 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -96,9 +96,11 @@ UI(); } //returns mem usage - function getMem(t, len, p0) { + function getMem(t, n) { + let len = parseInt(d.getElementsByName("LC"+n)[0].value); + len += parseInt(d.getElementsByName("SL"+n)[0].value); // skipped LEDs are allocated too if (t < 32) { - if (maxM < 10000 && p0==3) { //8266 DMA uses 5x the mem + if (maxM < 10000 && d.getElementsByName("L0"+n)[0].value == 3) { //8266 DMA uses 5x the mem if (t > 29) return len*20; //RGBW return len*15; } else if (maxM >= 10000) //ESP32 RMT uses double buffer? @@ -133,7 +135,7 @@ gId("p1d"+n).innerHTML = (t> 49 && t<64) ? "Clk GPIO:" : ""; var LK = d.getElementsByName("L1"+n)[0]; // clock pin - memu += getMem(t, d.getElementsByName("LC"+n)[0].value, d.getElementsByName("L0"+n)[0].value); // calc memory + memu += getMem(t, n); // calc memory // enumerate pins for (p=1; p<5; p++) { @@ -325,7 +327,7 @@ ${i+1}:

Reversed:
-

Skip 1st LED:
+

Skip first LEDs:

Off Refresh:

Auto-calculate white channel from RGB:
 
`; @@ -468,7 +470,7 @@ Length: hasArg(lp)) { @@ -107,7 +107,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) } type = request->arg(lt).toInt(); type |= request->hasArg(rf) << 7; // off refresh override - skip = request->hasArg(sl) ? LED_SKIP_AMOUNT : 0; + skip = request->arg(sl).toInt(); colorOrder = request->arg(co).toInt(); start = (request->hasArg(ls)) ? request->arg(ls).toInt() : t; if (request->hasArg(lc) && request->arg(lc).toInt() > 0) { diff --git a/wled00/wled.h b/wled00/wled.h index 4aeda4e3..144d3881 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -3,12 +3,12 @@ /* Main sketch, global variable declarations @title WLED project sketch - @version 0.13.1-bl7 + @version 0.13.2-bl0 @author Christian Schwinne */ // version code in format yymmddb (b = daily build) -#define VERSION 2203151 +#define VERSION 2203160 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG diff --git a/wled00/xml.cpp b/wled00/xml.cpp index 6e0b986b..bd34c61e 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -365,7 +365,7 @@ void getSettingsJS(byte subPage, char* dest) sappend('v',co,bus->getColorOrder()); sappend('v',ls,bus->getStart()); sappend('c',cv,bus->reversed); - sappend('c',sl,bus->skippedLeds()); + sappend('v',sl,bus->skippedLeds()); sappend('c',rf,bus->isOffRefreshRequired()); sappend('v',aw,bus->getAutoWhiteMode()); }