Why do you need to store the pattern in RAM at all?
I would compute the next RGB and shift it out one LED at a time. Maybe you were thinking of using DMA for some async work?
Why do you need to store the pattern in RAM at all?
I would compute the next RGB and shift it out one LED at a time. Maybe you were thinking of using DMA for some async work?
Of course a skilled engineer could write a tight output loop that computes and outputs every value on the fly with a guarantee that the time budget won't be exceeded, but your average Arduino user probably doesn't have the knowledge to do this. So all the control libraries that I know allocate a memory buffer for the whole output stream and let the user update it whenever they want.
That’s how the popular libraries do it. Not strictly necessary but the whole point of my warning was to make sure any beginners who saw this understood that this board has serious limitations compared to other options.