Hardware: Arduino Nano and 252 (soon to be ~300) WS2812B LEDS.
Hardware is not up for debate, I’m stuck with it.
Problem: I can declare the array of 252 CRGBs without an issue. The issue comes, I think, when I start trying to call ‘show’ after having updated a CRGB value somewhere after or near the 220th. The behavior is that there is none(no LEDs change color, not even the first ones). Which leads me to believe that there is some sort of issue with a lack of RAM. It seems to work fine when I only change the first 220 or so CRGB values.
Before using FastLED, I was kind of able to solve this space issue by using only 1 or 2 bytes to store the colors. In the case of 1 byte, the bits were rrrgggbb; this was too imprecise for the animations I need. Two bytes was rrrrrrgggggbbbbb and this seemed to work fine, except I spend so much time updating LEDs with interrupts off that the timer becomes too inaccurate.
I also created an implementation where my color object was 3 bytes again, but was stored as a linked list with each node being {color,count} (indicating that there are ‘count’ ‘color’ LEDs in a row). This worked, in my case, because there are guaranteed to be, in worst case, 56 nodes. But still, the clock issue remains.
Question: I think FastLED is great, and would like to stick with it. Is it possible, using some part of this framework in conjunction with my 16bit color or linked list implementations?
Idea 1: I suppose I could hack apart the library and re-implement CRGB to only consume 16 bits. That sounds pretty excessive though.
Idea 2: I could just cut out the timer correction part and place it into one of my other implementations.