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
This commit is contained in:
parent
2466c5a204
commit
4b31610169
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 @@
|
||||
<option value="60">Scanner x2 (60)</option>
|
||||
<option value="61">Random Chase (61)</option>
|
||||
<option value="62">Oscillate (62)</option>
|
||||
<option value="63">Fire 2012 (63)</option>
|
||||
<option value="64">Pride 2015 (64)</option>
|
||||
<option value="65">Juggle (65)</option>
|
||||
<option value="66">Palette (66)</option>
|
||||
<option value="63">Pride 2015 (63)</option>
|
||||
<option value="64">Juggle (64)</option>
|
||||
<option value="65">Palette (65)</option>
|
||||
<option value="66">Fire 2012 (66)</option>
|
||||
<option value="67">Colorwaves (67)</option>
|
||||
<option value="68">BPM (68)</option>
|
||||
<option value="69">Fill Noise 8 (69)</option>
|
||||
@ -670,18 +671,51 @@
|
||||
<div id="fpX">
|
||||
<br>FastLED Palette<br><br>
|
||||
<select name="FP" onchange="GP()">
|
||||
<option value="0" selected>Random Cycle</option>
|
||||
<option value="1">Primary Color Only</option>
|
||||
<option value="2">Based on Primary</option>
|
||||
<option value="3">Set Colors Only</option>
|
||||
<option value="4">Based on Set Colors</option>
|
||||
<option value="5">Party Colors</option>
|
||||
<option value="6">Cloud Colors</option>
|
||||
<option value="7">Lava Colors</option>
|
||||
<option value="8">Ocean Colors</option>
|
||||
<option value="9">Forest Colors</option>
|
||||
<option value="10">Rainbow</option>
|
||||
<option value="11">Rainbow Stripe</option>
|
||||
<option value="0" selected>Default</option>
|
||||
<option value="1">Random Cycle</option>
|
||||
<option value="2">Primary Color Only</option>
|
||||
<option value="3">Based on Primary</option>
|
||||
<option value="4">Set Colors Only</option>
|
||||
<option value="5">Based on Set Colors</option>
|
||||
<option value="6">Party</option>
|
||||
<option value="7">Cloud</option>
|
||||
<option value="8">Lava</option>
|
||||
<option value="9">Ocean</option>
|
||||
<option value="10">Forest</option>
|
||||
<option value="11">Rainbow</option>
|
||||
<option value="12">Rainbow Stripe</option>
|
||||
<option value="13">Sunset</option>
|
||||
<option value="14">Rivendell</option>
|
||||
<option value="15">Breeze</option>
|
||||
<option value="16">Red & Blue</option>
|
||||
<option value="17">Yellowout</option>
|
||||
<option value="18">Analogous</option>
|
||||
<option value="19">Splash</option>
|
||||
<option value="20">Pastel</option>
|
||||
<option value="21">Sunset2</option>
|
||||
<option value="22">Beech</option>
|
||||
<option value="23">Vintage</option>
|
||||
<option value="24">Departure</option>
|
||||
<option value="25">Landscape</option>
|
||||
<option value="26">Beach</option>
|
||||
<option value="27">Sherbet</option>
|
||||
<option value="28">Hult</option>
|
||||
<option value="29">Hult64</option>
|
||||
<option value="30">Drywet</option>
|
||||
<option value="31">Jul</option>
|
||||
<option value="32">Grintage</option>
|
||||
<option value="33">Rewhi</option>
|
||||
<option value="34">Tertiary</option>
|
||||
<option value="35">Fire</option>
|
||||
<option value="36">Icefire</option>
|
||||
<option value="37">Cyane</option>
|
||||
<option value="38">Light Pink</option>
|
||||
<option value="39">Autumn</option>
|
||||
<option value="40">Magenta</option>
|
||||
<option value="41">Magred</option>
|
||||
<option value="42">Yelmag</option>
|
||||
<option value="43">Yelblu</option>
|
||||
<option value="44">Orange & Teal</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="slX" class="sl">
|
||||
|
@ -422,10 +422,10 @@
|
||||
<li onclick="X(60)">Dual Scanner</li>
|
||||
<li onclick="X(61)">Random Chase</li>
|
||||
<li onclick="X(62)">Oscillate</li>
|
||||
<li onclick="X(63)">Fire 2012</li>
|
||||
<li onclick="X(64)">Pride 2015</li>
|
||||
<li onclick="X(65)">Juggle</li>
|
||||
<li onclick="X(66)">Palette</li>
|
||||
<li onclick="X(63)">Pride 2015</li>
|
||||
<li onclick="X(64)">Juggle</li>
|
||||
<li onclick="X(65)">Palette</li>
|
||||
<li onclick="X(66)">Fire 2012</li>
|
||||
<li onclick="X(67)">Colorwaves</li>
|
||||
<li onclick="X(68)">BPM</li>
|
||||
<li onclick="X(69)">Fill Noise 8</li>
|
||||
@ -433,19 +433,53 @@
|
||||
<li onclick="X(71)">Noise 16 2</li>
|
||||
<li onclick="X(72)">Noise 16 3</li>
|
||||
<li onclick="X(73)">Noise 16 4</li>
|
||||
<li><a href="#">Go to top</a></li>
|
||||
<p style="margin-left:-37px">FastLED Palette (Effects 56-73)</p>
|
||||
<li onclick="P(0)">Random Change</li>
|
||||
<li onclick="P(1)">Primary Only</li>
|
||||
<li onclick="P(2)">Based on Primary</li>
|
||||
<li onclick="P(3)">Set Colors Only</li>
|
||||
<li onclick="P(4)">Based on Set</li>
|
||||
<li onclick="P(5)">Party</li>
|
||||
<li onclick="P(6)">Cloud</li>
|
||||
<li onclick="P(7)">Lava</li>
|
||||
<li onclick="P(8)">Ocean</li>
|
||||
<li onclick="P(9)">Forest</li>
|
||||
<li onclick="P(10)">Rainbow</li>
|
||||
<li onclick="P(11)">Rainbow Stripe</li>
|
||||
<li onclick="P(0)">Default</li>
|
||||
<li onclick="P(1)">Random Cycle</li>
|
||||
<li onclick="P(2)">Primary Color Only</li>
|
||||
<li onclick="P(3)">Based on Primary</li>
|
||||
<li onclick="P(4)">Set Colors Only</li>
|
||||
<li onclick="P(5)">Based on Set Colors</li>
|
||||
<li onclick="P(6)">Party</li>
|
||||
<li onclick="P(7)">Cloud</li>
|
||||
<li onclick="P(8)">Lava</li>
|
||||
<li onclick="P(9)">Ocean</li>
|
||||
<li onclick="P(10)">Forest</li>
|
||||
<li onclick="P(11)">Rainbow</li>
|
||||
<li onclick="P(12)">Rainbow Stripe</li>
|
||||
<li onclick="P(13)">Sunset</li>
|
||||
<li onclick="P(14)">Rivendell</li>
|
||||
<li onclick="P(15)">Breeze</li>
|
||||
<li onclick="P(16)">Red & Blue</li>
|
||||
<li onclick="P(17)">Yellowout</li>
|
||||
<li onclick="P(18)">Analogous</li>
|
||||
<li onclick="P(19)">Splash</li>
|
||||
<li onclick="P(20)">Pastel</li>
|
||||
<li onclick="P(21)">Sunset2</li>
|
||||
<li onclick="P(22)">Beech</li>
|
||||
<li onclick="P(23)">Vintage</li>
|
||||
<li onclick="P(24)">Departure</li>
|
||||
<li onclick="P(25)">Landscape</li>
|
||||
<li onclick="P(26)">Beach</li>
|
||||
<li onclick="P(27)">Sherbet</li>
|
||||
<li onclick="P(28)">Hult</li>
|
||||
<li onclick="P(29)">Hult64</li>
|
||||
<li onclick="P(30)">Drywet</li>
|
||||
<li onclick="P(31)">Jul</li>
|
||||
<li onclick="P(32)">Grintage</li>
|
||||
<li onclick="P(33)">Rewhi</li>
|
||||
<li onclick="P(34)">Tertiary</li>
|
||||
<li onclick="P(35)">Fire</li>
|
||||
<li onclick="P(36)">Icefire</li>
|
||||
<li onclick="P(37)">Cyane</li>
|
||||
<li onclick="P(38)">Light Pink</li>
|
||||
<li onclick="P(39)">Autumn</li>
|
||||
<li onclick="P(40)">Magenta</li>
|
||||
<li onclick="P(41)">Magred</li>
|
||||
<li onclick="P(42)">Yelmag</li>
|
||||
<li onclick="P(43)">Yelblu</li>
|
||||
<li onclick="P(44)">Orange & Teal</li>
|
||||
|
||||
<li><a href="#">Go to top</a></li></div>
|
||||
<iframe id="stf" onload="feedback();" style="display:none;"></iframe>
|
||||
|
Binary file not shown.
164
wled00/htmls00.h
164
wled00/htmls00.h
File diff suppressed because one or more lines are too long
@ -86,7 +86,10 @@ const char PAGE_settings_leds1[] PROGMEM = R"=====(
|
||||
<h2>LED setup</h2>
|
||||
LED count: <input name="LC" type="number" min="1" max="1200" required><br>
|
||||
LEDs are 4-channel type (RGBW): <input type="checkbox" name="EW"><br>
|
||||
<br>
|
||||
Apply preset <input name="BP" type="number" min="0" max="25" required> at boot (0 uses defaults)<br>
|
||||
Turn on after power up/reset: <input type="checkbox" name="BO"><br>
|
||||
<br>
|
||||
Default RGB color:
|
||||
<input name="CR" type="number" min="0" max="255" required>
|
||||
<input name="CG" type="number" min="0" max="255" required>
|
||||
@ -105,12 +108,12 @@ Default secondary RGB(W):<br>
|
||||
<input name="SW" type="number" min="0" max="255" required><br>
|
||||
Ignore and use current color, brightness and effects: <input type="checkbox" name="IS"><br>
|
||||
Save current preset cycle configuration as boot default: <input type="checkbox" name="PC"><br>
|
||||
Turn on after power up/reset: <input type="checkbox" name="BO"><br>
|
||||
Use Gamma correction for brightness: <input type="checkbox" name="GB"><br>
|
||||
Use Gamma correction for color: <input type="checkbox" name="GC"><br>
|
||||
<br>
|
||||
Use Gamma correction for color: <input type="checkbox" name="GC"> (strongly recommended)<br>
|
||||
Use Gamma correction for brightness: <input type="checkbox" name="GB"> (not recommended)<br>
|
||||
Brightness factor: <input name="BF" type="number" min="0" max="255" required> %
|
||||
<h3>Transitions</h3>
|
||||
Fade: <input type="checkbox" name="TF"><br>
|
||||
Crossfade: <input type="checkbox" name="TF"><br>
|
||||
Transition Time: <input name="TD" maxlength="5" size="2"> ms<br>
|
||||
Enable transition for secondary color: <input type="checkbox" name="T2"><br>
|
||||
Enable Palette transitions: <input type="checkbox" name="PF">
|
||||
@ -119,6 +122,13 @@ Default Duration: <input name="TL" type="number" min="1" max="255" required> min
|
||||
Default Target brightness: <input name="TB" type="number" min="0" max="255" required><br>
|
||||
Fade down: <input type="checkbox" name="TW"><br>
|
||||
<h3>Advanced</h3>
|
||||
Palette blending:
|
||||
<select name="PB">
|
||||
<option value="0">Linear (wrap if moving)</option>
|
||||
<option value="1">Linear (always wrap)</option>
|
||||
<option value="2">Linear (never wrap)</option>
|
||||
<option value="3">None (not recommended)</option>
|
||||
</select><br>
|
||||
Reverse LED order (rotate 180): <input type="checkbox" name="RV"><br>
|
||||
Init LEDs after WiFi: <input type="checkbox" name="EI"><br>
|
||||
Skip first LED: <input type="checkbox" name="SL"><hr>
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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!)
|
||||
|
@ -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,6 +129,7 @@ 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);
|
||||
@ -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);
|
||||
@ -445,6 +446,12 @@ void loadSettingsFromEEPROM(bool first)
|
||||
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);
|
||||
uiConfiguration = EEPROM.read(2202);
|
||||
|
@ -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);
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user