Can't seem to get FastLED working

Status
Not open for further replies.

Grimreepr

New member
I had an Arduino UNO working on a single strand of lights, (150 WS2811), but the transitions were way too slow. Even without delays inserted into the code, the led transitions were nowhere near the speed I needed them to be.

Then I saw the Teensy 4.0 board that was 600 MHz instead of the Arduino's 16MHz. Anything I read indicated that it was 100% compatible with existing Arduino code. Once I got the board in, plugged it in and tried to run the EXACT code that the Arduino UNO ran, everything went for shit. Instead of faster transitions, less than half the lights did anything, and the ones that DID do something just flashed white. I tried setting the max refresh rate, but then I was no further ahead than I was with the Arduino UNO. Then I tried using the OCTOWS2811 library, but that too was useless since I am only trying to control a single string of lights.

No matter what I do, I can't get FastLED to work properly on the Teensy 4.0. Even the examples that come with the Teensyduino don't work properly. All I need is a fast controller for a single strand of 150 lights that can cycle the whole strand in about 1/10th of a second. FastLED can't do it, and OCTOWS2811 isn't for single strands. So what or where do i go now?
 
less than half the lights did anything, and the ones that DID do something just flashed white.

Maybe you're using an older version of Teensyduino or FastLED? Timing bugs were fixed some time ago, so you should check that you're running Teensyduino 1.56. In Arduino, click Help > About to see which version is installed.

This problem, where the LEDs flicker bright white, sounds like that timing bug which was fixed. (but of course, we can't see a photo or video or the code you're using or what's on your screen, or software versions, or even if you use Mac, Windows or Linux... so I hope you can understand this answer is based on guesswork)

Also, in File > Preferences, turn on verbose info during compilation. Then when you compile, Arduino will show the exact pathname of the libraries. Look for the FastLED library path and check it is {Arduino}/hardware/teensy/avr/libraries/FastLED. A common problem we see is people will have a (bad) copy in a location like {Documents}/Arduino/libraries/FastLED which overrides the copy Teensyduino installed, which can be super frustrating when nothing you do to update makes any difference because Arduino keeps using the (bad) copy from a different location. If you have an old copy that's overriding the known-good one in 1.56, looking at these pathnames can make that situation clear.


FastLED can't do it, and OCTOWS2811 isn't for single strands. So what or where do i go now?

FastLED does work if you have the latest version.

But if you want an alternative, you could use WS2812Serial which does a single pin.

Or you could use OctoWS2811 with a custom pin list, which allows it to control any combination of pins. In Arduino, click File > Examples > OctoWS2811 > Teensy4_PinList.

WS2812Serial or OctoWS2811 are non-blocking, which gives best performance.

You can also tell FastLED to make use of WS2812Serial or OctoWS2811 (but as far as I know, only the fixed 8 pins... FastLED doesn't yet support the pinlist feature). If you want FastLED's fancy features, using these non-blocking libraries from FastLED gives the very best performance, because they don't hog the CPU like the normal FastLED driver.


If you're still having problems, consider showing us the actual code and screenshots and photos, so we can see what you're really doing. We can help you much better when we have less guesswork about what you're really doing.
 
Last edited:
Status
Not open for further replies.
Back
Top