I just installed a long WS2813 strip in my ceiling (1100 LEDs) and I am currently driving them with an Arduino Mega and the FastLED library.
The problem is that the refresh rate for the animations is VERY slow, and I was wondering: What microcontroller do you recommend for this specific case? I’ve seen a lot of people using the Teensy 3.2, do you think using it will make a big difference?
I’d prefer not to drive them in paralell since it’s a single strip and I want to avoid adding even more wire (I have a lot for the power already). Do you think I can get away with driving all of these LEDs with a single output at a decent framerate?
Hello @Matto_Godoy the refresh rate is linked to the hardware refresh rate of the leds. For instance for ws2812b it’s 30us per leds hence 33ms for 1100leds => 30fps. Now a faster cpu could improve the ‘calculation’ of the next image but in no way the execution time of the fastled.show(). It’s hardware related. If you want to have faster refresh rate with only using one pin you should go to clock driven leds. In this case the refresh rate is linked to the speed at which you send the data.
Oh man, I was afraid that was the reason… Thanks for clarifying that
In that case, dividing the strip in various shorter ones and connecting them in parallel should improve the framerate, right? I wanted to avoid that, but I guess it’ll be my only option.
Great! Thank you for that.
One last question: I’ve read that for these LEDs the signal wire has to be very short. Is that true?
Because in my case I would have to have signal wires as long as 10 meters so I can keep the entire strip working with a single controller (it’s all around the ceiling).
Any ideas?
@Matto_Godoy it doesn’t have to be short but i that case you’ll need to use ‘a power booster’ for the signal I use 74hc245 (it’s a level shifter )to do this. Otherwise your signal will drop. For 10meters I suggest you put one next to your board then one after 3m and another one after 3m … this way you will distribute correctly the signal. Do not forget to put a couple hundred ohms resistor in serie attached as close as you can to the ledstrip.
This is a teensy 3.2 with 1600 pixels @25 FPS using fastLED octows2811 (parallel out). Teensy uses rj45/cat6 to send the signals . 10 meters is no problem for signal runs using the level shifter 100 ohm resistors (see octows2811 on the teensy site). This setup is capable controlling 5440 pixels receiving data over wiznet Ethernet module
To drive long lines a good and cheap option is to place one pixel close to your micro (the so-called ‘null pixel’), and let that drive the long line. 10m is no problems for that.
Re refresh rate – if you parallel n lengths, then you see your pattern repeated n times along the length.
Another option – use a Teensey and OctoWS2811 board. This lets you drive up to 8 individual segments whichever way you want – eg as a single 1100 LED string (you just have to run n additional signal lines and break the existing signal line n-1 times).
Doing this on a Teensey I can drive 2500 individual LEDs at > 100 fps.
Using a Teensey you can also do realtime FFT using the builtin DSP and Paul’s audio library, which means you can do realtime spectrum analyser etc.
@Yves_BAZIN
Check out the Teensey audio library (https://www.pjrc.com/teensy/td_libs_Audio.html), specifically the audio design tool & the FFT analyse blocks. Don’t know if porting that would be easy as it is very hardware specific (and relies on a hardware DSP).
Teensy 3.2 and the OCTO adaptor board will get you much of the way there. IT allows the output to be sent via 8 parallel streams which is a goodly step forward…