Probleme mit DFPlayer mini und RFID-Card-Reader

Hallo,

ich probiere seit ein paar Tagen den TonUINO nachzubauen. Das hat dank der tollen Anleitungen, der fertigen Software und dem Set von azdelivery eigetnlich auch recht schnell ganz gut geklappt. Allerdigs werden die RFID-Cards leider nich zuverlässig beschrieben und nach einem versuchten Schreibvorgang wird auch keine RFID-Card mehr gelesen. Darüberhinaus werden zwar die Tracks zur Navigation im Menü richtig abgespielt, jedoch werden, egal welche Karte ich drauflege, immer der selbe Track (Ordner 01, Track 001) abgespielt. Bevor ich die Firmware neu aufgespielt hab war es aber auch mal Ordner 2, Track 1.

Habt ihr da vielleicht Ideen, woran die beschriebenen Probleme liegen können, bzw. was ich ausprobieren könnte?

Hier noch einige Beobachtungen:

  1. Ich habe einen DFPlayer mini mit dem Chip MH2024K-24SS 230315.

  2. Auf dem RFID-Player steht RFID-RC522 bzw. näher an den Pins in klein HW-126.

  3. Ich nutze V3.1.5 21.11.23; das sind die Daten, die im Seriellen Monitor unmittelbar nach Start geschrieben werden:

Ver:2
Vol:25 5 15
EQ:1
ST:0
IB:1
AL:0
AP:1111
PCR:0

  1. Wenn ich die SD-Karte in folgender Reihenfolge bespiele: Erst die Ordner mp3 und advert und erst danach die Ordner mit dem Content wird immer nur „eins“ abgespielt. Lösche ich alle Ordner und lade sie wieder drauf, diesmal aber „gleichzeitig“ wird immerhin ein richtiger Track wiedergegeben (wie oben beschrieben).

  2. Beim Versuch die richtige Datei abzuspielen wird in den Seriellen Monitor folgendes geschrieben: DfPlayer Error: 6

  3. RFID-Cards werden zunächst korrekt erkannt, auch im Seriellen Monitor werden die richtigen Ordner- und Tracknummern angezeigt. Bei dem Versuch eine Karte zu beschreiben (sowohl über das Admin-Menü, als auch bei richtig erkannt neuen Karten) „stürzt“ der Tonoino anscheinend irgendwie ab. Im Seriellen Monitor tut sich danach ebenfalls nichts mehr. Die letzten angaben sind dann:
    enter WriteCard
    enqueue mp3 800 0
    play mp3 800

Weitere Karten werden im Anschluss nicht mehr erkannt. Egal, ob bekannt oder nicht. Eingaben über die Buttons werden werkannt (Serieller Monitor: Command: 13/15/17), scheinen aber ohne Funktion zu bleiben. Ein Neustart „hilft“ dann, beim nächsten Versuch eine Karte zu beschreiben tritt dann aber wieder das Gleiche auf.

  1. Anfangs hat das Beschreiben der Karten mal geklappt. Allerdings war es auch dort schon so, dass ich nach dem Beschreiben einer Karte den Tonuino neu starten musste. In den letzten Versuchen konnte ich nicht einmal mehr Karten beschreiben.

  2. Ich bin mir nicht sicher, ob das relevant wird, aber ich hatte erst die Firmware über den Webinstaller installiert und später dann die aus dem TonUINO-TNG-GitHub selbst kompilierte. Es kann sein, dass es erst seit der selbst kompilierten Version gar nicht mehr funktioniert Karten zu beschreiben, aber da bin ich mir nicht sicher…

  3. Da offenbar aktuell teilweise die Arduino Nanos den 3,3V Pin nur mit ca. 2V versorgen und der RFID-Card Reader dann nicht funktionieren soll, hab ich das mal nachgemessen, bei mir kommen aber konstant 3,21 V am RFID-Card-Reader an, das sollte also eigentlich passen.

Ich bin über jede Hilfe sehr dankbar. Vielen Dank euch im Voraus!

Liebe Grüße,

Marius

Ja, die neuen DF Player mit dem Chip MH2024K-24SS scheinen recht zickig zu sein.
Wenn ein falscher Track abgespielt wird (ein Track mit der gleichen Nummer nur aus einem falschen Folder), ist das ein Zeichen, dass die Funktion getFoldrrTrackCount() zu lange braucht. Ich habe den Timout schon von 900ms auf 1500ms hochgesetzt. Vielleicht reicht das noch nicht.
Wenn der Fehler DfPlayer Error: 6 kommt, dann ist das ein Zeichen dafür, dass der Player die SD Karte nicht lesen konnte oder der Track nicht vorhanden ist.
Du solltest folgendes tun

  • beschreibe die SD Karte nochmal neu. Erst komplett löschen, dann mp3 und advert Ordner drauf und dann die restlichen nacheinander.
  • erhöhe den Timout. Dazu in der Datei mp3.hpp die Zeilen 33 und 35 editieren.
  • schalte die Debug Ausgaben von der DF Player Lib ein: Datei mp3.hpp Zeile 5 den Kommentar entfernen.
  • dann probiere es wieder und schicke hier mal das Log dazu. Das Log möglichst mit Zeitstempel!

Vielen Dank für deine schnelle Antwort und die Tipps. Ich habe die Vorschläge so umgesetzt. Den Timeout hab ich auf 3000 verdoppelt. Leider wird erneut nur wieder immer „eins“, also vermutlich mp3/0001.mp3 abgespielt. Folgendes steht im LOG:

13:35:39.642 -> TonUINO Version 3.1 - refactored by Boerge1
13:35:39.642 -> 
13:35:39.642 -> created by Thorsten Voß and licensed under GNU/GPL.
13:35:39.642 -> Information and contribution at https://tonuino.de.
13:35:39.642 -> 
13:35:39.642 -> V3.1.5 21.11.23
13:35:39.642 -> 
13:35:39.709 -> Ver:2
13:35:39.709 -> Vol:25 5 15
13:35:39.709 -> EQ:1
13:35:39.709 -> ST:0
13:35:39.709 -> IB:1
13:35:39.709 -> AL:0
13:35:39.709 -> AP:1111
13:35:39.709 -> PCR:0
13:35:41.720 -> OUT  7e ff 06 43 00 00 00 fe b8 ef
13:35:41.792 -> IN  7e ff 06 43 00 00 0f fe a9 ef
13:35:41.792 -> Volume: 15
13:35:41.792 -> OUT  7e ff 06 07 01 00 00 fe f3 ef
13:35:41.861 -> IN  7e ff 06 41 00 00 00 fe ba ef
13:35:41.892 -> MFRC522:146
13:35:41.892 -> enter Idle
13:35:41.892 -> Command: 6
13:35:41.892 -> enqueue mp3 262 0
13:35:41.892 -> play mp3 262
13:35:41.892 -> OUT  7e ff 06 12 01 01 06 fe e1 ef
13:35:41.966 -> IN  7e ff 06 41 00 00 00 fe ba ef
13:35:43.351 -> IN  7e ff 06 3d 00 00 08 fe b6 ef
13:35:55.140 -> Card Inserted
13:35:55.175 -> CardData:  31 73 3b 74 02 03 05 00 00
13:35:55.175 -> enter StartPlay
13:35:55.175 -> enqueue mp3 262 0
13:35:55.209 -> play mp3 262
13:35:55.209 -> OUT  7e ff 06 12 01 01 06 fe e1 ef
13:35:55.290 -> IN  7e ff 06 41 00 00 00 fe ba ef
13:35:55.574 -> Card Removed
13:35:55.608 -> Card Inserted
13:35:56.667 -> IN  7e ff 06 3d 00 00 08 fe b6 ef
13:35:56.701 -> OUT  7e ff 06 4e 00 00 03 fe aa ef
13:35:57.545 -> IN  7e ff 06 4e 00 00 01 fe ac ef
13:35:57.545 -> 1 tr in folder 3
13:35:57.545 -> enqueue 3-1  
13:35:57.577 -> play 3-1
13:35:57.577 -> OUT  7e ff 06 0f 01 03 01 fe e7 ef
13:35:57.649 -> Card Removed
13:35:57.688 -> IN  7e ff 06 41 00 00 00 fe ba ef
13:35:58.448 -> IN  7e ff 06 40 00 00 06 fe b5 ef
13:35:58.490 -> DfPlayer Error: 6
13:35:58.604 -> enter Play
13:35:58.604 -> OUT  7e ff 06 0d 01 00 00 fe ed ef
13:35:58.730 -> IN  7e ff 06 41 00 00 00 fe ba ef
13:35:59.353 -> IN  7e ff 06 3d 00 00 01 fe bd ef
13:35:59.392 -> enter Idle
13:37:37.996 -> IN  7e ff 06 3b 00 00 02 fe be ef

Ich hab erneut zum Ausprobieren die SD-Karte nochmal mit allen Ordnern „gleichzeitig“ beschrieben, dann wird wieder der erste Track des ersten Ordners wiedergegeben. Dann habe ich einfach mal den zweiten Ordner als erstes Kopiert und alle anderen erst danach. Jetzt wird der Track des zweiten Ordners abgespielt (obwohl ich die Karte des 3. Ordners aufgelegt habe). Kopiere ich den 4. Ordner zuerst drauf, wird der Track aus dem 4. Ordner wiedergegeben, egal welche Karte ich auflege. Sehr seltsam…

Das Ganze hab ich vorsichtshalber auch noch einmal mit einer anderen Micro-SD-Karte und einem anderen SD-Karten-Leser wiederholt, hier ist es leider exakt das Gleiche.

Der Fehler liegt hier:

Es wird versucht die Datei 1 im Folder 3 zu spielen, der schickt ein ACK und eine Sekunde später sagt er, dass er die Datei nicht findet. (Error 6)
Danach geht die Software in den Play State und schickt ein Resume Befehl. Dies soll die Pause beenden, wenn der der Vorgänger State Pause war. Wenn schon was abgespielt wird, bewirkt der Befehl nichts. Wenn noch gar nichts abgespielt wurde und der Player damit auch nicht in Pause ist, spielt der Player einfach die erste Datei auf dem FAT System. Das ist dann immer die Datei, die du auf die SD Karte kopiert hast.
Hier gibt es also kein Timeout Problem. Sondern der Player findet die Datei nicht.
Gibt er wirklich im Folder 03 die Datei 001.mp3? Es wurde vorher ja richtig erkannt, das es genau eine Datei im Folder 03 gibt.
Also überprüfe doch nochmal den Inhalt der SD Karte.

1 „Gefällt mir“

Vielen lieben Dank für deine Hilfe! Ich hab nochmal überprüft, es es lag eine Datei 001_TitelDesHoerspiels.mp3 im Ordner 3. Das Entfernen des Titels allein hat nicht geholfen, allerdings hatte ich auch die Ordner nach dem Schema 03_TitelDesHoerspiels benannt. Das scheint der Fehler gewesen zu sein. Die Ordner heißen jetzt alle nur 01-05 und die Tracks 001.mp3 etc. Jetzt klappt das Abspielen soweit zuverlässig. Auf die Idee die Ordner und Dateien umzubenennen hätte ich auch in meinen ersten Troubleshooting Versuchen mal kommen können…

Allerdings bleibt noch das Problem, dass nach einem Versuch eine neue RFID-Karte zu beschreiben im Anschluss keine Karten mehr gelesen werden und auch der Schreibvorgang nicht funktioniert. Hast du hier zufällig auch noch einen Tipp, wo ich ansetzen könnte?

Vielen Dank nochmal!

1 „Gefällt mir“

Vielleicht hier nochmal das LOG. Hier hat der Schreibevorgang erstaunlicherweise sogar zunächst geklappt. Ich wollte die Karte dann zum Test direkt wieder überschreiben über das Adminmenü, nun reagiert der RFID-Reader wieder nicht. Die Eingaben hab ich gerade nicht über die Knöpfe gemacht, sondern per Eingabe über Serial.

21:13:54.787 -> TonUINO Version 3.1 - refactored by Boerge1
21:13:54.787 -> 
21:13:54.787 -> created by Thorsten Voß and licensed under GNU/GPL.
21:13:54.787 -> Information and contribution at https://tonuino.de.
21:13:54.787 -> 
21:13:54.787 -> V3.1.5 21.11.23
21:13:54.787 -> 
21:13:54.867 -> Ver:2
21:13:54.867 -> Vol:25 5 15
21:13:54.867 -> EQ:1
21:13:54.867 -> ST:0
21:13:54.867 -> IB:1
21:13:54.867 -> AL:0
21:13:54.867 -> AP:1111
21:13:54.867 -> PCR:0
21:13:56.873 -> OUT  7e ff 06 43 00 00 00 fe b8 ef
21:13:56.909 -> IN  7e ff 06 43 00 00 0f fe a9 ef
21:13:56.948 -> Volume: 15
21:13:56.948 -> OUT  7e ff 06 07 01 00 00 fe f3 ef
21:13:56.986 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:13:57.054 -> MFRC522:146
21:13:57.054 -> enter Idle
21:13:57.054 -> Command: 6
21:13:57.054 -> enqueue mp3 262 0
21:13:57.054 -> play mp3 262
21:13:57.054 -> OUT  7e ff 06 12 01 01 06 fe e1 ef
21:13:57.151 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:13:58.433 -> IN  7e ff 06 3d 00 00 08 fe b6 ef
21:14:05.868 -> Card Inserted
21:14:05.868 -> CardData:  00 00 00 00 00 00 00 00 00
21:14:05.868 -> enqueue mp3 300 0
21:14:05.868 -> enter AdmNewCard
21:14:05.908 -> play mp3 300
21:14:05.908 -> OUT  7e ff 06 12 01 01 2c fe bb ef
21:14:05.981 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:06.591 -> Card Removed
21:14:06.922 -> enter ChMode
21:14:06.922 -> enqueue mp3 310 0
21:14:06.993 -> play mp3 310
21:14:06.993 -> OUT  7e ff 06 12 01 01 36 fe b1 ef
21:14:07.057 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:14.103 -> IN  7e ff 06 3d 00 00 0b fe b3 ef
21:14:14.584 -> Command: 18
21:14:14.584 -> enqueue mp3 312 0
21:14:14.584 -> ChMode: 2
21:14:14.584 -> enter ChFolder
21:14:14.584 -> enqueue mp3 301 0
21:14:14.657 -> play mp3 301
21:14:14.657 -> OUT  7e ff 06 12 01 01 2d fe ba ef
21:14:14.742 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:20.849 -> Command: 18
21:14:20.849 -> enqueue mp3 4 0
21:14:20.849 -> ChFolder: 4
21:14:20.920 -> play mp3 4
21:14:20.920 -> OUT  7e ff 06 12 01 00 04 fe e4 ef
21:14:20.958 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:22.003 -> IN  7e ff 06 3d 00 00 0c fe b2 ef
21:14:22.003 -> enter WriteCard
21:14:22.049 -> enqueue mp3 800 0
21:14:22.080 -> play mp3 800
21:14:22.123 -> OUT  7e ff 06 12 01 03 20 fe c5 ef
21:14:22.155 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:24.849 -> IN  7e ff 06 3d 00 00 20 fe 9e ef
21:14:27.582 -> Card Inserted
21:14:27.666 -> Writing:  31 73 3b 74 02 04 02 00 00
21:14:27.666 -> enqueue mp3 400 0
21:14:27.699 -> play mp3 400
21:14:27.699 -> OUT  7e ff 06 12 01 01 90 fe 57 ef
21:14:27.781 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:27.889 -> Card Removed
21:14:27.928 -> Card Inserted
21:14:31.407 -> Card Removed
21:14:31.407 -> WriteCard -> finished
21:14:31.407 -> enter Idle
21:14:31.480 -> IN  7e ff 06 3d 00 00 1d fe a1 ef
21:14:43.090 -> Card Inserted
21:14:43.090 -> Auth  failed: 1
21:14:44.177 -> Card Removed
21:14:44.177 -> Card Inserted
21:14:44.213 -> CardData:  31 73 3b 74 02 04 02 00 00
21:14:44.213 -> enter StartPlay
21:14:44.213 -> enqueue mp3 262 0
21:14:44.253 -> play mp3 262
21:14:44.253 -> OUT  7e ff 06 12 01 01 06 fe e1 ef
21:14:44.285 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:44.430 -> Card Removed
21:14:45.706 -> IN  7e ff 06 3d 00 00 08 fe b6 ef
21:14:45.751 -> OUT  7e ff 06 4e 00 00 04 fe a9 ef
21:14:46.573 -> IN  7e ff 06 4e 00 00 01 fe ac ef
21:14:46.573 -> 1 tr in folder 4
21:14:46.573 -> enqueue 4-1  
21:14:46.605 -> play 4-1
21:14:46.605 -> OUT  7e ff 06 0f 01 04 01 fe e6 ef
21:14:46.760 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:47.617 -> enter Play
21:14:47.617 -> OUT  7e ff 06 0d 01 00 00 fe ed ef
21:14:47.688 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:54.698 -> Command: 1
21:14:54.698 -> enter AdmAllow
21:14:54.782 -> enter AdmEntry
21:14:54.783 -> OUT  7e ff 06 16 01 00 00 fe e4 ef
21:14:54.849 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:14:54.849 -> enqueue mp3 900 0
21:14:54.884 -> play mp3 900
21:14:54.884 -> OUT  7e ff 06 12 01 03 84 fe 61 ef
21:14:55.062 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:15:04.462 -> Command: 18
21:15:04.462 -> enqueue mp3 901 0
21:15:04.462 -> enter AdmNewCard
21:15:04.497 -> play mp3 901
21:15:04.497 -> OUT  7e ff 06 12 01 03 85 fe 60 ef
21:15:04.568 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:15:05.576 -> enter ChMode
21:15:05.576 -> enqueue mp3 310 0
21:15:05.618 -> play mp3 310
21:15:05.618 -> OUT  7e ff 06 12 01 01 36 fe b1 ef
21:15:05.699 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:15:10.860 -> Command: 18
21:15:10.861 -> enqueue mp3 312 0
21:15:10.861 -> ChMode: 2
21:15:10.861 -> enter ChFolder
21:15:10.861 -> enqueue mp3 301 0
21:15:10.900 -> play mp3 301
21:15:10.900 -> OUT  7e ff 06 12 01 01 2d fe ba ef
21:15:10.976 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:15:16.353 -> Command: 18
21:15:16.353 -> enqueue mp3 3 0
21:15:16.353 -> ChFolder: 3
21:15:16.392 -> play mp3 3
21:15:16.392 -> OUT  7e ff 06 12 01 00 03 fe e5 ef
21:15:16.472 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:15:17.510 -> IN  7e ff 06 3d 00 00 0b fe b3 ef
21:15:17.510 -> enter WriteCard
21:15:17.558 -> enqueue mp3 800 0
21:15:17.600 -> play mp3 800
21:15:17.600 -> OUT  7e ff 06 12 01 03 20 fe c5 ef
21:15:17.667 -> IN  7e ff 06 41 00 00 00 fe ba ef
21:15:20.387 -> IN  7e ff 06 3d 00 00 20 fe 9e ef
21:17:24.957 -> Command: 13
21:17:25.872 -> Command: 15
21:17:26.349 -> Command: 13

Ich habe zwar keine Ahnung, was ich geändert habe, aber nach einem erneuten Aufspielen der Firmware (mit Hilfe von Visual Studio Code) scheint das Beschreiben und Lesen der Karten nun zuverlässig zu funktionieren.

@Boerge1 vielen Dank noch einmal für die Unterstützung!

Na, das ist ja schön, dass jetzt alles funktioniert. Die obigen Änderungen hast du sicher wieder entfernt? Die werden ja nicht benötigt.

1 „Gefällt mir“

@mariusm: Hier im Forum ist das Benennen von Ordnern und Dateien genau beschrieben.
Du MUSST die Ordner 01…99 LÜCKENLOS benennen; dagegen KANNST du die Dateien innerhalb der Ordner durchaus „lesend“ LÜCKENLOS benennen: also z.B. 001-IchBinEinHoerspiel.mp3 → wichtig ist, dass die Files innerhalb eines Ordners dreistellig mit lückenlosen Nummern beginnen, also 001-xyz.mp3, 002-abc.mp3, 003-blabla.mp3 … etc. bis maximal 255-JetztIstAberSchlussInDiesemOrdner.mp3

Desweiteren beachte, dass der DF-Player die Files und Ordner mit seiner (eingeschränkten) „Intelligenz“ selbst einliest und die TonUINO-firmware hier keinen Einfluss hat.

Es ist außerdem empfehlenswert, sollten mal Änderungen der Reihenfolge innerhalb der SD-Karte oder auch innerhalb eines Ordners anstehen, dass man das nicht direkt auf der SD-Karte macht, sondern besser auf dem PC vorbereitet und dann idealerweise die SD-Karte bei größeren Umsortierungen komplett neu formatiert, dann die beiden System-Ordner (advert und m3) aufspielt und danach in einem Rutsch die vorbereiteten Ordner mit den Liedern etc. darin.

1 „Gefällt mir“

Es gibt durchaus auch Player die mit weiteren Zeichen nicht zurecht kommen. Im Zweifel also besser ohne.

1 „Gefällt mir“

@rpt007 & @Gute_Laune Danke für die genaue Beschreibung und die eränzenden Hinweise.

Ihr habt natürlich recht, hier im Forum ist es bereits mehrfach korrekt beschrieben, ich hab nur nicht genau genug gelesen… sorry!
Herzlichen Dank um so mehr für Eure Hilfe!

@Boerge1 Die Änderungen hatte ich wieder entfernt, ja. Danke für den Hinweis.

Gerne. Selbst wenn man es weiß, kann mam das novh falsch machen. Bei Vorbereiten der Ordner für die SD-Karte ergänze ich auch gerne etwas hinter der Nummer und schon mehr als einmal habe ich dann vergessen es zu löschen.