Skip to content

Commit

Permalink
Fix code for long LED strips (>256 LEDs long) (Aircoookie#1366)
Browse files Browse the repository at this point in the history
* Alexa RGBW Support

When adding an RGBW device to Alexa and then selecting a white color tone, Alexa will send CT values to the device. Having a warm white or cold white strip should use 100% of that strip and then add the RGB colors to get either a warmer color or a colder one.

* 40 keys IR Remote 

Added IR remote with 40 keys to use with RGBW stripes.

* ESU8285 flash size corrected

* ESP32 fixes for Solid RGBW

...not implemented for ESP32 yet
ESP32 Solid RGBW defines

moved from env:esp32dev to env:esp32
ESP32 Solid RGBW defines

* Update readme.md

* Update readme.md

* Update readme.md
Update readme.md

* Use different IR remotes in the settings

To turn off IR remote use "0" in the settings, use 1 to 4 for different IR remote types.

* Use 5CH solid RGB stripes

adapt the logic to use CW and WW for different CT-values

* change from Opt-Out to Opt-In for solid (analoge) RGB stripes

Changed code from #define WLED_DISABLE_ANALOG_LEDS to #define WLED_USE_ANALOG_LEDS

* DEFINES for different devices added

* order of PINs alligned to hardware

* Update readme.md

* correct initialization of variable rgb[]

* SunRise Effect

NightLight used to brighten the light combined with fading from the actual (primary) color to the secondary color

* Fixed headline

RLYPIN definition dependant on WLED_USE_ANALOG_LEDS

Corrected list-item indents (readme.md)

updated to match upstream master (briLast in wled00.ino)

* Updates to adopt to upstream master

RLYPIN definition dependant on WLED_USE_ANALOG_LEDS

Fixed headline and corrected list-item indents (readme.md)

updated to match upstream master (briLast in wled00.ino)

* Sync with upstream master

* PIO ini correction

* sync of upstream readme.md

* FX intensity slider to desaturate Color in Colorloop FX

in default intensity (128) everything looks the same, decreasing the intensity will desaturate the color towards WHITE

* PIO changes

* adjusted linker scripts, debug settings etc.

* Override script updated accordingly

* ldscriipt for 1m0 adjusted

* backup files deleted

* deletion of wled00,ino.cpp

* remove travis build from PIO

* add custom builds to PIO

...to map the releases

* removed build_type = release (as this is default)

* updated to use [email protected]

...instead of [email protected]  (both on arduino 2.6.3)

* added more options to the PIO-override.ini

* analog, too

* build only 5 envs with Travis.CI

* should be include not exclude

* YAML correction

* next YAML

* UNDO

* some effects behave wrong with strips longer then 256 LEDs

This is particular true for the effects "Phased" and "Phased Noise" as well as for "Chase Rainbow".

The reason is that in this cases 256 is divided by SEGLEN and used in the formula, but with SEGLEN greater than 256 the integer result will always be ZERO.
  • Loading branch information
Def3nder authored Nov 22, 2020
1 parent bc45f8f commit 79c83a9
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions wled00/FX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -778,6 +778,7 @@ uint16_t WS2812FX::mode_chase_random(void) {
*/
uint16_t WS2812FX::mode_chase_rainbow(void) {
uint8_t color_sep = 256 / SEGLEN;
if (color_sep == 0) color_sep = 1; // correction for segments longer than 256 LEDs
uint8_t color_index = SEGENV.call & 0xFF;
uint32_t color = color_wheel(((SEGENV.step * color_sep) + color_index) & 0xFF);

Expand Down Expand Up @@ -3414,6 +3415,7 @@ uint16_t WS2812FX::phased_base(uint8_t moder) { // We're making
b = (b > cutOff) ? (b - cutOff) : 0; // A ternary operator to cutoff the light.
setPixelColor(i, color_blend(SEGCOLOR(1), color_from_palette(index, false, false, 0), b));
index += 256 / SEGLEN;
if (SEGLEN > 256) index ++; // Correction for segments longer than 256 LEDs
}

return FRAMETIME;
Expand Down

0 comments on commit 79c83a9

Please sign in to comment.