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!

3 Reaktionen auf “Phoniebox: Der Koffer für den kleinen Mann

  1. Matthias

    Hi,
    bin über Ralfs Blog auf deine Seite gestoßen. Bin auch gerade am Basteln an der Box.
    Technisch klappt es schon gut. Hab aber noch paar Fragen zu deinem Aufbau:
    – Hast du in den Koffer noch eine Holzplatte oder so rein und alles dort befestigt? Sieht so aus.
    – Wie hast du die Löcher für die Buttons in den Koffer gebohrt?
    – Kann man den on-off-shim einfach mit einem anderen Button verbinden? Und sehe ich das, richtig, dass du alle Buttons an einen GND angeschlossen hast? Vielleicht kannst du dazu noch ein Bild von der Verkabelung am Raspi hochladen.
    Vielen Dank

    Antworten
    1. dasaweb Beitragsautor

      Hallo Matthias,

      ich versuche mal, deine Fragen zu beantworten:

      1) Ja, unten im Koffer ist alles auf ner dünnen Holzplatte aufgebaut. Damit kann man die Technik auch herausnehmen, wenn man will.

      2) Die kleinen Löcher hat mein Freund mit einem Stanzer in den Koffer gestanzt. Ob er die großen auch gestanzt hat weiß ich nicht. Ich hätte wohl so einen Stufenbohrer genommen und von außen gebohrt.

      3) Den OnOff Shim kann man einfach mit irgend einem Button verbinden. Muss nicht einer derer sein, die man schon hat. Wir haben halt einfach einen der vorhandenen doppelt genutzt, einmal bei einem normalen Druck als Taster für die Phoniebox-Software, und dann eben auch als Taster für den OnOff Shim, der aber ja erst bei x Sekunden reagiert. D.h. bei einem Tastendruck bekommen beide (der Raspberry Pi direkt und auch der OnOff Shim) die Info, das gedrückt wurde, und abhängig von der Länge des Drückens wird eben entsprechend reagiert.
      Zur Verkablung: Es ist ja so, dass der Pi auf seinen GPIO-Ports reagiert, wenn der Pin auf Ground gezogen wird (siehe https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons). Daher kann man die Ground-Leitung einfach zu einem der Buttons ziehen und von dort aus einfach zu den anderen Buttons weiterreichen. Muss man nicht so machen, spart aber etwas Kabel und macht es bei dem Aufbau damit übersichtlicher. Der Pi hätte ja auch nicht genügend Ground-Pins, um jeden Button mit einem separaten zu verbinden, und auch wenn er das hätte wäre das technisch völlig identisch. Fotos kann ich leider keine (mehr) machen, weil das Ding ja nicht bei mir weilt… Wenn das aber wichtig ist melde dich nochmal, dann frag ich nach.

      Antworten

Schreibe einen Kommentar

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