Version: Tonuino Classic
Software Version: 3.1.4 (29.10.2023)
MP3 Player: MP3-TF-16P V3.0 MH2024K-24SS
SD-Karte Inhalt: 6 Ordner (01, 02, 03, 04, advert, mp3), die Dateien in 01-04 heißen nur „00X.mp3“, keine zusätzlichen Dateien
Leider wird manchmal beim Abspielen einer Datei stattdessen die Datei „0001.mp3“ aus dem advert oder mp3 Ordner abgespielt. Das passiert zufällig, irgendwann reagiert der Player dann gar nicht mehr auf Eingaben.
Sehr eigenartig, denn die Ausgabe über den Serial Monitor stimmt:
enqueue 2-10
play 2-10
Hier die komplette Ausgabe:
_____ _____ _____ _____ _____
|_ _|___ ___| | | | | | |
| | | . | | | |- -| | | | | |
|_| |___|_|_|_____|_____|_|___|_____|
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.4 20.09.23
Ver:2
Vol:30 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
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
enqueue mp3 262 0
play mp3 262
Card Removed
15 tr in folder 2
enqueue 2-10
play 2-10
enter Play
enter Idle
genau, also die Ausgabe ist korrekt. Wenn ich die Karte nochmal draufhalte, kann es sein dass die richtige oder eben „0001.mp3“ („eins“) abgespielt wird. Die Ausgabe ist aber immer korrekt.
ich hab hier mal den Log von mehrmals Karte auflegen mit Kommentar dazugeschrieben, was abgespielt wird:
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
enqueue mp3 262 0
play mp3 262
Card Removed
15 tr in folder 2
enqueue 2-9
play 2-9 # "Eins"
enter Play
enter Idle
Card Inserted
CardData: 31 73 3b 74 02 01 01 00 00
enter StartPlay
enqueue mp3 262 0
play mp3 262
Card Removed
10 tr in folder 1
enqueue 1-1
play 1-1 # "Benjamin Blümchen"
enter Play
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
enqueue mp3 262 0
play mp3 262
Card Removed
15 tr in folder 2
enqueue 2-12
play 2-12 # "Biene Maja"
enter Play
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
enqueue mp3 262 0
play mp3 262
15 tr in folder 2
enqueue 2-13
play 2-13 # "eins"
Card Removed
enter Play
enter Idle
Hier auch mal als Beispiel das Ergebnis, wenn ich die gleiche Karte mehrmals drauflege (Ordner 2 mit 15 Dateien):
2-12 OK Biene Maja
2-13 eins
2-13 eins
2-10 OK biene Maja
2-2 eins
2-2 eins
2-14 eins
2-5 eins
2-6 eins
2-2 eins
2-4 OK Biene Maja
2-12 eins
Versuch mal die erweiterten Ausgaben zum Player zu aktivieren.
Dafür musst du den Kommentar in der Zeile 5 von mp3.hpp entfernen. Also die 2 Schrägstriche löschen. Das geht allerdings nicht mit dem online-update. Wenn du Hilfe brauchst gib gerne Bescheid
ok, da bekomme ich diese Ausgabe (wieder als Kommentar, was abgespielt wird):
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
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 3d 00 00 12 fe ac ef
OUT 7e ff 06 4e 00 00 02 fe ab ef
IN 7e ff 06 4e 00 00 0f fe 9e ef
15 tr in folder 2
enqueue 2-14
play 2-14
OUT 7e ff 06 0f 01 02 0e fe db ef
Card Removed
IN 7e ff 06 41 00 00 00 fe ba ef
enter Play # "OK Biene Maja"
OUT 7e ff 06 0d 01 00 00 fe ed ef
IN 7e ff 06 41 00 00 00 fe ba ef
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
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
Card Removed
IN 7e ff 06 3d 00 00 12 fe ac ef
OUT 7e ff 06 4e 00 00 02 fe ab ef
OUT 7e ff 06 4e 00 00 02 fe ab ef
IN 7e ff 06 4e 00 00 0f fe 9e ef
15 tr in folder 2
enqueue 2-8
play 2-8
OUT 7e ff 06 0f 01 02 08 fe e1 ef
IN 7e ff 06 41 00 00 00 fe ba ef
IN 7e ff 06 4e 00 00 0f fe 9e ef
enter Play # "eins"
OUT 7e ff 06 0d 01 00 00 fe ed ef
IN 7e ff 06 41 00 00 00 fe ba ef
IN 7e ff 06 3d 00 00 01 fe bd ef
enter Idle
Hatte gestern genau das selbe Problem. Meine Lösung war alle 0001-0300(?) aus den Ordnern advert und mp3 zu löschen. Dann lief alles, Auch habe ich einen Ordner 01 erstellt
Ich habe exakt das gleiche Problem mit dem gleichen Chip.
Meine Beobachtung, 0001.mp3 wird abgespielt, wenn der Chip obwohl das richtige Stück schon gestartet wurde, nochmals ein zweites Mal den TrackCount meldet - das ist bei dir genau so.
OUT 7e ff 06 0f 01 02 08 fe e1 ef
IN 7e ff 06 41 00 00 00 fe ba ef
IN 7e ff 06 4e 00 00 0f fe 9e ef
enter Play # "eins"
Dieses 4e im 4.Byte ist der Command für GetTrackCount.
Manchmal kommt das direkt vor „enter Play“, manchmal nicht und das richtige Stück wird abgespielt.
Das heißt, wir müssten mal:
Nachvollziehen warum der Chip nochmals den TrackCount zurückschickt.
Nachvollziehen warum nur in diesem Fall dann 0001.mp3 abgespielt wird. (Bzw. bei mir wird sogar die erste mp3 aus dem ersten Ordner abgespielt)
Könnt ihr mal in der Datei constants.hpp die Zeile 38 auskommentieren.
Dieses #define ist eigentlich nur für die AiO und die LKP Player gedacht. Es sollte unschädlich sein für die anderen Player aber wer weiß, vielleicht braucht dieser Player sehr lange für getTrackCount. Auf jeden Fall wird ja auch der Request getTrackCount zweimal geschickt in dem Fall wo zweimal geantwortet wird.
Und dann schickt mal wieder das Log mit den Debug Ausgaben.
auch wenn ich die Zeile auskommentiere, habe ich immer noch das gleiche Verhalten:
Card Inserted
CardData: 31 73 3b 74 02 02 01 00 00
enter StartPlay
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
Card Removed
IN 7e ff 06 3d 00 00 12 fe ac ef
OUT 7e ff 06 4e 00 00 02 fe ab ef
OUT 7e ff 06 4e 00 00 02 fe ab ef
IN 7e ff 06 4e 00 00 0f fe 9e ef
15 tr in folder 2
enqueue 2-11
play 2-11
OUT 7e ff 06 0f 01 02 0b fe de ef
IN 7e ff 06 41 00 00 00 fe ba ef
IN 7e ff 06 4e 00 00 0f fe 9e ef
enter Play # "eins"
OUT 7e ff 06 0d 01 00 00 fe ed ef
IN 7e ff 06 41 00 00 00 fe ba ef
IN 7e ff 06 3d 00 00 01 fe bd ef
enter Idle
Ich konnt es mit zwei delay in der getFolderTrackCount() Funktion lösen:
const uint32_t c_AckTimeout = 1500; // 900 original
in der DFMiniMp3.h (also nicht im Tonuino code sondern der DFPlayer lib)
Problem ist tatsächlich, dass der Chip zu langsam antwortet und dadurch frühzeitig ein Retry ausgelöst wird innerhalb der DFPlayer lib.
DFMiniMp3_T_CHIP_Mp3ChipIncongruousNoAck
hat tatsächlich keinen Einfluss, weil auch die NoAck subclass in der DFPlayer lib für den GetTrackCount-Command returned, dass es sich um einen „AckCommand“ handelt.
Der längere Timeout bis zum Retry verursacht im Gegensatz zum delay fix im Tonuino Code selbst keine Zeitverzögerung.
Ja, hab 10 Karten/Ordner durchprobiert mit den 1500ms - ist kein einziges Mal mehr aufgetreten.
Hab den Schwellwert allerdings nicht optimiert, bisschen weniger könnte auch reichen, aber wenn er konfigurierbar gemacht wird, kann man das ja später noch testen. Gute Idee.
Generell könnte man auch überlegen, ob man überhaupt automatische command retries haben möchte. 3 ist da aktuell der Default…
@overovermind@YoFrankie
Makuna hat einen Branch CustomTimeout erstellt. Hier ist der Timeout konfigurierbar.
Könnt ihr das bitte testen? Danach würde er das mergen und ein neues Release machen.
Dazu müsst ihr folgendes machen:
Die Bibliothek auf den Branch ändern (es reicht die Datei DFMiniMp3.h zu ändern)
von der TonUINO-TNG Software den Branch issue_132 verwenden.
Also ich habe für meine neuen Boxen auch die Version MH2024K-24SS mit MP3-TF-16P V3.0 Beschriftung.
Bei mir gibt es leider das gleiche Problem wie hier beschrieben trotz der neuen Version, allerdings nur bei Ordnern in denen recht viele Files liegen.
Bei einem Ordner mit 126 Files reicht leider der nun als Standard hinterlegte Timeout von
using DfMp3 = DFMiniMp3<SerialType, Mp3Notify, Mp3ChipOriginal, 1500>;
nicht aus!
Ich habe den Timeout für mich nun erhöht auf 3000.
Wenn ich es richtig mitgelesen habe, hat das keine weiteren negativen Auswirkungen.
Die Frage wäre nur, wie weiter mit dem Problem verfahren werden soll.
→ Den Standard Timeout weiter erhöhen, so dass es für möglichst keinen Probleme bereitet (Evtl. inkl. Tests mit maximaler Anzahl an Tracks etc.)
→ Oder in der FAQ einnfach darauf hinweisen, dass bei diesem Player und großen Ordnern evtl. der Timeout angepasst werden muss
Zusätlich habe ich gerade noch Probleme bei den mp3 Ansagen (es kommt nur „Oh eine neue Karte“ aber das „wähle mit den …“ kommt nicht obwohl es laut Serial Monitor keinen Fehler gibt) aber das werde ich erst mal noch verifizieren und evtl. einen eigene Post machen