MacOSX 10.11.2 Arduino IDE 1.6.9 ESP8266 2.2.0 & also tried 2.3.0 Pulled the latest commit for FastLED from github about 30 minutes ago.
Boards used: NodeMCU 1.0 and Wemos D1 Mini
CPU: 80Mhz and 160Mhz
Is anyone else running into issues with FastLED and ESP8266 boards? I uploaded some new code to a project I made for a friend and everything started acting strange as if the data was being corrupted. I uploaded demoreel100 and the same flickering data corruption issue occurs. So I decided to try a new strip of LEDs and a new board. Same thing happens so then I decided to upload the Adafruit strand test code and everything works just fine. Another strange behavior with the FastLED code is that even if the number of LEDs is set to 15 other LEDs past that will light up. I uploaded the code to an Uno board and everything works just fine.
I can share my original code if it is necessary but since the issue occurs with the DemoReel100 code I don’t feel it is related to my code.
I’ve tried with SK6812 and WS2812B
I’ll check (traveling right now) - but I just used a dozen esp8266’s driving apa102 and ws2811/ws2812’s (in chains of up to 300) without issues
I can upload a video if it would help you and also I have some APA102 LEDs that I will test with.
Works just fine with APA102 LEDs. Hopefully that helps you narrow it down.
Video showing the issue https://youtu.be/WM3qSX19BqQ. Board used in video was NodeMCU 1.0 with SK6812 LEDs. Code was set for 5 LEDs but notice how it eventually turns 10 LEDs on. Strip in the back was showing the same code with 15 SK6812 LEDs on an Uno board working just fine.
I have a theory about what’s going on - can you add the following line to your program before you include FastLED.h:
#define FASTLED_ALLOW_INTERRUPTS 0
The timing for how long interrupts should be allowed to run, combined with how long of a wait time gap there should be between frames may be different for the sk6812 than the ws2812/ws2811’s
Thanks Daneil. Your theory was correct and the demoreel is working normally (at least on the SK6812 strip). I do find it odd that the Uno was handling things just fine though. Is it due to the higher clock speeds on the ESP8266 boards?
No - interrupts are always disabled on AVR
I’ll have to see if I can track down the timings for the sk6812’s
It doesn’t - this is something the data sheets often lie about - I’ll need to do some testing to get the actual timings in place.
(Also I have a local archive of PDF files of all the chipsets I support - some of them in both English and Chinese
Just check your board (Wemos D1 Mini).
I purchased one and tested blink demo code with on board led.
I found High value is Low and Low value is High when I changed delay value to 300 High and Low value 1000. It worked opposite High time 1000 and Low time 300 ms.