Raspberry Pi als SDR Sender


Um einen Raspberry PI als SDR Sender zu verwenden nutze ich den R820T NooElec Stick, der knapp 20€ kostet und für den hier vorgestellten Anwendungszweck ausreichend ist.

An sich reichen ein paar Zeilen Code, bis das Ganze läuft. Der Raspberry stellt dabei nur das Signal zur Verfügung, weshalb die CPU-Last auf den Client ausgelagert wird. Gerade für ältere Raspberry Modelle bietet sich der Ansatz deswegen an.

Der erste Befehl lädt allgemein Pakete herunter, die für den weiteren Verlauf gebraucht werden:

1
 sudo apt-get install git cmake libusb-1.0-0.dev build-essential 

Der zweite Befehl lädt den Programmcode für benötigte Software, um den DVB-T Stick zu steuern. Der Befehl erstellt ein neues Verzeichnis, “rtl-sdr” und lädt die Quelldateien unter der angegebenen URL in dieses Verzeichnis.

1
 git clone git://git.osmocom.org/rtl-sdr.git 

Wir wechseln in das neue Verzeichnis, erstellen den Ordner “build” und wechseln in diesen.

1
2
3
 cd rtl-sdr/ 
 mkdir build 
 cd build 

Wir führen “cmake” auf dem darunter liegenden Ordner aus. Das Resultat landet in dem Ordner “build”, den wir eben angelegt haben.

1
 cmake ../ 

Wir compilieren des Codes und starten anschließend die Installation der Software.

1
2
 make 
 sudo make install 

Der Befehl “ldconfig” steuert die Verwaltung der Bibliotheken, die im System verwendet werden und mit dem nachfolgenden Befehl werden die Verweise auf diese Bibliotheken aktualisiert.

1
 sudo ldconfig 

Für die Kommunikation mit dem Stick muss noch eine Datei kopiert werden. “udev” ist dabei ein Hintergrunddienst, der die Geräte im Verzeichnis /dev dynamisch verwalten kann. Wir müssen dazu zunächst in das darüberliegende Verzeichnis wechseln und anschließend die Datei kopieren:

1
2
cd .. 
sudo cp rtl-sdr.rules /etc/udev/rules.d 

Jetzt muss eigentlich nur noch das Programm gestartet werden. Da das Ganze über das LAN funktionieren soll, muss die IP mit angegeben werden:

1
sudo rtl_tcp -a 'ip' 

Also zum Beispiel:

1
sudo rtl_tcp -a 192.168.0.42 

Die Software startet und der Raspberry PI ist nun ein “SDR-Server”. Im Standard läuft der Server auf dem Port “1234”. Dieser wird auch auf dem Raspberry PI beim Starten des Programms angezeigt. Wir können die Wahl des Ports auch beeinflussen, indem wir den Parameter -p verwenden:

1
sudo rtl_tcp -a 192.168.0.42 -p 1337

In diesem Fall würde der SDR-Server jetzt auf dem Port 1337 erreichbar sein.


Ein Leser dieses Beitrags hat mir mitgeteilt, dass er den “SDR-Server” nicht starten konnte, da das Modul dvb_usb_rtl28xxu blockiert war. Sollte dieses Problem auftreten, kann das Modul mit folgendem Befehl aus dem Speicher entfernt werden:

1
 sudo rmmod dvb_usb_rtl28xxu 


Das Ganze lässt sich jetzt relativ simpel über das Programm SDR# steuern. Dazu muss in der Liste der Eintrag RTL-SDR / TCP gewählt - und unter Configure die IP und der passende Port gesetzt werden. Screenshot der SDR sharp Oberfläche mit Markierungen für die Einstellungen

Und dann sollte eigentlich alles klappen. Wer das Tool zum ersten Mal nutzt, sollte etwas mit den Einstellungen spielen und darauf achten, dass die Werte RF-Gain oder Filter bandwidth passend zum erfassten Signal gesetzt sind. Foto des Raspberry PI inklusive SDR

In vielen Quellen liest man, dass das Ganze nicht über WLAN und auch nur mit einem sehr schnellen LAN funktioniert. Ich habe meine Installation im Internet zur Verfügung gestellt und eigentlich funktioniert das so auch noch ganz gut.