You're welcome - I had some time on my hands 😊
You will not able to fix this in code.
Keep in mind: each of the white little squares on the strip contain a controller, and 3 LEDs (one for red, green and blue).
When all the data is send to the strip, data for all 12 leds will arrive at #1.
The controller of #1 will remove the first data block and set the the 3 leds of that LED block, since they were intended for #1 anyway.
After that controller #1 passes the remaining 11 data blocks to the 2nd led block.
The led controller of #2 will do the same thing: remove the first data block, set the leds, and pass on the remaining data (10 data blocks) and pass it on to #3, etc.
So the speed in which this happens, is your limiting factor. So this part is something we cannot really influence that much.
Now when putting 2 smaller strips in parallel, you'd actually get the exact same speed (theoretically anyway).
Hello @hans, with regards to this discussion, you correctly mentioned one of the downside's of the WS2812 is the time needed to pass the data along the chain.
All of the data for each of the three colours in each LED is written serially, in sequence, along a single data line, which means that there is a finite time between each LED along the string receiving it's command and updating. For long strings of LEDs that can become noticeable, however, it takes a very long string.
Earlier in this topic you quoted this information from the FastLED documentation:
WS2812 strips are slow for writing data, with a data rate of just 800khz, it takes 30µs to write out a single led's worth of data.
Link: https://github.com/FastLED/FastLED/wiki/Parallel-Output
In electronics terms, 30us (that's microseconds, or 1/1,000,000 second) is certainly not fast, but it's pretty instantaneous in terms of human perception (I remember reading somewhere that human perception is limited to ~10ms).
Based on this timing, if you were to use a string of 1,000 LEDs, the time between the first LED and last LED receiving their commands would be ~30ms (30/1,000 seconds, or 0.03s). If you were watching these LEDs very carefully, you might be able to see this delay, but it will still appear to be very fast.
So, your comments above are correct, but the effects only become perceptible to most users once you begin to create very long strings. If you are only creating strings of a few hundred LEDs, this affect should never be noticed.
Thanks,
David