Fragen eines potenziellen Phoniebox-Wechslers

Hallo TonUINO Community,

als potenzieller Wechsler von einem Raspberry Pi Projekt (Phoniebox, siehe Bild) sind bei mir noch einige Fragen offen. Vor allem die Antworten auf die Fragen nach der Startzeit und dem harten Ausschalten interessieren mich sehr!

Aktuell steht der Bau einer zweiten RFID Box an. Zwar habe ich beinahe alle Teile für eine zweite Phoniebox Zuhause, aber das meiste ließe sich für die TonUINO Box recyclen. Nach dem Einlesen im Forum und den FAQ sowie der Erkenntnis, dass sich in den letzten 1,5 Jahren einiges getan hat, tendiere ich aktuell zu einer TonUINO Box!

Meine Phoniebox hat einige Extras, die teils im Idealfall auch bei der TonUINO Box zum Einsatz kommen sollen. Vielleicht könnt Ihr mir bei den unklaren Punkten etwas auf die Sprünge helfen?

  1. Photosensoren zur Erfassung des Ladezustands der Box: War gewünscht, um ein automatisiertes Ausschalten der Box bei niedriger Kapazität der Powerbank zu ermöglichen und ein Signal auszugeben
    beim TonUINO nach meinem aktuellen Verständnis nicht nötig, da die Box hart ausgeschaltet werden kann? Ist das so, wird die SD Karte nur Read-Only betrieben?
  2. 6 Taster (Power, Track zurück, Play Pause, Track weiter, Leiser, Lauter)
    → habe mir die Belegungen beim TonUINO angesehen und denke, dass die 5 Taster Variante für die Box perfekt wäre.
  3. Status LEDs
    a. Gelb Blink-LED während dem Hochfahren (was mitunter 30 Sekunden dauert)
    b. Grüne LED sobald die Box betriebsbereit ist
    c. Rote Blink-LED bei niedrigem Akkustand
    → zum Punkt a: Wie schnell fährt der TonUINO denn hoch bzw. wie lange dauert es, bis er Einsatzbereit ist ab Einschalten?
    → zum Punkt b: Das die Box eingeschaltet ist, würde ich einfach über eine LED in der Spannungsversorgung hinter dem Pololu-Power Switch anzeigen. Betriebsbereitschaft wird per Ton ausgegeben, oder?
    → zum Punkt c: Da kann ich drauf verzichten, wenn die Box hart ausgeschaltet werden kann. Würde dann maximal die Powerbank so im Gehäuse anordnen, dass die Status-LED von außen (z.B. über Lichtwellenleiter) sichtbar sind.
    → Eine echte Status-LED macht für mich daher ggf. nicht mehr so den Sinn. Oder was lasst Ihr Euch mit einer Status LED anzeigen?
  4. OnOffShim zum Trennen der Powerbank vom Raspberry (manuell per Taster oder automatisiert per Script durch Idle-Timer)
    → Hatte von dem Pololu Power Switch gelesen, dass eine ähnliche Funktion für den Arduino bietet. Würde ich entsprechend so verbauen.

Da ich für die zweite Phoniebox – die nun mit ebenfalls noch Zuhause rumfliegenden Arduino doch eher ein TonUINO wird – bereits kleine aktive Stereolautsprecher vorliegen habe, stellt sich noch die Frage, wie ich die am besten anschließe? Auf jeden Fall soll eine Umschaltbarkeit zum Kopfhörer möglich sein.

  1. Lautsprecher aus dem Gehäuse ausbauen und zusammen angeschlossen als „Dual-Mono“ an den DF-Player? Mit geschalteter Kopfhörerbuchse zwischen Lautsprecherausgang und DAC/Kopfhörer umschalten.
  2. Aktive Stereolautsprecher an den DAC-Ausgang des DF Players? Mit geschalteter Kopfhörerbuchse DAC Ausgang zwischen aktiven Lautsprechern und Kopfhörern umschalten.

Vielen Dank im Voraus! Ich freue mich auf Eure Ideen!

Nosi

Hallo Jonas,

Genau, die Box kann ohne ein Herunterfahren ausgeschaltet werden. SD-Karte wird nur Read-Only betrieben.

Ja, auch hier liegst du richtig. Du musst im Code nur im entsprechenden Part die Kommentierung entfernen. „//“ entfernen.

// uncomment the below line to enable five button support
//#define FIVEBUTTONS

Wir reden hier von vielleicht 3s, wenn überhaupt. Ich / Kinder :wink: schalten den Tonuino an und legen dann schon die Karte auf. Wenn man nicht zu schnell ist, spielt die Musik ab :slight_smile: .

Nein, es wird kein Ton ausgegeben. Du kannst allerdings einen Startton (shortcut) über das Adminmenü auswählen. Dann hast du beim Start einen Ton. Du kannst eine LED am Pin D6 anschließen. Einfach nach „Pin D6“ im Forum suchen, da findest einiges…

Es gibt auch eine Kopfhörerbuchsenplatine, evtl. wäre die ja was für dich (wenn es einfach gehen soll).
Aktive Lautsprecher müsstest du am Lineout (L, R, GND) vom DFPlayer anschließen.

2 „Gefällt mir“

Ich habe genau das gemacht: Die Status LEDs der Powerbank mittels Lichtwellenleiter nach außen geführt. Zusätzlich ist noch eine WS2812 LED eingebaut. Damit kann man je nach aktuellem Status (Idle, Play, Menü, Fehler usw.) verschiedene Farben oder auch Effekte wie Blinken oder Pulsieren schalten. Ist im Fork von @stephan sehr gut dokumentiert.

1 „Gefällt mir“

@Dave habe mir Deine Taschentuchbox v2 angesehen - Respekt, sehr schön!

Bist Du mit den 5 Tasten und der WS2812 LED mit der Pinbelegung standardmäßig mit @stephan s Fork unterwegs, oder musstest Du etwas anpassen/Code hinzufügen? Ziemlich exakt so schwebt mir die Lösung bei mir nämlich auch vor dem gestigen Auge vor und als jemand, der mehr in der Hardware als Softwarewelt Zuhause ist, kämen mir Lösungen ohne großen Aufwand an Codeanpassung sehr gelegen :slight_smile: Darüber hinaus gefällt mir der Fork von @stephan unter anderem auch aufgrund der ausgezeichneten Dokumentation (ebenfalls großen Respekt an dieser Stelle) sehr gut! Und der Pololu Power Switch wird auch unterstützt :clap:

@stephan, falls Du mit liest: Funktioniert die Kombination aus 5 Tasten, WS2812 LED und Pololu Power Switch SV out of the Box (bzw. kommt man mit den zur Verfügung stehenden I/O Pins aus)?

1 „Gefällt mir“

Zuerst mal, der „Pololu Support“ ist einfach das die Logik des shutdown Pins umgedreht wird. Nicht mehr und nicht weniger. 5 Tasten und die LED Sache sind auch kein Problem (wobei die 5 Tasten auch mit der DEV gehen, so wie auch der „Pololu Support“). Also ja, du kannst das alles drei zusammen nutzen. Bis auf die LED Sache könntest du dafür aber auch die DEV nehmen wenn du wollen würdest.

Ich setze den Fork von @stephan ein, weil ich eine ansteuerbare Status LED wollte und es sich damit einfach umsetzen lässt. Lediglich an 3 Stellen im Code habe ich die entsprechenden Features aktiviert (Pololu, 5 Tasten und LED), die Helligkeit der LED höher gestellt und die Farben angepasst. Letzteres war auch nötig, weil der Stromverbrauch mit nur einer geschalteten Farbe sonst zu gering war und die Powerbank im idle oder auch bei geringer Lautstärke abgeschaltet hat.

Wie du schon festgestellt hast ist das auch sehr gut im Code dokumentiert, wodurch das ganze ziemlich einfach wird und gut nachzuvollziehen ist.

1 „Gefällt mir“

Hallo Dave,

nach langer Abstinenz von dem Projekt, komme ich nun dazu die Hardware aufzubauen. Ich habe zwischenzeitlich alles gesammelt, bin aber in den paar Monaten wieder voll aus der Materie raus. Suche gerade Schaltpläne zusammen.

Du hast nicht zufällig einen Schaltplan Deines Aufbaus, denn exakt auf Pololu, 5 Tasten und LED läuft es bei mir auch hinaus…

Hey nosi. Habe ich leider nicht. Habe es einfach so zusammengebaut wie man es hier im Forum an verschiedenen Stellen findet. Wenn du die Platine hast sollte das Meiste ja schon klar sein.
Alles Weitere hat sich bei mir nach der Beschreibung hier ergeben:

Im Prinzip läuft es auf Folgendes hinaus:

  • DFPlayer und RFID Reader an der Platine anschließen
  • Buttons an die Platine und je nachdem was man möchte entsprechend am Pololu Switch anschließen
  • LED nach Doku an D6 der Platine anschließen. 5V und GND nicht vergessen. Die LED hat üblicherweise zwei kurze und zwei lange Beine. D6 muss normalerweise ans äußerste kurze Bein (data in), dann daneben ans zweite kurze Bein kommt +5V, an das lange daneben kommt GND und das letzte bleibt frei, es sei denn du willst mehrere LEDs hintereinander schalten. Zur Sicherheit einfach ins Datenblatt oder die Beschreibung der LED schauen.
  • Powerbank an VIN und GND des Pololu Switch.
  • +5V und GND der Platine an VOUT und GND des Pololu
  • In der tonuino.ino an den entsprechenden Stellen die Funktionen einschalten.

Genügend +5V und GND Anschlüsse um alles einzeln verkabeln zu können sind für die „5 Button + LED“ Variante vorhanden, da der Pololu Switch zwei +5V Ausgänge hat (einmal zur Versorgung des Arduino und einmal für die LED). Man muss auch nicht die GND aller Buttons zusammenschließen.

Okay, danke für den Input. Die Platine verwende ich nicht.

Ich muss mich mal durch die Schaltpläne kämpfen…

Meine LED (1 Bit WS2812 5050 RGB) hat hat auf der Platine 4 Anschlüsse VCC (Anschluss klar) GND (Anschluss klar). Dann gibt es noch DO und DI. Ich interpretiere es gerade als Digitalen Eingang (an Arduino Pin 6?) und DO als weitergeleiteter Datenport für weitere WS2812 LEDs (daher dann bei mir unkontaktiert). Kann das jemand kurz bestätigen oder korrigieren?

Wenn du meinen Fork benutzt stimmt dass so.

1 „Gefällt mir“

//EDIT:
Habe das Problem selbst gelöst. Habe das RX Kabel des DF Players ausgetauscht. Hatte wohl eines mit Wackler im Stecker erwischt :frowning:
Nun geht es und ich kann weiter testen :slight_smile:
//

Nach wieder mal längerer Abwesenheit bin ich nun dazu gekommen den Tonuino zu verkabeln. Leider habe ich schon direkt das erste Problem.

Kurz zusammengefasst, wie derzeit der Aufbau bei mir aussieht:

  • Verkabelt direkt mit Jumperkabeln und Breadboard zum Testen (Lochrasterplatine sollte dann folgen)
  • 5 Buttons
  • Pololu Power Switch LV
  • MH-ET LIVE RC522 RFID Modul
  • Aktivlautsprecher an entsprechenden Ausgängen des DF Player Mini (YX5200-24SS)
  • Status LED WS2812

Als Firmware kommt Stephans Firmware zum Einsatz, die entsprechenden Zeilen für 5 Buttons, WS281x und Pololu sind eingefügt.

Die Ordner advert und mp3 sind auf die Karte kopiert (formatiert und kopiert in Win10) und ein Ordner 01 mit einer Datei 001.mp3 wurde ebenfalls erstellt zum Testen.

Beim Starten mit verbunden PC bekomme ich folgende Ausgabe im seriellen Monitor:

⸮⸮⸮⸮`f⸮⸮⸮ff⸮⸮⸮⸮

TonUINO JUKEBOX
by Thorsten Voß
Stephan Eisfeld
and many others
---------------
flashed
  Jul  1 2020
  22:44:08
prefs read
  v1
prefs migrate
  -
init nfc
Firmware Version: 0x12 = counterfeit chip
init mp3
   start 15
     max 25
    menu 15
      eq normal
   files rx timeout error
0
init 5 buttons
init 10m timer
init ws281x
ready

Status LED leuchtet, ebenso die LEDs am Arduino (Klon) DF Player und RFID Modul. Eine nette Stimme sagt mir, dass es nun losgehen kann.

Ab hier bekomme ich weder aus den Lautsprechern noch auf dem seriellen Monitor ein Feedback, wenn ich Tasten drücke oder eine Karte (in verschiedensten Abständen) vor den Reader halte. Habe ich was übersehen?

Sollte ich beim Tastendruck ein Feedback im seriellen Monitor sehen? Hat jemand eine Idee, wo ich am ehesten mit der Suche starten kann? Der „files rx timeout error“ lässt mich vermuten, dass irgendwas mit/auf der SD Karte nicht passt?!?

In der Hoffnung, dass es hier jemand lies: Die Leseprobleme reißen nicht ab:

Anlernen der Karte funktioniert 1A. Danach spielt aber nichts ab, wenn ich die Karte auflege. Der serielle Monitor schreibt wie folgt:

read cl ok 13 37 B3 47 01 01 01 00 00 00 00 00 00 00 00 00
rx timeout error
story-1-1/0

Sobald ich eine neue Karte auflege klappt das Anlernen 1A und auch die Musik, die von der ersten Karte hätte gestartet werden sollen, läuft bei der Auswahl im Anlernmenü. Nach Abschluss des Anlernens wieder das gleiche Problem: Es tut sich nichts, außer der Fehlermeldung im seriellen Monitor. :thinking:

Hat jemand eine Idee?

Hardware FAQ:

  • Manchmal ist der DFPlayer schlampig verlötet so daß der TX Pin fälschlicherweise Kontakt zum SD-Kartenslot hat und damit auf GND gezogen wird. Das resultiert dann unter anderem darin, daß der Player z.B. nicht automatisch los spielt wenn eine Karte aufgelegt wird, da der Arduino keine Rückmeldung vom Player bekommt. Andere Symptome sind ebenfalls möglich. Beispiele inkl. Fotos und Hilfe zur Behebung gibt es hier und hier.

Wow, genau das war das Problem. Vielen Dank, da wäre ich nie drauf gekommen. Den Blechstummel vom SD Slot hochgebogen und nun klappt alles.

Interessanterweise ist nun auch die Statup Zeit mit etwa 2-3 Sekunden deutlich besser. Vorher teils 10 Sekunden, das kam mir auch komisch vor.

Wir machen das schon ne Weile hier. :wink:

Das ist logisch, weil die DFPlayer Library einen Timeout von 10 Sekunden hat. Beim Start wird versucht die Gesamtzahl der Tracks zu ermitteln. Dies schlägt fehlt weil der Player nicht antworten kann und es dauert den 10 Sekunden Timeout bis es weiter geht.

Edit/PS: Ich habe den Absatz in der Hardware FAQ mal dahingehend erweitert und die entsprechenden Fehlermeldungen ergänzt. Vielleicht hilft daß in Zukunft bei der Selbsthilfe.

Verstehe, das macht Sinn.

Nun stehe ich vor zwei weiteren Herausforderungen:

  1. Stromversorgung per Netzteil oder PC funktioniert. Per Powerbar (Intenso 10Ah) startet der Tonuino, aber das Abspielen der Karten funktioniert nicht (mehrfach hin und her gestöpselt, das ist reproduzierbar). An- und Ausschalten über den Powerbutton (das ist bei mir ein 6. Button, der direkt an die zwei Pins des Pololu angebunden sind). Werde morgen mal den Pufferkondensator + Drossel zusammenlöten und mit einschleifen in der Hoffnung, dass das ggf. etwas bringt.
  2. Meine Status LED leuchtet beim Abspielen rot und nicht grün. Im Idle pulsiert sie rot. Beim Anlernen der Karten ist sie glaube ich grün. Laut Deinen Kommentaren im Code sollte das glaube ich anders sein. Hast Du da eine Idee? Ich bin im Code noch nicht ganz durchgestiegen, wo ich das anders definieren könnte.

Vielen Dank im Voraus!

Deine LED hat eine andere Color Order. Zu ändern hier:

1 „Gefällt mir“

Prima, Danke.

Und fast am Ziel. Morgen schaue ich mir das mit der Powerbank in der Hoffnung, dass das letzte Problem noch zu lösen ist :slight_smile:

Mja da kann ich dir leider nicht helfen, ich benutze weder diese Powerbank noch den Pololu Power Switch LV.

Das Problem lag übrigens am Arduino Nano Clon. Wo genau, kann ich nicht sagen (Lötstellen sahen alle gut aus). Habe den ausgetauscht und schon läuft alles wie gewünscht.

Vielen Dank noch einmal für die tolle Hilfestellung und schnellen Antworten!