DFPlayer verschiedene Versionen

Das Problem ist, dass auch AZ in China einkauft und da irgendwas bekommt. Die ursprünglichen Chips werden wohl nicht mehr produziert und irgendjemand hat dann neue Chips mit neuer Firmware herausgebracht…

Richtig, das sollte jetzt AZ auch nicht in ein schlechtes Licht stellen oder so. Ich wollte nur damit aufzeigen, dass Interessierte vielleicht die Komponenten separat besorgen. Und nicht das Set, wo 2 von 3 Komponenten im Standard schlicht nicht funktionieren. Und nur eine davon mit einer Änderung lauffähig ist.

Genau wie bei mir! DFPlayer macht Schwierigkeiten und der RFID Reader ging ohne die Umbelegung gar nicht. Hat ein bisschen Nerven gekostet :sweat_smile:
Aber nun scheint es zu gehen!

Ich verlinke meine Erfahrung bzgl. des Readers hier der Vollständigkeit halber:

Ich habe mir 2 Module bei Androegg bestellt, sie haben denselben Chip wie auf deiner Abbildung.
Aufdruck vorn: MP3-TF-16P V3.0 Chip: MH2024K-24SS NO 202106

Sie produzieren bei mir beide das schon häufiger beschriebene Fehlerbild, dass die Lautstärke viel zu laut ist. Ich habe die SD-Karte mit dem empfohlenen Tool formatiert, und das Delay nach MP3.begin() auf 10sec gesetzt, ohne Verbesserung. Dann hab ich die Code-Examples aus Makunas Library ausgeführt, hier zeigt sich im Monitor jedes Mal bei Ausführen von mp3.SetVolume nach kurzer Pause wie bei einem Timeout die Meldung „COM ERROR 129“. GetVolume() erbringt immer „30“.
Dann hab ich den DFPlayer-Analyzer ausgeführt, die Ergebnisse hab ich hier gepostet.

Ich hab noch einen mit GB3200-Chip, der hat auch seine Macken, aber zumindest kann ich ihn einsetzen ohne dass mir die Ohren abfallen :smiley:
Hat jemand Tipps für mich wie ich setVolume zum Laufen bringe?

Zum Thema Error 129 gibt es schon ein paar Hinweise.
Die FAQ gibt dazu auch etwas aus:

Vielleicht ist das ja auch bei dir der Grund für das Fehlverhalten?!

Hallo, das wäre schön gewesen, leider ist das nicht die Ursache meines Problems. 3 Module mit dem MH2024K-24SS, bei keinem der Module besteht der beschriebene Kurzschluss, alle drei Module reagieren nicht auf SetVolume und geben ein COM Error 129 zurück.
Ich hab einen sehr reduzierten Versuchsaufbau auf dem Breadboard gemacht, nur Arduino nano, DfPlayer, Lautsprecher, so verkabelt:

D2 ---- 1k ----- RX(DFPlayer)
D3 ------------- TX(DFPlayer)
VCC ------------ VCC(DFPlayer)
GND ------------ GND(DFPlayer)

und habe mit dem PLayMp3 Example aus der Library rumprobiert, jedes Mal bekomme ich den Fehler beim Aufruf von SetVolume und der Player spielt munter auf der lautesten Lautstärke los. Das ist schon deshalb ein Problem weil ich nur an meinem Tonuino basteln kann wenn der Kleine schläft :smiley:

Hallo,
ich habe zwei Player, einen mit einem YX5200-24SS Chip und einen mit einem GD3200B. Der mit dem YX… Chip spielt sofort los, wenn eine Karte aufgelegt wird (so soll es sein), der GD… tut das nicht, hier muss noch immer play gedrückt werden. Wie kann ich dem GD… das abgewöhnen?

In der Tonuino Standartsoftware (DEV 2.1) wird ja die Lautstärkeänderung durch increase und decrease ausgeführt. Bei meinem Fork, always queue habe ich dies durch Vol ++ und Vol-- ersetzt und weise dann die Werte durch mp3.SetVolume zu. Leider ist bei mir bisher kein DF-Player mit dem beschriebenen Fehlverhalten aufgetaucht, aber vielleicht hat jemand der meinen Fork benutzt mit so einem Fehlerhaften df-Player Erfahrungen gemacht. Es wäre interessant für mich, das zu erfahren.

Hallo,
ich debugge immer noch mit der Schrotflintenmethode an dem Problem rum. Ich komme dem Fehler nicht richtig auf die Spur, weil er nicht stabil ist. Ich habe ausprobiert: 1kOhm in RX/D2 und TX D3, gar keine Widerstände in diesen Verbindungen und jeweils 500ohm, ohne Veränderung. Dann hab ich versucht die Checksums aus der Bibliothek zu nehmen, keine Veränderung. Dann hab ich nochmal den Aufbau wie oben gemacht, und das Standard PlayMp3Example aus Makunas Bibliothek, und da funktioniert dann plötzlich das Setvolume ohne Error 129, und er spielte fein die Lautstärke die ich wollte. Habe in dieser Situation den OriginalNano gegen einen China-Klon getauscht, funktionierte. Dann den DFplayer gegen einen Baugleichen mit gleichem Chip getauscht, funktionierte.

Dann bin ich zurück zu meinem Tonuinoaufbau gegangen, und hab wieder meinen Sketch aufgespielt, der aufbaut auf @Thomas-Lehnert s Version von 2021-01-01, und hier spielt der DFPlayer dann mit der Lautstärke, die ich zuletzt in dem anderen Sketch eingestellt hatte los, bringt aber im Setup() sowohl nach mp3.SetVolume() als auch nach mp3.getTotalFolderCount() einen RX-Timeout.

Also, das Problem scheint nicht der Arduino zu sein, auch nicht eins meiner Module, auch nicht der Aufbau oder die Verkabelung. Dem Problem scheint irgendwie mit Programmierung generell beizukommen zu sein, ich kann nur noch nicht genau sagen wie. Würde mich über Ideen freuen, wenn jemand mit mehr Wissen dazu mitdenkt :wink: Ich bin Autodidakt und hab von allen Themenfeldern hier ein bisschen aber nicht richtig Ahnung, außerdem komm ich wegen Kinderbetreuung nur so 1-2x/Woche für eine halbe Stunde zum tüfteln.

Ich hab jetzt hier auch 4 Module mit dem besagten Chip (MH2024K-24SS) liegen, und verschicke/verschenke die gern, gegen Unterstützung bei der Fehlersuche.

Könnten eventuell Timing Probleme aufgrund von SoftwareSerial sein. Hast du mal mit delays rund um mp3.setVolume(volume); rumgespielt?

1 „Gefällt mir“

Hey, ja also ich habe wie @simon1 hier mit dem Delay zwischen mp3.begin(); und den nächsten Befehlen gespielt, bis 15sec, das hat nichts gebracht.

Heute beim Wickeln kam mir der Gedanke, dass ich noch nicht versucht habe, Delays NACH den Befehlen, die Fehler zurückbringen, auszuprobieren, dazu bin ich noch nicht gekommen.

Oke, also das wars. Ein simpler delay(100); direkt nach dem Aufruf von mp3.SetVolume() reicht aus, der Befehl wird ausgeführt und es kommt kein RX Timeout Error zurück. Hätt ich mal früher drauf kommen können.

Der Befehl mp3.GetTotalFolderCount(); ergibt weiter denselben Fehler, aber den Befehl brauch ich nicht so dringend.

Danke fürs Mitdenken allerseits.

2 „Gefällt mir“

Nun ist das ja ein paar Jahre her, hab grade bestellt er scheint ja noch welche zu haben bin gespannt und werde berichten wäre meine Rettung, da ich 3 Geräte gebaut habe zu Weinachten sollten die fertig sein und diese Problematik liest man ja erst wenn man sein Freizeit opfert und sich hier durch Stunden lang lesen muss. Also sowas sollte von Anfang an erklärt werden und nicht noch Hinweise wie dort bekommt man die Bauteile die ja im Grunde nicht gehen wegen der veränderung des Chips und doch sag ich an alle ein großes DANKE hier weil es mir weiter geholfen hat.

Ich bin kurz vor: alles auf den Boden schmeißen und darauf rum trampeln, dann alles anzünden, anschließend in Tränen ausbrechen.
Ich war so stolz auf meine top Lötstellen, habe mich mit dem 2038 Arduino rumgeschlagen, von AZdelivery einen neuen bekommen, erfolgreich den Sketch draufgeladen, immer noch keinen Ton rausbekommen, Stunden lang hier gelesen, GND mit IO_1 überbrückt, es kommt Musik. Ich verstehe nur nicht, wie ich den Tonuino jetzt als Kindermusikbox ans Laufen kriege. Hatte den GD3200B bei AZ reklamiert und denselben DFPlayer erneut bekommen. Wo kriege ich einen funktionierenden Player her? Androegg geht doch nicht? Oder muss ich in dem Sketch rumpfuschen?

Guten Abend,
schreib mir bitte eine PN und wir werden ein Lösung finden.

Was ich bezüglich des GD3200B interessant finde, ist die Symbiose aus Zufälligkeit und Determinismus. Wenn man zu früh mit dem Chip redet (zu wenig delay für initialisierung des Dateisystems, etc…) erhalte ich sehr zuverlässig einen COM 3 Fehler bei genau jedem 8. Befehl.

Problematisch ist auch ein Reset des Mikrokontrollers während der DFPlayer noch läuft → Denn hier ist kurzzeitig „garbage“ auf der UART zum Chip. Davon scheint der sich nicht mehr zuverlässig zu erholen.

Ich führe jetzt fürs debuggen ein im setup() ein chip reset durch und warte 2 Sekunden, bis der GD3200B hoffentlich vollständig initialisiert ist. Im Verbund mit gut gestreuten delay()s, um den Chip nicht zu „überfordern“ komme ich damit jetzt (nach viel zu langem debuggen und basteln) einigermaßen gut mit dem GD3200B klar… Allerdings bisher nur in Test und Debug Programmen, an die „echte“ Tonuino Firmware muss ich mich jetzt erst noch langsam heran wagen.

Es ist einfach echt extrem ärgerlich, wenn man verbuggte Hardware hat und dann unnötig viel Zeit damit verschwenden muss, in Software workarounds zu finden - und das alles natürlich ohne Dokumentation o.ä.

2 „Gefällt mir“

Ich möchte noch anmerken, obwohl das etwas off-topic ist, AZ Delivery verschickt im Set auch den fehlerhaften DFplayer GD3200B (link) mit dem es auch wenig Spass macht.

Ich hatte AZDelivery darauf hingewiesen, sie haben einfach nochmal das gesamte Set - mit dem selben Chip - an mich geschickt.

Berrybase hat noch Player, eventuell sind das gute:

Bei den technischen Daten steht, dass er auch mit dem GD3200 bestückt ist. Schade.:unamused: