Okay… I think I was missing something important about the meaning of “parallel output” as the term is being used here. I was assuming that, because of the word “parallel” that all strips would be showing the exact same color data. Looking at the example it’s apparent that the total number of pixels equals the number of pins multiplied by the number of LEDs per strip. In this case, parallel refers to the amount of time it takes to write the data to the pins. (I don’t understand how this can be truly parallel with a microcontroller that doesn’t support threading, but I’ll take your word for it that it’s effectively parallel).
This is amazing and way cooler than my interpretation of the concept, but I must say that it’s in no way intuitive from the description of Parallel-Output in the wiki.
For me, parallel output has meant connecting the data input of multiple strips (or module strings) to a single PWM output pin on the Arduino – the strips are all wired in parallel, so “parallel” seemed to be an appropriate word here. I’ve had this work fine with up to 6 strips, but depending on the LEDs, problems can arise in the form of flickering and bad colors, especially with greater numbers of strips.
To fix the flickering issue I usually add additional output pins. In one case I connected 3 strips to each of 6 pins for 18 strips total.
The important thing to emphasize here is that my goal was to make every strip do the exact same thing. Topology was making it impractical to connect all the pixels in series, plus that would be wasteful from a memory usage standpoint. So, I call addLeds for each pin but use the same array so that memory is conserved. The downside is that each additional pin used decreases the framerate.
So, back to Parallel Output (your parallel data writing, not parallel wiring) – I’m wondering how this could be used to speed up my framerates. It seems like I can just follow the example and copy data N times in the array, but this would unnecessarily waste memory. There would also be the copying process in each cycle. Is there syntax to specify “use the same array for all pins”?
Finally (sorry for the long post), in case others find themselves similarly confused by the word “parallel”, maybe a brief description of what is meant by parallel output and a differentiation from parallel wiring would be helpful at https://github.com/FastLED/FastLED/wiki/Parallel-Output
Thank you so much, and as always keep up the great work!