600x WS2812b an Arduino Uno R3- Arbeitsspeicher voll?!

Hallo!
Ich betreibe aktuell einen LED-Streifen WS2812b mit 144LED/Meter per Schaltnetzteil 40A/5V mit einem Arduino Mega. Alles klappt prima, ich benutze ein Beispiel aus der FastLED-Bibliothek.
Nun hab ich den MEGA gegen einen Uno R3 ausgetauscht, es lässt sich das Programm aber nicht aufspielen, es kommt die Meldung, dass der Arbeitsspeicher nicht ausreicht.

Inwiefern spielt die Anzahl der LED´s eine Rolle beim Arbeitsspeicher? Was passiert da im Speicher?

Grüße

Jede LED braucht 3 Bytes. Schau dir den Teensy an. Das sind kleine Boards mit sehr leistungsfähigen Prozessoren

Ahhh, stimmt ja! 3 Bytes pro LED in der DATA-Leitung!

Im Arduino Mega steht nach Aufspielen des Sketch':
"....der Sketch verwendet 6682 Bytes (2%) des Programmspeicherplatzes...." - max ist 253952 Bytes
"Globale Variablen verwenden 2109 Bytes (25% des dynamischen Speichers)" - max ist 8192 Bytes

Beim Arduino Uno ist der SRAM-Speicher 2048 Bytes groß.
Demnach sind die 2109 Bytes zuviel für den Arduino Uno....interessant!
Wenn man sich mit der Programiersprache auskennt, könnte man sicher am Code noch Verbesserungen durchführen, um den Speicherplatz zu optimieren. Aber da bin ich noch ein Stück weg....

Werde erstmal beim Arduino bleiben und keinen anderen Controller verwenden...

Hier nochmal die Speicher-Erklärungen von arduino.cc

The ATmega328 chip found on the Uno has the following amounts of memory:

Flash 32k bytes (of which .5k is used for the bootloader)
SRAM 2k bytes
EEPROM 1k byte

The ATmega2560 in the Mega2560 has larger memory space :

Flash 256k bytes (of which 8k is used for the bootloader)
SRAM 8k bytes
EEPROM 4k byte

noiasca:
die 600x 3 Byte werden aber nicht als globale Variablen im static data angelegt, sondern - wenn du mal einen Blick in die Library wirfst, mit maloc am heap angelegt.

In der aktuellen Version scheint das nicht mehr der Fall zu sein

Da sieht das so aus:

CRGB leds[NUM_LEDS];

void setup() 
{ 
    FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); 
}

Da wird nur ein Zeiger auf das externe Array verwaltet

Das ist Adafruit_NeoPixel. Er hat FastLED gesagt

Sollte eigentlich nicht der Fall sein. CRGB hat drei Bytes. Siehe pixeltypes.h:
https://github.com/FastLED/FastLED/blob/master/pixeltypes.h