SDR mit Raspberry Pi
Basis Installation
Grundsystem ist ein Raspberry Pi mit Raspbian Betriebssystem. Installationshinweise finden sich im Raspbian Wiki. Die grafische Benutzeroberfläche wird nicht benötigt, aber die Netzwerkanbindung muss eingerichtet und SSH aktiviert sein.
Eine 4GB SD-Karte ist ausreichend… 2GB sind möglich; es empfiehlt sich dann, nicht benötigte Software-Pakete (X11 etc.) zu entfernen. Hilfreiche Hinweise finden sich im Internet.
Nach Konsolen-Login über SSH werden die grundlegenden Komponenten zur weiteren Softwareinstallation mit diesen Kommandos eingerichtet:
apt-get update apt-get install git apt-get install cmake apt-get install libusb-1.0-0-dev apt-get install build-essential
Der Programmcode wird in den folgenden Beispielen im Verzeichnis /usr/src abgelegt. Zur Installation werden root-Rechte benötigt.
DVB-T Empfänger
Der DVB-T USB Empfänger muss auf dem RTL-Chipsatz basieren und sollte mit dem E4000-Tuner ausgerüstet sein. Andere Tuner werden u.U. nicht unterstützt oder haben andere Empfangseigenschaften.
RTL SDR Tools
Die Tools bilden die Grundlage für den SDR-Empfang und stellen die Programmbibliotheken und einfache Kommandozeilenprogramme bereit. Download und Installation erfolgt mit diesen Kommandos:
cd /usr/src git clone git://git.osmocom.org/rtl-sdr.git cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make make install ldconfig cd .. cp rtl-sdr.rules /etc/udev/rules.d/
Damit die kerneleigenen Treiber für den DVB-T-Empfänger nicht geladen werden und unsere Anwendungen blockieren, schliesst man sie durch Erstellen der Datei /etc/modprobe.d/rtl-blacklist.conf aus, die diese Zeilen enthält:
blacklist dvb_usb_rtl28xxu blacklist rtl_2832 blacklist rtl_2830
Nach einem Reboot testet man mit diesem Kommando, ob der DVB-T Empfänger korrekt erkannt wird:
rtl_test -t
Kalibrierung
Der Tuner lässt sich durch Vergleich mit benachbarten GSM Basisstationen kalibrieren. Mit dem Tool kal kann die Abweichung in ppm ermittelt und in den SDR-Anwendungen mit angegeben werden.
apt-get install autoconf apt-get install libtool apt-get install libfftw3-dev cd /usr/src git clone git://github.com/steve-m/kalibrate-rtl cd kalibrate-rtl ./bootstrap CXXFLAGS='-W -Wall -O3' ./configure [--prefix=/usr/local/kal] make make install
Anschliessend wird nach GSM Stationen gescannt. In Deutschland arbeitet GSM im Bereich 900 MHz:
kal -s GSM900
Aus der Liste der gefundenen Kanäle wählt man einen der empfangsstärksten und kalibriert nach diesem, z.B.:
kal -c 6
Der average absolute error, der zurückgemeldet wird, kann dann den RTL SDR- oder anderen Tools als Parameter übergeben werden.
ADS-B Empfang
Die Anwendung dump1090 empfängt und dekodiert die von Flugzeugen ausgesendeten ADS-B-Kennungen auf 1.090 MHz. Die Daten können über Netzwerk abgefragt werden. Ausserdem stellt dump1090 über einen eingebauten Server eine Webseite bereit, auf der in eine Übersichtskarte die Flugzeugdaten grafisch eingeblendet sind.
Zunachst wird die Anwendung heruntergeladen und kompiliert:
apt-get install pkg-config cd /usr/src git clone git://github.com/MalcolmRobb/dump1090.git cd dump1090 make
Über die Dateien unter public_html im Anwendungsverzeichnis von dump1090 kann man die Darstellung der Webseite noch weiter anpassen. Ein Aufruf mit dem von kal ermittelten Korrekturfaktor könnte dann so aussehen:
dump1090 --quiet --net --enable-agc --ppm 12.345
Der eingebaute Webserver läuft auf Port 8080/tcp und wir über diese URL erreicht:
http://<SERVERADRESSE>:8080
Multimon-NG
multimon-ng ist ein TNC und Dekoder, der in Software implementiert ist. Er erlaubt u.a. das Demodulieren und Dekodieren von APRS-Signalen. Ein PCM-Eingangssignal kann aus einem DVB-T-Empfänger mit dem FM-Demodulator rtl_fm oder einer Sounddatei mit geeigneten PCM-Daten bezogen werden.
apt-get install qt4-qmake apt-get install libpulse-dev apt-get install libx11-dev cd /usr/src git clone https://github.com/EliasOenal/multimonNG.git cd multimonNG/ mkdir build cd build qmake ../multimon-ng.pro make make install
Mit diesen Kommandos werden APRS-Signale auf 144.800 MHz empfangen, dekodiert und auf die Konsole ausgegeben:
rtl_fm -f 144800000 -s 22050 -p 15 -g 42.0 - | multimon-ng -a AFSK1200 -A -t raw -
Der Empfang des Amateur-Funkrufdienstes könnte so aussehen:
rtl_fm -f 439987500 -s 22050 -p 15 - | multimon-ng -a POCSAG1200 -f alpha -t raw -