Phoniebox: Der Koffer für den kleinen Mann

Menschen mit kleineren Kindern kennen sicherlich die Toniebox: Eine kleine Kiste, auf die kleine Kinder kleine Figuren stellen, worauf die Kiste dann Musik oder Hörspiele abspielt. Für Menschen mit Spaß am Basteln gibt es dazu ein alternatives Selbstbauprojekt, die sog. Phoniebox. Mein Freund Markus hat ein kleines Kind und Spaß am Basteln. Ich habe auch Spaß am basteln, also haben wir gebastelt. Das ist dabei herausgekommen:

Phoniebox kann sowohl lokal auf der Kiste gespeicherte Audiodateien abspielen, als auch Spotify (einzelne Songs, Playlisten, Alben, was auch immer). Hat die Box kein WLAN, dann spielt sie eben nur die lokalen Sachen ab, denn Spotify kann nur gestreamt werden.

Was jetzt noch kommt ist mehr eine Gedankensammlung und Dokumentation dessen, was wir gemacht haben als eine Anleitung, wie man den Koffer exakt nachbaut. Der eine oder andere brauchbare Hinweis ist aber vielleicht trotzdem dabei, und das meiste ist auf den ebenfalls verlinken Projektseiten ja bestens beschrieben.

Material

Hier eine Liste der von uns verbauten Teile:

  • Kinderkoffer: Gibt es in verschiedenen Größen. Wir haben ein bisschen geplant und uns für den mit 25cm entschieden. Passt gut. Ca. 13 €.
  • Raspberry Pi 3 Modell B: Der Pi 3 ist zwar aktuell kaum günstiger als der Pi 4, trotzdem haben wir und für den entschieden, weil IMHO der Pi 4 schon ein Wärmeproblem hat, was in so einem geschlossenen Koffer einfach nicht ideal ist. Die Leistung des Pi 3 reicht für das Projekt völlig aus. Kosten: Ca. 36 €.
  • microSD-Karte 32 GB.  Ca. 7 €.
  • OnOff SHIM: Dieses Teil sorgt dafür, dass der Pi wirklich komplett stromlos gesetzt wird, nachdem er heruntergefahren wird. Denn dann und nur dann geht auch die Powerbank in den Standby. Könnte bei einer anderen Powerbank jedoch auch anders sein.
    Ca. 8 €.
  • RFID-USB-Kartenlesegerät für EM4100-Karten.  Ca. 12 €.
  • RFID-Karten: 30 Stück ca. 8 €.
  • Lautsprecher Die Lautsprecher sind aktiv, werden über USB mit Spannung versorgt, bekommen ihr Signal aber analog über 3,5mm-Klinke. Ca. 10 €.
  • Soundkarte für den Pi: Der Pi hat zwar einen analogen Audioausgang, allerdings wird der Sound mit einer kleinen externen Karte doch deutlich besser. Ca. 9 €.
  • Entstörfilter: Man hat doch ab und zu etwas Knacken und Knistern auf den Boxen, so ein Entstörfilter hilft. Ca. 11 €.
  • Arcade-Druckknöpfe, ca. 10 €.
  • Powerbank: War vorhanden. Irgendwas zwischen 15 € und 25 €.
  • Kleinzeug: Eine grüne LED, ein Widerstand dazu, diverse Jumper-Kabel, Metallteile aus einem alten Metallbaukasten als Befestigungen, Heißklebepistole, Lötkolben etc.

Wenn man Zeit hat kann man viele der Komponenten natürlich auch über Aliexpress etc. beziehen.

Links

Ein paar Links, die wir immer wieder gebraucht haben:

Installation

Installation Raspberry Pi

Dazu muss nicht viel gesagt werden. Den Raspberry Pi Imager herunterladen und damit Raspberry Pi OS auf die SD-Karte schreiben. Fertig.

Was sonst noch zu konfigurieren war: Wir hatten einige Probleme mit dem Abspielen von Spotify, dazu unten mehr. Neben anderen Dingen war es für Spotify wichtig, dass der Pi beim Booten auf das Netzwerk wartet (er wartet dann auch nicht ewig, sondern fährt irgendwann trotzdem hoch, was für den offline-Betrieb ja auch wichtig ist). Das lässt sich einfach mittels „sudo raspi-config“ einstellen. Dort legt man am besten auch schon die WLAN-Zugangsdaten fest. Und wenn man schon dabei ist gibt man dem Raspberry Pi natürlich auch noch einen anderen Hostnamen, sowas wie „phoniebox“ oder so. Dann ist später das Webinterface zum Einrichten im heimischen Netz unter http://phoniebox erreichbar.

Installation Phoniebox

Für die Installation von Phoniebox inkl. der Spotify-Unterstützung reicht ein einziges Shell-Kommando, welches man zusammen mit vielen anderen Hinweisen hier findet: https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch

Kritischer Punkt bei der Installation von Phoniebox ist der Zugang zu Spotify, das hat uns sehr viel Zeit und Nerven gekostet. Lag allerdings auch daran, dass wir zwischendurch verschiedene Spotify-Konten ausprobiert haben, was keine gute Idee war. Was wir gelernt haben:

  • Als Benutzername für Spotify nicht die Mailadresse verwenden, sondern den wirklichen Benutzernamen. Den findest du hier: https://www.spotify.com/de/account/overview/
  • Ich sage sowas nur ungern (weil es mich wirklich ärgert), aber hier ist das wichtig: Gewisse Sonderzeichen im Spotify-Passwort können hier Probleme machen („3A6E%6&Vu81vxy@“ hat als Passwort z.B. nicht funktioniert). Daher lieber ein sehr langes Passwort für Spotify erzeugen, aber Sonderzeichen vermeiden.
  • Für den Zugriff der Software auf Spotify braucht man einen API-Zugang. Den erzeugt man sich hier.  Da bekommt man dann eine Client-ID und ein Client-Secret. Beide braucht man während der Installation von Phoniebox.

Vielleicht noch zur Klarstellung: Phoniebox nutzt für den Kontakt zu Spotify ein Projekt namens Mopidy, und dafür wird später als Webfrontend dann eine Software namens Iris verwendet. Wird aber alles bei der Phoniebox-Installation entsprechend mit installiert. Wenn die Installation fertig ist gibt es daher auch zwei Webinterfaces, eines für Phoniebox (z.B. http://phoniebox/) und eines für Iris (z.B. http://phoniebox:6680/), also das Mopidy-Frontend.

Debugging

Wie gesagt, wir hatten mit der Spotify-Anbindung immer wieder Probleme. Zum Debugging hat uns das hier geholfen:

  • Log zeigen: „journalctl -u mopidy -f“
  • Konfiguration von Mopidy anzeigen: „sudo mopidyctl config“
  • Rescan der Audio-Datenbank: „curl http://localhost/manageFilesFolders.php?scan=true“

Installation OnOff SHIM

Der OnOff SHIM sorgt wie gesagt dafür, dass der Pi komplett stromlos heruntergefahren werden kann, sodass sich die Powerbank dann auch ausschaltet. Das Teil ist ggf. nicht so leicht zu bekommen, Hersteller ist Pimoroni.

Installiert wird es einfach per „curl https://get.pimoroni.com/onoffshim | bash„. Wichtig zu wissen ist, dass das Teil auf der Bibliothek clean-shutdown  aufsetzt, den darüber findet man Konfigurationsmöglichkeiten für das Teil. Z.B. wollten wir, dass der Shutdown beginnt, wenn man 5 Sekunden lang auf den Play-Button drückt.  Dazu bearbeitet man die Konfiguration von clean-shutdown mittels „sudo vi /etc/cleanshutd.conf“:

  • hold_time=5
  • shutdown_delay=1
  • led_pin=25

Der LED-Pin kann gesetzt werden, wenn man wie wir eine externe LED anschließt, um den Shutdown-Vorgang anzuzeigen.

Manuell heruntergefahren werden kann der Pi über die Bibliothek mittels „sudo /lib/systems/system-shutdown/gpiopoweroff poweroff“.

Belegung der Buttons

Wir haben die Buttons einfach so belegt, wie es in der Software schon vorgesehen ist, siehe https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons. Allerdings haben wir die Pullup-Widerstände weggelassen. Unsere Buttonbelegung:

  • GPIO 19: Volume +, schwarzer Button)
  • GPIO 16: Volume – (weißer Button)
  • GPIO 21: Play / Pause (gelber Button)
  • GPIO 26: nächster Titel (grüner Button)
  • GPIO 20: vorheriger Titel (blauer Button)

Fazit

Lohnt sich der Bau einer Phoniebox in Konkurrenz zum kommerziellen Produkt? Finanziell hält sich das in etwas die Waage. Wenn du Freude am Basteln (auch mit Elektronik und Computern) hast und einer individuellen und vor allem auch sehr potenten und flexiblen Lösung etwas abgewinnen kannst, dann auf jeden Fall!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.