Attempted to mitigate flickering on ESP32
Replaced broken effect 34, now a quad-color running effect Added new binaries and guide Updated readme
This commit is contained in:
parent
e83ea97a68
commit
45430aafdc
18
bin/readme.md
Normal file
18
bin/readme.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
### What binary should I choose?
|
||||||
|
|
||||||
|
Currently WLED supports the ESP8266 and a very early, experimental version of ESP32 support.
|
||||||
|
Be sure to choose the correct binary for your platform and LED type.
|
||||||
|
|
||||||
|
- Do you have a standard RGB WS2812B NeoPixel strip?
|
||||||
|
--> Use wled05dev_XXXXXXX_RGB_PLATFORM.bin
|
||||||
|
|
||||||
|
- Do you have an RGBW SK6812 strip (half of the LED is white)?
|
||||||
|
--> Use wled05dev_XXXXXXX_RGBW_PLATFORM.bin
|
||||||
|
|
||||||
|
- Do you have a Cronixie clock set by Diamex?
|
||||||
|
--> Use wled05dev_XXXXXXX_CRONIXIE_PLATFORM.bin
|
||||||
|
|
||||||
|
|
||||||
|
### What about wled03 and wled04?
|
||||||
|
|
||||||
|
These are legacy releases only for the ESP8266. They don't include the latest features and may have unfixed bugs - only use them if the new wled05dev test builds don't work for you!
|
BIN
bin/wled05dev_1801102_CRONIXIE_ESP32_EXPERIMENTAL.bin
Normal file
BIN
bin/wled05dev_1801102_CRONIXIE_ESP32_EXPERIMENTAL.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/wled05dev_1801102_RGBW_ESP32_EXPERIMENTAL.bin
Normal file
BIN
bin/wled05dev_1801102_RGBW_ESP32_EXPERIMENTAL.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
40
readme.md
40
readme.md
@ -1,10 +1,11 @@
|
|||||||
## Welcome to my project WLED!
|
## Welcome to my project WLED!
|
||||||
|
|
||||||
WLED is a basic, fast and (relatively) secure implementation of a ESP8266 webserver to control Neopixel (WS2812B) leds
|
WLED is a fast and (relatively) secure implementation of an ESP8266 webserver to control NeoPixel (WS2812B) LEDs!
|
||||||
|
Now also with experimental ESP32 support.
|
||||||
|
|
||||||
Uses ESP Arduino core version 2.3.0 (latest as of December 2017).
|
Uses ESP Arduino core version 2.3.0 (latest as of December 2017).
|
||||||
|
|
||||||
### Features: (V0.4)
|
### Features: (V0.5dev)
|
||||||
- RGB, HSB, and brightness sliders
|
- RGB, HSB, and brightness sliders
|
||||||
- Settings page - configuration over network
|
- Settings page - configuration over network
|
||||||
- Access Point and station mode - automatic failsafe AP
|
- Access Point and station mode - automatic failsafe AP
|
||||||
@ -16,13 +17,13 @@ Uses ESP Arduino core version 2.3.0 (latest as of December 2017).
|
|||||||
- Notifier function (multiple ESPs sync color via UDP broadcast)
|
- Notifier function (multiple ESPs sync color via UDP broadcast)
|
||||||
- Support for power pushbutton
|
- Support for power pushbutton
|
||||||
- Custom Theater Chase
|
- Custom Theater Chase
|
||||||
- Full OTA software update capability
|
- Full OTA software update capability (only ESP8266)
|
||||||
- Password protected OTA page for added security (OTA lock)
|
- Password protected OTA page for added security (OTA lock)
|
||||||
- Alexa smart home device server
|
- Alexa smart home device server (including dimming)
|
||||||
- NTP and experimental analog clock function
|
- NTP and experimental analog clock function
|
||||||
|
- Support for the Cronixie Clock kit by Diamex
|
||||||
- Realtime UDP Packet Control (WARLS) possible
|
- Realtime UDP Packet Control (WARLS) possible
|
||||||
- client HTML controlled
|
- Client HTML UI controlled
|
||||||
- Edit page. Change html and other files via OTA. (needs to be enabled in source)
|
|
||||||
|
|
||||||
### Compile settings:
|
### Compile settings:
|
||||||
- Board: WeMos D1 mini (untested with other HW, should work though)
|
- Board: WeMos D1 mini (untested with other HW, should work though)
|
||||||
@ -30,39 +31,20 @@ Uses ESP Arduino core version 2.3.0 (latest as of December 2017).
|
|||||||
- Flash size : 4MB (3MB SPIFFS)
|
- Flash size : 4MB (3MB SPIFFS)
|
||||||
- Upload speed: 921600
|
- Upload speed: 921600
|
||||||
|
|
||||||
### Quick start guide:
|
### Quick start guide and documentation:
|
||||||
|
|
||||||
- If you do not plan to change the software, you can use the supplied binary files instead-
|
See the [wiki](https://github.com/Aircoookie/WLED/wiki)!
|
||||||
Just flash a [basic HTTP OTA updater](https://github.com/Aircoookie/ESP8266MinimalHTTPUpdater) sketch and upload the bin!
|
|
||||||
|
|
||||||
1. Connect a WS2812B RGB led strip to GPIO2. Optionally connect a NO-pushbutton to GPIO0 (internal pull-up) and ground.
|
|
||||||
|
|
||||||
2. Follow a guide to setup your Arduino client (I am using version 1.8.1) with the ESP8266 libraries.
|
|
||||||
For current compiles I use version 2.3.0.
|
|
||||||
|
|
||||||
3. In file "wled00.ino", you should change the access point and OTA update passphrases for added security (you can change them later, this is just the "factory default"). Flash the sketch.
|
|
||||||
You will need to install the NeoPixelBus library by Makuna. All other dependencies are included with WLED for convenience.
|
|
||||||
|
|
||||||
5. Connect to automatically started WiFi access point "WLED-AP" using default passwort "wled1234". Go to the IP "192.168.4.1".
|
|
||||||
|
|
||||||
6. Click on the cog icon to edit settings like connecting the module to your home WiFi.
|
|
||||||
|
|
||||||
7. Have fun with the software!
|
|
||||||
|
|
||||||
### Advanced module control via HTTP requests API or UDP:
|
|
||||||
|
|
||||||
See the [wiki](https://github.com/Aircoookie/WLED/wiki/HTTP-request-API)!
|
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
||||||
Licensed under the MIT license
|
Licensed under the MIT license
|
||||||
Uses libraries:
|
Uses libraries:
|
||||||
ESP8266 Arduino Core
|
ESP8266/ESP32 Arduino Core
|
||||||
NeoPixelBus by Makuna
|
NeoPixelBus by Makuna
|
||||||
[WS2812FX](https://github.com/kitesurfer1404/WS2812FX) by kitesurfer1404 (Aircoookie fork)
|
[WS2812FX](https://github.com/kitesurfer1404/WS2812FX) by kitesurfer1404 (Aircoookie fork)
|
||||||
Time library
|
Time library
|
||||||
Timezone library by JChristensen
|
Timezone library by JChristensen
|
||||||
arduino-esp8266-alexa-multiple-wemo-switch by kakopappa
|
Alexa code based on arduino-esp8266-alexa-multiple-wemo-switch by kakopappa
|
||||||
|
|
||||||
Uses Linearicons by Perxis! (link in settings page)
|
Uses Linearicons by Perxis! (link in settings page)
|
||||||
|
|
||||||
|
@ -990,43 +990,38 @@ void WS2812FX::mode_chase_rainbow_white(void) {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Eye (broken)
|
* Red - Amber - Green - Blue lights running
|
||||||
*/
|
*/
|
||||||
void WS2812FX::mode_icu(void) {
|
void WS2812FX::mode_colorful(void) {
|
||||||
uint16_t dest = _counter_mode_step & 0xFFFF;
|
uint32_t cols[]{0x00FF0000,0x00EEBB00,0x0000EE00,0x000077CC,0x00FF0000,0x00EEBB00,0x0000EE00};
|
||||||
|
int i = 0;
|
||||||
|
for (i; i < _led_count-3 ; i+=4)
|
||||||
|
{
|
||||||
|
if(!_locked[i])setPixelColor(i, cols[_counter_mode_step]);
|
||||||
|
if(!_locked[i+1])setPixelColor(i+1, cols[_counter_mode_step+1]);
|
||||||
|
if(!_locked[i+2])setPixelColor(i+2, cols[_counter_mode_step+2]);
|
||||||
|
if(!_locked[i+3])setPixelColor(i+3, cols[_counter_mode_step+3]);
|
||||||
|
}
|
||||||
|
i+=4;
|
||||||
|
if(i < _led_count && !_locked[i])
|
||||||
|
{
|
||||||
|
setPixelColor(i, cols[_counter_mode_step]);
|
||||||
|
|
||||||
setPixelColor(dest, _color);
|
if(i+1 < _led_count && !_locked[i+1])
|
||||||
setPixelColor(dest + _led_count/2, _color);
|
{
|
||||||
|
setPixelColor(i+1, cols[_counter_mode_step+1]);
|
||||||
|
|
||||||
if(_mode_color == dest) { // pause between eye movements
|
if(i+2 < _led_count && !_locked[i+2])
|
||||||
if(random(6) == 0) { // blink once in a while
|
{
|
||||||
setPixelColor(dest, _color_sec);
|
setPixelColor(i+2, cols[_counter_mode_step+2]);
|
||||||
setPixelColor(dest + _led_count/2, _color_sec);
|
}
|
||||||
show();
|
|
||||||
_mode_delay = 200;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
_mode_color = random(_led_count/2);
|
|
||||||
_mode_delay = 1000 + random(2000);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setPixelColor(dest, _color_sec);
|
|
||||||
setPixelColor(dest + _led_count/2, _color_sec);
|
|
||||||
|
|
||||||
if(_mode_color > _counter_mode_step) {
|
|
||||||
_counter_mode_step++;
|
|
||||||
dest++;
|
|
||||||
} else if (_mode_color < _counter_mode_step) {
|
|
||||||
_counter_mode_step--;
|
|
||||||
dest--;
|
|
||||||
}
|
|
||||||
|
|
||||||
setPixelColor(dest, _color);
|
|
||||||
setPixelColor(dest + _led_count/2, _color);
|
|
||||||
show();
|
show();
|
||||||
|
if (_speed > SPEED_MIN) _counter_mode_step++; //static if lowest speed
|
||||||
_mode_delay = 100 + ((100 * (uint32_t)(SPEED_MAX - _speed)) / _led_count);
|
if (_counter_mode_step >3) _counter_mode_step = 0;
|
||||||
|
_mode_delay = 100 + (25 * (uint32_t)(SPEED_MAX - _speed));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2037,8 +2032,8 @@ void WS2812FX::show()
|
|||||||
{
|
{
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
portDISABLE_INTERRUPTS();
|
portDISABLE_INTERRUPTS();
|
||||||
NeoPixelBrightnessBus::Show();
|
|
||||||
delay(1);
|
delay(1);
|
||||||
|
NeoPixelBrightnessBus::Show();
|
||||||
portENABLE_INTERRUPTS();
|
portENABLE_INTERRUPTS();
|
||||||
#else
|
#else
|
||||||
NeoPixelBrightnessBus::Show();
|
NeoPixelBrightnessBus::Show();
|
||||||
|
@ -1,5 +1,19 @@
|
|||||||
//#define RGBW
|
//#define RGBW
|
||||||
#define PIN 2 //strip pin. Only for ESP32
|
#define PIN 2 //strip pin. Only change for ESP32
|
||||||
|
|
||||||
|
//automatically uses the right driver method for each platform
|
||||||
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
|
#define PIXELMETHOD NeoWs2813Method
|
||||||
|
#else
|
||||||
|
#define PIXELMETHOD NeoEsp8266Uart800KbpsMethod
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//selects correct feature for RGB/RGBW
|
||||||
|
#ifdef RGBW
|
||||||
|
#define PIXELFEATURE NeoGrbwFeature
|
||||||
|
#else
|
||||||
|
#define PIXELFEATURE NeoGrbFeature
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
WS2812FX.h - Library for WS2812 LED effects.
|
WS2812FX.h - Library for WS2812 LED effects.
|
||||||
@ -86,7 +100,7 @@
|
|||||||
#define FX_MODE_CHASE_FLASH 31
|
#define FX_MODE_CHASE_FLASH 31
|
||||||
#define FX_MODE_CHASE_FLASH_RANDOM 32
|
#define FX_MODE_CHASE_FLASH_RANDOM 32
|
||||||
#define FX_MODE_CHASE_RAINBOW_WHITE 33
|
#define FX_MODE_CHASE_RAINBOW_WHITE 33
|
||||||
#define FX_MODE_ICU 34
|
#define FX_MODE_COLORFUL 34
|
||||||
#define FX_MODE_TRAFFIC_LIGHT 35
|
#define FX_MODE_TRAFFIC_LIGHT 35
|
||||||
#define FX_MODE_COLOR_SWEEP_RANDOM 36
|
#define FX_MODE_COLOR_SWEEP_RANDOM 36
|
||||||
#define FX_MODE_RUNNING_COLOR 37
|
#define FX_MODE_RUNNING_COLOR 37
|
||||||
@ -111,35 +125,12 @@
|
|||||||
#define FX_MODE_CC_BLINK 56
|
#define FX_MODE_CC_BLINK 56
|
||||||
#define FX_MODE_CC_RANDOM 57
|
#define FX_MODE_CC_RANDOM 57
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
|
||||||
#ifdef RGBW
|
|
||||||
class WS2812FX : public NeoPixelBrightnessBus<NeoGrbwFeature, Neo800KbpsMethod> {
|
|
||||||
#else
|
|
||||||
class WS2812FX : public NeoPixelBrightnessBus<NeoGrbFeature, Neo800KbpsMethod> {
|
|
||||||
#endif
|
|
||||||
typedef void (WS2812FX::*mode_ptr)(void);
|
|
||||||
|
|
||||||
public:
|
class WS2812FX : public NeoPixelBrightnessBus<PIXELFEATURE, PIXELMETHOD> {
|
||||||
#ifdef RGBW
|
|
||||||
WS2812FX(uint16_t n) : NeoPixelBrightnessBus<NeoGrbwFeature, Neo800KbpsMethod>(n, PIN) {
|
|
||||||
#else
|
|
||||||
WS2812FX(uint16_t n) : NeoPixelBrightnessBus<NeoGrbFeature, Neo800KbpsMethod>(n, PIN) {
|
|
||||||
#endif
|
|
||||||
#else //ESP8266
|
|
||||||
#ifdef RGBW
|
|
||||||
class WS2812FX : public NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp8266Uart800KbpsMethod> {
|
|
||||||
#else
|
|
||||||
class WS2812FX : public NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod> {
|
|
||||||
#endif
|
|
||||||
typedef void (WS2812FX::*mode_ptr)(void);
|
typedef void (WS2812FX::*mode_ptr)(void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#ifdef RGBW
|
WS2812FX(uint16_t n) : NeoPixelBrightnessBus<PIXELFEATURE, PIXELMETHOD>(n,PIN) {
|
||||||
WS2812FX(uint16_t n) : NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp8266Uart800KbpsMethod>(n) {
|
|
||||||
#else
|
|
||||||
WS2812FX(uint16_t n) : NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod>(n) {
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
_mode[FX_MODE_STATIC] = &WS2812FX::mode_static;
|
_mode[FX_MODE_STATIC] = &WS2812FX::mode_static;
|
||||||
_mode[FX_MODE_BLINK] = &WS2812FX::mode_blink;
|
_mode[FX_MODE_BLINK] = &WS2812FX::mode_blink;
|
||||||
_mode[FX_MODE_BREATH] = &WS2812FX::mode_breath;
|
_mode[FX_MODE_BREATH] = &WS2812FX::mode_breath;
|
||||||
@ -174,7 +165,7 @@ class WS2812FX : public NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart800Kb
|
|||||||
_mode[FX_MODE_CHASE_FLASH] = &WS2812FX::mode_chase_flash;
|
_mode[FX_MODE_CHASE_FLASH] = &WS2812FX::mode_chase_flash;
|
||||||
_mode[FX_MODE_CHASE_FLASH_RANDOM] = &WS2812FX::mode_chase_flash_random;
|
_mode[FX_MODE_CHASE_FLASH_RANDOM] = &WS2812FX::mode_chase_flash_random;
|
||||||
_mode[FX_MODE_CHASE_RAINBOW_WHITE] = &WS2812FX::mode_chase_rainbow_white;
|
_mode[FX_MODE_CHASE_RAINBOW_WHITE] = &WS2812FX::mode_chase_rainbow_white;
|
||||||
_mode[FX_MODE_ICU] = &WS2812FX::mode_icu;
|
_mode[FX_MODE_COLORFUL] = &WS2812FX::mode_colorful;
|
||||||
_mode[FX_MODE_TRAFFIC_LIGHT] = &WS2812FX::mode_traffic_light;
|
_mode[FX_MODE_TRAFFIC_LIGHT] = &WS2812FX::mode_traffic_light;
|
||||||
_mode[FX_MODE_COLOR_SWEEP_RANDOM] = &WS2812FX::mode_color_sweep_random;
|
_mode[FX_MODE_COLOR_SWEEP_RANDOM] = &WS2812FX::mode_color_sweep_random;
|
||||||
_mode[FX_MODE_RUNNING_COLOR] = &WS2812FX::mode_running_color;
|
_mode[FX_MODE_RUNNING_COLOR] = &WS2812FX::mode_running_color;
|
||||||
@ -337,7 +328,7 @@ class WS2812FX : public NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart800Kb
|
|||||||
mode_chase_flash(void),
|
mode_chase_flash(void),
|
||||||
mode_chase_flash_random(void),
|
mode_chase_flash_random(void),
|
||||||
mode_chase_rainbow_white(void),
|
mode_chase_rainbow_white(void),
|
||||||
mode_icu(void),
|
mode_colorful(void),
|
||||||
mode_traffic_light(void),
|
mode_traffic_light(void),
|
||||||
mode_color_sweep_random(void),
|
mode_color_sweep_random(void),
|
||||||
mode_running_color(void),
|
mode_running_color(void),
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include "WS2812FX.h"
|
#include "WS2812FX.h"
|
||||||
|
|
||||||
//version in format yymmddb (b = daily build)
|
//version in format yymmddb (b = daily build)
|
||||||
#define VERSION 1801101
|
#define VERSION 1801102
|
||||||
const String versionName = "WLED 0.5dev";
|
const String versionName = "WLED 0.5dev";
|
||||||
|
|
||||||
//AP and OTA default passwords (change them!)
|
//AP and OTA default passwords (change them!)
|
||||||
|
Loading…
Reference in New Issue
Block a user