
It needs all that memory to get everything ready so that it can dump all the pixels as one giant, perfectly timed bit squirt. Unfortunately I could not use this library for my project anyway because it needs 3 bytes of RAM for each pixel (one byte for each R, G, and B value) in the string. This time-tested library works great and if it suits your needs then you should by all means use it- but woe to he who would attempt to try to change even one line of it. The standard way to drive NeoPixels with an Arduino is using the AdaFruit library which has some very fancy assembly code that was meticulously hand crafted to get every tick to land in precisely the right place. According to the excellent AdaFruit Uberguide, “the control signal has very strict timing requirements” and people have used many exotic and complex methods to meet these strict requirements- including cycle counting, PWM, SPI, and even UARTs with extra inverter hardware. Much has been written about how picky NeoPixels are about timing. Since the amount of RAM used does not grow with the number of pixels driven, the limiting factor for this string length was the length of my apartment. The program only uses about 5% of this Arduino’s 1K RAM. Here is a demo of a 1,000+ pixel string being driven by a vintage Arduino DueMillinove at about 30 frames per second… needs only a trivial amount of memory regardless of string length.


There is an easier way to drive NeoPixels using code that…
