Fehlermeldung: Compilation error: 'Mp3ChipOriginal' was not declared in this scope

Hallo allerseits,

ich bin blutiger Anfänger und hänge beim Hochladen des Sketch fest. Ich bekomme in der Arduino IDE immer wieder folgende Fehlermeldung:

„Compilation error: ‚Mp3ChipOriginal‘ was not declared in this scope“

Die nötigen Libraries habe ich eingebunden, auch die entsprechenden Versionen (1.0.7 beim DFPlayer). Auch die constants-Datei habe ich editiert und die Kommentare entsprechend entfernt.
Muss ich in der constants-Datei zwingend auch noch den Player wählen (durch Entfernen der Kommentare)? Das hat bei mir leider auch nicht zum Erfolg geführt, aber ich war mir auch nicht 100% sicher, ob ich den richtigen Player gewählt habe.

Danke schonmal für eure Hinweise oder Lösungsvorschläge.

Dann würde ich dir das online-upload ans Herz legen. Das ist für Anfänger auf jeden Fall am einfachsten.
Alternativ haben wir auch eine Anleitung TonUINO Software mit PlatformIO aufspielen das ist auch noch einfacher als mit der Arduino IDE, weil die richtigen Versionen der Bibliotheken beispielsweise automatisch geladen werden.

Ob du an den defines für den Player etwas ändern musst, hängt von dem verbauten Chip ab. Es handelt sich da ja um Anpassungen um die Probleme der einzelnen Chips zu umgehen. Hast du schon mal geschaut, was für einen Player du geliefert bekommen hast?

Welche Software verwendest du denn? Für die aktuelle Software ist dies nicht die benötigte Version.

Danke für die Rückmeldung. Dadurch haben sich leider neue Probleme ergeben. :-/

Mein Player ist der mh2024K-24SS, der ja ganz ordentlich laufen soll.
Ich habe die Lib-Version beim DF-Player jetzt mal auf die neueste Version gestellt (1.2.3).
Dadurch ist die o.g. Fehlermeldung verschwunden, dafür hapert es jetzt an anderer Stelle, denn ich bekomme folgenden Fehler:

Compilation error: ‚printStatusCode‘ function uses ‚auto‘ type specifier without trailing return type

Die Software, die ich nutze, ist die bei GitHub erhältliche TonUINO-TNG.
Die Änderungen in der Constants-Datei habe ich soweit gefordert vorgenommen. Allerdings muss ich hier erwähnen, dass ich die Datei „platform.local.txt“ zwar gefunden und in den AVR-Ordner kopiert habe, allerdings liegt dieser Ordner ganz woanders, als im Readme beschrieben: Bei mir auf dem MacOS liegt er im TonUINO-Ordner selbst, und nirgendwo in der Library. Könnte es evtl. daran liegen?

Danke für den Hinweis zum Online-Upload. Der hat zwar soweit geklappt, allerdings wollte ich langfristig ein paar Änderungen vornehmen können und habe ihn daher zunächst nicht genutzt. Jetzt hat das Aufspielen damit zumindest mal geklappt.

Allerdings passiert rein gar nichts, sobald ich die Karten konfigurieren möchte. Die SD-Karte wird aber erkannt und auch der Player funktioniert, denn ich kann per Überbrücken der Kontakte GND und IO-2 die Tracks auf der SD-Karte zumindest abspielen lassen. Die LED am Player leuchtet auch dadurch erst auf.
Wie beschrieben, passiert aber bei Karten-Kontakt gar nichts und auch die verbundenen Taster haben keine Funktion (außer, dass sie die erzwungene Wiedergabe stoppen).

Übersehe ich hier irgendetwas Fundamentales?

Dankbar für eure Hinweise und Gedanken!

Die Player sind in letzter Zeit sehr zickig mit der SD-Karte.
Du könntest mal schauen, was dir in der Konsole angezeigt wird.
Wie hast du denn die SD-Karte befüllt? Bei vielen Modulen war es in letzter Zeit ernorm wichtig die Ordner in der richtigen Reihenfolge (erst die Sprachansagen, dann eigene Inhalte und auch die der Reihe nach, kein Umbenennen mehr auf der Karte) auf die SD-Karte zu packen.

Das ist normal, die leuchtet nur, wenn der Player etwas abspielt

Hatte zuerst auch Probleme den avr Ordner zu finden. Öffne mal den Boardverwalter der IDE und klicke bei Arduino AVR Boards auf Update danach solltest du den Pfad aus der Readme finden.

1 „Gefällt mir“

Dann würde ich dir wirklich PlatformIO ans Herz legen. Da sind Änderungen viel leichter umzusetzen, weil du tatsächlich alle Dateien offen hast. Die Arduino IDE öffnet die .hpp und .cpp Dateien ja nicht. Außerdem brauchst du weder auf die Library Version achten noch irgendwas mit der platform.txt machen

Liebe alle,

danke für die zahlreichen Tipps.

Ich habe es nun mit Visual Studio Code tatsächlich geschafft, den Build und den Upload hinzubekommen. Zumindest erscheint kein Fehler und am Ende stand „Success“. Olé!

Auch die SD-Karte habe ich formatiert, nochmal neu bespielt und penibel auf die Reihenfolge geachtet. Da liegen jetzt die Ordner „advert“, „mp3“ sowie „01“ und „02“ mit jeweils zwei mp3-Hörbüchern.

Aber leider passiert immer noch nichts, sobald ich eine Karte auflege. Die Konsole weist zunächst auf keine Fehler hin, spuckt dann aber beim Auflegen einer Karte das hier aus:

 _____         _____ _____ _____ _____
|_   _|___ ___|  |  |     |   | |     |
  | | | . |   |  |  |-   -| | | |  |  |
  |_| |___|_|_|_____|_____|_|___|_____|
TonUINO Version 3.1 - refactored by Boerge1

created by Thorsten Voß and licensed under GNU/GPL.
Information and contribution at https://tonuino.de.

V3.1.5 21.11.23

Ver:2
Vol:25 5 15
EQ:1
ST:0
IB:1
AL:0
AP:1111
PCR:0
Volume: 15
MFRC522:146
enter Idle
Command: 6
enqueue mp3 262 0
play mp3 262
DfPlayer Error: 6
missing OnPlayFinished
Card Inserted
CardData:  00 00 00 00 00 00 00 00 00
enqueue mp3 300 0
enter AdmNewCard
play mp3 300
Card Removed
DfPlayer Error: 6
enter ChMode
enqueue mp3 310 0

play mp3 310
DfPlayer Error: 6
missing OnPlayFinished

Vor allem der Fehler-Code 6 beim DFPlayer und das fehlende OnPlayFinished scheint hier das Problem zu sein.

Nachtrag: Ich habe die aktuellsten Dateien für die SD-Karte direkt von GitHub geladen.

Direkt am Anfang scheitert er ja scheinbar schon beim Abspielen der Datei 262. Die ist auf jeden Fall vorhanden, allerdings ist mir aufgefallen, dass sie sowohl im MP3-Ordner als auch im advert-Ordner liegt. Kann diese Doppelung ein Problem sein? Im MP3-Ordner gibt es nämlich einen kleinen Sprung von 253, 254, 255 direkt auf 262 und dann zu 300_new_tag.

Keine Ahnung, ob das relevant ist, aber es ist mir aufgefallen.

Und beim Auflegen einer Karte ertönt nun random die Ansage „25“, mehr lässt sich aber auch mit den Tasten nicht erreichen.

Es ist mehr nur der Error 6. Das bedeutet Datei nicht gefunden. Wenn die Datei nicht gefunden und somit nicht abgespielt wird, sendet der Player natürlich kein Signal, dass der Track gespielt wurde.
Leider hilft vermutlich nur die SD-Karte nochmal zu befüllen oder eine andere auszuprobieren.
Du kannst auch mal in der Datei mp3.hpp in Zeile 5 //#define DfMiniMp3Debug Serial aktivieren. Dann gibt es noch mehr Ausgaben zum Player.

Dass die Datei in mp3 und advert ist, ist kein Problem. Verschiedene Ordner kann der Player unterscheiden. Du packst ja auch nicht nur in Ordner 01 eine Datei 001.mp3.

Danke. Dass er die Datei nicht spielen kann, wenn er sie nicht findet, das verstehe ich. Aber sie ist ja ganz klar auf der Karte drauf. Ich habe die Karte jetzt nochmal ganz frisch bespielt und auch eine andere Karte genutzt, beides ohne Änderung.

Hier die zusätzlichen Infos nach der Anpassung der mp3.hpp:

V3.1.5 21.11.23

Ver:2
Vol:25 5 15
EQ:1
ST:0
IB:1
AL:0
AP:1111
PCR:0
OUT  7e ff 06 43 00 00 00 fe b8 ef
IN  7e ff 06 43 00 00 0f fe a9 ef
Volume: 15
OUT  7e ff 06 07 01 00 00 fe f3 ef
IN  7e ff 06 41 00 00 00 fe ba ef
MFRC522:146
enter Idle
Command: 6
enqueue mp3 262 0
play mp3 262
OUT  7e ff 06 12 01 01 06 fe e1 ef
IN  7e ff 06 41 00 00 00 fe ba ef
IN  7e ff 06 40 00 00 06 fe b5 ef
DfPlayer Error: 6
missing OnPlayFinished
Card Inserted
CardData:  00 00 00 00 00 00 00 00 00
enqueue mp3 300 0
enter AdmNewCard
play mp3 300
OUT  7e ff 06 12 01 01 2c fe bb ef
IN  7e ff 06 41 00 00 00 fe ba ef
IN  7e ff 06 40 00 00 06 fe b5 ef
DfPlayer Error: 6
enter ChMode
enqueue mp3 310 0

play mp3 310
OUT  7e ff 06 12 01 01 36 fe b1 ef
IN  7e ff 06 41 00 00 00 fe ba ef
IN  7e ff 06 40 00 00 06 fe b5 ef
DfPlayer Error: 6
missing OnPlayFinished

Kleines Update: Durch Auskommentierung der Zeile 155 in der constants.hpp habe ich zumindest den Fehler „missing OnPlayFinished“ wegbekommen.

Leider bleibt der DFPlayer Error 6 weiterhin. SD-Karte wurde nun x-mal formatiert und auf alle erdenklichen Weisen neu bespielt, leider keine Veränderung.

Hat noch jemand eine Idee? Bin dankbar für weitere Einfälle :slight_smile:

:face_with_raised_eyebrow: Ja natürlich verschwindet der Fehler im Log, wenn du den Check dazu entfernst. Das löst doch aber nicht das Problem.

Was ist denn sonst noch so auf der SD Karte außer mp3 und advert?
Hast du auch alles hier beachtet?
Wie muss die SD-Karte befüllt werden?

1 „Gefällt mir“

Ich schulde euch noch eine Rückmeldung zu diesem Fall: Es war tatsächlich der MP3-Player, der nicht korrekt funktionierte. Ein neuer Player, und nun läuft alles soweit.
Danke für all die Tipps!

1 „Gefällt mir“

Hast du den Player jetzt woanders bestellt? Ist auf dem Modul ein anderer Chip verbaut? Also kann man die Player irgendwie unterscheiden?

Den neuen Player habe ich im 3er-Pack bei AZDelivery via Amazon gekauft. Der ursprüngliche, defekte Player war Teil des AZ-Pakets mit Arduino und RFID-Empfänger.

Auf dem neuen Player ist eigentlich der gleiche Chip verbaut (MH2024K-24SS), aber die Zahlenkombi (Produktionsdatum?) unter der Modellnummer ist eine andere (jetzt 230315, die vom alten Player kann ich leider nicht mehr überprüfen).
Und auf dem kleineren Chip steht noch: 8002 A AD01C.

1 „Gefällt mir“