Nicht genug Platz auf der AiO für TonUINO-TNG und LED-Ring

Hallo in die Runde,

ich wollte einen Neopixel-Ring einfügen und habe daher die constants.hpp angepasst. Als Bibliotheken habe ich die vorgeschriebenen Versionen geladen und wollte mittels der Arduino IDE flashen. Als Board ist das LGT8F328 eingestellt mit folgenden Parametern (weicht bei meiner IDE 1.8.19 von der Einstellung in der Anleitung der Leiterkartenpiraten ab):

Ich bekomme folgende Fehlermeldung:

Der Sketch verwendet 30984 Bytes (104%) des Programmspeicherplatzes. Das Maximum sind 29696 Bytes.

Globale Variablen verwenden 1679 Bytes (81%) des dynamischen Speichers, 369 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it.
Fehler beim Kompilieren für das Board LGT8F328.

Was habe ich falsch gemacht?

Das liegt nicht an der IDE sondern an der Version vom Board Support Package, die du installiert hast.

Zu dem Speicherproblem schaue ich gerade noch. Das es da Probleme geben kann war ja angekündigt

1.0.6 ist jetzt installiert. Das Speicherplatzproblem besteht nach wie vor. Ich schalte jetzt mal SerialInputAsCommand aus.

Edit: So, das sind jetzt „nur noch“ 101%:

Der Sketch verwendet 30136 Bytes (101%) des Programmspeicherplatzes. Das Maximum sind 29696 Bytes.text section exceeds available space in board
Globale Variablen verwenden 1660 Bytes des dynamischen Speichers.
Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it.
Fehler beim Kompilieren für das Board LGT8F328.

@Boerge1 kann insgesamt bestimmt besser sagen, was du am besten änderst. Aber du solltest den LED Ring zumindest ausprobieren können, wenn du in logger.hpp das Log-Level für mp3 änderst. Damit komme ich auf 99,6%

#ifndef SRC_LOGGER_HPP_
#define SRC_LOGGER_HPP_

#include "log.hpp"

DEFINE_LOGGER(tonuino_log , s_debug  , void);

DEFINE_LOGGER(init_log    , s_info   , tonuino_log);
DEFINE_LOGGER(card_log    , s_info   , tonuino_log);
DEFINE_LOGGER(play_log    , s_warning, tonuino_log);
DEFINE_LOGGER(standby_log , s_warning, tonuino_log);
DEFINE_LOGGER(state_log   , s_info   , tonuino_log);
DEFINE_LOGGER(button_log  , s_info   , tonuino_log);
DEFINE_LOGGER(modifier_log, s_warning, tonuino_log);
-DEFINE_LOGGER(mp3_log    , s_info   , tonuino_log);
+DEFINE_LOGGER(mp3_log    , s_warning, tonuino_log);
DEFINE_LOGGER(settings_log, s_info   , tonuino_log);

#endif /* SRC_LOGGER_HPP_ */

Hilft es vielleicht, eine unbenutzte Variable raus zu nehmen?

/Users/hasch/Documents/Arduino/TonUINO-TNG/src/state_machine.cpp:38:28: warning: 'const __FlashStringHelper* {anonymous}::str_VoiceMenu()' defined but not used [-Wunused-function]
 const __FlashStringHelper* str_VoiceMenu               () { return F("VoiceMenu") ; }
                            ^~~~~~~~~~~~~

Reicht leider knapp noch nicht:

Der Sketch verwendet 29774 Bytes (100%) des Programmspeicherplatzes. Das Maximum sind 29696 Bytes.

Dann würde ich das Card_log auch auf warning setzen. Du könntest auch probieren, ob es ausreicht nur das Card_log anzupassen und das mp3_log auf info zu lassen.

Das reicht:

Der Sketch verwendet 29686 Bytes (99%) des Programmspeicherplatzes. Das Maximum sind 29696 Bytes.

Ich danke dir Jana.

Habe gerade versucht, den geänderten Sketch über USB hochzuladen, das Ergebnis:

___REMOVE___/bin/avrdude -C___REMOVE___/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.usbmodem00001 -b57600 -D -Uflash:w:/var/folders/xd/qt0vz41n66n1cmpbn4d75n_r0000gn/T/arduino_build_617439/TonUINO-TNG.ino.hex:i 
java.io.IOException: Cannot run program "___REMOVE___/bin/avrdude": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at java.lang.Runtime.exec(Runtime.java:620)
	at java.lang.Runtime.exec(Runtime.java:485)
	at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:11)
	at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)
	at cc.arduino.packages.uploaders.SerialUploader.runCommand(SerialUploader.java:383)
	at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:197)
	at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
	at processing.app.SketchController.upload(SketchController.java:732)
	at processing.app.SketchController.exportApplet(SketchController.java:703)
	at processing.app.Editor$UploadHandler.run(Editor.java:2061)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	... 11 more
Beim Hochladen des Sketches ist ein Fehler aufgetreten

Edit: Nach dem 5. Versuch hat es endlich geklappt. Was war da los?

Jetzt habe ich den Sketch geflasht aber der Neopixel-Ring bleibt dunkel. Muss ich noch irgendwelche Settings setzen? Die Anzahl der LEDs steht richtig in der constants.hpp.

Angeschlossen habe ich sie an die Stiftleiste des 5fach Button-Boards der Leiterkartenpiraten an WS, 5V und GND. Das wird doch über die schwarzen Leitungen, mit denen das Button-Board mit der AiO verbunden ist übertragen, oder?

Ja das ist verbunden. Hast du denn auch entsprechend 6 als Pin in der constants.hpp eingetragen?

1 „Gefällt mir“

Hatte ich natürlich nicht! Jetzt aber und jetzt geht es auch! Noch einmal ein herzliches Dankeschön für deine Hilfe Jana.

1 „Gefällt mir“

Heute geht das mit dem Hochladen mal wieder nicht (Fehlermeldung siehe 4 Posts oben). Ich habe noch einen zweiten Neopixel-Ring eingebaut und wollte die Anzahl der LEDs anpassen. Leider klappt das Hochladen mal wieder nicht.

Edit: Ich habe mal an einer Seite den USB-C Stecker umgedreht. Obwohl das eigentlich nicht sein kann, hat es nach einigen Anläufen dann doch noch geklappt.

Seltsam!!!