Issue 132 : Support DF Player MP3-TF-16P V3.0 with the chip MH2024K-24SS
Achtung: neue Version 1.2.3 der Library „DFPlayer Mini Mp3 by Makuna“ erforderlich.
Neue DFPlayer mit dem Chip MH2024K-24SS benötigen manchmal länger als 900ms für die Response für getFolderTrackCount(). Die DF Player Lib versucht daraufhin den Befehl nochmal zu senden. Das veranlasst den Player die Antwort zweimal zu senden und solange keine anderen Befehle auszuführen.
Mit der Version 1.2.3 der DFPlayer Lib ist es nun möglich, den Timeout zu ändern. Er wurde für alle Konfigurationen auf 1500ms gesetzt.
Im neues Release gibt es ein Bug Fix und zwei neue optionale Features, die in der Datei constants.hpp aktiviert werden können.
Der Bug Fix betrifft manche Player, die beim Auflegen einer neuen Karte kurz stottern (merkt man besonders, wenn der Track ohne Pause sofort mit der Musik beginnt).
Issue 153: Some improvements of the DF Player handling
Issue 149: Add possibility to reset the current track on hoerbuch mode
Issue 148: New handling of prev and next button on first and last track
Issue 147: No or bad saving of current track in hoerbuch mode when using prev, prev10 or next10 button
Es wurde ein Bug behoben, der das Speichern des Fortschrittes beim Hörbuch Mode betraf, wenn die Tasten zurück, vor10 oder zurück10 gedrückt wurden.
Auf Wunsch einiger hier im Forum wurde das Verhalten der Vor- und Zurück-Taste im Play State geändert, wenn das Ende der Queue erreicht wurde. Bei Zurück wird der Track wieder von vorne abgespielt, die Vor-Taste hat keine Funktion beim letzten Track.
Wenn man die Vor- und Zurück-Taste gleichzeitig lange drückt, wird die aktuelle Queue wieder von vorne begonnen. Das kann insbesondere im Hörbuch Modus verwendet werden, um den gespeicherten Fortschritt zurückzusetzen.
Da einige neuere DF Player sehr langsam sind, habe ich den Cammand-Repeat Timeout erhöht. Und ich habe das Abspielen von Advertise Tracks repariert, wenn gerade kein Track abgespielt wird. Ich habe das mit allen mir zur Verfügung stehenden Playern getestet, aber es gibt ja noch viel mehr.
Vielleicht könnt ihr das mal testen: Legt eine Modifikationskarte auf, wenn der TonUINO gerade gestartet wurde (wenn noch kein Track abgespielt wurde) und wenn ihr gerade auf Pause gedrückt habt (wenn natürlich ein Track gerade gespielt wurde). In beiden Fällen sollte der Adv-Track sauber abgespielt werden und danach sollte wieder Ruhe sein.
Der Zufallsgenerator wurde falsch initialisiert, das wurde jetzt behoben. Zur Initialisierung wird ja ein offener analoger Pin verwendet, aber die Abfrage wurde ohne delay gemacht, so dass immer das selbe Messergebnis ermittelt wurde (es wurde ja auch gar keine neue Messung gemacht).
Weiterhin kann man den Mode ‚Spiele letzte Karte‘ jetzt auch als ShortCut konfigurieren.
Der Rotary Encoder kann auch beim Nano Every verwendet werden, dafür wurde jetzt die Datei constants.hpp vorbereitet.
Diesmal wieder ein Versionssprung, also hat sich das Interface geändert. Für das Quiz sind neue Dateien auf der SD Karte im mp3 Folder hinzugekommen und es gibt einen neuen Mode für die Karten. Wie immer können die mp3 Dateien hier tonuino.github.io/TonUINO-TNG/sd-card.zip herunterladen.
Neue Feature sind also das Quiz und das die letzte Karte im EEPROM gespeichert wird. Beide sind optional, sie müssen also in der Datei constants.hpp aktiviert werden.
Issue 173: Improve Rorary Encoder implementation (also for NANO and optional for next/previous)
Issue 135: Make new variants available for online upload (3 butonn variants)
Der Rorary Encoder funktioniert jetzt auch für die Classic Variante mit dem NANO und für die AiO. Da hier kein HW Interrupt Pin frei ist, wird gepollt mittels einer Timer ISR, die mit 200 Hz läuft.
Optional kann man mittels Rotary Encoder jetzt auch vor und zurück auslösen, wenn man langsam dreht (ein Click pro Sekunde).
Zusätzlich sind beim Online Upload die 3 Button Varianten für AiO und AiOplus hinzugekommen.
Es gibt hier ein neues Spiel: Memory. Eine Anleitung findet ihr direkt im Issue oben.
Da sich der Inhalt der SD Karte geändert hat, hat dieses Release eine neue Nummer. Also nicht vergessen, die SD Karte neu zu bespielen.
Issue 182 : Quiz game: do not repeat a question until no question remains
Im Quiz Spiel werden jetzt keine Fragen mehr wiederholt solange nicht alle Fragen dran waren. Außerdem lässt sich jetzt die Lautstärke ändern, wenn die Tasten nicht gerade zum Abspielen der Antworten genutzt werden, also z.B. beim Intro oder wenn „das ist die richtige/falsche Antwort…“ abgespielt wird.
Issue 178: Use Nano Every optional with HW Serial connection to the DfPlayer
Heute nun das „verfrühte“ Osterrelease mit vielen neuen Features, also nicht wundern über das „zukünftige“ Datum
Der Nano Every wird jetzt auch mit HW Serial unterstützt. Dazu ist aber eine HW Änderung notwendig. Das ist bei der Classic Platine nur mit einer Zwischen-Platine möglich. Dabei sind die TX/RX Pins vom DFPlayer mit den Pins D0 und D1 (TX/RX) vom Nano Every zu verbinden (nicht mit D2/3).
Ein Feature, was schon lange auf der ToDo Liste stand: Erkennung vom Kopfhörer. Dabei wird eine separate Lautstärke gewählt. Dafür gibt es im Admin Menü auch separate Einstellungen für max/min/init. Es gibt dabei im Admin Menü keinen neuen Punkt, aber wenn die Kopfhörer stecken werden die Werte für den Kopfhörer eingestellt ansonsten die für den Lautsprecher.
Bei der AiOplus ist das Feature automatisch aktiviert und funktioniert out of the Box. Bei der AiO müsste man an der Platine HW Änderungen machen, was ich nicht empfehle. Für die Classic Platine benötigt man zusätzliche HW.
Man kann den Start Shortcut jetzt per GPIO Pin temporär ändern. Das könnte man verwenden, um den TonUINO als Wecker zu verwenden. Dazu ist aber zusätzliche HW erforderlich, die den TonUINO aufweckt und den GPIO dabei setzt.
Noch ein Feature, welches auf der AiOplus als HW schon vorgesehen war: Spannungsüberwachung der Batterie. Dabei gibt es zwei Level:
Level: Warnung, es wird alle 30 Sekunden ein kurzes „Pling“ gespielt. Das ist ein Hinweis, dass die Batterie aufgeladen werden sollte.
Level: Abschaltung, es wird abgeschaltet.
Ich empfehle, die Messung zu kalibrieren. Z.B. kann man mit einem Labornetzteil die Spannung schrittweise heruntersetzen, bis das „Pling“ zu hören ist. Passt die Spannung dabei nicht, kann man den Wert für voltageMeasurementCorrection in der Datei constats.hpp anpassen (ist die Spannung zu groß, muss der Wert vergrößert werden).
Prinzipiell funktioniert das auch für den Nano, das ist aber nicht empfehlenswert, da die Messgenauigkeit hier nicht allzu groß ist. Ob die Genauigkeit bei der AiOplus ausreicht, müsst ihr mal ausprobieren.
Zusätzlich wurde noch ein Bug behoben: Das Compilieren ist jetzt auch wieder beim aktivierten Feature DONT_ACCEPT_SAME_RFID_TWICE möglich.
In der Datei constants.hpp findet man ganz am Anfang eine Übersicht, welches Feature welche Pins verwendet. Wenn ihr neue HW entwickelt, beachtet dies am besten.
Issue 193: Hoerbuch mode: after playing last track it does not change to first track on next start
Issue 190: Neo Pixel Ring: Add the possibility to have 2 rings remains
Issue 188: Pause when card removed modus: do not go to Play via button if card is not present
Hier wird ein Bug behoben, dass beim Hörbuch Modus nicht an den Anfang zurückgekehrt wird, wenn das Ende erreicht ist. Es wurde dann immer wieder der letzte Track gespielt.
Außerdem kann man (wenn „Pause wenn Karte entfernt“ eingestellt ist) jetzt nicht mehr die Wiedergabe mittels Pause-Taste starten, wenn die Karte nicht mehr aufliegt.
Es können jetzt auch zwei Neo-Pixel Ringe angeschlossen werden, die dann gegenläufig arbeiten.
Issue 202: Enhance modifier card SleepTimer to stop only after the track finished
Issue 200: Add possibility to use Pololu-Powerswitch for shutdown
Issue 196: Enhance Hoerbuch_1 mode to play more tracks
Issue 197: SPECIAL_START_SHORTCUT: pin A6 cannot be read digital on Nano
Heute wieder ein neues Release mit neuer Nummer da sich der Inhalt des mp3 Ordners geändert hat. Zur Erstellung der Karten für die Feature 196 und 202 ist jeweils eine neue Datei hinzugekommen. Diese werden auch benötigt, wenn die Feature nicht verwendet werden.
Issue 207: Use poti for setting the volume: add threshold to prevent continuously switching volume
Issue 205: Implement the game „Feuer, Wasser, Luft“ as modification card
Dies ist ein Release mit einer neuen Nummer, da sich der Inhalt der SD Karte geändert hat. Es sind neue Dateien hinzugekommen aber auch Dateien entfernt worden.
Als neues Feature wurde das Tanzspiel „Feuer, Wasser und Luft“ als Modifikationskarte implementiert. Dabei wurde auch das Stopptanz Spiel verbessert.
Gleichzeitig wurde das Feature „Poti zum Einstellen der Lautstärke“ gefixt. Hier verhindert ein Threshold jetzt, dass die Lautstärke ständig hin- und herspringt.
Issue 217: Improve and fix handling of some DF Player
Es wurde ein Bug gefixt, wenn man die Schlummer Modifikationskarte im Zusammenhang mit dem NeoPixel Ring verwendet. Wenn der Timer abgelaufen war, konnte man die Wiedergabe mit der Play Taste fortsetzen, die LED Animation wurde dann aber nicht dementsprechend geändert. Das Fortsetzen ist jetzt nicht mehr möglich.
Weiterhin wird jetzt das Bluetooth Modul mit der TLE Trägerplatine unterstützt. Beim Auflegen der Modifikationskarte wird BT eingeschaltet, ein Nochmaliges Auflegen schaltet es wieder aus. Im Play State kann mit der Play/Pause Taste (langer Druck) ein neues Gerät verbunden werden (Pairing).
Weiterhin habe ich den Support für zwei DF Player verbessert bzw. gefixt.
GD3200B:
zusätzlich wird jetzt der Callback OnPlayFinished für Adv Tracks ignoriert.
der Timeout timeUntilStarts wurde erhöht auf 1,5 Sekunden.
MP3-TF-16P V3.0 with MH2024K24SS:
dieser neue Player kann jetzt als #define in der Datei constants.hpp ausgewählt werden.
der Callback OnPlayFinished für Adv Tracks wird ignoriert.
der Timeout timeUntilStarts wurde erhöht auf 2,5 Sekunden.
für das Abspielen von Adv Tracks, wenn gerade nichts abgespielt wird und auch keine Pause ist, wurde ein delay eingefügt, da der Player sehr langsam das Abspielen startet.
Issue 219: Disable modification cards during quiz and memory game
Das Bluetooth Modul lässt sich jetzt auch per Shortcut ein- und ausschalte. Damit einhergehend kann man dann natürlich auch eine ganz normale (Abspiel-)Karte damit konfigurieren (ist der selbe Code).
Hier bleibt jetzt die Frage, ob man die Modifikationskarte für das Ein- und Ausschalten noch braucht.
Gleichzeitig wurden noch zwei Bugs behoben. Bei den Spielen Quiz und Memory machen alle derzeitigen Modifikationskarten keinen Sinn. Sie werden deshalb beim Start der Spiele deaktiviert und lassen sich während eines Spiels auch nicht aktivieren. Beim zweiten Bug deaktivierte die BT Modifikationskarte die Spiele Stopptanz und Feuer-Wasser-Luft.
Heute die Version 3.2.0
Ich denke, dass die Menge an Features bisher mal eine neue Version rechtfertigen.
Es wird jetzt der Nano Every Clone mit dem ATmega4808 unterstützt und für den originalen Nano Every wird jetzt ein neues Boardpaket verwendet. Wer PlatformIO verwendet, braucht nichts weiter zu ändern. Wer die Arduino IDE verwendet, muss die Einstellungen ändern. Siehe dazu Tester gesucht für Nano Every und Nano Every mit ATmega4808.
Weiterhin wurden einige Bugs behoben. Siehe dazu obige Liste.
In dieser Version wurde vor allem die Diagnosemöglichkeit beim Startup verbessert. Insgesamt wurden auch die Log-Level vereinheitlicht: Per Default sind jetzt alle Logs auf „Info“ gestellt. Die Menge der Logs musste ich hier mit dem verfügbaren Flash Speicher abgleichen.
Weiterhin wurde ein kleines Problem beim Auflegen der Karte für die Spiele Quiz und Memory beseitigt. Auch hier kommt jetzt sofort ein Quittung-Ton.
Issue 246: With LKP Player there is no pling on startup
Im letzten Release hatte sich ein Fehler eingeschlichen. Ich hatte ja den Startup optimiert und dabei bin ich über das Ziel hinausgeschossen. Insbesondere der LKP Player benötigt etwas mehr Zeit, so dass hier der Startup Track oder das „Pling“ nicht abgespielt wurde. Da der Player leider nicht Bescheid sagt, wenn er fertig ist, kann man hier nur mit einem Delay arbeiten. Zusätzlich warte ich davor noch, bis die Funktion getTotalTrackCount() einen Wert != 0 zurückgibt.
Bitte meldet euch, wenn das Problem trotzdem noch auftreten sollte.