Hello community,
I am very grateful to all of you, as well as the folks who write and maintain FastLED. It seems like it might save my bacon!
I am still having trouble with refresh speed when driving lots of LEDs and wondering if anyone can suggest hardware or software options.
I am using an Arduino Mega 2560 to drive 16 x 144 LED/m neopixel (knockoff) WS2812 strips, using FastLED 3.1.08. I’m using the Arduino 1.8.5 on a Mac.
The code (below) turns on two pixels at a time on each strip, and the ‘on’ pixels move up and down in a sine wave. Right now, all 16 strips are doing the same thing. Ultimately they will have different sine wave amplitude and phase, so I can’t simply mirror them off the same pin.
When I drive 1x 144 LED strip, the loop with FastLED.show() in it runs every
With 16 strips, it’s about 75ms per loop, so it looks quite jerky (not smooth). I can try to upload video if that would help.
Here is the code I"m running.
Would a (or two) Teensy help with this? Any options to make the sw run faster?Any suggestions welcome!
A teensy 3.x will solve the problem, you can use 16 way parallel output, so you can pretty much drive all 16 strips in the same amount of time that the mega takes to drive one strip.
Depending on your strips, you may need a level shifter. Normally you can get away without one.
It takes 30us to write a single leds worth of data - so 144 leds would take 4.3ms, while 16 strips of 144 would take nearly 70ms just to write the raw data out. The only way around that is using something that can do parallel output, like the teensy.
Very helpful - thanks. I am wondering if this (16channel parallel output) will work with a Teensy 3.5?
The OctoWS2811 docs say you can have 16 channel parallel output on Teensy 3/3.1 (see Daniel Garcia’s link above) but I also see (on http://pjrc.com) “Teensy 3.2 is a direct, 100% compatible replacement for Teensy 3.1.” So do the later Teensys also support 16 channel output? Thanks!