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
pull/57/head
cschwinne 2018-09-11 00:20:12 +02:00
rodzic 2466c5a204
commit 4b31610169
12 zmienionych plików z 424 dodań i 472 usunięć

Wyświetl plik

@ -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);

Wyświetl plik

@ -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);

Wyświetl plik

@ -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">

Wyświetl plik

@ -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>&nbsp;
<li><a href="#">Go to top</a></li>&nbsp;
<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>
&nbsp;
<li><a href="#">Go to top</a></li></div>
<iframe id="stf" onload="feedback();" style="display:none;"></iframe>

Plik binarny nie jest wyświetlany.

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -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>

Wyświetl plik

@ -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
};

Wyświetl plik

@ -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!)

Wyświetl plik

@ -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);

Wyświetl plik

@ -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);

Wyświetl plik

@ -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");