Raspberry Pi – Eigener FM-Radiosender

Es gibt kleine Geräte fürs Auto, welche z.B. über ein 3,5mm Klinkenkabel den Ton eines Smartphones über die FM-Radiowellen zum Autoradio übertragen.
Das können wir auch mit einem Raspberry Pi anstellen.
Dadurch können wir unseren Raspberry Pi zur Radiostation verwandeln und alte Radios im Haus mit unserer Musik befüttern (und ggf. die Nachbarn).
Was zu tun ist, gibts in dieser Anleitung.

Allgemeine Vorwarnung: Das erstellen von „Piraten-Sendern“ ist in einigen Ländern verboten. Setze dich mit deinen lokalen Gesetzen auseinander, um mehr darüber zu erfahren! Ich hafte hier für absolut gar nichts!

Was benötigen wir?
– Einen Raspberry Pi (2, 3, 4 oder 5 – Zeros sind zu schwach)
– Optional aber empfehlswert: Eine extra Soundkarte (USB)
– Ein kleines Kabel für einen GPIO-Pin, was als Antenne dient
– Vollen Root-Zugriff auf das System




1. Den Pi updaten

# apt update && apt upgrade -y && apt autoremove -y

2. Das Projekt Pi-FM-RDS von GitHub klonen

# git clone https://github.com/ChristopheJacquet/PiFmRds

3. Pi-FM-RDS installieren lassen

# cd PiFmRds/src
# make clean
# make

4. Eine freie Frequenz in deiner Umgebung suchen, damit du keine Radiosender an sich störst

5. Pi-FM-RDS starten
Hierfür kann der Startbefehl mit diversen Parametern bestückt werden.
-freq = Die Frequenz in MHz, die genutzt werden soll
-audio = Angabe der Audioquelle
-pi = Ein PI-Code für den RDS Broadcast (Keine Ahnung wo man das sehen soll)
-ps = Sendername (z.B. Pi-RDS) welcher nur maximal 8 Zeichen lang sein darf
-rt = Radiotext Informationen, welche maximal 64 Zeichen lang sein dürfen (z.B. “Hallo hier sendet mein Pi”)
-ppm = Einstellung des Oszillators des Pis in “Millionen pro Stück” (million per part). Wird benötigt, wenn der Ton zu “hoch” oder zu “tief” übertragen wird

Hier sind ein paar Beispiele, die bei mir mit einem Raspberry Pi 3B+ funktioniert haben.
Ich habe hier als Vorgabe immer drin, dass auf der Frequenz 104,5 gesendet werden soll und allgemeine Senderinformationen übertragen werden.

Eine WAV-Datei übertragen:

sudo ./pi_fm_rds -freq 104.5 -pi 1337 -ps PI-FM -rt "Hier sendet mein Raspberry Pi" -ppm 1000000 -audio sound.wav

Eine MP3-Datei übertragen:

sudo ./pi_fm_rds -freq 104.5 -pi 1337 -ps PI-FM -rt "Hier sendet mein Raspberry Pi" -ppm 1000000 -audio sound.mp3

Eine Soundkarte übertragen:

arecord -fS16_LE -r 44100 -D default:CARD=Device -c 2 | ./pi_fm_rds -freq 104.5 -pi 1337 -ps PI-FM -rt "Hier sendet mein Raspberry Pi" -ppm 1000000 -audio -

Wer bereits meine Anleitung zu einem Multi-Room Music-Setup mit Mopidy und Snapcast gesehen hat, wird sich sicher fragen, ob das damit auch geht.
Ja das geht auch damit.
Wir brauchen nur dafür die extra Soundkarte für den Pi, denn der 3,5mm Klinkenanschluss kann nicht genutzt werden.
Vorraussetzung hier ist nun, dass du bereits den Snapcast Client auf deinem Pi installiert hast und der Pi mit dem LAN/WLAN verbunden ist., wo dein Snapcast Server zur Verfügung steht.

7. Schließe die Soundkarte per USB am Pi an

8. Stecke ein Loop des Audioausgangs und des Mikrofoneingangs mit einem passenden Kabel

9 Lass dir nun die Soundkarte über den Snapclient anzeigen, damit wir gleich den Ton von Snapcast Client auf dieser Karte ausgeben können
Merke dir dabei die Nummer, nicht den Namen!

# snapclient -l

Falls du dir unsicher bist, welche Nummer die richtige ist, steck einfach ein Kopfhöhrer / Lautsprecher kurz an der Soundkarte an und probiere Schritt 10 mit den verschiedenen Nummern durch bis Musik kommt 🙂

10. Lass den Snapclient nun den Ton auf der Soundkarte ausgeben
22 wäre jetzt hier aus Schritt 9 die Soundkarte mit der Nummer 22.

snapclient -h Ip-Des-SnapCast-Servers-Hier-Einfügen -s 22

11. Ermittle den Namen der Soundkarte für Pi-FM-RDS

# arecord -L

12. Starte nun den Pi-RDS-FM mit der Angabe deiner Soundkarte

arecord -fS16_LE -r 44100 -D NameDerSoundkarteHierEinfügen -c 2 | ./pi_fm_rds -freq 104.5 -pi 1337 -ps PI-FM -rt "Hier sendet mein Raspberry Pi" -ppm 1000000 -audio -

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.