Tester gesucht (TonUINO 3.1)

Hallo zusammen,

da ich selbst aktuell viel zu wenig Zeit für die Weiterentwicklung meiner Firmware hatte habe ich nun endlich die Änderungen, die @Boerge1 gemacht hatte in das „offizielle“ Repo auf GitHub - tonuino/TonUINO-TNG: The new, "official" TonUINO Firmware. TonUINO is an Arduino based music player supporting RFID and arcade buttons as it's UI übernommen.

Einziges Problem aktuell: es läuft vorerst nur mit der alten DFPlayer Library von Makuna (1.0.7).

Alle Platinen der Leiterkartenpiraten werden per Default unterstützt - man muss lediglich die passende Platine in der constants.hpp durch das entfernen des entsprechenden Kommentars aktivieren.


// Select the right PCB by uncommenting one of the following lines
// Bitte die passende Platine durch entfernen der Kommentare in einer der folgenden Zeilen auswählen
//#define TonUINO_Classic
//#define ALLinONE
#define ALLinONE_Plus

// uncomment the below line to enable five button support (already enabled for AiO and AiO+)
// um dedizierte Lauter-/Leiserknöpfe zu haben bitte die nächste Zeile auskommentieren (Standard bei AiO und AiO+)
//#define FIVEBUTTONS

Ich werde noch zeitnah den Web-Uploader für diese Version bereitstellen.

Es wäre super, wenn noch ein paar Leute beim Testen helfen können. Man muss schon sagen, dass Boerge1 wirlich deutlich mehr von C++ versteht. Durch sein Refactoring werden auch Erweiterungen am Code sicher um einiges leichter sein. Und, es sollte keine Memoryleaks und andere Bugs mehr geben.

Die Version ist von den Features her identisch mit der 2.1 - aber wie gesagt, der komplette Code darunter wurde auf Links gedreht.


Gemeldete Bugs:

  • kein Anlernen von neuen Karten über einfaches Auflegen - nur über das Adminmenü
  • NTAG213 funktionieren nicht (mehr) :white_check_mark:
  • noch kein perfektes Loglevel gefunden (in logger.hpp konfigurierbar)
  • Einstieg ins Adminmenü teilweise schwierig / fehlerhaft weil direkt ein Button erkannt wird :white_check_mark:
  • Shortcuts funktionieren erst nach dem eine Karte aufgelegt wurde
  • resümierte bei Pause wenn Karte weg klappt nicht (immer) :white_check_mark:
3 „Gefällt mir“

Die fertige Firmware für den Webuploader findet ihr nun hier:

https://www.tonuino.de/TNG/

1 „Gefällt mir“

Also so wirklich weit komme ich beim Ausprobieren nicht. Was mir bis dahin aufgefallen ist:

Man muss den Playtaster der AiO beim EInschalten länger gedrückt halten, sonst ist die Platine direkt wieder aus. Bei der Version 2.x schaffe ich es nicht so kurz zu drücken, dass das passiert.

Es scheint keinen Output mit der Version der RFID-Readers zu geben.

Diese Hinweise sind zum Eingrenzen der Probleme schon hilfreich.

So hier enden meine Erfahrungen. Bis auf das fiepen beim Einschalten, habe ich noch keinen Ton gehört, egal welche Hardware ich benutze.
Das Auflegen einer neuen Karte zeigt

09:37:14.266 -> Card Inserted
09:37:14.266 -> Card UID:  65 5a 8b 92
09:37:14.266 -> PICC type: 4
09:37:14.266 -> Auth Classic
09:37:14.266 -> Data on Card:  00 00 00 00 00 00 00 00 00

Dann passiert irgendwie nichts mehr. Kein Ton, kein Output bei langem oder kurzem Tastendruck.

Das einzige, wo ich etwas höre ist das „pling“ beim Auflegen einer bisherigen Adminkarte. Wobei das da eher unerwartet kommt…

09:47:16.702 -> Card Inserted
09:47:16.702 -> Card UID:  9f 4c 4e 3a
09:47:16.702 -> PICC type: 4
09:47:16.702 -> Auth Classic
09:47:16.748 -> Data on Card:  31 73 3b 74 02 00 00 00 00
09:47:16.748 -> modifier removed
09:47:16.748 -> play adv: 261

Edit: Mit einer vorher konfigurierten Karte kann ich jetzt doch ein Hörspiel hören. Anscheinend geht fast gar nichts wenn 262.mp3 fehlt. Wäre vielleicht gut, wenn man dann trotzdem den Content der Karte hören kann, auch wenn der Kartenerkennungston nicht funktioniert.

Auf den einen Seite ist es ja ganz nett, wenn man hören kann, dass die Karte erkannt wurde, aber gerade wenn man im Hörspielmodus mehrfach auflegt, um ein Hörspiel zu wählen ist das doch eher nervig.

Hierzu noch ein Hinweis für alle: Es gibt zwei Repos! Einmal das alte wo die bisherige Version (für Classic, AiO und AiO Plus - je ein Branch) zu finden ist - https://github.com/tonuino/TonUINO und dann das neue Repo wo die v3.1 zum testen verfügbar ist - https://github.com/tonuino/TonUINO-TNG. Es ist also nichts ersetzt worden sondern zusätzlich verfügbar! Passend dazu gibt es auf der TonUINO Website auch alles doppelt. Man kann sich also aussuchen was man einsetzen möchte.

Zusammengefasst:

Bisherige Firmware - https://github.com/tonuino/TonUINO und https://tonuino.de.
Neue Firmware - https://github.com/tonuino/TonUINO-TNG und https://tonuino.de/TNG/

PS: Für die v3.1 müssen mp3 und advert getauscht werden. Der Download ist wie bisher auf der TonUINO Website.

Hast du die mp3 und advert Order ausgetauscht? Diese sind auch auf der TNG-Seite zum Download bereitgestellt.

Könnte man ja ggf. über das Adminmenü konfigurierbar machen. Ich finde es ganz gut, eine Bestätigung zu bekommen wenn die Karte erfasst wurde. Gerade wenn die SD-Karte sehr voll ist dauert es doch mal ein paar Sekunden bis sonst was passiert. Da der mp3 Ordner am Anfang der Karte liegen sollte kommt der Ton aber entsprechend schnell.

@Thorsten willst du vielleicht eine Unterkategorie für die neue Software machen? Dann kann man für die unterschiedlichen Probleme separate Themen machen und das ganze wäre trotzdem irgendwie gruppiert.

Inzwischen ja, die sahen auf den ersten Blick sehr identisch aus. Deshalb hatte ich erst die falschen.
Aber das einzige was mit den neuen Suundfiles funktioniert ist die Wiedergabe vorher konfigurierter Tags. Beim AUflegen einer neuen Karte passiert immernoch gar nichts außer

Wenn ich vorher das Hörspiel aufgelegt habe, läuft das auch einfach weiter. Er zeigt zwar an, dass er die leere Karte erkannt hat, aber es passiert daraufhin nichts.

Ich schlage vor das hier in dem (Sammel)Thread zu lassen und wirkliche Probleme auf Github in den Issues zu tracken. Dann kann man die nämlich auch direkt mit commits schließen wenn Probleme behoben wurden!?

1 „Gefällt mir“

Also ich kann den Fehler bestätigen - neue Karten lösen nicht den Anlernmodus aus.
Ggf. war das so beabsichtigt - ich finde das Feature aber sehr nützlich und werde es nachbessern.

Aktuell kann aber über das Admin-Menü eine neue Karte angelernt werden. Ich habe auch die Log-Level mal etwas angepasst.

Hallo in die Runde!

Ich bin neu hier und habe gerade unseren Tonuino zusammengebaut. Es handelt sich um einen AIO+. Mit Version 2.2 funktioniert alles gut. Aber mit der Version 3.1 gibt es einige Probleme.

Zunächst scheint die Version, die über den Webuploader angeboten wird, nicht zu funktionieren. Die Ausgabe am Seriellen Port sieht so aus:

23:48:33.384 ->  _____         _____ _____ _____ _____
23:48:33.384 -> |_   _|___ ___|  |  |     |   | |     |
23:48:33.384 ->   | | | . |   |  |  |-   -| | | |  |  |
23:48:33.384 ->   |_| |___|_|_|_____|_____|_|___|_____|
23:48:33.384 -> TonUINO Version 3.1 - refactored by Boerge1
23:48:33.428 -> 
23:48:33.428 -> created by Thorsten Voß and licensed under GNU/GPL.
23:48:33.428 -> Information and contribution at https://tonuino.de.
23:48:33.428 -> 
23:48:35.562 -> Firmware Version: 0x92 = v2.0
23:48:35.562 -> enter Idle
23:48:35.605 -> Idle::react(b) 10
23:48:35.605 -> Idle::react(b) 1
23:48:35.931 -> Card Inserted
23:48:35.931 -> Idle::react(c) 2
23:48:37.413 -> Card Removed
23:48:37.458 -> Idle::react(c) 1
23:48:39.872 -> Card Inserted
23:48:39.872 -> Idle::react(c) 2
23:48:40.636 -> Card Removed
23:48:40.636 -> Idle::react(c) 1

Also habe ich das Projekt selbst übersetzt und geladen. Dann sieht es besser aus. Allerdings habe ich nun Probleme mit meinen NFC-Tags. Meine NTAG213 funktionieren nicht mehr. Mit der Version 2.2 war das kein Problem. Verwende ich nach dem Laden der Software als erstes einen solchen Tag, dann hängt sich sogar der ganze Tonuino auf:

00:09:30.202 ->  _____         _____ _____ _____ _____
00:09:30.202 -> |_   _|___ ___|  |  |     |   | |     |
00:09:30.202 ->   | | | . |   |  |  |-   -| | | |  |  |
00:09:30.202 ->   |_| |___|_|_|_____|_____|_|___|_____|
00:09:30.202 -> TonUINO Version 3.1 - refactored by Boerge1
00:09:30.202 -> 
00:09:30.202 -> created by Thorsten Voß and licensed under GNU/GPL.
00:09:30.248 -> Information and contribution at https://tonuino.de.
00:09:30.248 -> 
00:09:32.384 -> enter Idle
00:09:55.636 -> Card Inserted
00:09:55.636 -> Card UID:  04 de 96 26 1a e3 08
00:09:55.679 -> PICC type: 6
00:09:55.679 -> Auth UL
00:09:55.679 -> Data on Card:  31 73 3b 74 31 73 3b 74 31
00:09:55.679 -> Unknown version 19
00:09:55.679 -> modifier removed
00:09:56.734 -> DfPlayer Error: 7

Nach einem Reset habe ich dann zuerst einen anderen Tag (Mifare?) aufgelegt, der beim NFC-Reader dabei war. Das funktioniert. Wenn ich den nun wieder gegen einen NTAG213 tausche, läuft die Musik wieder an (Pause durch wegnehmen aktiviert). Jedoch läuft einfach dasselbe weiter und nicht das tatsächlich für diesen Tag hinterlegte Album.

00:13:36.572 ->  _____         _____ _____ _____ _____
00:13:36.572 -> |_   _|___ ___|  |  |     |   | |     |
00:13:36.572 ->   | | | . |   |  |  |-   -| | | |  |  |
00:13:36.572 ->   |_| |___|_|_|_____|_____|_|___|_____|
00:13:36.572 -> TonUINO Version 3.1 - refactored by Boerge1
00:13:36.572 -> 
00:13:36.572 -> created by Thorsten Voß and licensed under GNU/GPL.
00:13:36.572 -> Information and contribution at https://tonuino.de.
00:13:36.572 -> 
00:13:38.751 -> enter Idle
00:13:58.898 -> Card Inserted
00:13:58.898 -> Card UID:  36 71 c3 ca
00:13:58.898 -> PICC type: 4
00:13:58.898 -> Auth Classic
00:13:58.898 -> Data on Card:  31 73 3b 74 02 01 05 51 89
00:13:58.898 -> enter StartPlay
00:13:59.694 -> enter Play
00:14:00.394 -> Card Removed
00:14:03.606 -> Card Inserted
00:14:03.606 -> Card UID:  04 de 96 26 1a e3 08
00:14:03.606 -> PICC type: 6
00:14:03.606 -> Auth UL
00:14:03.606 -> Data on Card:  31 73 3b 74 31 73 3b 74 31
00:14:03.648 -> Unknown version 19
00:14:03.648 -> modifier removed

Wenn ich versuche, über das Admin-Menü einen NTAG213 zu programmieren, und ihn anschließend benutze, dann sieht die Ausgabe so aus:

00:18:26.220 -> enter WriteCard
00:18:28.821 -> Card Inserted
00:18:28.866 -> Auth UL
00:18:28.866 -> Writing data: 31 73 3b 74 02 02 03 00 00
00:18:36.109 -> Card Removed
00:18:36.109 -> WriteCard -> finished
00:18:36.109 -> enter AdmEntry
00:18:39.282 -> VoiceMenu currentVal: 1
00:18:39.282 -> SM abort
00:18:39.282 -> enter Idle
00:18:43.547 -> Card Inserted
00:18:43.547 -> Card UID: 04 82 96 26 1a e3 18
00:18:43.547 -> PICC type: 6
00:18:43.547 -> Auth UL
00:18:43.547 -> Data on Card: 31 73 3b 74 31 73 3b 74 31
00:18:43.592 -> Unknown version 19
00:18:43.592 -> modifier removed
00:18:44.633 -> DfPlayer Error: 7

Zudem ist mir aufgefallen, dass der Timer für das automatische Abschalten nicht durch das Abspielen von Musik gestoppt wird. Dadurch geht die Box immer nach der eingestellten Zeit aus, auch wenn gerade Musik läuft.

Schließlich finde ich es schwierig, das Admin-Menü zu öffnen. Es braucht bei mir immer mehrere Anläufe, bis ich es hinbekomme weil sehr häufig mit dem Loslassen der Tasten schon die Ansage kommt: „Okay, ich habe den Vorgang abgebrochen“

Abgesehen davon muss ich mal loswerden, wie genial dieses Projekt ist! Vielen Dank an alle Beteiligten!

Das ist mir auch schon aufgefallen. Teilweise kam auch direkt die Ansage für die erste Option im Menü und nicht die Startansage. Scheint so, als ob einzelne Buttons nachdem das Menü geöffnet wurde direkt wieder triggern können.

Ansonsten habe ich zwar alle Shortcuts übers Menü konfigurieren können, aber habe es nicht geschafft einen anzuhören.

Und deshalb hab ich dann eben nochmal die Software aufgespielt
Jetzt fehlen die Settings. Das ist zwar fürs testen nicht wichtig, aber grundsätzlich finde ich die Info ob und wie zum Beispiel der Standby-Timer konfiguriert sind schon relevant.
Ansonsten geht seit dem Update die Wiedergabe irgendwie nicht mehr. Egal welche Karte ich vorhalte, bekomme ich nur

9:30:27.936 -> Card Inserted
09:30:27.936 -> Idle::react(c) 2
09:30:30.187 -> Card Removed
09:30:30.234 -> Idle::react(c) 1

beim Auflegen und wieder entfernen. Ich habe die Karten gerade extra nochmal neu angelernt, aber irgendwie passiert nichts.
Damit war der Testversuch dann schnell beendet.

Super ist, dass man so bei jedem Tastendruck etwas angezeigt bekommt

09:30:41.532 -> Idle::react(b) 2
09:30:43.735 -> Idle::react(b) 4
09:30:45.423 -> Idle::react(b) 8
09:30:47.064 -> Idle::react(b) 9
09:30:48.376 -> Idle::react(b) 5

Das klappte bei mir, jedoch erst nachdem vorher etwas anders gespielt wurde.

Sollte jetzt wieder gehen. Ich hatte zu schnell ein Änderung von mir dort hochgeladen

Auf die schnelle bin ich jetzt nur über den link zu der neuen Version gekommen?
Ich hoffe es ist auch erstmal so? Jetzt wo man sich hier drauf stürzt, ist es ja eine Beta und im Grunde wäre es ganz gut, wenn sie so nah wie möglich an der DEV ist. Im Idealfall nutze ich einen fremden tonuino und erkenne nicht welche Version drauf ist.
Das die Abweichungen Sinn machen oder eher hinderlich sind, sollte jeder entscheiden können. Ob nun per define oder admin Menü ist ja erstmal egal.

Schon das ist ja eine Fehlerquelle, die bei Neulingen (und auch @Gute_Laune) einmal die Haare raufen lässt.

Dies habe ich bei mir über eine LED gelöst, nervt auch nicht. Aber die ist ja leider nicht so verbreitet.

Per define schließt aber alle aus, die das online-update nutzen. Die neue Version spielt sich ja doch nicht ganz so einfach mit der Arduino IDE auf. Das geht los mit

Aber auch danach lief es bei mir nicht rund, weshalb ich das erstmal aufgegeben habe. Deshalb sollten möglichst viele Optionen im Menü konfigurierbar sein.

Neulinge haben das Problem nicht. Die laden ja erst die Soundfiles, wenn sie auch die Software aufspielen und haben dann ja nur die passenden. Alle anderen sollten auch daran gewöhnt sein, dass man immer die Sounddateien zur entsprechenden Software braucht. Jeder Fork hier hat da ja leichte Abweichungen.

Insgesamt passiert es immer mal, dass plötzlich nur noch Card Inserted und Card Removed angezeigt werden und sonst gar nichts mehr funktioniert. Häufiger ist mir das auf jeden Fall passiert, wenn vorher ein Error 131 angezeigt wurde. Außer diesen beiden Zeilen beim AUflegen/ Wegnehmen einer Karte passiert nichts mehr. Kein Buttondruck bewirkt etwas auch keinen Output und abgespielt werden die vorgehaltenen Karten auch nicht.

Output

In Ordner 4 liegen bei mir gerade die Zahlen 101-130 aus dem mp3 Ordner (natürlich umbenannt)

15:50:04.734 -> Card Inserted
15:50:04.734 -> Play::react(c) 2
15:50:04.734 -> Card UID:  7c e4 eb 4b
15:50:04.734 -> PICC type: 4
15:50:04.734 -> Auth Classic
15:50:04.734 -> Data on Card:  31 73 3b 74 02 04 01 00 00
15:50:04.734 -> Base -> StartPlay
15:50:04.734 -> enter StartPlay
15:50:05.236 -> Card Removed
15:50:05.684 -> StartPlay -> Play
15:50:05.684 -> enter Play
15:50:07.543 -> enter Idle
15:50:07.744 -> Idle::react(b) 1
15:50:12.589 -> Card Inserted
15:50:12.589 -> Idle::react(c) 2
15:50:12.589 -> Card UID:  7c e4 eb 4b
15:50:12.589 -> PICC type: 4
15:50:12.589 -> Auth Classic
15:50:12.589 -> Data on Card:  31 73 3b 74 02 04 01 00 00
15:50:12.589 -> Base -> StartPlay
15:50:12.589 -> enter StartPlay
15:50:12.937 -> Card Removed
15:50:13.137 -> DfPlayer Error: 131
15:50:13.137 -> DfPlayer Error: 131
15:50:23.469 -> Card Inserted
15:50:23.823 -> Card Removed

Das Problem tritt aber nicht immer bei einem Error 131 auf. Wenn z.B im Albummodus danach weitere Tracks abgespielt werden, kann man den TonUINO danach weiter bedienen.
Es ist auch schon passiert, ohne, dass vorher ein Error angezeigt wurde

Output
23:00:52.930 -> Card Inserted
23:00:52.930 -> Play::react(c) 2
23:00:52.930 -> Card UID:  7c e4 eb 4b
23:00:52.930 -> PICC type: 4
23:00:52.930 -> Auth Classic
23:00:52.930 -> Data on Card:  31 73 3b 74 02 04 07 21 91
23:00:52.930 -> Base -> StartPlay
23:00:52.930 -> enter StartPlay
23:00:53.285 -> Card Removed
23:00:58.701 -> Card Inserted
23:00:59.203 -> Card Removed

Ich habe heute die Modi getestet, die es vorher auch schon gab:
:bug: Wenn man die Karte für die Hörbuchmodus an einem anderen TonUINO oder mit der App angelernt hat, ist im Speicher noch die 0 als Fortschritt. Dann scheitert die Wiedergabe, weil das nicht abgefangen wird. War bei der DEV damals auch ein Problem Link
Vermutlich kann man das jetzt auch genauso lösen wie damals. Also hier

Die Abfrage ob der Track 0 ist ergänzen

Alles weitere was mir dabei aufgefallen ist, ist nicht zwingend ein Bug, aber das Verhalten weicht auf jeden Fall von dem bisher gewohnten ab.

Der Partymodus spielt nicht mehr unendlich, sondern, nachdem alle Titel einmal gespielt wurden, ist die Party vorbei.

Bei der Ansage der Titelnummer wird jetzt immer der Name der aktuell gespielten mp3 angesagt. In der 2.X wurde im Partymodus angesagt, welche Nummer der Titel in der Wiedergabeliste hat. Beim Album von-bis Modus wurde vorher auch die relative Titelnummer angesagt.

Was davon besser ist, ist sicherlich davon abhängig, wofür man diese Info nutzt. Wenn ein Track einen Fehler hat ist es viel hilfreicher zu wissen, welche Nummer er im Ordner hat. Will man aber abschätzen wie viel von dem Album schon gehört wurde, dann hilft einem die Nummer im Ordner weniger, weil man nicht weiß bei welchem Track begonnen wurde.

Drückt man während der erste Track läuft zurück oder während des letzten Tracks vor, wird die Wiedergabe komplett beendet. Das war bei der 2.X anders und mir ist auch bewusst, dass das beim Next zu Problemen geführt hat, weil nicht unterschieden wird, ob der Player oder der Button das next ausgelöst haben. Deshalb wurde beim Drücken des Buttons der Standby-Timer gestartet, obwohl das Hörspiel weiter lief. War der Timer abgelaufen war dann plötzlich einfach aus.
Ich wäre allerdings eher für eine Unterscheidung von wo das Signal kam. Denn jetzt kann man 30 Minuten Benjamin Blümchen im Hörspielmodus hören und drückt man dann statt lauter/ leiser versehentlich vor oder zurück. Ist Schluss mit Benjamin. Gerade bei einer Hörspielkarte kann man ja nicht einmal gezielt den Track erneut starten.


Übrigens ich glaub man kann sich an einen Ton als Feedback, dass die Karte erkannt wurde gewöhnen. Allerdings würde ich einen anderen wählen. Bei meinem Testaufbau gestern war das ein sehr anstrengendes fiepen. Heute über Kopfhörer war der Ton erträglicher.

Ich habe es nun geschafft, dass meine NTAG213 wieder funktionieren. Dazu habe ich in der Quelle chip_card in Zeile 149 eine Änderung vorgenommen. War vermutlich ein Kopierfehler:

else if (piccType == MFRC522::PICC_TYPE_MIFARE_UL)
  {
    byte buffer2[buffferSizeRead];

    for (byte block = 8, bufpos = 0; block <= 11; ++block, bufpos += 4)
    {
      byte size2 = sizeof(buffer2);
      status = static_cast<MFRC522::StatusCode>(mfrc522.MIFARE_Read(block, buffer2, &size2));
      if (status != MFRC522::STATUS_OK)
      {
        LOG(card_log, s_debug, str_MIFARE_Read(), block, str_failed(), printStatusCode(mfrc522, status));
        break;
      }
      memcpy(buffer + bufpos, buffer2, 4);
    }
  }

Hier stand original in Zeile 149:

status = static_cast<MFRC522::StatusCode>(mfrc522.MIFARE_Read(8, buffer2, &size2));

Allerdings funktioniert das Pausieren durch entfernen des Tags nicht richtig mit den NTAG213. Nach dem Wiederauflegen verhält sich der Tonuino als handelt es sich um einen anderen Tag, als den vorigen. Dadurch wird das Lied dann neu gestartet. Das passiert nicht bei meinen Mifare Classic Tags. Nachdem ich jetzt stundenlang Ursachenforschung betrieben habe bin ich völlig ratlos. Zwischen dem Entfernen des Tags und dem Wiederauflegen verändert sich der Inhalt der Variablen myCard. Und ich sehe nicht wie das sein kann.

1 „Gefällt mir“

das Problem hatte ich schon bemerkt und auch bereits herausgefunden woran es liegt - aber konnte es noch nicht fixen. Er vergleicht die „neue“ und „alte“ Karte . jedoch ist warum auch immer special und special2 bei der alten falsch - was egal ist je nach play mode.

ich habe gerade eine neue Version gepusht (sowohl in GitHub als auch direkt im Firmware downloader!)

Ist behoben (git und firmware download)

Kann ich bestätigen.

Ist auch behoben :+1: