SDR Projekte

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 -