I’m using the FastLED library and measuring FRAME rates with my oscilloscope. I’m using an Arduino Uno configured as 1 controller with a single LED=WS2811 (i.e. NUM_LEDS=1) . Examination of the waveform on the DATA signal, shows a single frame time of 29.2us , which does not include the time between frames. Within this 29.2us time interval are 24 square waves with each square wave ~1.25us in duration. I don’t understand why it takes 24 square waves to light a single LED? The WS2811 data sheet says it should only take at most 2.5us and should be a single square wave (excluding the RESET time). Can someone please explain this discrepancy? Is this a limitation of the Arduino Uno? Would I be able to get a faster frame rate using a faster Arduino? Thanks for your help.
he WS2811 data sheet says it should only take at most 2.5us and should be a single square wave
No it doesn’t. The data sheet just shows what pulse represents a one and a zero and a start frame and end frame.
For one LED you need 24 data pulses, eight each for the red, green and blue components of the LED’s colour.
Would I be able to get a faster frame rate using a faster Arduino?
No, a faster Arduino would still have to pulse the LEDs at the rate they want to be pulsed at.
Thank you. That makes sense.
If you need a faster frame rate, you should be able to get some improvement with APA102 or similar - they use 2 lines for communication, clock and data, and you can use the SPI hardware for it.... I don't know if FastLED supports this, though.