What is the fastest speed I can get with and arduino UNO using an

What is the fastest speed I can get with and arduino UNO using an LPS8806 strip? I can get about 300 LEDS/sec with my non optimized code.

I’m a little confused. How many LEDs are there on your strip?

sorry, i did not mention I have 300 leds, total, in a 5 M strip. it is in a 18 x 18 raster, serially connected.

I think we can get well over 200-250 thousand rgb led updates/second with the lpd8806 on an arduino, but I haven’t benchmarked in a while. With the teensy 3 I think I got closed to a million rgb led updates/second. (Maybe closer to 900k).

I should benchmark again, though.

I am quite confused. I am getting about 1k leds/sec (much much lower speed) using the following 4 lines adapted from the examples folder of the library.

for(int iLed = 0; iLed < NUM_LEDS; iLed++)
{

memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));

      leds[iLed].r = 128;

  LEDS.show();

Any suggestion to get 90k leds/sec instead of 1 k /sec ?

What version of the arduino software are you using? What does your setup function look like? How are you timing the led updates? How many LEDs in the strip that you have?

Also - seeing your entire code will help troubleshoot.

SW/HW:
Aduino IDE 1.0.5
UNOR3

Here is the entire benchmark i am using:

I get about 100 leds/sec:

#include “FastSPI_LED2.h”
#define NUM_LEDS 252
CRGB leds[NUM_LEDS];

void setup()
{
LEDS.setBrightness(64);
LEDS.addLeds(leds, NUM_LEDS);
}

void loop()
{
for(int iLed = 0; iLed < NUM_LEDS; iLed++)
{
memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
leds[iLed].r = 128;
LEDS.show();
}
}

Each time you call show, it has to send out data for all 252 of your LEDs, so, right now, if you are seeing it get to the 100th led in a second, that involves writing out 25,200 LED updates in a single second. The arduino’s hardware spi takes about 4us/led, though it might take a bit longer, which means 1ms to write out a single frame.

How are you timing things? There’s no timing code in your code. Unless the memset is being ridiculously slow, (unlikely, even if it is 8 cycles per byte, that’s still only 375us, or just over 1/3rd the time to write a frame out - optimization hint, you can get rid of the memset if after calling show you reset the led you just changed to black). If so, that means you should be getting close to 700 frames per second, well over 20 times what the eye can register reliably :slight_smile:

Too fast!

I made a simple change in placing LEDS.show at the end of my animated bitmap array program. Now it is too fast to see the images unless I insert a delay.

Thanks for the great clarification

i will post a video after I get some good images encoded.