Com Error 6 beim Karte auflegen

Hallo,
ich habe meinen TonUINO Prototypen mit Thorstens Platine zusammengebaut bzw. gelötet, erhalte aber beim Auflegen der ersten Karte den Fehler „Com Error 6“ nach der Ansage, dass die Karte noch unbekannt ist. Der Fehler zeigt, dass eine Datei nicht gefunden werden konnte. Die Struktur auf der SD-Karte ist aber FAQ-Konform :slight_smile:
Ich weiß nicht mehr weiter, daher poste ich hier meine Ausgabe des seriellen Monitors:

22:30:22.623 -> ⸮ZZ⸮
22:30:24.061 ->  _____         _____ _____ _____ _____
22:30:24.061 -> |_   _|___ ___|  |  |     |   | |     |
22:30:24.061 ->   | | | . |   |  |  |-   -| | | |  |  |
22:30:24.061 ->   |_| |___|_|_|_____|_____|_|___|_____|
22:30:24.061 -> 
22:30:24.061 -> TonUINO Version 2.1
22:30:24.061 -> created by Thorsten Voß and licensed under GNU/GPL.
22:30:24.061 -> Information and contribution at https://tonuino.de.
22:30:24.061 -> 
22:30:24.061 -> === loadSettingsFromFlash()
22:30:24.061 -> Version: 2
22:30:24.061 -> Maximal Volume: 25
22:30:24.061 -> Minimal Volume: 5
22:30:24.061 -> Initial Volume: 15
22:30:24.094 -> EQ: 1
22:30:24.094 -> Locked: 0
22:30:24.094 -> Sleep Timer: 0
22:30:24.094 -> Inverted Volume Buttons: 1
22:30:24.094 -> Admin Menu locked: 0
22:30:24.094 -> Admin Menu Pin: 1111
22:30:24.094 -> === setstandbyTimer()
22:30:24.094 -> 0
22:30:26.217 -> Firmware Version: 0x92 = v2.0
22:30:26.217 -> === playShortCut()
22:30:26.217 -> 3
22:30:26.217 -> Shortcut not configured!
22:30:29.204 -> Card UID: 07 BA B6 3B
22:30:29.204 -> PICC type: MIFARE 1KB
22:30:29.204 -> Authenticating Classic using key A...
22:30:29.204 -> Reading data from block 4 ...
22:30:29.237 -> Data on Card :
22:30:29.237 ->  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
22:30:29.237 -> 
22:30:38.527 -> 256
22:30:38.560 -> 256
22:30:38.560 -> === setupCard()
22:30:38.627 -> === voiceMenu() (99 Options)
22:30:39.125 -> 
22:30:39.125 -> Com Error 6

Die Konsole sagt uns auch nur, daß eine Datei nicht gefunden wird. Wenn du wie du sagst alles richtig gemacht hast, müsste es ja funktionieren… darüber hinaus wird’s schwierig.

Die Order MP3 und advert sind auf der Karte?

Jo sind beide da. Die Struktur der SD-Karte sieht so aus (etwas gekürzte Fassung)
Sorry, irgendwie will das Forum nur die letzte Zeile als Code markieren:

oystermanu@laptop:/media/oystermanu/DCF5-10AF$ tree
.
├── 01
│ ├── 001.mp3
│ └── 002.mp3
├── 02
│ └── 001.mp3
├── advert
│ ├── 0001.mp3
│ ├── 0002.mp3

│ ├── 0249.mp3
│ └── 0250.mp3
└── mp3
├── 0001.mp3

├── 0255.mp3
├── 0300_new_tag.mp3
├── 0310_tag_linked.mp3
├── 0311_mode_random_episode.mp3
├── 0312_mode_album.mp3
├── 0313_mode_party.mp3
├── 0314_mode_single_track.mp3
├── 0315_mode_audio_book.mp3
├── 0316_admin.mp3
├── 0320_select_file.mp3
├── 0330_say_number_ask.mp3
├── 0331_say_number_no.mp3
├── 0332_say_number_yes.mp3
├── 0400_tag_ok.mp3
├── 0401_error.mp3
├── 0800_reset_tag.mp3
├── 0801_reset_tag_ok.mp3
├── 0802_reset_aborted.mp3
└── 0999_reset_ok.mp3

4 directories, 526 files

Kommt der Fehler direkt beim Auswählen des 1. Ordners? Wenn ja, schaue mal die erste MP3 an und versuche mal testweise eine andere MP3 mit 001 im ersten Ordner.

Versuch noch einen Absatz nach deinem :

Der Fehler kommt direkt nach der Ansage, bevor ich einen Knopf drücke. Habe für 001.mp3 drei verschiedene MP3-Dateien (96 kbit, 128 kbit, 192 kbit) getestet, aber der Fehler kommt immer wieder.

Will leider auch nicht. Aber ist ja auch nicht so wichtig.

Versteckte Dateien sind nicht drauf und die Karte ist mit FAT32 formatiert? Auch ist die SD-Karte Max 32GB groß? (Ich frage nur nochmal zur Sicherheit :see_no_evil:)
Evtl. noch andere SD-Karte versuchen?

Ja, FAT32 und nur 4 GB Kapazität ohne versteckte Dateien. Da die Durchsage, dass es sich um eine neue unbekannte Karte handelt abgespielt wird, sollte es nicht an der Karte liegen. Vorsichtshalber habe ich die Karte gerade nochmal mit fschck überprüft: Es gab keine Fehler.

Mit einer anderen Karte (32 GB) kommt ebenfalls direkt der Fehler nach der Ansage. Offenbar liegt es nicht an den SD-Karten.

Habe den Fehler gefunden:
offenbar waren die kopierten Dateien aus dem Github-DEV SD-Karten-Verzeichnis nicht korrekt runtergeladen worden, so dass jede SD-Karte mit fehlerhaften Dateien bespielt wurde. Habe die DEV-Branch erneut runtergeladen, die Ordner advert und mp3 sowie zwei Test-Mp3s als 001.mp3 und 002.mp3 abgelegt und siehe da KEIN Fehler „Com Error 6“ mehr!
Manchmal liegt der Fehler wirklich im Detail… :face_with_raised_eyebrow:

1 Like

Uff, das ist ein echt unnötiger Fehler, der vielleicht ganz gut (semi-)automatisiert abzufangen ist. Ich hätte da auch gerade bei github geschaut, ob es dort eine Möglichkeit gibt für die „Download ZIP“-Variante eine Checksumme (SHA1 oder zumindest MD5) zu erhalten, bin aber nicht fündig geworden.

Frei nach dem Motto „verschwende niemals einen guten Fehler“ würde ich dafür plädieren, diese Fehlerquelle (vor allem für Anfänger) zu addressieren; idealerweise würde ein fehlerhafter/unvollständiger Download bereits vom Browser abgefangen, aber das ist wohl hier nicht der Fall. Ich wüsste jetzt nicht mal, wie ich die Integrität der Dateien überhaupt kontrollieren könnte, und ich stufe mich selbst schon eher als versierter Benutzer ein.

Wäre es problematisch, für die binären Artefakte selbst Hash-Werte ins git Repository aufzunehmen für all jene, die keinen git Client installieren wollen um die Distribution zu beziehen? Das würde zumindest eine Möglichkeit zur Integritätsprüfung bieten (ich kann die Anzahl der scheinbar erfolgreichen Downloads, die dann gekippte Bits bei Übertragungen hatten, gar nicht mehr im Dezimalsystem an meinen Händen abzählen … im Binärsystem wär’s noch möglich … das ist in meiner Erfahrung also kein Einzelfall sondern harte Realität, weswegen ich bei fast jeder kritischen Übertragung die Hash-Werte kontrolliere).

Andererseits sind diese Hashes inhärent bei Verwendung eines git clients gegeben und werden soweit ich weiß auch geprüft/verifiziert, womit das Repo für alle die git verwenden noch fetter wird als eigentlich notwendig.

Wie seht ihr denn das? Ich bin halbwegs neu hier, und habe deswegen noch kein Gefühl dafür was hier der Konsensus in der Community ist. Ich empfinde es als angenehm, wenn Smoke-Tests zur Verfügung stehen die ich auf Knopfdruck losrattern lassen kann, um mich selbst nicht um „dumme“ Fehler kümmern zu müssen. Fehlgeschlagene/nicht integre Downloads gehören für mich dazu, da jede weitere Diagnose verschwendete Zeit ist.

Ohne jetzt dediziert auf jeden Punkt einzugehen:

Bitte nicht vergessen für wen der TonUINO gedacht ist. Sprich wer ist hier die Zielgruppe? „Normale“ Mamas, Papas, Omas und Opas wissen in der Regel nicht was MD5 oder SHA1 hashes sind. Geschweige denn wie man sie benutzt oder womit. Auch würde ich wenn gelegentlich mal eine Meldung kommt das es Probleme mit dem Download gab, nicht gleich von einem allgemeinen Problem ausgehen welches nicht vielleicht doch vom User verschuldet ist. Die überwiegende Mehrheit der TonUINO Nutzer ist hier nichtmal angemeldet und bis dato hat das noch jeder (wenn auch vielleicht mit etwas Hilfe) hinbekommen. Ich will natürlich nicht sagen das hashes generell nicht sinnvoll sind, nur hilft uns das hier vermutlich eher nicht weiter. Die Probleme sind meist andere, das wirst du merken sobald du länger mitliest. Natürlich werden wir in Zukunft (auch mit dem Release der AiO Platine) das ganze etwas anders aufziehen können, aber kurzfristig sehe ich da kein action item (zumal wir fieberhaft am release der AiO arbeiten).

Und nicht daß hier ein falscher Eindruck entsteht: Natürlich sind auch versiertere Nutzer sehr willkommen, bei denen gehe ich aber noch weniger davon aus, daß sie einen Download nicht hinbekommen.

Das ist auch völlig korrekt! Ob ich jetzt ein paar MP3s für eine Kinderbox als kritisch einstufe, hängt aber wahrscheinlich vom persönlichen Nerd Level ab. :wink:

Ich habe den Punkt mit den hashes mal notiert. Daher danke fürs Feedback.

Hashes wäre zwar prinzipiell nicht verkehrt, allerdings hätte ich sie bei einem Ordner voller MP3s nicht beachtet, da der Download dann doch zu unwichtig für mich ist. Probleme beim Download würden ja vielleicht zu Störgeräuschen beim Abspielen der MP3 führen, was dann ja einfach zu erkennen und beheben wäre.
Mein Problem lag vielmehr darin, dass ich den Fehler auf der Hardware-Ebene gesucht hatte (daher auch das Posting in dieser Kategorie). Als Lötanfänger und Arduino-Einsteiger hatte ich den Fehler bei mir und meinen Lötkünsten gesucht. Die Software kam mir nicht in den Sinn. Ich denke ich wäre schneller auf die Software-Ebene gewechselt, wenn in der Software-FAQ der Punkt zur „Konsole“ etwas ausführlicher dargestellt würde, damit man versteht, dass diese zur Fehleranalyse herangezogen werden kann. So hatte ich gedacht, dass der Punkt „Der DFPlayer „macht nichts“, überspringt Tracks oder ähnliches.“ in der Hardware-FAQ für mein Problem am besten zutrifft.

War es doch am Ende auch oder? Hab den Eintrag jetzt nicht vor Augen aber is doch auch erklärt wie die SD auszusehen hat? Das war ja dann die am Ende auch die Lösung, du hast die Karte neu gemacht und dann ging’s, von daher doch alles gut. :nerd_face:

Stimmt, ihr habt natürlich Recht. Einfach nur die Hashes dazu zu knallen, bringt dem „normalen“ Anwender nicht viel, weil man ein technisches Problem gegen ein anderes eintauscht. Ich dachte eher an ein Script das man laufen lässt und ein schnelles Feedback der Form „Die SD-Karte ist richtig eingerichtet“ oder „Die Daten der SD-Karte sind korrupt, bitte kontrollieren“ bekommt – um die Diagnose zu erleichtern. Eine Portion Pragmatismus gehört aber dazu – der Aufwand muss sich auch rechtfertigen.

Streng genommen hast du recht. Wobei der Fehler nicht in der in der FAQ beschriebenen Struktur sondern in einem der Ordner advert oder mp3 stammen musste. Welche Dateien in diesen Ordnern liegen sollen, wird nicht in der FAQ erklärt. Die Integrität des Inhalts nimmt man ja erstmal für gegeben, wenn man sich die Ordner aus dem repository zieht.

Was mir die Fehlersuche erschwert hat, war, dass mir nicht bewusst war, dass man über die Konsole Fehlercodes auslesen kann. Da das im Software FAQ auch nicht direkt deutlich wird, habe ich das erst beim lesen von anderen User-Postings verstanden. Vielleicht kann man ja die entsprechende Stelle im Software FAQ mit einem Eintrag „Wo finde ich die Fehlerausgabe?“ o.ä. bereichern?

Sowas hätte mir enorm geholfen. Allerdings muss ich auch sagen, dass das Skript wohl für die meisten Anwender hier keine Erleichterung darstellt, sondern nur die EInstiegshürde durch zusätzliche Komplexität erhöht. Wie du schon sagst, würde der Aufwand das Skript zu erstellen (und dann auch noch für Windows, Linux, Mac kompatibel zu halten) für den Nutzen zu hoch werden.