GD3200B - Anzahl angezeigter Ordner erst nach 2.tem Auflegen der Karte richtig

Hallo!

Erst mal muß ich sagen, daß der Tonuino ein genialen Projekt ist. Bin begeistert daran meinen Ersten eigenen zu verwirklichen.
Leider habe ich festgestellt, daß wenn ich eine neue AlbumKarte auflege, die serielle Ausgabe die Anzahl der Dateien aus dem Ordner der zuvor gespielt wurde anzeigt. So kann ich auch nur bis zu dieser Anzahl Vorspulen. Nach dem zweiten Auflegen der neuen Albumkarte wirds richtig angezeigt und das Vorspulen läuft wie es soll.

Mir scheint, daß der alte laufende Ordner noch an die AnzahlDateienImOrdner-Routine übergeben wird. Und da das zweite Auflegen die richtigen Werte liefert unterstützt das der DFPlmini auch.

Ich habe den Nano (UNO wurde editiert), DFPlmini, FRC522 getauscht, alle Kabel gewechselt, die Tonuinoplatine geprüft, 2 unterschiedliche SD-Karten jeweils neu formatiert (Win + Linux), nach Format bespielt, alle RFID-Karten neu zugewiesen bzw. neue leere genommen.
Benutzte Version: 2.1 DEV

Würde mich freuen, wenn mir jemand helfen kann. In der Suche habe ich nur einen Beitrag zu dem Thema gefunden und dieser hilft nicht weiter.

Großes Danke voraus!!!

1 „Gefällt mir“

Du verwendest die TonUINO-Platine und einen Arduino Uno (nicht einen Arduino Nano)?

Was für einen Player hast du denn verwendet? Es gibt den ja mit verschiedenen Chips. Informationen dazu findest du in der Hardware FAQ.

Ansonsten wäre es hilfreich, wenn du die Ausgabe das seriellen Monitors teilen würdest. Also kopieren, einfügen, hier im Editor markieren und mit dem </> Knopf formatieren

Hallo, danke für die schnelle Antwort. Natürlich habe ich einen Nano auf der Platine,
keine Ahnung wie ich auf UNO komme?!

Hier die serielle Ausgabe: (Kommentare von mir hinter ##)

08:42:47.599 ->  _____         _____ _____ _____ _____
08:42:47.599 -> |_   _|___ ___|  |  |     |   | |     |
08:42:47.599 ->   | | | . |   |  |  |-   -| | | |  |  |
08:42:47.599 ->   |_| |___|_|_|_____|_____|_|___|_____|
08:42:47.599 -> 
08:42:47.599 -> TonUINO Version 2.1
08:42:47.599 -> created by Thorsten Voß and licensed under GNU/GPL.
08:42:47.599 -> Information and contribution at https://tonuino.de.
08:42:47.632 -> 
08:42:47.632 -> === loadSettingsFromFlash()
08:42:47.632 -> Version: 2
08:42:47.632 -> Maximal Volume: 20
08:42:47.632 -> Minimal Volume: 1
08:42:47.632 -> Initial Volume: 5
08:42:47.632 -> EQ: 1
08:42:47.632 -> Locked: 0
08:42:47.632 -> Sleep Timer: 0
08:42:47.632 -> Inverted Volume Buttons: 0
08:42:47.632 -> Admin Menu locked: 0
08:42:47.632 -> Admin Menu Pin: 1111
08:42:47.632 -> === setstandbyTimer()
08:42:47.632 -> 0
08:42:49.770 -> Firmware Version: 0x92 = v2.0
08:42:49.770 -> === playShortCut()
08:42:49.770 -> 3
08:42:49.770 -> == playFolder()
08:42:49.770 -> === disablestandby()
08:42:49.837 -> 4 Dateien in Ordner 1
08:42:49.837 -> Einzel Modus -> eine Datei aus dem Odrdner abspielen
08:42:49.837 -> === disablestandby()
08:42:50.838 -> 1
08:42:50.838 -> === nextTrack()
08:42:50.838 -> Einzel Modus aktiv -> Strom sparen
08:42:50.838 -> === setstandbyTimer()
08:42:50.838 -> 0
08:42:56.578 -> Card UID: C3 3C 9D 16      ##1te mal Karte Ordner 2 mit 11 Dateien aufgelegt
08:42:56.578 -> PICC type: MIFARE 1KB
08:42:56.578 -> Authenticating Classic using key A...
08:42:56.578 -> Reading data from block 4 ...
08:42:56.578 -> Data on Card :
08:42:56.578 ->  13 37 B3 47 02 02 02 09 DA 00 00 00 00 00 00 00
08:42:56.578 -> 
08:42:56.578 -> 2
08:42:56.578 -> 2
08:42:56.578 -> == playFolder()
08:42:56.578 -> === disablestandby()
08:42:56.645 -> 4 Dateien in Ordner 2 ## nur 4 Dateien angezeigt, soviel sind in Ordner 1
08:42:56.645 -> Album Modus -> kompletten Ordner wiedergeben
08:43:06.246 -> 30707
08:43:06.246 -> === nextTrack()
08:43:06.246 -> Albummodus ist aktiv -> nächster Track: 22335
08:43:08.049 -> === nextTrack()
08:43:08.049 -> Albummodus ist aktiv -> nächster Track: 359968
08:43:10.383 -> === nextTrack()
08:43:10.383 -> Albummodus ist aktiv -> nächster Track: 418285  ## kann nur bis 4 vorspulen
08:43:12.684 -> === nextTrack()
08:43:12.684 -> === setstandbyTimer()
08:43:12.684 -> 0
08:43:21.591 -> Card UID: C3 3C 9D 16  ##2tes mal Karte fuer ordner 2 mit 11 Dateien aufgelegt
08:43:21.591 -> PICC type: MIFARE 1KB
08:43:21.591 -> Authenticating Classic using key A...
08:43:21.591 -> Reading data from block 4 ...
08:43:21.591 -> Data on Card :
08:43:21.591 ->  13 37 B3 47 02 02 02 09 DA 00 00 00 00 00 00 00
08:43:21.591 -> 
08:43:21.591 -> 2
08:43:21.591 -> 2
08:43:21.591 -> == playFolder()
08:43:21.591 -> === disablestandby()
08:43:21.658 -> 11 Dateien in Ordner 2 ## jetzt richtige Anzahl Dateien im Ordner
08:43:21.658 -> Album Modus -> kompletten Ordner wiedergeben
08:43:25.593 -> 20763
08:43:25.593 -> === nextTrack()
08:43:25.593 -> Albummodus ist aktiv -> nächster Track: 21020
08:43:27.586 -> === nextTrack()
08:43:27.586 -> Albummodus ist aktiv -> nächster Track: 353817
08:43:29.384 -> === nextTrack()
08:43:29.384 -> Albummodus ist aktiv -> nächster Track: 447747
08:43:31.551 -> === nextTrack()
08:43:31.585 -> Albummodus ist aktiv -> nächster Track: 59570
08:43:33.651 -> === nextTrack()
08:43:33.651 -> Albummodus ist aktiv -> nächster Track: 6 ## vorspulen bis zu Titel 11 möglich
08:43:35.685 -> Card UID: A3 E9 7F 16 ##1te mal Karte fuer Ordner 3 mit 15 Dateien aufgelegt
08:43:40.279 -> PICC type: MIFARE 1KB
08:43:40.279 -> Authenticating Classic using key A...
08:43:40.279 -> Reading data from block 4 ...
08:43:40.313 -> Data on Card :
08:43:40.313 ->  13 37 B3 47 02 03 02 09 DA 00 00 00 00 00 00 00
08:43:40.313 -> 
08:43:40.313 -> 3
08:43:40.313 -> 3
08:43:40.313 -> == playFolder()
08:43:40.313 -> === disablestandby()
08:43:40.379 -> 11 Dateien in Ordner 3 ## nur 11 Dateien (Ordner 2), nur vorspulen bis 11
08:43:40.379 -> Album Modus -> kompletten Ordner wiedergeben
08:43:50.845 -> Card UID: A3 E9 7F 16  ##2tes mal Karte fuer ordner 3 mit 15 Dateien aufgelegt
08:43:50.845 -> PICC type: MIFARE 1KB
08:43:50.845 -> Authenticating Classic using key A...
08:43:50.845 -> Reading data from block 4 ...
08:43:50.845 -> Data on Card :
08:43:50.845 ->  13 37 B3 47 02 03 02 09 DA 00 00 00 00 00 00 00
08:43:50.879 -> 
08:43:50.879 -> 3
08:43:50.879 -> 3
08:43:50.879 -> == playFolder()
08:43:50.879 -> === disablestandby()
08:43:50.912 -> 15 Dateien in Ordner 3 ## Anzahl in Ordner 3 stimmt, kann vorspulen bis 15
08:43:50.912 -> Album Modus -> kompletten Ordner wiedergeben
08:43:55.844 -> === setstandbyTimer()
08:43:55.844 -> 0

Soweit Ausgabe.

Ich habe jetzt das Problem umgangen, mit dem Abspielmodus Spezial Album von bis. Das läuft soweit, selbst bei einer falschen seriellen Ausgabe der Anzahl der Dateien kann ich bis zur richtigen Anzahl im Ordner vorspulen.

Der DFPlayer mini ist leider der GD3200B, bekannt für seine Probleme mit der seriellen Ausgabe.
Also wie so oft lag der Fehler beim Benutzer.
Trotzdem habe ich eine Lösung, die für mich bis jetzt funzt, gefunden.

Danke ans Team, das Projekt rockt mich immer noch…!!!

1 „Gefällt mir“

Soweit ich weiß, ist die Anzeige nicht falsch, sondern das was der DFPlayer ermittelt.

Der Workaround mit der „Spezialmodus“-Variante geht natürlich, weil dort die Start- und Endtitel als Grenzen genutzt werden. Bei den normalen Album/Party-Modus ist die Grenze = ermittelte Anzahl der Dateien.

  • ermittelte Grenze < tatsächliche Anzahl der Dateien: Du kommst nicht zu jeder Datei. Vorspulen geht nur bis zur ermittelten Grenze
  • ermittelte Grenze > tatsächliche Anzahl der Dateien: Du kommst zu jeder Datei, aber es ist nicht bei der letzten tatsächlichen Schluss. Der interne Zähler wird wohl weiter bis zur ermittelten Grenze versuchen, die Dateien abzuspielen - was in einen/mehrere Fehler laufen wird, weil die Dateien nicht existieren.

Hast du dazu mehr Information?
Ich habe kürzlich ein wenig herumgetestet - freilich primär mit der seriellen Ausgabe als Informationskanal - und hatte nicht den Eindruck, dass die serielle Ausgabe fehlerhaft ist. Siehe hier:

Er meint wahrscheinlich die recht kurz gehaltene Aussage in der Hardware FAQ:

Das spielt auf die COM 3 Errors an… die hast du ja auch bemerkt.

Hallo TonUINO Gemeinde,

auch ich bin absolut begeistert von dem Projekt, und ich hoffe mein Enkelkind bald ebenfalls von dem Ergebnis.
Ich habe exakt die gleiche Konfiguration und auch den gleichen Fehler.
Beim Start wird bei der ersten Karte 263 Dateien im Verzeichnis angegeben, ist dabei der Party Modus gewählt hängt das System. Ich nehme an, weil auf eine nicht existente Datei zugegriffen wird.
Abhilfe schafft, nach einem Neustart, eine Karte für den Album Modus, wobei auch hier die Anzahl der Dateien wieder 263 ist.
Wird eine neue Karte aufgelegt, erscheint als Anzahl der Dateien die Anzahl des vorher gespielten Ordners unabhängig vom Abspiel-Modus. D.h. wird die gleiche Karte zweimal aufgelegt stimmt die Anzahl der Dateien, bleibt aber auch gleich, wenn ein neuer Ordner gewählt wird.

Als ich die Serielle Geschwindigkeit auf 9600 gesetzt hatte funktionierte das System einmal korrekt bis zum nächsten Neustart, danach wieder der gleiche Fehler auch bei 9600 Baud.

Hallo,

@Bastelmatz:

Genau das beschreibt meine Erfahrung mit dieser hardwareseitigen Zusammenstellung.
Lege ich jedoch die gleiche Karte (Album2 > bspw. 15 Titel in der Ausgabe, sind aber 11) ein zweites Mal auf, stimmt plötzlich die Anzahl an Dateien im Ordner (Album2 > in meinem Fall 11 Titel).
Sprich, um den Ordner mit der korrekten Anzahl zu benutzen, muss ich die jeweilige Karte zweimal auflegen.
So scheint es mir, daß der Player schon die richtige Anzahl ermittelt, der Wert jedoch vom Ordner zuvor übergeben/ausgelesen wird. So könnte es ja ein schlichter Fall vom Setzen einer ±1 im Code sein. Da ich aber beim rumfuschen in anderer Leute Code selten erfolgreich bin, habt Ihr ja vieleicht einen Hinweis?!

@stephan:

Ja die COM 3 Errors treten auch auf. Mal wenn ich zu schnell vorspule, mal beim Auflegen einer angelernten Karte. Mal hilft warten, mal nur ein Reset.

Merci für die Unterstützung!

Hallo,

@Volker-w:

Probiere doch mal den Abspielmodus Spezial Album von Datei 1 bis letzte Datei aus.
So habe ich mir bis dato beholfen.

Bei mir wird nach Verlassen des Adminmenues und Auflegen einer bekannten Albumkarte die Anzahl 332 angezeigt. Ich kann nur vermuten, daß das die Gesamtzahl aller Dateien
ist oder aus dem Ordner mp3. Nach einem Neustart zeigt mir die Ausgabe beim Auflegen einer Abumkarte vom Ordner 01, da wie ich annehme der Shortcut 3 durch mich zugewiesen ist und ja im Ordner 01 die Datei 001 ist.

Grundlegend bin ich also nicht der Einzige mit diesem Problem.

Gruß!

@pitpossum79 Bitte kein Leerzeichen nach dem @. Dann bekommen die Leute auch eine Benachrichtigung, daß sie erwähnt wurden. Und wenn du ein Zitat von dem User machst, kannst du das komplett sparen. Der Benutzter wird dann so oder so informiert.

Hallo,

@Bastelmatz:

Den Ordner advert habe ich nicht auf der SDKarte.

Warum nicht? Der advert Ordner gehört wie der mp3 Ordner dazu.

Hallo,

Ich hatte kurz die Hoffnung, daß es am Fehlen des advert Ordners liegt (Diskrepanz von 1),
aber selbst nach dem Aufspielen des Selben, keine Änderung.

Hallo Pitpossum79,

habe ich gerade übertprüft, und kann das nur bestätigen. Nach dem Verlassen des Admin Menus erhalte ich ebenfalls die Anzahl von 332 Dateien, beim direkten Start mit einer Karte sind es jedoch 263. Ist also nicht die Gesamtzahl der Dateien.
Bei einem zweiten System ist das Verhalten identisch.

Klingt nach dem advert Ordner. Hast du den als erstes auf die Karte kopiert?

Ein +1 würde nur helfen wenn bei jedem Auflegen einer Karte nicht die Anzahl der Titel des Ordners, sondern des Ordners mit um 1 kleineren Nummer, angezeigt würde. Wenn ich dich richtig verstehe, wird beim 2. Auflegen aber der richtige Ordner betrachtet und nicht der mit der kleineren Nummer.

Hallo Gute Laune,

Danke für den Hinweis, ich habe die SD Karte überprüft. Es ist richtig die Verzeichnisse wurden als erstes kopiert und die Anzahl der Datein in advert ist 263 sowie 332 in MP3. Hast du einen Tip was ich da noch probieren könnte um das Problem zu lösen?

Gruß
Volker

Ich habe gerade eine neue SD Karte erzeugt und die Verzeichnisse 01 bis 05 in der Reihenfolge darauf koriert, anschleißend die Ordner MP3 und advert.
Bei einem Neustart wird jetzt immer die Anzahl der Dateien aus dem zuerst kopierten Ordner angegeben, bei allen folgenden Karten dann die Anzahl der Dateien des vorher gespielten Ordner.

Noch ein Hinweis, wird zuerst mit dem Admin Menu gestartet, dann wir nach dem Verlassen die Anzahl der Dateien im MP3 Verzeichnis hier 332 angezeigt, egal welche Karte aufgelegt wird. Anschließend das Verhalten wir vor beschrieben.

Das Problem scheint hier zu sein

Es scheint als würde mp3.getFolderTrackCount nicht immer den richtigen Wert zurückgeben, sondern häufig den von dem zuvor verwendeten Ordner oder nach dem Start des TonUINO den zuerst ausgespielten.
Da es beim erneuten Auflegen der Karte funktioniert, könnte man versuchen den Befehl gleich 2 mal oder nach dem ersten Track nochmal ausführen.

Wenn ich eure Schilderungen richtig interpretiere, wird immer die Anzahl der Dateien aus dem Ordner angezeigt, der zuletzt gespielt wurde, oder!? Sprich der Parameter des Befehls (die Ordnernummer) wird ignoriert.

Bei meinen Tests war ein ähnliches Verhalten zu beobachten. Ich habe die Ordner 1-12 nacheinander ausgelesen, allerdings hat er mir immer 332 (iirc) zurückgegeben.

Für das korrekte Auslesen müsste man also die Anzahl (nochmal) NACH dem Starten des Titels auslesen oder einen Pseudo-Titel aus dem Ordner abspielen (bspw. 1s Stille, oder den Lautsprecher muten) und anschließend die Anzahl der Dateien in diesem Ordner auslesen. Das würde dann vermutlich den Workaround mit dem doppelten Auflegen der Karte vermeiden.

Hallo,

ich habe es mal mit der Unterstützung von gute_laune mit einem Delay und dem doppelten Aufruf von
numTracksInFolder = mp3.getFolderTrackCount(myFolder->folder);
an besagter Stelle versucht, ohne Erfolg.

Bevor ich den Code ins Unbenutzbare zerschiesse, behelfe ich mit den Spezial Album von bis Karten.

Schein ja aber ein mehrfach reproduzierbares Problem zu sein,
zurückzuführen auf den DFplayer mini mit GD3200B ?!

Trotzdem geniales Projekt!!!