diff --git a/readme.md b/readme.md index c7c80286..7eaffcdd 100644 --- a/readme.md +++ b/readme.md @@ -1,11 +1,11 @@ ![WLED logo](https://raw.githubusercontent.com/Aircoookie/WLED/development/wled_logo.png) -## Welcome to my project WLED! (v0.8.1-dev) +## Welcome to my project WLED! (v0.8.1) A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control NeoPixel (WS2812B) LEDs! ### Features: -- WS2812FX library integrated for over 70 special effects +- WS2812FX library integrated for 75 special effects - FastLED noise effects and palettes - Customizable Mobile and desktop UI with color and effect controls - Settings page - configuration over network diff --git a/wled00/NpbWrapper.h b/wled00/NpbWrapper.h index db469816..9ea3c980 100644 --- a/wled00/NpbWrapper.h +++ b/wled00/NpbWrapper.h @@ -2,7 +2,7 @@ #ifndef NpbWrapper_h #define NpbWrapper_h -//#define WORKAROUND_ESP32_BITBANG +#define WORKAROUND_ESP32_BITBANG //see https://github.com/Aircoookie/WLED/issues/2 for flicker free ESP32 support #define LEDPIN 2 //strip pin. Any for ESP32, gpio2 is recommended for ESP8266 @@ -14,6 +14,7 @@ #ifdef ARDUINO_ARCH_ESP32 #ifdef WORKAROUND_ESP32_BITBANG #define PIXELMETHOD NeoEsp32BitBangWs2813Method + #pragma message "Software BitBang is used because of your NeoPixelBus version. Look in NpbWrapper.h for instructions on how to mitigate flickering." #else #define PIXELMETHOD NeoEsp32RmtWS2813_V3Method #endif diff --git a/wled00/WS2812FX.cpp b/wled00/WS2812FX.cpp index 1e76594d..84f3bea4 100644 --- a/wled00/WS2812FX.cpp +++ b/wled00/WS2812FX.cpp @@ -2484,6 +2484,7 @@ uint16_t WS2812FX::mode_noise16_4(void) } +//based on https://gist.github.com/kriegsman/5408ecd397744ba0393e uint16_t WS2812FX::mode_colortwinkle() { CRGB fastled_col, prev; @@ -2517,7 +2518,7 @@ uint16_t WS2812FX::mode_colortwinkle() { int i = SEGMENT.start + random16(SEGMENT_LENGTH); if(getPixelColor(i) == 0) { - fastled_col = ColorFromPalette( currentPalette, random8(), 64, NOBLEND); + fastled_col = ColorFromPalette(currentPalette, random8(), 64, NOBLEND); _locked[i] = true; setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); return 20; //only spawn 1 new pixel per frame @@ -2526,3 +2527,22 @@ uint16_t WS2812FX::mode_colortwinkle() } return 20; } + + +//Calm effect, like a lake at night +uint16_t WS2812FX::mode_lake() { + uint8_t sp = SEGMENT.speed/10; + int wave1 = beatsin8(sp +2, -64,64); + int wave2 = beatsin8(sp +1, -64,64); + uint8_t wave3 = beatsin8(sp +2, 0,80); + CRGB fastled_col; + + for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i++) + { + int index = cos8((i*15)+ wave1)/2 + cubicwave8((i*23)+ wave2)/2; + uint8_t lum = (index > wave3) ? index - wave3 : 0; + fastled_col = ColorFromPalette(currentPalette, map(index,0,255,0,240), lum, LINEARBLEND); + setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + } + return 33; +} diff --git a/wled00/WS2812FX.h b/wled00/WS2812FX.h index 30f44b4f..281fdbd3 100644 --- a/wled00/WS2812FX.h +++ b/wled00/WS2812FX.h @@ -83,7 +83,7 @@ #define REVERSE (uint8_t)0x80 #define IS_REVERSE ((SEGMENT.options & REVERSE) == REVERSE) -#define MODE_COUNT 75 +#define MODE_COUNT 76 #define FX_MODE_STATIC 0 #define FX_MODE_BLINK 1 @@ -161,6 +161,7 @@ #define FX_MODE_NOISE16_3 72 #define FX_MODE_NOISE16_4 73 #define FX_MODE_COLORTWINKLE 74 +#define FX_MODE_LAKE 75 class WS2812FX { typedef uint16_t (WS2812FX::*mode_ptr)(void); @@ -264,6 +265,7 @@ class WS2812FX { _mode[FX_MODE_NOISE16_3] = &WS2812FX::mode_noise16_3; _mode[FX_MODE_NOISE16_4] = &WS2812FX::mode_noise16_4; _mode[FX_MODE_COLORTWINKLE] = &WS2812FX::mode_colortwinkle; + _mode[FX_MODE_LAKE] = &WS2812FX::mode_lake; _brightness = DEFAULT_BRIGHTNESS; _running = false; @@ -438,6 +440,7 @@ class WS2812FX { mode_noise16_3(void), mode_noise16_4(void), mode_colortwinkle(void), + mode_lake(void), mode_lightning(void); private: diff --git a/wled00/data/index.htm b/wled00/data/index.htm index b0640d44..954c1901 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -192,10 +192,10 @@ function SwFX(s) { var n=Cf.TX.selectedIndex+s; - if (n==-1||n==75) return; + if (n==-1||n==76) return; Cf.TX.selectedIndex =n; if (n < 0) Cf.TX.selectedIndex = 0; - if (n > 74) Cf.TX.selectedIndex = 65; + if (n > 75) Cf.TX.selectedIndex = 65; GX(); } function TgHSB() @@ -661,6 +661,7 @@ +

Set secondary color to diff --git a/wled00/data/index_mobile.htm b/wled00/data/index_mobile.htm index 3eb7e5c8..135eb2bf 100644 --- a/wled00/data/index_mobile.htm +++ b/wled00/data/index_mobile.htm @@ -433,7 +433,8 @@
  • Noise 16 2
  • Noise 16 3
  • Noise 16 4
  • -
  • Colortwinkle
  •   +
  • Colortwinkle
  • +
  • Colortwinkle
  •  
  • Go to top
  •  

    FastLED Palette (Effects 56-73)

  • Default
  • diff --git a/wled00/htmls00.h b/wled00/htmls00.h index 485d3d7e..80ca6bb4 100644 --- a/wled00/htmls00.h +++ b/wled00/htmls00.h @@ -3,7 +3,7 @@ */ #ifndef WLED_DISABLE_MOBILE_UI const char PAGE_indexM[] PROGMEM = R"=====( -WLED 0.8.1
    Loading WLED UI...

    WLED

    FX 2nd Color

    Sync Lights

    White Channel

    Master Brightness



     
     
     
     

     
     
     
     

    Edit Presets

    Presets

    1
    2
    3
    4

    5
    6
    7
    8

    9
    10
    11
    12

    13
    14
    15
    16

    Cycle Mode

    Cycle Range

    Preset Duration

    Color Transition

    FX Speed

    FX Intensity

    + )====="; //head1 (css) @@ -123,7 +123,7 @@ Effect Panel



    -

    Set secondary color to diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 0ad3f703..2bf62730 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -63,7 +63,7 @@ //version code in format yymmddb (b = daily build) -#define VERSION 1811041 +#define VERSION 1811071 char versionString[] = "0.8.1"; diff --git a/wled00/wled05_init.ino b/wled00/wled05_init.ino index a41fff78..dd53e8ee 100644 --- a/wled00/wled05_init.ino +++ b/wled00/wled05_init.ino @@ -260,7 +260,8 @@ void getBuildInfo() oappendi(buttonPin); oappend("\r\nstrip-pin: gpio"); oappendi(LEDPIN); - oappend("\r\nbuild-type: dev\r\n"); + oappend("\r\nbrand: wled\r\n"); + oappend("\r\nbuild-type: src\r\n"); }