From 4b316101695108ede7190c7dff81545b733486ab Mon Sep 17 00:00:00 2001 From: cschwinne Date: Tue, 11 Sep 2018 00:20:12 +0200 Subject: [PATCH] Updated UI with all new palettes FastLED effects now have default palettes per effect Fire2012 can now use Palettes Option for palette blending added Added new Palettes --- wled00/WS2812FX.cpp | 202 ++++++++++---------- wled00/WS2812FX.h | 15 +- wled00/data/index.htm | 72 ++++++-- wled00/data/index_mobile.htm | 66 +++++-- wled00/data/settings_leds.htm | Bin 8646 -> 9734 bytes wled00/htmls00.h | 164 +++-------------- wled00/htmls01.h | 18 +- wled00/palettes.h | 336 +++++++++++++++------------------- wled00/wled00.ino | 2 +- wled00/wled01_eeprom.ino | 13 +- wled00/wled02_xml.ino | 1 + wled00/wled03_set.ino | 7 + 12 files changed, 424 insertions(+), 472 deletions(-) diff --git a/wled00/WS2812FX.cpp b/wled00/WS2812FX.cpp index d94c78ffa..d357fe822 100644 --- a/wled00/WS2812FX.cpp +++ b/wled00/WS2812FX.cpp @@ -1918,67 +1918,6 @@ uint16_t WS2812FX::mode_lightning(void) } -// WLED limitation: Analog Clock overlay will NOT work when Fire2012 is active -// Fire2012 by Mark Kriegsman, July 2012 -// as part of "Five Elements" shown here: http://youtu.be/knWiGsmgycY -//// -// This basic one-dimensional 'fire' simulation works roughly as follows: -// There's a underlying array of 'heat' cells, that model the temperature -// at each point along the line. Every cycle through the simulation, -// four steps are performed: -// 1) All cells cool down a little bit, losing heat to the air -// 2) The heat from each cell drifts 'up' and diffuses a little -// 3) Sometimes randomly new 'sparks' of heat are added at the bottom -// 4) The heat from each cell is rendered as a color into the leds array -// The heat-to-color mapping uses a black-body radiation approximation. -// -// Temperature is in arbitrary units from 0 (cold black) to 255 (white hot). -// -// This simulation scales it self a bit depending on NUM_LEDS; it should look -// "OK" on anywhere from 20 to 100 LEDs without too much tweaking. -// -// I recommend running this simulation at anywhere from 30-100 frames per second, -// meaning an interframe delay of about 10-35 milliseconds. -// -// Looks best on a high-density LED setup (60+ pixels/meter). -// -// -// There are two main parameters you can play with to control the look and -// feel of your fire: COOLING (used in step 1 above), and SPARKING (used -// in step 3 above) (Effect Intensity = Sparking). -// -// COOLING: How much does the air cool as it rises? -// Less cooling = taller flames. More cooling = shorter flames. -// Default 50, suggested range 20-100 -#define COOLING 75 - -uint16_t WS2812FX::mode_fire_2012(void) -{ - // Step 1. Cool down every cell a little - for( int i = SEGMENT.start; i <= SEGMENT.stop; i++) { - _locked[i] = qsub8(_locked[i], random8(0, ((COOLING * 10) / SEGMENT_LENGTH) + 2)); - } - - // Step 2. Heat from each cell drifts 'up' and diffuses a little - for( int k= SEGMENT.stop; k >= SEGMENT.start + 2; k--) { - _locked[k] = (_locked[k - 1] + _locked[k - 2] + _locked[k - 2] ) / 3; - } - - // Step 3. Randomly ignite new 'sparks' of heat near the bottom - if( random8() <= SEGMENT.intensity ) { - int y = SEGMENT.start + random8(7); - if (y <= SEGMENT.stop) _locked[y] = qadd8(_locked[y], random8(160,255) ); - } - - // Step 4. Map from heat cells to LED colors - for( int j = SEGMENT.start; j <= SEGMENT.stop; j++) { - CRGB color = HeatColor(_locked[j]); - setPixelColor(j, color.red, color.green, color.blue); - } - return 10 + (uint16_t)(255 - SEGMENT.speed)/6; -} - - // Pride2015 // Animated, ever-changing rainbows. // by Mark Kriegsman: https://gist.github.com/kriegsman/964de772d64c502760e5 @@ -2060,7 +1999,21 @@ void WS2812FX::handle_palette(void) switch (SEGMENT.palette) { - case 0: {//periodically replace palette with a random one. Doesn't work with multiple FastLED segments + case 0: {//default palette. Differs depending on effect + switch (SEGMENT.mode) + { + case FX_MODE_FIRE_2012 : targetPalette = gGradientPalettes[22]; break;//heat palette + case FX_MODE_COLORWAVES : targetPalette = gGradientPalettes[13]; break;//landscape 33 + case FX_MODE_FILLNOISE8 : targetPalette = OceanColors_p; break; + case FX_MODE_NOISE16_1 : targetPalette = gGradientPalettes[17]; break;//Drywet + case FX_MODE_NOISE16_2 : targetPalette = gGradientPalettes[30]; break;//Blue cyan yellow + case FX_MODE_NOISE16_3 : targetPalette = gGradientPalettes[22]; break;//heat palette + case FX_MODE_NOISE16_4 : targetPalette = gGradientPalettes[13]; break;//landscape 33 + + default: targetPalette = PartyColors_p; break;//palette, bpm + } + break;} + case 1: {//periodically replace palette with a random one. Doesn't work with multiple FastLED segments if (!singleSegmentMode) { targetPalette = PartyColors_p; break; //fallback @@ -2074,13 +2027,13 @@ void WS2812FX::handle_palette(void) CHSV(random8(), 255, random8(128, 255))); _lastPaletteChange = millis(); } break;} - case 1: {//primary color only + case 2: {//primary color only CRGB prim; prim.red = (SEGMENT.colors[0] >> 16 & 0xFF); prim.green = (SEGMENT.colors[0] >> 8 & 0xFF); prim.blue = (SEGMENT.colors[0] & 0xFF); targetPalette = CRGBPalette16(prim); break;} - case 2: {//based on primary + case 3: {//based on primary //considering performance implications CRGB prim; prim.red = (SEGMENT.colors[0] >> 16 & 0xFF); @@ -2090,10 +2043,10 @@ void WS2812FX::handle_palette(void) targetPalette = CRGBPalette16( CHSV(prim_hsv.h, prim_hsv.s, prim_hsv.v), //color itself CHSV(prim_hsv.h, max(prim_hsv.s - 50,0), prim_hsv.v), //less saturated - CHSV(prim_hsv.h, prim_hsv.s, max(prim_hsv.h - 50,0)), //darker + CHSV(prim_hsv.h, prim_hsv.s, max(prim_hsv.v - 50,0)), //darker CHSV(prim_hsv.h, prim_hsv.s, prim_hsv.v)); //color itself break;} - case 3: {//primary + secondary + case 4: {//primary + secondary CRGB prim; prim.red = (SEGMENT.colors[0] >> 16 & 0xFF); prim.green = (SEGMENT.colors[0] >> 8 & 0xFF); @@ -2102,8 +2055,8 @@ void WS2812FX::handle_palette(void) sec.red = (SEGMENT.colors[1] >> 16 & 0xFF); sec.green = (SEGMENT.colors[1] >> 8 & 0xFF); sec.blue = (SEGMENT.colors[1] & 0xFF); - targetPalette = CRGBPalette16(prim,sec,prim); break;} - case 4: {//based on primary + secondary + targetPalette = CRGBPalette16(sec,prim); break;} + case 5: {//based on primary + secondary CRGB prim; prim.red = (SEGMENT.colors[0] >> 16 & 0xFF); prim.green = (SEGMENT.colors[0] >> 8 & 0xFF); @@ -2112,35 +2065,28 @@ void WS2812FX::handle_palette(void) sec.red = (SEGMENT.colors[1] >> 16 & 0xFF); sec.green = (SEGMENT.colors[1] >> 8 & 0xFF); sec.blue = (SEGMENT.colors[1] & 0xFF); - CHSV prim_hsv = rgb2hsv_approximate(prim); - CHSV sec_hsv = rgb2hsv_approximate(sec ); - targetPalette = CRGBPalette16( - CHSV(prim_hsv.h, prim_hsv.s, prim_hsv.v), //color itself - CHSV(prim_hsv.h, max(prim_hsv.s - 50,0), prim_hsv.v), //less saturated - CHSV(sec_hsv.h, sec_hsv.s, max(sec_hsv.v - 50,0)), //darker - CHSV(sec_hsv.h, sec_hsv.s, sec_hsv.v)); //color itself - break;} - case 5: //Party colors + targetPalette = CRGBPalette16(sec,prim,CRGB::White); break;} + case 6: //Party colors targetPalette = PartyColors_p; break; - case 6: //Cloud colors + case 7: //Cloud colors targetPalette = CloudColors_p; break; - case 7: //Lava colors + case 8: //Lava colors targetPalette = LavaColors_p; break; - case 8: //Ocean colors + case 9: //Ocean colors targetPalette = OceanColors_p; break; - case 9: //Forest colors + case 10: //Forest colors targetPalette = ForestColors_p; break; - case 10: //Rainbow colors + case 11: //Rainbow colors targetPalette = RainbowColors_p; break; - case 11: //Rainbow stripe colors + case 12: //Rainbow stripe colors targetPalette = RainbowStripeColors_p; break; default: //progmem palettes - targetPalette = gGradientPalettes[constrain(SEGMENT.palette -12, 0, gGradientPaletteCount -1)]; + targetPalette = gGradientPalettes[constrain(SEGMENT.palette -13, 0, gGradientPaletteCount -1)]; } if (singleSegmentMode && paletteFade) //only blend if just one segment uses FastLED mode { - nblendPaletteTowardPalette(currentPalette, targetPalette, 42); + nblendPaletteTowardPalette(currentPalette, targetPalette, 48); } else { currentPalette = targetPalette; @@ -2152,18 +2098,84 @@ uint16_t WS2812FX::mode_palette(void) { handle_palette(); CRGB fastled_col; + bool noWrap = (paletteBlend == 2 || (paletteBlend == 0 && SEGMENT.speed == 0)); for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { - uint8_t colorIndex = map(i,SEGMENT.start,SEGMENT.stop,0,255) + (SEGMENT_RUNTIME.counter_mode_step >> 6 & 0xFF); - fastled_col = ColorFromPalette( currentPalette, colorIndex, 255, LINEARBLEND); + uint8_t colorIndex = map(i,SEGMENT.start,SEGMENT.stop,0,255) - (SEGMENT_RUNTIME.counter_mode_step >> 6 & 0xFF); + + if (noWrap) colorIndex = map(colorIndex, 0, 255, 0, 240); //cut off blend at palette "end" + + fastled_col = ColorFromPalette( currentPalette, colorIndex, 255, (paletteBlend == 3)? NOBLEND:LINEARBLEND); setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } - SEGMENT_RUNTIME.counter_mode_step += SEGMENT.speed; + SEGMENT_RUNTIME.counter_mode_step += SEGMENT.speed *2; if (SEGMENT.speed == 0) SEGMENT_RUNTIME.counter_mode_step = 0; return 20; } +// WLED limitation: Analog Clock overlay will NOT work when Fire2012 is active +// Fire2012 by Mark Kriegsman, July 2012 +// as part of "Five Elements" shown here: http://youtu.be/knWiGsmgycY +//// +// This basic one-dimensional 'fire' simulation works roughly as follows: +// There's a underlying array of 'heat' cells, that model the temperature +// at each point along the line. Every cycle through the simulation, +// four steps are performed: +// 1) All cells cool down a little bit, losing heat to the air +// 2) The heat from each cell drifts 'up' and diffuses a little +// 3) Sometimes randomly new 'sparks' of heat are added at the bottom +// 4) The heat from each cell is rendered as a color into the leds array +// The heat-to-color mapping uses a black-body radiation approximation. +// +// Temperature is in arbitrary units from 0 (cold black) to 255 (white hot). +// +// This simulation scales it self a bit depending on NUM_LEDS; it should look +// "OK" on anywhere from 20 to 100 LEDs without too much tweaking. +// +// I recommend running this simulation at anywhere from 30-100 frames per second, +// meaning an interframe delay of about 10-35 milliseconds. +// +// Looks best on a high-density LED setup (60+ pixels/meter). +// +// +// There are two main parameters you can play with to control the look and +// feel of your fire: COOLING (used in step 1 above), and SPARKING (used +// in step 3 above) (Effect Intensity = Sparking). +// +// COOLING: How much does the air cool as it rises? +// Less cooling = taller flames. More cooling = shorter flames. +// Default 50, suggested range 20-100 +#define COOLING 75 + +uint16_t WS2812FX::mode_fire_2012(void) +{ + handle_palette(); + // Step 1. Cool down every cell a little + for( int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + _locked[i] = qsub8(_locked[i], random8(0, ((COOLING * 10) / SEGMENT_LENGTH) + 2)); + } + + // Step 2. Heat from each cell drifts 'up' and diffuses a little + for( int k= SEGMENT.stop; k >= SEGMENT.start + 2; k--) { + _locked[k] = (_locked[k - 1] + _locked[k - 2] + _locked[k - 2] ) / 3; + } + + // Step 3. Randomly ignite new 'sparks' of heat near the bottom + if( random8() <= SEGMENT.intensity ) { + int y = SEGMENT.start + random8(7); + if (y <= SEGMENT.stop) _locked[y] = qadd8(_locked[y], random8(160,255) ); + } + + // Step 4. Map from heat cells to LED colors + for( int j = SEGMENT.start; j <= SEGMENT.stop; j++) { + CRGB color = ColorFromPalette( currentPalette, min(_locked[j],240), 255, LINEARBLEND); + setPixelColor(j, color.red, color.green, color.blue); + } + return 10 + (uint16_t)(255 - SEGMENT.speed)/6; +} + + // ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb // This function draws color waves with an ever-changing, // widely-varying set of parameters, using a color palette. @@ -2229,7 +2241,7 @@ uint16_t WS2812FX::mode_bpm(void) handle_palette(); CRGB fastled_col; uint8_t beat = beatsin8(SEGMENT.speed, 64, 255); - for ( int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { fastled_col = ColorFromPalette(currentPalette, SEGMENT_RUNTIME.counter_mode_step + (i * 2), beat - SEGMENT_RUNTIME.counter_mode_step + (i * 10)); setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } @@ -2244,12 +2256,12 @@ uint16_t WS2812FX::mode_fillnoise8(void) if (SEGMENT_RUNTIME.counter_mode_call == 0) SEGMENT_RUNTIME.counter_mode_step = random(12345); handle_palette(); CRGB fastled_col; - for (int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { uint8_t index = inoise8(i * SEGMENT_LENGTH, SEGMENT_RUNTIME.counter_mode_step + i * SEGMENT_LENGTH) % 255; fastled_col = ColorFromPalette(currentPalette, index, 255, LINEARBLEND); setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } - SEGMENT_RUNTIME.counter_mode_step += beatsin8(SEGMENT.speed, 1, 4); //10,1,4 + SEGMENT_RUNTIME.counter_mode_step += beatsin8(SEGMENT.speed, 1, 6); //10,1,4 return 20; } @@ -2261,7 +2273,7 @@ uint16_t WS2812FX::mode_noise16_1(void) CRGB fastled_col; SEGMENT_RUNTIME.counter_mode_step += (1 + SEGMENT.speed/16); - for (int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { uint16_t shift_x = beatsin8(11); // the x position of the noise field swings @ 17 bpm uint16_t shift_y = SEGMENT_RUNTIME.counter_mode_step/42; // the y position becomes slowly incremented @@ -2290,7 +2302,7 @@ uint16_t WS2812FX::mode_noise16_2(void) CRGB fastled_col; SEGMENT_RUNTIME.counter_mode_step += (1 + SEGMENT.speed); - for (int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { uint16_t shift_x = SEGMENT_RUNTIME.counter_mode_step >> 6; // x as a function of time uint16_t shift_y = SEGMENT_RUNTIME.counter_mode_step/42; @@ -2318,7 +2330,7 @@ uint16_t WS2812FX::mode_noise16_3(void) CRGB fastled_col; SEGMENT_RUNTIME.counter_mode_step += (1 + SEGMENT.speed); - for (int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { uint16_t shift_x = 4223; // no movement along x and y uint16_t shift_y = 1234; @@ -2345,7 +2357,7 @@ uint16_t WS2812FX::mode_noise16_4(void) handle_palette(); CRGB fastled_col; SEGMENT_RUNTIME.counter_mode_step += SEGMENT.speed; - for (int i = SEGMENT.start; i <= SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) { int16_t index = inoise16(uint32_t(i - SEGMENT.start) << 12, SEGMENT_RUNTIME.counter_mode_step/8); fastled_col = ColorFromPalette(currentPalette, index); setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); diff --git a/wled00/WS2812FX.h b/wled00/WS2812FX.h index 7b5aa9253..d074bbf74 100644 --- a/wled00/WS2812FX.h +++ b/wled00/WS2812FX.h @@ -148,10 +148,10 @@ #define FX_MODE_RANDOM_CHASE 61 #define FX_MODE_OSCILLATE 62 //Modes that use FastLED --> -#define FX_MODE_FIRE_2012 63 -#define FX_MODE_PRIDE_2015 64 -#define FX_MODE_JUGGLE 65 -#define FX_MODE_PALETTE 66 +#define FX_MODE_PRIDE_2015 63 +#define FX_MODE_JUGGLE 64 +#define FX_MODE_PALETTE 65 +#define FX_MODE_FIRE_2012 66 #define FX_MODE_COLORWAVES 67 #define FX_MODE_BPM 68 #define FX_MODE_FILLNOISE8 69 @@ -271,7 +271,8 @@ class WS2812FX { _segments[0].speed = DEFAULT_SPEED; _reverseMode = false; _skipFirstMode = false; - paletteFade = true; + paletteFade = 0; + paletteBlend = 0; _locked = NULL; _cronixieDigits = new byte[6]; bus = new NeoPixelWrapper(); @@ -316,6 +317,8 @@ class WS2812FX { show(void); uint8_t + paletteFade, + paletteBlend, getBrightness(void), getMode(void), getSpeed(void), @@ -332,8 +335,6 @@ class WS2812FX { getPowerEstimate(uint16_t leds, uint32_t c, byte b), getSafePowerMultiplier(double safeMilliAmps, uint16_t leds, uint32_t c, byte b); - bool paletteFade; - WS2812FX::Segment getSegment(void); diff --git a/wled00/data/index.htm b/wled00/data/index.htm index b53bebc00..353498808 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -58,6 +58,7 @@ uwv = false; } Cf.TX.selectedIndex = this.responseXML.getElementsByTagName('fx')[0].childNodes[0].nodeValue; + Cf.FP.selectedIndex = this.responseXML.getElementsByTagName('fp')[0].childNodes[0].nodeValue; d.Cf.SX.value = this.responseXML.getElementsByTagName('sx')[0].childNodes[0].nodeValue; d.Cf.IX.value = this.responseXML.getElementsByTagName('ix')[0].childNodes[0].nodeValue; nla = (this.responseXML.getElementsByTagName('nl')[0].innerHTML)!=0?true:false; @@ -171,8 +172,8 @@ case 3: gId("path1").style.fill = aC; gId("path2").style.fill = aC; } tgb.style.fill=(Cf.SA.value>0)?aC:dC; - fpX.style.display=(Cf.TX.selectedIndex>65)?"block":"none"; - fof.style.fill=(Cf.TX.selectedIndex>65)?aC:dC; + fpX.style.display=(Cf.TX.selectedIndex>64)?"block":"none"; + fof.style.fill=(Cf.TX.selectedIndex>64)?aC:dC; fmr.style.fill=(Cf.TX.selectedIndex<1)?aC:dC; } function TgT() @@ -194,7 +195,7 @@ if (n==-1||n==74) return; Cf.TX.selectedIndex =n; if (n < 0) Cf.TX.selectedIndex = 0; - if (n > 73) Cf.TX.selectedIndex = 66; + if (n > 73) Cf.TX.selectedIndex = 65; GX(); } function TgHSB() @@ -648,10 +649,10 @@ - - - - + + + + @@ -670,18 +671,51 @@

FastLED Palette

diff --git a/wled00/data/index_mobile.htm b/wled00/data/index_mobile.htm index b040e9571..e8834c928 100644 --- a/wled00/data/index_mobile.htm +++ b/wled00/data/index_mobile.htm @@ -422,10 +422,10 @@
  • Dual Scanner
  • Random Chase
  • Oscillate
  • -
  • Fire 2012
  • -
  • Pride 2015
  • -
  • Juggle
  • -
  • Palette
  • +
  • Pride 2015
  • +
  • Juggle
  • +
  • Palette
  • +
  • Fire 2012
  • Colorwaves
  • BPM
  • Fill Noise 8
  • @@ -433,19 +433,53 @@
  • Noise 16 2
  • Noise 16 3
  • Noise 16 4
  •   +
  • Go to top
  •  

    FastLED Palette (Effects 56-73)

    -
  • Random Change
  • -
  • Primary Only
  • -
  • Based on Primary
  • -
  • Set Colors Only
  • -
  • Based on Set
  • -
  • Party
  • -
  • Cloud
  • -
  • Lava
  • -
  • Ocean
  • -
  • Forest
  • -
  • Rainbow
  • -
  • Rainbow Stripe
  • +
  • Default
  • +
  • Random Cycle
  • +
  • Primary Color Only
  • +
  • Based on Primary
  • +
  • Set Colors Only
  • +
  • Based on Set Colors
  • +
  • Party
  • +
  • Cloud
  • +
  • Lava
  • +
  • Ocean
  • +
  • Forest
  • +
  • Rainbow
  • +
  • Rainbow Stripe
  • +
  • Sunset
  • +
  • Rivendell
  • +
  • Breeze
  • +
  • Red & Blue
  • +
  • Yellowout
  • +
  • Analogous
  • +
  • Splash
  • +
  • Pastel
  • +
  • Sunset2
  • +
  • Beech
  • +
  • Vintage
  • +
  • Departure
  • +
  • Landscape
  • +
  • Beach
  • +
  • Sherbet
  • +
  • Hult
  • +
  • Hult64
  • +
  • Drywet
  • +
  • Jul
  • +
  • Grintage
  • +
  • Rewhi
  • +
  • Tertiary
  • +
  • Fire
  • +
  • Icefire
  • +
  • Cyane
  • +
  • Light Pink
  • +
  • Autumn
  • +
  • Magenta
  • +
  • Magred
  • +
  • Yelmag
  • +
  • Yelblu
  • +
  • Orange & Teal
  •  
  • Go to top
  • diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 80149dbcda4636955e3589083f7544c69ce75fe7..0573c494522ffdebe82f5558aac6f449c139ca15 100644 GIT binary patch delta 739 zcmX@++~%{Phl9JAA(bHqh?5ygCUdg&PFCWym|VclF?j>CfN&W@B0~{_27@jTCNsD( zoxr?=Aa}UQCmdORY4<^r&=$pJrNMUmVpB2|+2}!5P-y{Qc6@a>m8A^b< z^MSh3fi_e!C;)jNd-54_fiM*)o&qFOfM$wI&Q%8K$OFoi;8Eu)^_<%oY-Tag^t8>o z(#9?ZuOt95f47?0n44gn{1JnffEKp@0P$$SCwhT%P0Srz+ z(hjZ`q&lCW0BB|=*b52_puossD21vw0IT+4$gBq%lL`(ekPpg%u1f@JQvhm91CqHw z&1F!BXabGYM=_Lm>kMJmq1Xm;P<=Vj!b+ge6yTOqVv!M6i$Gp11L7h~Tk4SliFp4Q igRSuc2Q4Vl2*y3muoDEuls*B6$_D*P8FFAx^kyhy-`Yw{QVzR7E(dnUUn3QT?@)dZ$

    Cycle Range

    -
    • Color
    • Effects
    • Both

    Preset Duration

    Color Transition

    FX Speed

    FX Intensity

    • Solid
    • Blink
    • Breathe
    • Wipe
    • Wipe Random
    • Random Colors
    • Sweep
    • Dynamic
    • Colorloop
    • Rainbow
    • Scan
    • Double Scan
    • Fade
    • Chase
    • Chase Rainbow
    • Running
    • Twinkle
    • Twinkle Random
    • Twinkle Fade
    • Twinkle Random Fade
    • Sparkle
    • Dark Sparkle
    • Dark Sparkle+
    • Strobe
    • Strobe Rainbow
    • Double Strobe
    • Blink Rainbow
    • Android
    • Dark Chase
    • Dark Chase Random
    • Dark Chase Rainbow
    • Chase Flash
    • Dark Chase Random
    • Rainbow Runner
    • Colorful
    • Traffic Light
    • Sweep Random
    • Running 2
    • Red & Blue
    • Running 2 Random
    • Scanner
    • Lighthouse
    • Fireworks
    • Fireworks Random
    • Merry Christmas
    • Fire Flicker
    • Gradient
    • Loading
    • In Out
    • In In
    • Out Out
    • Out In
    • Circus
    • Halloween
    • Tri Chase
    • Tri Wipe
    • Tri Fade
    • Lightning
    • ICU
    • Multi Comet
    • Dual Scanner
    • Random Chase
    • Oscillate
    • Fire 2012
    • -
    • Juggle
    • Palette
    • BPM
    • Fill Noise 8
    • Noise 16 1
    • Noise 16 2
    • Noise 16 3
    • Noise 16 4
    • Pride 2015
    • Juggle
    • Palette
    • Colorwaves
    • BPM
    • Fill Noise 8
    • Noise 16 1
    • Noise 16 2
    • Noise 16 3
    • Noise 16 4
    •  

      FastLED Palette (Effects 55-71)

    • Random Change
    • Primary Only
    • Based on Primary
    • Set Colors Only
    • Based on Set
    • Party
    • Cloud
    • Lava
    • Ocean
    • Forest
    • Rainbow
    • Rainbow Stripe
    • +
      • Color
      • Effects
      • Both

      Preset Duration

      Color Transition

      FX Speed

      FX Intensity

      • Solid
      • Blink
      • Breathe
      • Wipe
      • Wipe Random
      • Random Colors
      • Sweep
      • Dynamic
      • Colorloop
      • Rainbow
      • Scan
      • Double Scan
      • Fade
      • Chase
      • Chase Rainbow
      • Running
      • Twinkle
      • Twinkle Random
      • Twinkle Fade
      • Twinkle Random Fade
      • Sparkle
      • Dark Sparkle
      • Dark Sparkle+
      • Strobe
      • Strobe Rainbow
      • Double Strobe
      • Blink Rainbow
      • Android
      • Dark Chase
      • Dark Chase Random
      • Dark Chase Rainbow
      • Chase Flash
      • Dark Chase Random
      • Rainbow Runner
      • Colorful
      • Traffic Light
      • Sweep Random
      • Running 2
      • Red & Blue
      • Running 2 Random
      • Scanner
      • Lighthouse
      • Fireworks
      • Fireworks Random
      • Merry Christmas
      • Fire Flicker
      • Gradient
      • Loading
      • In Out
      • In In
      • Out Out
      • Out In
      • Circus
      • Halloween
      • Tri Chase
      • Tri Wipe
      • Tri Fade
      • Lightning
      • ICU
      • Multi Comet
      • Dual Scanner
      • Random Chase
      • Oscillate
      • Pride 2015
      • Juggle
      • Palette
      • Fire 2012
      • Colorwaves
      • BPM
      • Fill Noise 8
      • Noise 16 1
      • Noise 16 2
      • Noise 16 3
      • Noise 16 4
      •  
      • Go to top
      •  

        FastLED Palette (Effects 56-73)

      • Default
      • Random Cycle
      • Primary Color Only
      • Based on Primary
      • Set Colors Only
      • Based on Set Colors
      • Party
      • Cloud
      • Lava
      • Ocean
      • Forest
      • Rainbow
      • Rainbow Stripe
      • Sunset
      • Rivendell
      • Breeze
      • Red & Blue
      • Yellowout
      • Analogous
      • Splash
      • Pastel
      • Sunset2
      • Beech
      • Vintage
      • Departure
      • Landscape
      • Beach
      • Sherbet
      • Hult
      • Hult64
      • Drywet
      • Jul
      • Grintage
      • Rewhi
      • Tertiary
      • Fire
      • Icefire
      • Cyane
      • Light Pink
      • Autumn
      • Magenta
      • Magred
      • Yelmag
      • Yelblu
      • Orange & Teal
      •  
      • Go to top
      • @@ -74,10 +73,8 @@ The Mobile UI is not supported due to limited flash storage. Please go to IP/set */ //head0 (js) const char PAGE_index0[] PROGMEM = R"=====( - - -WLED 0.8.0-a - +WLED 0.8.0-a + )====="; //head1 (css) @@ -119,108 +116,21 @@ const char PAGE_index3[] PROGMEM = R"=====( - - -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        -
        +
        +
        +
        +
        +
        +
        +
        +
        +
        Effect Panel



        -

        Set secondary color to @@ -228,30 +138,12 @@ Set secondary color to -or -
        +or

        FastLED Palette

        - -
        -
        -
        -
        -
        -
        -
        +
        +
        +
        Favorite Presets

        @@ -260,21 +152,13 @@ Favorite Presets




        Click checkmark to apply brightness, color and effects.

        Cycle through presets to , keep each for ms:

        -
        -
        -
        +
        Timed Light



        Gradually dim down
        -1st slider sets duration (1-255min), 2nd sets target brightness. -
        -
        -
        -
        -
        -
        - -
        - - +1st slider sets duration (1-255min), 2nd sets target brightness.
        +
        +
        +
        + )====="; diff --git a/wled00/htmls01.h b/wled00/htmls01.h index 4819289a5..52d5dbb60 100644 --- a/wled00/htmls01.h +++ b/wled00/htmls01.h @@ -86,7 +86,10 @@ const char PAGE_settings_leds1[] PROGMEM = R"=====(

        LED setup

        LED count:
        LEDs are 4-channel type (RGBW):
        +
        Apply preset at boot (0 uses defaults)
        +Turn on after power up/reset:
        +
        Default RGB color: @@ -105,12 +108,12 @@ Default secondary RGB(W):

        Ignore and use current color, brightness and effects:
        Save current preset cycle configuration as boot default:
        -Turn on after power up/reset:
        -Use Gamma correction for brightness:
        -Use Gamma correction for color:
        +
        +Use Gamma correction for color: (strongly recommended)
        +Use Gamma correction for brightness: (not recommended)
        Brightness factor: %

        Transitions

        -Fade:
        +Crossfade:
        Transition Time: ms
        Enable transition for secondary color:
        Enable Palette transitions: @@ -119,6 +122,13 @@ Default Duration: min Default Target brightness:
        Fade down:

        Advanced

        +Palette blending: +
        Reverse LED order (rotate 180):
        Init LEDs after WiFi:
        Skip first LED:
        diff --git a/wled00/palettes.h b/wled00/palettes.h index 4d31f1660..a65b74cfc 100644 --- a/wled00/palettes.h +++ b/wled00/palettes.h @@ -26,6 +26,7 @@ DEFINE_GRADIENT_PALETTE( es_vintage_57_gp ) { 153, 167,135, 10, 255, 46, 56, 4}; + // Gradient palette "es_vintage_01_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/vintage/tn/es_vintage_01.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -41,6 +42,7 @@ DEFINE_GRADIENT_PALETTE( es_vintage_01_gp ) { 229, 4, 1, 1, 255, 4, 1, 1}; + // Gradient palette "es_rivendell_15_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/rivendell/tn/es_rivendell_15.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -53,21 +55,24 @@ DEFINE_GRADIENT_PALETTE( es_rivendell_15_gp ) { 242, 150,156, 99, 255, 150,156, 99}; + // Gradient palette "rgi_15_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ds/rgi/tn/rgi_15.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 36 bytes of program space. +// Edited to be brighter DEFINE_GRADIENT_PALETTE( rgi_15_gp ) { - 0, 4, 1, 31, - 31, 55, 1, 16, - 63, 197, 3, 7, - 95, 59, 2, 17, - 127, 6, 2, 34, - 159, 39, 6, 33, - 191, 112, 13, 32, - 223, 56, 9, 35, - 255, 22, 6, 38}; + 0, 4, 1, 70, + 31, 55, 1, 30, + 63, 255, 4, 7, + 95, 59, 2, 29, + 127, 11, 3, 50, + 159, 39, 8, 60, + 191, 112, 19, 40, + 223, 78, 11, 39, + 255, 29, 8, 59}; + // Gradient palette "retro2_16_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ma/retro2/tn/retro2_16.png.index.html @@ -78,6 +83,7 @@ DEFINE_GRADIENT_PALETTE( retro2_16_gp ) { 0, 188,135, 1, 255, 46, 7, 1}; + // Gradient palette "Analogous_1_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/red/tn/Analogous_1.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -90,6 +96,7 @@ DEFINE_GRADIENT_PALETTE( Analogous_1_gp ) { 191, 142, 0, 45, 255, 255, 0, 0}; + // Gradient palette "es_pinksplash_08_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/pink_splash/tn/es_pinksplash_08.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -102,45 +109,6 @@ DEFINE_GRADIENT_PALETTE( es_pinksplash_08_gp ) { 221, 157, 3,112, 255, 157, 3,112}; -// Gradient palette "es_pinksplash_07_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/pink_splash/tn/es_pinksplash_07.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 28 bytes of program space. - -DEFINE_GRADIENT_PALETTE( es_pinksplash_07_gp ) { - 0, 229, 1, 1, - 61, 242, 4, 63, - 101, 255, 12,255, - 127, 249, 81,252, - 153, 255, 11,235, - 193, 244, 5, 68, - 255, 232, 1, 5}; - -// Gradient palette "Coral_reef_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/other/tn/Coral_reef.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 24 bytes of program space. - -DEFINE_GRADIENT_PALETTE( Coral_reef_gp ) { - 0, 40,199,197, - 50, 10,152,155, - 96, 1,111,120, - 96, 43,127,162, - 139, 10, 73,111, - 255, 1, 34, 71}; - -// Gradient palette "es_ocean_breeze_068_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/ocean_breeze/tn/es_ocean_breeze_068.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 24 bytes of program space. - -DEFINE_GRADIENT_PALETTE( es_ocean_breeze_068_gp ) { - 0, 100,156,153, - 51, 1, 99,137, - 101, 1, 68, 84, - 104, 35,142,168, - 178, 0, 63,117, - 255, 1, 10, 10}; // Gradient palette "es_ocean_breeze_036_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/ocean_breeze/tn/es_ocean_breeze_036.png.index.html @@ -153,6 +121,7 @@ DEFINE_GRADIENT_PALETTE( es_ocean_breeze_036_gp ) { 153, 144,209,255, 255, 0, 73, 82}; + // Gradient palette "departure_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/mjf/tn/departure.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -172,6 +141,7 @@ DEFINE_GRADIENT_PALETTE( departure_gp ) { 212, 0, 55, 0, 255, 0, 55, 0}; + // Gradient palette "es_landscape_64_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/landscape/tn/es_landscape_64.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -188,6 +158,7 @@ DEFINE_GRADIENT_PALETTE( es_landscape_64_gp ) { 204, 59,117,250, 255, 1, 37,192}; + // Gradient palette "es_landscape_33_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/landscape/tn/es_landscape_33.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -201,6 +172,7 @@ DEFINE_GRADIENT_PALETTE( es_landscape_33_gp ) { 66, 39,142, 74, 255, 1, 4, 1}; + // Gradient palette "rainbowsherbet_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ma/icecream/tn/rainbowsherbet.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -215,6 +187,7 @@ DEFINE_GRADIENT_PALETTE( rainbowsherbet_gp ) { 209, 42,255, 22, 255, 87,255, 65}; + // Gradient palette "gr65_hult_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/hult/tn/gr65_hult.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -228,6 +201,7 @@ DEFINE_GRADIENT_PALETTE( gr65_hult_gp ) { 216, 1,124,109, 255, 1,124,109}; + // Gradient palette "gr64_hult_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/hult/tn/gr64_hult.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -243,6 +217,7 @@ DEFINE_GRADIENT_PALETTE( gr64_hult_gp ) { 239, 0, 55, 45, 255, 0, 55, 45}; + // Gradient palette "GMT_drywet_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/gmt/tn/GMT_drywet.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -257,6 +232,7 @@ DEFINE_GRADIENT_PALETTE( GMT_drywet_gp ) { 212, 1, 1,111, 255, 1, 7, 33}; + // Gradient palette "ib15_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ing/general/tn/ib15.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -270,28 +246,19 @@ DEFINE_GRADIENT_PALETTE( ib15_gp ) { 141, 137, 31, 39, 255, 59, 33, 89}; -// Gradient palette "Fuschia_7_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/ds/fuschia/tn/Fuschia-7.png.index.html + +// Gradient palette "Tertiary_01_gp", originally from +// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/vermillion/tn/Tertiary_01.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. -DEFINE_GRADIENT_PALETTE( Fuschia_7_gp ) { - 0, 43, 3,153, - 63, 100, 4,103, - 127, 188, 5, 66, - 191, 161, 11,115, - 255, 135, 20,182}; +DEFINE_GRADIENT_PALETTE( Tertiary_01_gp ) { + 0, 0, 1,255, + 63, 3, 68, 45, + 127, 23,255, 0, + 191, 100, 68, 1, + 255, 255, 1, 4}; -// Gradient palette "es_emerald_dragon_08_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/emerald_dragon/tn/es_emerald_dragon_08.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 16 bytes of program space. - -DEFINE_GRADIENT_PALETTE( es_emerald_dragon_08_gp ) { - 0, 97,255, 1, - 101, 47,133, 1, - 178, 13, 43, 1, - 255, 2, 10, 1}; // Gradient palette "lava_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/neota/elem/tn/lava.png.index.html @@ -313,20 +280,22 @@ DEFINE_GRADIENT_PALETTE( lava_gp ) { 244, 255,255, 71, 255, 255,255,255}; -// Gradient palette "fire_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/neota/elem/tn/fire.png.index.html + +// Gradient palette "fierce_ice_gp", originally from +// http://soliton.vm.bytemark.co.uk/pub/cpt-city/neota/elem/tn/fierce-ice.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. -DEFINE_GRADIENT_PALETTE( fire_gp ) { - 0, 1, 1, 0, - 76, 32, 5, 0, - 146, 192, 24, 0, - 197, 220,105, 5, - 240, 252,255, 31, - 250, 252,255,111, +DEFINE_GRADIENT_PALETTE( fierce_ice_gp ) { + 0, 0, 0, 0, + 59, 0, 9, 45, + 119, 0, 38,255, + 149, 3,100,255, + 180, 23,199,255, + 217, 100,235,255, 255, 255,255,255}; + // Gradient palette "Colorfull_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Colorfull.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -345,19 +314,6 @@ DEFINE_GRADIENT_PALETTE( Colorfull_gp ) { 168, 100,180,155, 255, 22,121,174}; -// Gradient palette "Magenta_Evening_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Magenta_Evening.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 28 bytes of program space. - -DEFINE_GRADIENT_PALETTE( Magenta_Evening_gp ) { - 0, 71, 27, 39, - 31, 130, 11, 51, - 63, 213, 2, 64, - 70, 232, 1, 66, - 76, 252, 1, 69, - 108, 123, 2, 51, - 255, 46, 9, 35}; // Gradient palette "Pink_Purple_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Pink_Purple.png.index.html @@ -377,6 +333,7 @@ DEFINE_GRADIENT_PALETTE( Pink_Purple_gp ) { 183, 128, 57,155, 255, 146, 40,123}; + // Gradient palette "Sunset_Real_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Sunset_Real.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -391,6 +348,68 @@ DEFINE_GRADIENT_PALETTE( Sunset_Real_gp ) { 198, 16, 0,130, 255, 0, 0,160}; + +// Gradient palette "Sunset_Yellow_gp", originally from +// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Sunset_Yellow.png.index.html +// converted for FastLED with gammas (2.6, 2.2, 2.5) +// Size: 44 bytes of program space. + +DEFINE_GRADIENT_PALETTE( Sunset_Yellow_gp ) { + 0, 10, 62,123, + 36, 56,130,103, + 87, 153,225, 85, + 100, 199,217, 68, + 107, 255,207, 54, + 115, 247,152, 57, + 120, 239,107, 61, + 128, 247,152, 57, + 180, 255,207, 54, + 223, 255,227, 48, + 255, 255,248, 42}; + + +// Gradient palette "Beech_gp", originally from +// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Beech.png.index.html +// converted for FastLED with gammas (2.6, 2.2, 2.5) +// Size: 60 bytes of program space. + +DEFINE_GRADIENT_PALETTE( Beech_gp ) { + 0, 255,252,214, + 12, 255,252,214, + 22, 255,252,214, + 26, 190,191,115, + 28, 137,141, 52, + 28, 112,255,205, + 50, 51,246,214, + 71, 17,235,226, + 93, 2,193,199, + 120, 0,156,174, + 133, 1,101,115, + 136, 1, 59, 71, + 136, 7,131,170, + 208, 1, 90,151, + 255, 0, 56,133}; + + +// Gradient palette "Another_Sunset_gp", originally from +// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Another_Sunset.png.index.html +// converted for FastLED with gammas (2.6, 2.2, 2.5) +// Size: 32 bytes of program space. + +DEFINE_GRADIENT_PALETTE( Another_Sunset_gp ) { + 0, 110, 49, 11, + 29, 55, 34, 10, + 68, 22, 22, 9, + 68, 239,124, 8, + 97, 220,156, 27, + 124, 203,193, 61, + 178, 33, 53, 56, + 255, 0, 1, 52}; + + + + + // Gradient palette "es_autumn_19_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/autumn/tn/es_autumn_19.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -411,6 +430,7 @@ DEFINE_GRADIENT_PALETTE( es_autumn_19_gp ) { 249, 17, 1, 1, 255, 17, 1, 1}; + // Gradient palette "BlacK_Blue_Magenta_White_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Blue_Magenta_White.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -425,6 +445,7 @@ DEFINE_GRADIENT_PALETTE( BlacK_Blue_Magenta_White_gp ) { 212, 255, 55,255, 255, 255,255,255}; + // Gradient palette "BlacK_Magenta_Red_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Magenta_Red.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -437,6 +458,7 @@ DEFINE_GRADIENT_PALETTE( BlacK_Magenta_Red_gp ) { 191, 255, 0, 45, 255, 255, 0, 0}; + // Gradient palette "BlacK_Red_Magenta_Yellow_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Red_Magenta_Yellow.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -451,6 +473,7 @@ DEFINE_GRADIENT_PALETTE( BlacK_Red_Magenta_Yellow_gp ) { 212, 255, 55, 45, 255, 255,255, 0}; + // Gradient palette "Blue_Cyan_Yellow_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/Blue_Cyan_Yellow.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) @@ -464,73 +487,13 @@ DEFINE_GRADIENT_PALETTE( Blue_Cyan_Yellow_gp ) { 255, 255,255, 0}; +//Custom palette by Aircoookie - - - - - -// Gradient palette "BlacK_Blue_Cyan_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Blue_Cyan.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 20 bytes of program space. - -DEFINE_GRADIENT_PALETTE( BlacK_Blue_Cyan_gp ) { - 0, 0, 0, 0, - 63, 0, 0, 45, - 127, 0, 0,255, - 191, 0, 55,255, - 255, 0,255,255}; - - -// Gradient palette "BlacK_Blue_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Blue.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 12 bytes of program space. - -DEFINE_GRADIENT_PALETTE( BlacK_Blue_gp ) { - 0, 0, 0, 0, - 127, 0, 0, 45, - 255, 0, 0,255}; - - -// Gradient palette "Red_Black_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/Red_Black.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 12 bytes of program space. - -DEFINE_GRADIENT_PALETTE( Red_Black_gp ) { - 0, 255, 0, 0, - 127, 42, 0, 0, - 255, 0, 0, 0}; - - -// Gradient palette "Yellow_Black_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/Yellow_Black.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 12 bytes of program space. - -DEFINE_GRADIENT_PALETTE( Yellow_Black_gp ) { - 0, 255,255, 0, - 127, 42, 55, 0, - 255, 0, 0, 0}; - - -// Gradient palette "bhw1_hello_gp", originally from -// http://soliton.vm.bytemark.co.uk/pub/cpt-city/bhw/bhw1/tn/bhw1_hello.png.index.html -// converted for FastLED with gammas (2.6, 2.2, 2.5) -// Size: 32 bytes of program space. - -DEFINE_GRADIENT_PALETTE( bhw1_hello_gp ) { - 0, 237,156,197, - 35, 244,189,230, - 56, 255,255,255, - 79, 244,189,230, - 109, 237,156,197, - 160, 121,255,255, - 196, 255,255,255, - 255, 121,255,255}; - +DEFINE_GRADIENT_PALETTE( Orange_Teal_gp ) { + 0, 0,150, 92, + 55, 0,150, 92, + 200, 255, 72, 0, + 255, 255, 72, 0}; // Single array of defined cpt-city color palettes. @@ -544,39 +507,38 @@ DEFINE_GRADIENT_PALETTE( bhw1_hello_gp ) { // This list of color palettes acts as a "playlist"; you can // add or delete, or re-arrange as you wish. const TProgmemRGBGradientPalettePtr gGradientPalettes[] = { - Sunset_Real_gp, //12 - es_rivendell_15_gp, //13 - es_ocean_breeze_036_gp, //14 - rgi_15_gp, //15 - retro2_16_gp, //16 - Analogous_1_gp, //17 - es_pinksplash_08_gp, //18 - Coral_reef_gp, //19 - es_ocean_breeze_068_gp, //20 - es_pinksplash_07_gp, //21 - es_vintage_01_gp, //22 - departure_gp, //23 - es_landscape_64_gp, //24 - es_landscape_33_gp, //25 - rainbowsherbet_gp, //26 - gr65_hult_gp, //27 - gr64_hult_gp, //28 - GMT_drywet_gp, //29 - ib_jul01_gp, //30 - es_vintage_57_gp, //31 - ib15_gp, //32 - Fuschia_7_gp, //33 - es_emerald_dragon_08_gp, //34 - lava_gp, //35 - fire_gp, //36 - Colorfull_gp, //37 - Magenta_Evening_gp, //38 - Pink_Purple_gp, //39 - es_autumn_19_gp, //40 - BlacK_Blue_Magenta_White_gp, //41 - BlacK_Magenta_Red_gp, //42 - BlacK_Red_Magenta_Yellow_gp, //43 - Blue_Cyan_Yellow_gp, //44 + Sunset_Real_gp, //13-00 Sunset + es_rivendell_15_gp, //14-01 Rivendell + es_ocean_breeze_036_gp, //15-02 Breeze + rgi_15_gp, //16-03 Red & Blue + retro2_16_gp, //17-04 Yellowout + Analogous_1_gp, //18-05 Analogous + es_pinksplash_08_gp, //19-06 Splash + Sunset_Yellow_gp, //20-07 Pastel + Another_Sunset_gp, //21-08 Sunset2 + Beech_gp, //22-09 Beech + es_vintage_01_gp, //23-10 Vintage + departure_gp, //24-11 Departure + es_landscape_64_gp, //25-12 Landscape + es_landscape_33_gp, //26-13 Beach + rainbowsherbet_gp, //27-14 Sherbet + gr65_hult_gp, //28-15 Hult + gr64_hult_gp, //29-16 Hult64 + GMT_drywet_gp, //30-17 Drywet + ib_jul01_gp, //31-18 Jul + es_vintage_57_gp, //32-19 Grintage + ib15_gp, //33-20 Rewhi + Tertiary_01_gp, //34-21 Tertiary + lava_gp, //35-22 Fire + fierce_ice_gp, //36-23 Icefire + Colorfull_gp, //37-24 Cyane + Pink_Purple_gp, //38-25 Light Pink + es_autumn_19_gp, //39-26 Autumn + BlacK_Blue_Magenta_White_gp, //40-27 Magenta + BlacK_Magenta_Red_gp, //41-28 Magred + BlacK_Red_Magenta_Yellow_gp, //42-29 Yelmag + Blue_Cyan_Yellow_gp, //43-30 Yelblu + Orange_Teal_gp //44-31 Orange & Teal }; diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 3b1b560c5..bb076d920 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -39,7 +39,7 @@ #include "src/dependencies/e131/E131.h" //version in format yymmddb (b = daily build) -#define VERSION 1809084 +#define VERSION 1809103 char versionString[] = "0.8.0-a"; //AP and OTA default passwords (change them!) diff --git a/wled00/wled01_eeprom.ino b/wled00/wled01_eeprom.ino index 357d46478..1536d788f 100644 --- a/wled00/wled01_eeprom.ino +++ b/wled00/wled01_eeprom.ino @@ -6,7 +6,7 @@ #define EEPSIZE 3072 //eeprom Version code, enables default settings instead of 0 init on update -#define EEPVER 7 +#define EEPVER 8 //0 -> old version, default //1 -> 0.4p 1711272 and up //2 -> 0.4p 1711302 and up @@ -129,7 +129,8 @@ void saveSettingsToEEPROM() EEPROM.write(379, colSecS[1]); EEPROM.write(380, colSecS[2]); EEPROM.write(381, whiteSecS); - + EEPROM.write(382, strip.paletteBlend); + EEPROM.write(389, bootPreset); EEPROM.write(390, aOtaEnabled); EEPROM.write(391, receiveNotificationColor); @@ -356,7 +357,7 @@ void loadSettingsFromEEPROM(bool first) whiteS = EEPROM.read(371); white = whiteS; useRGBW = EEPROM.read(372); effectPaletteDefault = EEPROM.read(373); effectPalette = effectPaletteDefault; - strip.paletteFade = EEPROM.read(374); + //374 - strip.paletteFade if (lastEEPROMversion > 0) { apWaitTimeSecs = EEPROM.read(375); @@ -444,6 +445,12 @@ void loadSettingsFromEEPROM(bool first) arlsForceMaxBri = EEPROM.read(2195); arlsDisableGammaCorrection = EEPROM.read(2196); } + + if (lastEEPROMversion > 7) + { + strip.paletteFade = EEPROM.read(374); + strip.paletteBlend = EEPROM.read(382); + } receiveDirect = !EEPROM.read(2200); enableRealtimeUI = EEPROM.read(2201); diff --git a/wled00/wled02_xml.ino b/wled00/wled02_xml.ino index d8b1a7e96..8ca849688 100644 --- a/wled00/wled02_xml.ino +++ b/wled00/wled02_xml.ino @@ -198,6 +198,7 @@ void getSettingsJS(byte subPage) //get values for settings form in javascript sappend('v',"TB",nightlightTargetBri); sappend('v',"TL",nightlightDelayMins); sappend('c',"TW",nightlightFade); + sappend('i',"PB",strip.paletteBlend); sappend('c',"RV",reverseMode); sappend('c',"EI",initLedsLast); sappend('c',"SL",skipFirstLed); diff --git a/wled00/wled03_set.ino b/wled00/wled03_set.ino index 7bde55abe..e1268a4ac 100644 --- a/wled00/wled03_set.ino +++ b/wled00/wled03_set.ino @@ -184,6 +184,13 @@ void handleSettingsSet(byte subPage) } nightlightFade = server.hasArg("TW"); reverseMode = server.hasArg("RV"); + if (server.hasArg("PB")) + { + int i = server.arg("PB").toInt(); + if (i >= 0){ + strip.paletteBlend = i; + } + } initLedsLast = server.hasArg("EI"); strip.setReverseMode(reverseMode); skipFirstLed = server.hasArg("SL");