From 9a091ff11a15f253b51d6f724a2ab2fc0ef0fa08 Mon Sep 17 00:00:00 2001 From: Eric Yanush Date: Mon, 11 Nov 2019 18:22:58 -0600 Subject: [PATCH 1/3] Add support for Saskatchewan Time (CST no DST) GMT-6 --- wled00/html_settings.h | 19 ++++++++++--------- wled00/wled10_ntp.ino | 4 +++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/wled00/html_settings.h b/wled00/html_settings.h index cb3b29fc3..17c1ba84b 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -308,15 +308,16 @@ Time zone: - - - - - - - - - + + + + + + + + + +
UTC offset: seconds (max. 18 hours)
Current local time is unknown. diff --git a/wled00/wled10_ntp.ino b/wled00/wled10_ntp.ino index 6eb5d9070..16b069504 100644 --- a/wled00/wled10_ntp.ino +++ b/wled00/wled10_ntp.ino @@ -25,6 +25,8 @@ TimeChangeRule CDT = {Second, Sun, Mar, 2, -300 }; //Daylight time = UTC - 5 TimeChangeRule CST = {First, Sun, Nov, 2, -360 }; //Standard time = UTC - 6 hours Timezone tzUSCentral(CDT, CST); +Timezone tzCASaskatchewan(CST, CST); //Central without DST + TimeChangeRule MDT = {Second, Sun, Mar, 2, -360 }; //Daylight time = UTC - 6 hours TimeChangeRule MST = {First, Sun, Nov, 2, -420 }; //Standard time = UTC - 7 hours Timezone tzUSMountain(MDT, MST); @@ -55,7 +57,7 @@ Timezone tzNK(NKST, NKST); TimeChangeRule IST = {Last, Sun, Mar, 1, 330}; // India Standard Time = UTC + 5.5 hours Timezone tzIndia(IST, IST); -Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia}; +Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzCASaskatchewan, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia}; void handleNetworkTime() { From 194aa90aeea709a8b1a6e4aeda8beba8fb170db1 Mon Sep 17 00:00:00 2001 From: cschwinne Date: Mon, 23 Dec 2019 19:28:37 +0100 Subject: [PATCH 2/3] Noise 4 fix --- wled00/FX.cpp | 45 ++++++++++++++++++++++++++++++++------------- wled00/wled00.ino | 2 +- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 87edbba06..e4befb963 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -461,16 +461,34 @@ uint16_t WS2812FX::mode_saw(void) { * Inspired by www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/ */ uint16_t WS2812FX::mode_twinkle(void) { - if(SEGENV.step == 0) { - fill(SEGCOLOR(1)); - SEGENV.step = map(SEGMENT.intensity, 0, 255, 1, SEGLEN); // make sure, at least one LED is on + fill(SEGCOLOR(1)); + + uint32_t cycleTime = 20 + (255 - SEGMENT.speed)*5; + uint32_t it = now / cycleTime; + if (it != SEGENV.step) + { + uint16_t maxOn = map(SEGMENT.intensity, 0, 255, 1, SEGLEN); // make sure at least one LED is on + if (SEGENV.aux0 >= maxOn) + { + SEGENV.aux0 = 0; + SEGENV.aux1 = random16(); //new seed for our PRNG + } + SEGENV.aux0++; + SEGENV.step = it; + } + + uint16_t PRNG16 = SEGENV.aux1; + + for (uint16_t i = 0; i < SEGENV.aux0; i++) + { + PRNG16 = (uint16_t)(PRNG16 * 2053) + 13849; // next 'random' number + uint32_t p = (uint32_t)SEGLEN * (uint32_t)PRNG16; + uint16_t mapped = p >> 16; + uint16_t j = SEGMENT.start + mapped; + setPixelColor(j, color_from_palette(j, true, PALETTE_SOLID_WRAP, 0)); } - uint16_t i = SEGMENT.start + random16(SEGLEN); - setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); - - SEGENV.step--; - return 20 + (5 * (uint16_t)(255 - SEGMENT.speed)); + return FRAMETIME; } @@ -592,6 +610,7 @@ uint16_t WS2812FX::mode_multi_strobe(void) { for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } + //blink(SEGCOLOR(0), SEGCOLOR(1), true, true); uint16_t delay = 50 + 20*(uint16_t)(255-SEGMENT.speed); uint16_t count = 2 * ((SEGMENT.speed / 10) + 1); @@ -679,7 +698,8 @@ uint16_t WS2812FX::chase(uint32_t color1, uint32_t color2, uint32_t color3, bool setPixelColor(SEGMENT.start + b, color2); setPixelColor(SEGMENT.start + c, color3); - SEGENV.step = (SEGENV.step + 1) % SEGLEN; + SEGENV.step++; + if (SEGENV.step >= SEGLEN) SEGENV.step = 0; return SPEED_FORMULA_L; } @@ -1523,13 +1543,13 @@ uint16_t WS2812FX::mode_juggle(void){ CRGB fastled_col; byte dothue = 0; for ( byte i = 0; i < 8; i++) { - uint16_t index = SEGMENT.start + beatsin16(i + 7, 0, SEGLEN -1); + uint16_t index = SEGMENT.start + beatsin88((128 + SEGMENT.speed)*(i + 7), 0, SEGLEN -1); fastled_col = col_to_crgb(getPixelColor(index)); fastled_col |= (SEGMENT.palette==0)?CHSV(dothue, 220, 255):ColorFromPalette(currentPalette, dothue, 255); setPixelColor(index, fastled_col.red, fastled_col.green, fastled_col.blue); dothue += 32; } - return 10 + (uint16_t)(255 - SEGMENT.speed)/4; + return FRAMETIME; } @@ -1780,8 +1800,7 @@ uint16_t WS2812FX::mode_noise16_3() uint16_t WS2812FX::mode_noise16_4() { CRGB fastled_col; - SEGENV.step += SEGMENT.speed; - uint32_t stp = (now / 160) * SEGMENT.speed; + uint32_t stp = (now * SEGMENT.speed) >> 7; for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { int16_t index = inoise16(uint32_t(i - SEGMENT.start) << 12, stp); fastled_col = ColorFromPalette(currentPalette, index); diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 3a9b8a00f..90bf0ac8e 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -98,7 +98,7 @@ //version code in format yymmddb (b = daily build) -#define VERSION 1912221 +#define VERSION 1912231 char versionString[] = "0.9.0-b2"; From a90a07f46d64fc82c444da086629231471d7214c Mon Sep 17 00:00:00 2001 From: cschwinne Date: Mon, 23 Dec 2019 20:54:00 +0100 Subject: [PATCH 3/3] Put new timezone to end of list --- wled00/html_settings.h | 20 ++++++++++---------- wled00/wled10_ntp.ino | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 17c1ba84b..53da653fe 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -308,16 +308,16 @@ Time zone: - - - - - - - - - - + + + + + + + + + +
UTC offset: seconds (max. 18 hours)
Current local time is unknown. diff --git a/wled00/wled10_ntp.ino b/wled00/wled10_ntp.ino index 16b069504..3bb76674c 100644 --- a/wled00/wled10_ntp.ino +++ b/wled00/wled10_ntp.ino @@ -57,7 +57,7 @@ Timezone tzNK(NKST, NKST); TimeChangeRule IST = {Last, Sun, Mar, 1, 330}; // India Standard Time = UTC + 5.5 hours Timezone tzIndia(IST, IST); -Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzCASaskatchewan, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia}; +Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia, &tzCASaskatchewan}; void handleNetworkTime() {