Anzahl der Tracks werden nicht erkannt

Hallo,
der Tonuino meiner Kinder verhält sich seltsam. Egal welche Karte ich verwende, es wird immer beim ersten auflegen nur der erste Track des Ordners gestartet und komplett abgespielt, dann ist die Wiedergabe beendet. Beim zweiten mal auflegen wird dann der ganze Ordner gespielt, obwohl sich nichts verändert hat. Der serielle Monitor gibt folgendes aus:

Erstmal beim starten, ohne Karte:

15:29:22.417 -> 
15:29:22.417 ->  _____         _____ _____ _____ _____
15:29:22.417 -> |_   _|___ ___|  |  |     |   | |     |
15:29:22.417 ->   | | | . |   |  |  |-   -| | | |  |  |
15:29:22.417 ->   |_| |___|_|_|_____|_____|_|___|_____|
15:29:22.417 -> 
15:29:22.417 -> TonUINO Version 2.1
15:29:22.417 -> created by Thorsten Voß and licensed under GNU/GPL.
15:29:22.417 -> Information and contribution at https://tonuino.de.
15:29:22.417 -> 
15:29:22.417 -> === loadSettingsFromFlash()
15:29:22.417 -> Version: 2
15:29:22.417 -> Maximal Volume: 20
15:29:22.417 -> Minimal Volume: 1
15:29:22.417 -> Initial Volume: 1
15:29:22.417 -> EQ: 1
15:29:22.417 -> Locked: 0
15:29:22.417 -> Sleep Timer: 0
15:29:22.417 -> Inverted Volume Buttons: 0
15:29:22.417 -> Admin Menu locked: 1
15:29:22.417 -> Admin Menu Pin: 1111
15:29:22.417 -> === setstandbyTimer()
15:29:22.417 -> 0
15:29:24.510 -> Firmware Version: 0x92 = v2.0
15:29:24.510 -> === playShortCut()
15:29:24.510 -> 3
15:29:24.510 -> Shortcut not configured!

Dann wird die Karte das erste Mal aufgelegt, der erste Titel wird gespielt und danach ist die Wiedergabe gestoppt:

15:29:57.306 -> Card UID: 03 BE D1 08
15:29:57.306 -> PICC type: MIFARE 1KB
15:29:57.306 -> Authenticating Classic using key A...
15:29:57.306 -> Reading data from block 4 ...
15:29:57.306 -> Data on Card :
15:29:57.306 ->  13 37 B3 47 02 31 02 09 DA 00 00 00 00 00 00 00
15:29:57.306 -> 
15:29:57.306 -> 49
15:29:57.306 -> 49
15:29:57.306 -> == playFolder()
15:29:57.306 -> === disablestandby()
15:29:57.353 -> 1 Dateien in Ordner 49
15:29:57.353 -> Album Modus -> kompletten Ordner wiedergeben
15:29:58.766 -> 119
15:29:58.766 -> === nextTrack()
15:29:58.766 -> === setstandbyTimer()
15:29:58.766 -> 0

Direkt danach wird dieselbe Karte nochmal aufgelegt, jetzt wird der ganze Ordner gespielt:

15:30:22.300 -> Card UID: 03 BE D1 08
15:30:22.300 -> PICC type: MIFARE 1KB
15:30:22.300 -> Authenticating Classic using key A...
15:30:22.347 -> Reading data from block 4 ...
15:30:22.347 -> Data on Card :
15:30:22.347 ->  13 37 B3 47 02 31 02 09 DA 00 00 00 00 00 00 00
15:30:22.347 -> 
15:30:22.347 -> 49
15:30:22.347 -> 49
15:30:22.347 -> == playFolder()
15:30:22.347 -> === disablestandby()
15:30:22.393 -> 19 Dateien in Ordner 49
15:30:22.393 -> Album Modus -> kompletten Ordner wiedergeben
15:30:23.749 -> 119
15:30:23.749 -> === nextTrack()
15:30:23.749 -> Albummodus ist aktiv -> nächster Track: 2120
15:30:25.109 -> === nextTrack()
15:30:25.109 -> Albummodus ist aktiv -> nächster Track: 3121
15:30:26.702 -> === nextTrack()
15:30:26.702 -> Albummodus ist aktiv -> nächster Track: 4122
15:30:28.343 -> === nextTrack()
15:30:28.381 -> Albummodus ist aktiv -> nächster Track: 5123
15:30:30.015 -> === nextTrack()
15:30:30.015 -> Albummodus ist aktiv -> nächster Track: 6124
15:30:31.616 -> === nextTrack()
15:30:31.663 -> Albummodus ist aktiv -> nächster Track: 7125
15:30:33.316 -> === nextTrack()
15:30:33.316 -> Albummodus ist aktiv -> nächster Track: 8126
15:30:35.017 -> === nextTrack()
15:30:35.017 -> Albummodus ist aktiv -> nächster Track: 9127
15:30:36.761 -> === nextTrack()
15:30:36.761 -> Albummodus ist aktiv -> nächster Track: 10128
15:30:38.454 -> === nextTrack()
15:30:38.454 -> Albummodus ist aktiv -> nächster Track: 11129
15:30:40.142 -> === nextTrack()
15:30:40.142 -> Albummodus ist aktiv -> nächster Track: 12130
15:30:41.396 -> === nextTrack()
15:30:41.396 -> Albummodus ist aktiv -> nächster Track: 13131
15:30:42.894 -> === nextTrack()
15:30:42.941 -> Albummodus ist aktiv -> nächster Track: 14132
15:30:44.564 -> === nextTrack()
15:30:44.564 -> Albummodus ist aktiv -> nächster Track: 15133
15:30:46.178 -> === nextTrack()
15:30:46.178 -> Albummodus ist aktiv -> nächster Track: 16134
15:30:47.823 -> === nextTrack()
15:30:47.823 -> Albummodus ist aktiv -> nächster Track: 17135
15:30:49.486 -> === nextTrack()
15:30:49.486 -> Albummodus ist aktiv -> nächster Track: 18136
15:30:51.128 -> === nextTrack()
15:30:51.128 -> Albummodus ist aktiv -> nächster Track: 19137
15:30:52.853 -> === nextTrack()
15:30:52.853 -> === setstandbyTimer()
15:30:52.853 -> 0

Ich bin ratlos und brauche bitte Hilfe!

Schau dir mal diesen Beitrag an. Der könnte dir eventuell auch helfen.

wolzotan

(Lautstärke sehr laut - #31 von wolzotan)

Danke, das war das Problem. Toll! Ich hatte noch garnicht recherchiert, war noch an dem anderen Problem.

Ich poste jetzt einfach weiterhin in diesem Topic.

Auf Thomas’ Anregung hin hab ich mir die Library nochmal genau angeguckt. Stellt sich raus, die Funktionen rufen alle eine Funktion SendPacket() auf, die aus den übergebenen Hex-Bytes das serielle Packet konstruiert und an den DFplayer übermittelt. Diese Funktion ist so geschrieben, als solle sie bis zu einer definierten Zeit c_msSendSpace warten, dass der DFPlayer sich nach getaner Arbeit zurückmeldet, und dann in weiteren Durchläufen jeweils nur noch so lang warten, wie sie zuletzt gewartet hat, so verstehe ich das. Wie auch immer, das haut wohl nicht hin, ob das jetzt an meinem Chip liegt oder an der Funktion weiß ich nicht. SendPacket wartet immer so lang, wie hardkodiert in c_msSendSpace festgelegt. Ich hab diesen Wert auf 100 erhöht, das hat den Fehler noch nicht behoben, aber bei 120ms läuft er fehlerfrei durch.
Ich bevorzuge diesen Fix, weil er mit einer Änderung in der Bibliothek sowohl SetVolume als auch
playMp3FolderTrack repariert.
GetTotalFolderCount lässt sich davon leider nicht beeindrucken, auch nicht von noch mehr Zeit.

Also: die Library, liegt bei mir unter
/home/$user/snap/arduino/current/Arduino/libraries/DFPlayer_Mini_Mp3_by_Makuna/src
aufmachen und in Zeile 368 so ändern:

private:
    static const uint16_t c_msSendSpace = 120;

Dann brauchts auch keine Delays extra eingefügt.

Einmal der Link zu dem Thema was @Thomas-Lehnert meint:

Mich erinnert deine Beschreibung sehr an dieses Thema:

Das betrifft aber nicht die AiO-Platine. Aber dein Output der Konsole zeigt auch nicht, dass du eine AiO-Platine verwendest. @RiMa2107 welche Hardware verwendest du denn? Denn viele Fehler schließen wir bei einer AiO-Platine einfach aus. Das erschwert dann die Fehlersuche.

@Thomas-Lehnert das gilt doch für die dfPlayer. Bei der AiO sollte das nicht sein.

Edit. Die Kategorie #software-aio ist falsch. Sehe gerade im seriellen Monitor dass es sich um die klassische Variante handelt.

1 „Gefällt mir“

Deswegen hab ich es auch verschoben.

Hab ich gesehen. Als ich mein Update geschrieben hatte und die Kategorie ändern wollte war sie schon geändert :joy:

Dann muss jetzt nur noch @Thomas-Lehnert sein Posting aufräumen und dann kanns weitergehen.

Das betrifft aber nicht die AiO-Platine. Aber dein Output der Konsole zeigt auch nicht, dass du eine AiO-Platine verwendest. @RiMa2107 welche Hardware verwendest du denn? Denn viele Fehler schließen wir bei einer AiO-Platine einfach aus. Das erschwert dann die Fehlersuche.

Das ist eine gute Frage, ich hab das Set bei Amazon gekauft. Das ganze habe ich auf eine Leiterplatte gelötet und hat bisher eigentlich gut funktioniert. Die Probleme kamen erst als ich dann den zweiten Tonuino gebaut hab und den auch mit denselben Karten nutzen wollte, der hatte dann diese Probleme. Der erste läuft mit den Karten nach wie vor ohne Probleme.

Wie finde ich denn heraus welche Hardware ich verwendet hab? Auf dem Chip steht jedenfalls nichts drauf, das Problem hatte ich schon bei der Suche der Treiber.

Das Chipmodell vom DFPLayer, findest du vermerkt direkt auf dem Chip, auf der Unterseite der Platine, der größere der beiden ICs. Zum Beispiel in diesem Beitrag findest du ein Bild von Chip GD3200B, der wohl manchmal ähnliche Probleme macht. Wenn du das Modul natürlich verlötet hast wird schwierig. Ich hatte auch ähnliche Probleme mit diesem Chipsatz, hab das aber nicht weiter verfolgt sondern ein anderes Modul (mit anderen Problemen) weiter verwendet.

Also verwendest du nicht die Aio-Platine der Leiterkartenpiraten. Davon war ich bisher immer ausgegangen da du ja

gewählt hattest. Dann können dich die Hinweise oben ja doch betreffen.

Im anderen Post schreibst du, das Problem träte nicht mehr auf, wie hast du es denn gelöst?

Das Chipmodell vom DFPLayer, findest du vermerkt direkt auf dem Chip, auf der Unterseite der Platine, der größere der beiden ICs. Zum Beispiel in diesem Beitrag findest du ein Bild von Chip GD3200B, der wohl manchmal ähnliche Probleme macht. Wenn du das Modul natürlich verlötet hast wird schwierig. Ich hatte auch ähnliche Probleme mit diesem Chipsatz, hab das aber nicht weiter verfolgt sondern ein anderes Modul (mit anderen Problemen) weiter verwendet.

@wolzotan ich hab das Modul auf eine normale Leiterplatte gelötet, also keine vernünftige Chance mehr die Unterseite zu sehen. Aus der Artikelbeschreibung geht leider auch nicht näher hervor um welches Modell es sich handelt. Gekauft hab ich folgendes Set, hoffe es ist ok den Link hier zu posten:
https://www.amazon.de/dp/B07TXTV5CH
Ich bin davon ausgegangen dass ein fertiges Set grundsätzlich nicht verkehrt sein kann und die Hardware gut auf den Tonuino abgestimmt ist, wenn dieser schon in der Beschreibung als Verwendungszweck angegeben ist.

@Gute_Laune ich wusste nicht dass es so ne All-in-One Version überhaupt gibt und bin auch in diesem Forum neu, also auch nicht mit den Kategorien hier vertraut. Sorry dass ich das durcheinander gebracht hab. Ich verwende die Bauteile aus dem Set, siehe oben.

Dann kannst du nur versuchen die Hinweise für die verschiedenen Player nacheinander auszuprobieren. Am besten fängst du mit den Hinweisen an, die am besten zum Fehlerbild passen.
Fürs nächste mal empfehle ich die Bauteile zu sockeln, dann kann man ein nicht funktionierendes Bauteil hinterher auch noch austauschen.

@wolzotan ich hab das Problem nicht gelöst, nur verlagert. Es wird jetzt nicht mehr alles mögliche der Titel abgespielt, was vorher ja der Fall war. Ich denke FatSorter hat da geholfen.

Jetzt scheint es jedenfalls genau das von @Gute_Laune in dem anderen Beitrag gelöste Problem zu sein mit der Anzahl der Tracks im Ordner, dass er die Titel erst richtig zählt nachdem die Karte ein zweites Mal aufgelegt wurde. Ich werde die Lösung mit der stillen Audio mal ausprobieren mal schauen ob das hilft. Als Zwischenlösung legen die Kinder jetzt einfach jede Karte immer 2mal drauf, aber auch da stimmen die Anzahl der Titel im Ordner nicht immer. Aber wesentlich öfter als vorher :wink:

Ansonsten hilft es die von-bis Modi zu nehmen. Da zählen nur die eingestellten Grenzen und nicht die gezählte Anzahl der Tracks.

Hab ich hier schon gelesen, klang aber eher nach ner Notlösung? Wenn es effektiv ist ist mir alles recht.

Es kommt auf die Verwendung an. Wenn ich jedes Mal, wenn ich eine Folge Bibi Blocksberg hinzufüge, die Karte neu programmieren muss, weil es jetzt ein neues „bis“ gibt, würde mich das nerven. Bei allem, wo nicht regelmäßig was hinzukommt ist es relativ egal.

@Gute_Laune Hört sich gut an, wir haben sowieso für jeweils 2 Folgen eine Karte, die dann nicht mehr verändert wird sobald der Ordner zugeordnet ist.

Was mich noch interessieren würde, wenn ich die Komponenten für den nächsten Arduino kaufe. Welches Modell des DFPlayers kaufe ich denn nun am besten und wo? Amazon schon mal nicht, da ist nirgendwo beschrieben um welches Modell es sich genau handelt. Da scheint es auch nicht mal echte Arduinos zu geben, nur Klone ohne genaue Bezeichnung. Oder ich suche falsch :sweat_smile:

Dazu schaust du am besten in die FAQ. Wo ist Glücksache, denn meistens wird nicht angegeben, welcher Chip verwendet wird. Nur weil es dort vor einiger Zeit den richtigen gab, heißt es auch nicht, dass es dort jetzt noch den selben Chip gibt.

Original Arduinos bekommt man bei Amazon durchaus. Allerdings sind die halt sehr viel teurer