Digitalradio mit Raspberry Pi

Gründlich überarbeitet, gibt es unser “Digiradio” nun in der dritten Version.
Wir starteten im Februar 2015. Die Idee war, auf Basis des Raspberry Pi ein eigenes Digitalradio zu bauen, was mit möglichst vielen Quellen umgehen kann. Am Anfang nutzten wir noch einen Pi der ersten Generation, einen “Hifiberry”-DAC und SDR-Stick. Danach zogen Pi2 und eine DABPi-Platine ein.

Im aktuellen Projekt verbauen wir wieder neue Hardware. Auch die Bediensoftware wurde komplett erneuert, am grundlegenden Konzept aber festgehalten. So sollte wieder Material aus dem heimischen Netz und von Datenträger abspielbar sein, Webradio gestreamt und über Antenne empfangen werden. Außerdem sollte eine frische Optik her und alles leichter bedienbar sein. Das Gehäuse kommt nun von einem ausgedienten Radio, wo wir sämtliche Elektronik und die Gehäuselautsprecher entfernt haben.

Die Stromversorgung soll jetzt über ein externes Netzteil geschehen. So ist genug Platz für alle unsere Komponenten. Im Wesentlichen sind das der Raspberry Pi, wo wir einen 3B+ verbaut haben, Hifiberry DAC+ ADC, Monkeyboard für FM-und DAB+, ein Audioverstärker-Board auf Basis TPA3116, Spannungswandler, TFT-Touchpanel und ein kleines OLED für die Anzeige an der Front.

Das Monkeyboard ist unsere aktuelle Wahl für den Empfang per FM und DAB+. Mit dem Pi ist das Board per USB verbunden. Die softwaremäßige Ansteuerung basiert auf Anleihen aus dem Github-Projekt von User “schlizbaeda”. Eine tolle Arbeit.
Wir haben dort die Keystone-Firmware für das neue Pro-Board ersetzt und auf die digitale Verbindung per I2S-Audio zum HifiBerry verzichtet. Die soll einzig nur der Raspi nutzen. Das Monkeyboard sendet bei uns also nur analog über die Klinkenbuchse.

So gehen wir diversen Schwierigkeiten aus dem Weg, wie bei konkurrierenden I2S-Verbindungen aus mehreren Quellen umschalten zu müssen. Einen analogen wie digitalen Input bietet aus der HifiBerry-Serie aber nur das DAC+ADC-Modell. Das ist also unsere neue Schaltzentrale und die gibt per Cinch-Buchsen an den Endverstärker weiter.
Damit dort nicht nur der Input vom Raspi ganz digital per I2S ankommt, sondern auch das Audiosignal auf dem Analogeingang, muss eine softwaremäßige Brücke geschaffen werden. Denn der Analoginput beim Hifiberry ist vordergründig für Record-Zwecke gedacht und deshalb auf dem Board nicht mit dem RCA-Ausgang elektrisch verknüpft. Da schafft “alsaloop” Abhilfe. Wann immer wir also FM oder DAB vom Monkeyboard wiedergeben wollen, ist ein

$ alsaloop -t 20000

in der Radio-Software vorangestellt, was den Loop von der Klinke zum Verstärkerausgang schafft. Das Tool ist bei der Installation der “alsa-utils” mit dabei. Und überhaupt sollten vor dem Einbau alle Module einzeln getestet, dann miteinander verknüpft und die Software schrittweise aufgebaut werden.

Zur Inbetriebnahme des Pi empfiehlt sich wie immer ein neues Image per Download und ein Update der Bezugsquellen und der Software. Aktuell ist bei uns ein “Buster” installiert, nebst den “alsa-utils”, der Software aus dem “dabd”-Projekt und der Bibliotheken für das OLED. Für unser TFT-Panel am HDMI-Anschluss muss man noch die grafische Ausgabe anpassen. Das geschieht im Pi-OS in der “config.txt”, wo auch noch das Overlay für den Hifi-Berry eingetragen werden muss. Die wesentlichen Einträge für unseren Bildschirm sind:

hdmi_group=2
hdmi_mode=87
hdmi_cvt=1024 600 60 6 0 0 0
hdmi_drive=1

Und für die Konfiguration der Audiowiedergabe haben wir eingetragen:

dtparam=audio=off
dtoverlay=hifiberry-dacplusadc

Und damit unsere Radio-Software von Beginn an startet, haben wir noch die “rc.local” auf dem Pi angepasst. Dort wird auch ein Netzwerkverzeichnis gemounted, auf dem man später bequem alle Audiodateien ablegen kann, welche zur Wiedergabe im LAN gefunden werden sollen.

Am besten, man baut alles Schritt für Schritt auf. Für die grafische Ausgabe dient uns “pygame” für Python, wo man keinen Linux-Desktop laufen lassen muss. Manches ist da etwas schwieriger zu realisieren, als man von einem Fenstersystem gewohnt ist. Eine gute Wahl aber, wenn man nach einer flinken und robusten Anzeigemöglichkeit sucht. Zu Wartungszwecken kann man aus der Bedienoberfläche auch zum Linux-Prompt zurückkehren.

Während der laufenden Entwicklung verbindet man sich mit dem Pi wie gewohnt per “ssh” von einem entfernten Terminal aus. Um vom Arbeitsplatzrechner auch die Radiosoftware zu bedienen, loggt man sich mit X-Option ein, und man bekommt die vom Gerät gewohnte grafische Ausgabe. So kommt das Digiradio als App auf den Arbeitsplatz.

Spielt alles zur Zufriedenheit zusammen, kann es an den Einbau gehen. Bei unserem Gehäuse geschieht der von vorn, wo die meisten Module auf einem Zwischenboden im Inneren verankert werden. Für das große Panel ist oben ein Ausschnitt vorgesehen, für Schalter und Regler hat die Frontblende Bohrungen bekommen.
Hinten sind die Lautsprecheranschlüsse nebst Buchse für die Stromversorgung angeordnet. Es reicht uns ein 12V-Netzteil, was die Spannung für die Verstärkerendstufe mit Subwooferausgang mitbringt.
Die 5V-Betriebsspannung für den Digitalteil wird durch einen DC/DC-Wandler erzeugt. Die versorgt auch den kleinen USB-Hub, auf dem zwecks besserer Verbindung die Wifi-Antenne außen angesteckt ist, genauso wie der Funkempfänger zur Fernbedienung.

Nach dem Booten startet auf dem Pi unser Python-Skript. Bis das Gerät betriebsbereit ist, dauert es ein paar Sekunden, durch das OLED in der Front signalisiert. Jetzt steht auch das Bedienmenü auf der Gehäuseoberseite zur Verfügung.
Durch die einzelnen Ebenen kann man sich per Fingertipp, mittels Fernbedienung oder per Jog/Shuttle-Knopf bewegen. Dazu ist auf der Front ein Drehimpulsgeber verbaut und mit drei GPIO-Pins des Pi verbunden.

Die drei Drehregler auf der rechten Seite bedienen die Endstufe, wo man die Lautstärke am Gerät einstellen kann, nebst Bass und Durchsatz zum Subwoofer, wenn man denn einen angeschlossen hat.
Unser Vorgänger hatte auch schon einen Bildschirm. Wo er doch die wichtigste Bedienerschnittstelle und das “Gesicht” vom Gerät ist, haben wir hier richtig viel neu gemacht. Zu Gunsten eines größeren Panels mit Touchbedienung sitzt der Bildschirm nun in der Gehäuseoberseite.

Aus dem Startmenü verzweigt man in die verschiedenen Wiedergabemodi, wie “Play aus dem Archiv” von lokalem Netzwerk oder Datenträger, “FM und DAB-Radio” per Antenne. Und “Internetradio”, also IP-Radio per Web.
Die gefundenen Titel können per Direktwahl oder Vor- und Rücklauf angesprungen werden. Und alles ist nun grafisch recht nett aufbereitet. Wird ein USB-Stick an der Außenbuchse angesteckt, kriegt man die Aktualisierung der Titel, in dem man das Menü ein zweites Mal aufruft.

Daneben werden auch allgemeine Informationen in einer Statusleiste angezeigt. Beispielsweise, ob das Gerät überhaupt eine Internetverbindung aufbauen konnte. Schlägt das fehl, erhält man die betroffenen Bereiche nur zur Ansicht und ausgegraut.
Manche Funktionen sind auf der Oberfläche undokumentiert gelassen, die soll den Bediener schließĺich auch nicht überfordern und schön übersichtlich daher kommen.
Als Fernbedienung kann man jede Funktastatur verwenden, deren Sender dann an einem USB Port des Pi steckt. Gegenüber einer Infrarot-Fernbedienung hat das den Vorteil, dass man den Pi auch erreichen kann, wenn die Radio-Anwendung nicht aktiv ist.

Durch unser großes Display gelingt das direkt am Gerät ohne zusätzlichen Bildschirm. Möchte man nur die Radiosoftware bedienen, macht sich für den “Normalbetrieb” ein kompaktes Modell gut, was dann wie eine TV-Fernbedienung daherkommt.
Und am Ende sollten bei der ganzen Erneuerung die Lautsprecher auch nicht nachstehen. Die alten Chassis tun es noch und passen ganz gut zum neuen Innenleben mit Mitteltönern von 15 Watt.

Bald soll unser Projekt auch auf dem Github unter “https://github.com/swenae” veröffentlicht werden. Multimedia-Projekte mit dem Raspberry Pi haben für mich einen besonderen Reiz, weil sie nicht nur “Proof of Concept”, sondern tägliche Begleiter sein können, die man zu Hause gerne nutzt.
Und so sah unser erstes Projekt aus:

Ich finde, das neue “Digiradio” ist ein echter Hingucker mit toller Funktionalität geworden, schön kompakt und aufgeräumter als der Vorgänger. Klar, dass man da schon über die nächsten Erweiterungen nachdenkt.
So sind ein passender Subwoofer geplant und eine reine Textversion für die Fernsteuerung per Terminal im Web zu Hause.

Später soll es auch die Umstellung auf ein read-only SD-Karten-Image geben, bei der das lokale Songarchiv auf eine internen Plattenspeicher ausgelagert ist, so dass man auch ohne den Pi herunterzufahren, das Radio einfach abschalten kann…

45 Replies to “Digitalradio mit Raspberry Pi”

  1. Hallo Swen,

    ich würde gerne ein Digitalradio nachbauen wollen. Gibt es hierzu eine genauere Anleitung oder den Programm Code / Image für die Oberfläche?
    würde mich freuen wenn ich etwas Unterstützung bekommen könnte.

    VG
    Roland

  2. Hallo Swen,

    auch ich würde dein DSigitalradio gerne nachbauen. Kannst du mir bitte auch nähere Infos zukommen lassen?

    MfG
    Rainer

    1. Hi Swen! Cooles Projekt! Leider hab ich diese Seite erst vor kurzem entdeckt… könnten Sie auch mir nähere Infos zukommen lassen? Bin noch nicht so lange mit Linux vertraut… da ist jede Hilfe Gold wert.
      Gruß Christian Gerhards

  3. Hallo Swen,

    ich habe ein altes SABA-Radio aus den 70zigern geerbt – leider nicht mehr funktionstüchtig.
    Nun habe ich das Innenleben ausgeschlachtet und möchte gerne ein DAB-Radio / Webradio / CD-Player / 7 Zoll TFT / usw. einbauen – alles in Verbindung mit dem Raspberry.
    Auf der Suche nach DAB+ Modulen bin ich auf diese Seite gestoßen.
    Das Monkey-Modul liegt schon da.
    Leider bekomme ich über USB an den Pi keine Verbindung (mit lsusb bzw. dmesg) wird mir das Modul nicht angezeigt (ttyACM0: USB ACM device).
    Jetzt habe ich gelesen, dass man die Keystone-Firmware ersetzen muss.
    Kannst du mir da ggf. weiterhelfen?
    Danke.

    Grüße
    Uli Wiedermann

  4. Hallo Swen,

    ich habe ein altes, nicht mehr funktionierendes Röhrenradio aus den 50ern. Das Chassis ist sehr gut erhalten und es hat 4 alte Holzdrehknöpfe welche ich deinem Radio in der Wirkungsweise gern nachempfinden würde. Auch die bedeutete Skala würde ich gern beibehalten und dann mit der Drehbewegung die Sender am PI wechseln. Daher würde ich mich ebenfalls über deine Anleitung zum Nachbauen sehr freuen. Frohe Weihnachten und einen guten Rutsch. Gruß Heinz

    1. Hallo Heinz,
      sorry für meine späte Antwort. Auch noch ein Gesundes Neues Jahr! Hoffe, die email-Adresse passt, würde Dir dann von mir ein paar Tipps zum Nachbau geben…
      Viele Grüße
      Swen

  5. Hallo Swen, finde das Projekt spannend und hab mir bereits ein solches Monkeyboard zugelegt und erste erfolgreiche Schritte hinter mir. Gerne würde ich das von dir beschriebene Projekt auch ausprobieren. Leider habe ich auf Github es nicht gefunden? Kannst du weiterhelfen?
    Danke der Rückmeldung
    Gruss Edi

  6. Hallo,

    Ich möchte in ein altes Gehäuse eines Röhrenradios ein DAB+/FM Radio auf Basis des Monkeyboards bauen,
    Gibt es dazu eine Software als Download image oder eine genaue Anleitung?
    Viele Grüße!

  7. Hallo Swen,
    lange nach sowas gesucht und nun endlich eine Lösung gefunden. Liest sich super.
    Würde mich sehr über nähere Infos freuen.
    Beste Grüße,
    Heiko

  8. Hallo Swen,
    toller Beitrag, spannendes Projekt!
    Auch ich habe lange nach sowas gesucht.
    Würde mich sehr über nähere Infos freuen.
    Gruß Bernd

    1. Hallo Bernd,
      hab‘ Deine Anfrage übersehen, sorry. Vielleicht hast Du da ja schon einiges umgesetzt mittlerweile. Antworte Dir aber per Mail…
      Gruß Swen

  9. Hallo Swen,
    das Projekt liest sich super und erfüllt als eines der wenigen Projekte, die ich im Netz finden konnte, alle meine Ansprüche (Internetradio, DAB, Zugriff auf Netzwerk-Musiksammlung, …) Leider konnte ich aber nicht das notwendige Softwaregerüst finden.
    Würde mich daher ebenfalls über genauere Informationen zu diesem Projekt freuen!

    Beste Grüße aus Konstanz
    Rüdiger

  10. Hallo Swen,
    mir geht es ähnlich wie meinen Vor-Kommentatoren. Würde das Radio gerne nachbauen, es fehlt mir leider eine genauere Anleitung bzw. eine Software Download-Möglichkeit.
    Würde mich freuen, wenn du mir helfen könntest

    Viele Grüße
    Markus

      1. Guten Tag, ich wuerde mir auch gerne das Gerät teilweise für unseren Wohnwagen mit dem Monkeyboard nachbauen. Könnten sie mir die Software per Email schicken oder einen Link geben?

  11. Hallo Swen,
    das was ihr hier auf die Beine gestellt habt ist wirklich klasse, das geht in die Richtung meines Projektes was ich gern umsetzen will und auch ich habe hier diverse Stolpersteine zu bewältigen, kannst du mir auch Infos zu dem Projekt und ggf. die ein oder andere Hilfestellung zukommen lassen?
    auch ich habe bereits das Monkeyboard und den DAC+ vor mir liegen.

    Beste Grüße

    Mario

  12. Moin Swen,
    ich habe mit sehr viel Interesse Deine Beschreibung vom Bau eines Dab+ / FM Radios gelesen… Das Radio sieht wirklich schön aus! Hintergrund für meine Projektidee ist, dass ich für meinen Solarversorgten Wohnwagen ein Radio bauen möchte, welches stromsparender als ein normales Autoradio funktioniert. Da ich schon länger Raspberry‘s einsetze, möchte ich dieses Projekt mit einem Monkeyboard Pro2 und einem Raspberry realisieren.In Deinem Projekt hast Du eine recht schön aussehende Benutzeroberfläche generiert. Hierüber würde ich gerne „als technische Anleihe“ etwas mehr erfahren, oder diese, wenn möglich, einsetzen?

    Grüße aus Norddeutschland
    Hans-Hermann

    1. Hallo Hans-Hermann, danke für Deine Anfrage, sorry für meine späte Antwort. Leider gibt es da keinen Software-Download. Nun muss ich fix gleich auf Deine zwei Anfragen antworten, mache das gerne per Mail an Deine Adresse.
      Viele Grüße
      Swen

  13. Hallo Swen,
    mir geht es ähnlich wie meinen Vor-Kommentatoren. Würde ein altes Radio gerne „modernisieren“. Es fehlt mir leider eine genauere Anleitung bzw. eine Software Download-Möglichkeit.
    Würde mich freuen, wenn du mir die relevanten Infos zukommen lassen könntest.

    Viele Grüße
    Lutz

  14. Hallo zusammen,

    wie kommt ihr an die Firmware-Files des verwedeten SI… , also:
    dab_radio_5_0_5.bin
    fmhd_radio_3_0_19.bif
    fmhd_radio_5_0_4.bin
    rom00_patch.016.bin

    Danke und Gruß
    Franz

    1. Hallo Franz, danke für Dein Interesse. Hmm, hier muss mich erinnern. Im Gegensatz zum DABPi mit SI-Chip musste ich das Monkeyboard nicht mit initialer Firmware bespielen. Lediglich eine aktuelle keystone.tgz war auf dem Pi notwendig, um die ältere Grundlage von https://github.com/schlizbaeda/DABradio/ auf neueren Stand zu heben…
      Weil gerade für einen anderen Interessenten vorbereitet, schicke ich Dir gerne mal den Werdegang vom Projekt per Mail…

      Viele Grüße
      Swen

  15. Hallo Swen,
    das Projekt erfüllt im Wesentlichen alle meine Ansprüche (Internetradio, DAB, FM, usw.) Leider konnte ich aber das notwendige Softwaregerüst nirgends weiter finden.
    Würde mich daher ebenfalls über entsprechende detailiertere Projektinfos freuen!

    Beste Grüße
    Volkmar

    1. Danke Dir Volkmar. Ja, das Softwaregerüst steht leider nicht auf GitHub oder woanders online. Kann Dir aber Anhaltspunkte geben, mache ich gerne per Mail.
      Viele Grüße
      Swen

  16. Hallo Swen,
    super Projekt. Ich habe vor einiger Zeit in einen alten Siemens Radio ausgeschlachtet und einen Pi3B+ mit einem 7″ Display und Volumio darin installiert.
    Nun möchte ich das Projekt in Richtung DAB+ bzw wie von Dir hier gebauten Anlage weiterentwickeln, kannst Du mir bitte die eine detailliertere Anleitung von deinem Projekt, mit den Files bitte zukommen lassen? – würde mich sehr freuen….
    Viele Grüße vom Bodensee und nachträglich noch ein gutes neues Jahr
    Roland

  17. Hallo Swen,
    cooles Projekt. Bin gerade dabei, meiner „Internetaufnahmemaschine“ (BananaPi1 mit 2TB HD) etwas Struktur / Gehäuse / Bedienbarkeit zu gegen. Wäre daher sehr hilfreich, mal zu sehen, wie Du das Eine oder Andere so gelöst hast; vielleicht möchte ich auch das ganze Konzept 1:1 umsetzen? Eine detaillierte Anleitung mit den entsprechenden Files wäre dabei schon sehr hilfreich.

    Vielen Dank im Voraus und Grüße aus dem Allgäu,

    Jörg

  18. Hallo
    Würde das Radio auch gerne nachbauen
    für meinen Wohnwagen und intigrieren
    können sie mir bitte auch Dateien + Layout + Komponenten zukommen lassen.
    MfG
    Heiko Wieland

  19. Hallo Swen,
    das Projekt hat sehr mein Interesse geweckt, habe noch 2 Raspberry Pi 3 liegen und wollte schon immer mal damit ein schönes Bastelprojekt verwirklichen.
    Gibt es für das DAB-Radio einen ausführlicheren Bauplan? Würde mich sehr darüber freuen.
    Schöne Grüsse aus Thüringen.
    Kai Szidat

  20. Hallo,

    ich möchte gern mein altes Internetselbstbauradio durch eine neue DIY-Version ersetzen. Das bisherige lief auf einem Raspi 3 mit Software von Github (https://github.com/oyren/Webradio_v2), das Projekt wird aber leider nicht mehr upgedatet und das Radio ist etwas in die Jahre gekommen.
    Daher soll eine neue schickere Version her, die auch DAB+ kann. Bei der Recherche bin ich auf den PC-Welt-Artikel und dein Projekt gestoßen und würde mich über eine nähere Infos bzw. eine detaillierte Projektbeschreibung freuen.

    Besten Dank und viele Grüße,
    Jan

  21. Moin Swen,
    zunächst ein großes Lob meinerseits, das ist ein tolles Projekt!
    Gerne würde ich etwas Ähnliches mit dem vererbten, sehr alten analogen Radio meiner Großmutter machen. Aufgrund eines Defekts habe ich den Großteil der alten Hardware ausgebaut. Gerne würde ich dort ein ähnliches Setup verbauen.
    Könntest du mir bitte etwas detailliertere Informationen zukommen lassen?
    Ich würde mich sehr darüber freuen!
    Mit freundlichen Grüßen

Schreibe einen Kommentar zu Christian Gerhards Antworten abbrechen

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