Serial Monitor zeigt nur Garbage trotz richtiger Baudrate, aber nur, wenn ich selbst kompiliere

Hallo zusammen,

nachdem meine AiO Platine gut drei Jahre im Schrank lag, ich kurz danach erstmal meine erste Box noch mit der Classic Platine zum Laufen gebracht habe, bin ich jetzt endlich mal wieder dazu gekommen eine zweite, kleinere Box zu bauen.

In Sachen SW hat sich ja einiges hier getan – super Sache. Da ich im Online Updater zuerst nicht die Möglichkeit der 3-Button Konfiguration gesehen hatte, dachte ich mir na dann kompiliere ich halt selber. Also TNG-main (3.2.0 vom 05.09.2024) ausgecheckt, constants angepasst und via Arduino IDE 2.3.3 auf die AiO gespielt. Läuft. Was mich aber sehr wurmt und ich nicht verstehe ist, dass ich im Serial Monitor nur Garbage angezeigt bekomme, obwohl die Baudrate übereinstimmt:

Gerade was die Konfiguration im Adminmenü angeht sowie das initiale Testen finde ich den Serial Monitor ungemein hilfreich.

Nun hab ich festgestellt, dass ich via TonUINO - Die DIY Musikbox (nicht nur) für Kinder doch die THREEBUTTONS Konfiguration aufspielen kann. Jetzt klappt der Serial Monitor auch wieder:


(Da stimmt wohl noch was mit der SD-Karte nicht, aber das bekomm ich denke ich hin.)

Was mich jetzt aber stört: Ich hatte in der constants.hpp noch ein paar non-default defines gesehen, die im online-updater nicht aktiviert sind (DONT_ACCEPT_SAME_RFID_TWICE, RESUME_ON_SAME_RFID und REPLAY_ON_PLAY_BUTTON). Die kann man nicht im Admin-Menü nachträglich aktivieren, oder?

Falls nein, dann würd ich gerne doch nochmal custom kompilieren, nur frag ich mich, wie ich dann den Serial Monitor fixe…

Kann mir hier jemand ggf. weiterhelfen?

Okay… Problem hat sich gerade gelöst, nachdem ich nochmal neu kompiliert habe. Ich hatte initial Probleme mit dem Upload und einen Sync-Error bekommen. Da auf TonUINO All-In-One – Die Arduino IDE einrichten – Leiterkartenpiraten GmbH i.L „Clock 16Mhz“ steht, was es so als Konfig bei mir in der Arduino IDE auf dem Mac aber nicht gibt, hatte ich neben Clock Source den Eintrag ‚Clock Divider‘ von 1 auf 16 gestellt. Das hatte aber das Problem nicht gelöst, es lag am Upload Speed. Hatte danach den Clock Divider aber nicht wieder zurück auf 1 gesetzt. Nachdem ich das gemacht habe geht jetzt alles wieder. Hier die macOS Arduino IDE Konfig, mit der es bei mir dann schließlich funktioniert hat:

Jetzt muss ich nur noch das Problem lösen, dass manche Ansagen nicht abgespielt werden. dot_clean hat leider nicht den gewünschten Erfolg gebracht…

Update: Letzteres Problem auch gelöst. Man sollte vielleicht nicht einfach die 3 Jahre alten Ansagen von der SD-Karte von Box 1 stumpf auf die neue SD Karte für Box 2 kopieren, die mit neuer Software läuft. Gedanke war die Alben synchron zu halten, und dabei war ich wohl zu voreilig und hab den alten Stand der advert und mp3 Ordner mit kopiert anstatt die aus dem aktuellen TNG Repo zu verwenden :man_facepalming:

Sorry für’s zuspammen… heute Mittag kam ich hier überhaupt nicht weiter, jetzt ging es auf einmal ganz schnell. Vielleicht hilft es ja aber dem ein oder anderen weiter…

2 „Gefällt mir“

Moin!
Nur noch ein Hinweis: Die TNG arbeitet bei der AiO aus Platzgründen mit dem lgtfx-Boardpackage in der Version 1.0.6. Steht so auch in den FAQ:

Wenn du diese Version in der IDE benutzt, kannst du die Einstellungen genauso setzen wie auf der Leiterkartenpiraten-Seite angegeben.
Für die Version 2 vom Boardpackage ist der Divider 2. Dazu gab es hier schon mal einen Faden. Ansonsten (falls für iOS verfügbar) lege ich dir platformio ans Herz.

1 „Gefällt mir“

Ah okay, vielen Dank für die Info. Da ich hier im Forum von der Anzahl an FAQ Seiten etwas erschlagen war, habe ich mich mehr an die Infos auf https://www.leiterkartenpiraten.de/tonuino-all-in-one-die-arduino-ide-einrichten/ gehalten. Da sieht man im Screenshot zwar auch, dass Version 1.0.6 verwendet wird. Es steht nur leider nicht im Text, dass es wichtig ist genau diese Version und nicht eine neuere zu verwenden. Vielleicht könnte jemand das auf der Leiterkartenpiraten Anleitung noch hinzufügen?

Es gibt jetzt nur noch eine

@Gute_Laune Oh, danke für die Info. Kam mir irgendwie mehr vor. :man_shrugging: Bin jedenfalls für die Software immer von den Anleitungen auf leiterkartenpiraten.de gestartet, und in der genannten Anleitung war der Hinweis mit der Boardpackageversion leider zu subtil.

@kobayashi_maru: Ich verwende jetzt Version 1.0.6. Nachdem ich den ersten initialen Compilerfehler noch relativ leicht selbst beheben konnte (die platform.local.txt Datei ging durch den Versionswechsel verloren – ist jetzt aber wieder an Ort und Stelle), bekomme ich jetzt aber einen Linkerror:

Linking everything together...
/Users/wemser/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-gcc -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/TonUINO-TNG.ino.elf /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/TonUINO-TNG.ino.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/batVoltage.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/buttons.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/buttons3x3.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/chip_card.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/commands.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/linearAnalogKeypad.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/log.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/main.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/modifier.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/mp3.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/new.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/poti.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/ring.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/rotary_encoder.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/serial_input.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/settings.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/state_machine.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/timer.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/tonuino.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/libraries/E2PROM/EEPROM.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/libraries/MFRC522/MFRC522.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/libraries/MFRC522/MFRC522Extended.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/libraries/SPI/SPI.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/libraries/JC_Button/JC_Button.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/libraries/SoftwareSerial/SoftwareSerial.cpp.o /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/core/core.a -L/private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86 -lm
/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T//cczITAhc.ltrans0.ltrans.o: In function `DanceGame::setNextStop(bool)':
/Users/wemser/Development/source/TonUINO-TNG/src/modifier.cpp:116: undefined reference to `DanceGame::maxSecondsBetweenStops'
/Users/wemser/Development/source/TonUINO-TNG/src/modifier.cpp:116: undefined reference to `DanceGame::maxSecondsBetweenStops'
/Users/wemser/Development/source/TonUINO-TNG/src/modifier.cpp:116: undefined reference to `DanceGame::minSecondsBetweenStops'
/Users/wemser/Development/source/TonUINO-TNG/src/modifier.cpp:116: undefined reference to `DanceGame::minSecondsBetweenStops'
collect2: error: ld returned 1 exit status

Using library E2PROM in folder: /Users/wemser/Library/Arduino15/packages/lgt8fx/hardware/avr/1.0.6/libraries/E2PROM (legacy)
Using library MFRC522 at version 1.4.10 in folder: /Users/wemser/Documents/Arduino/libraries/MFRC522 
Using library SPI at version 1.0 in folder: /Users/wemser/Library/Arduino15/packages/lgt8fx/hardware/avr/1.0.6/libraries/SPI 
Using library JC_Button at version 2.1.2 in folder: /Users/wemser/Documents/Arduino/libraries/JC_Button 
Using library DFPlayer Mini Mp3 by Makuna at version 1.2.3 in folder: /Users/wemser/Documents/Arduino/libraries/DFPlayer_Mini_Mp3_by_Makuna 
Using library SoftwareSerial in folder: /Users/wemser/Library/Arduino15/packages/lgt8fx/hardware/avr/1.0.6/libraries/SoftwareSerial (legacy)
exit status 1

Compilation error: exit status 1

Hat jemand eine Ahnung, woran das jetzt liegt? Die zu verwendenden Libraries habe ich alle in den jeweiligen Versionen installiert.

Es sieht so aus, als wenn da noch *.o Files da sind, die noch mit den falschen Flags compiliert wurden. Ein „clean“ gibt es wohl nicht bei der Arduino IDE. Hast du schon mal die IDE neu gestartet?

1 „Gefällt mir“

Besten Dank @Boerge1, das war der entscheidende Hinweis.

Nein, „Clean“ kann die Arduino IDE leider nicht. Von daher verstehe ich, wieso PlatformIO beliebt ist, wenn das dann unter der Haube Visual Studio verwendet. Ich vermute mal da gibt es dann auch wie es sich gehört ein Clean.

Neustarten der Arduino IDE macht leider keinen Clean. Man kann allerdings im Output nach „Using previously compiled“ suchen, dahinter ist dann der Pfad genannt, in dem sich der Cache befindet. Bei mir lagen z.B. alle .o Files unter /private/var/folders/ry/_1n9pqts58l01hjwdp5_lbm40000gp/T/arduino/sketches/884161E1A16AE918E92E0DCF6CBE7F86/sketch/src/

Ich habe einfach den kompletten Ordner unter ‚sketches‘ gelöscht, also den folder mit dem hash als Namen. Danach ging es dann…

Hab die Lösung nach etwas Suchen gefunden unter Cache clear option - #7 by ptillisch - IDE 2.x - Arduino Forum

Besten Dank @Boerge1 aber nochmal für den schnellen Tipp zum Root Cause! Und auch für das ganze Code-Refactoring ins TNG Repo! :+1:

1 „Gefällt mir“