Für was braucht Serial so viel RAM? Und kann man das evtl. irgendwie reduzieren? Hält Serial einen 300 Byte großen Buffer vor?
Nö. Soweit mir bekannt ist, hält Serial einen 64 Byte großen Empfangspuffer und einen 64 Byte großen Sendepuffer vor. Macht 128 Byte.
Der restliche Speicherverbrauch dürfte dann dadurch zustande kommen, dass mit dem Serial-Objekt ja auch diverse Library-Funktionen mit eingebunden werden, und der RAM-Verbrauch der eingebundenen Library-Funktionen ist dann gleich mit im Programm drin.
Das ist nichts anderes, wenn Du eine float Zahl im Programm verwendest und eine Fliesskomma Operation im Programm ausführt, das schlägt auch gleich heftig zu Buche. Oder wenn Du eine Formatierung mit sprintf in Deinem Programm verwendest.
Falls Du keine 64 Byte großen Sende- und Empfangspuffer in Deinem Programm benötigst, kannst Du die Arduino-Software entsprechend verbiegen, dass sie kleinere Puffer verwendet. Ich glaube bis herunter zu Puffergröße 1 wäre es machbar, ohne dass es gleich knallt. So könntest Du dann bis zu 126 Bytes wieder zurückgewinnen. Wobei mit einer Puffergröße von 1 dann natürlich Datenverluste durch Pufferüberläufe schon praktisch vorprogrammiert sind.