10.10.2015

ADS-B Empfang per DVB-T Stick

Durch Zufall bin ich auf die Verwendung eines 10€ DVB-T Sticks als Software Defined Radio (SDR) gestoßen. Damit FM Radio zu hören ist nicht wirklich spannend, daß kann man auch einfacher ohne große Bastelei haben. Die Möglichkeit damit ADS-B Daten von Flugzeugen im Umkreis zu empfangen ist da schon interessanter. Im Folgenden wird Schritt für Schritt erklärt wie die benötigten Treiber und Grundprogramme (RTL-SDR) sowie dump1090 zum ADS-B Empfang aud einem Raspberry Pi B+ installiert werden. Dump1090 bring einen Webserver mit, der eine Kartenansicht mit allen empfangenen Flugbewegungen im Browser zeigt. Die Installationsschritte stammen aus verschiedenen Internetquellen, eine Suche sollte für fast jeden Spezialfall ein Ergebnis bringen.

Den DVB-T Stick als Software Defined Radio im Frequenzbereich von ca. 24-1800 MHz benutzen kann man auch z.B. mit SDRSharp (SDR#).So kann man auch unter Windows erstmal mit der Hardware spielen. Achtung: Nicht den mitgelieferten Treiber installieren, der ist "nur" für DVB-T Empfang gedacht.


Benötigte Hardware

DVB-T Stick

Ich benutze zwei Sticks, einen mit dem Chipsatz RTL2832U+R820T und einen mit RTL2832U+R820T2. Der R820T2 soll etwas besser sein als der R820T, da ich ihn aber erst jetzt in Betrieb nehme, kann ich noch nichts dazu  sagen.
Bei den einschlägigen Online-Shops sollten sich beide Versionen für ~10€ inklusive Versand finden lassen.

Antenne

Wenn man nicht abseits jeglicher Flugrouten wohnt reicht für die ersten Versuche die mitgelieferte DVB-T Antenne aus. Um die Empfangleistung zu optimieren kann man später mit kleinem finanziellen Aufwand auch eigene Antennen basteln.

Installation

Die Installation geschieht in zwei Schritten. Zuerst wird der Treiber für den DVB-T Stick installiert (RTL-SDR) und danach dump1090 um ADS-B Nachrichten zu Empfangen. Den Stick am besten erst nach erfolgter Installation der Software einstecken.

Installation von RTL-SDR

Folgende packages installieren:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git-core
$ sudo apt-get install git
$ sudo apt-get install cmake
$ sudo apt-get install libusb-1.0-0-dev
$ sudo apt-get install build-essential

Folgende Befehle laden den RTL-SDR Treiber Sourcecode für den DVB-T Stick und starten die Installation

$ cd ~
$ git clone git://git.osmocom.org/rtl-sdr.git
$ cd rtl-sdr
$ mkdir build
$ cd build
$ cmake ../ -DINSTALL_UDEV_RULES=ON
$ make
$ sudo make install
$ sudo ldconfig

$ cd ~
$ sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
$ sudo shutdown -h now

Nun den DVB-T Stick einstecken und den Raspberry wieder starten.

Test

Mit 'rtl_test' kann die Installation getestet werden. Die Ausgabe sollte ungefähr wie folgt aussehen, der Test kann mit Ctrl-C abgebrochen werden.

$ rtl_test
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
Sampling at 2048000 S/s.

Sollte der Test folgende Meldung bringen:
Kernel driver is active, or device is claimed by second instance
In the first case, please either detach or blacklist the kernel
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time

usb_claim_interface error -6
Error opening the RTLSDR device: Device or resource busy
Ist der Stick schon vom Betriebssystem als TV Gerät in Beschlag genommen. Dies kann man folgendermassen verhindern:

$ sudo nano /etc/modprobe.d/rtl-sdr-blacklist.conf

Und folgende Einträge machen:
blacklist dvb_usb_rtl28xxu
blacklist e4000
blacklist rtl2832

Danach den Raspberry neustarten.

Installation von dump1090

dump1090-mutability installieren
$ wget https://github.com/mutability/mutability-repo/releases/download/v0.1.0/mutability-repo_0.1.0_armhf.deb
$ sudo dpkg -i mutability-repo_0.1.0_armhf.deb
$ sudo apt-get update && sudo apt-get install dump1090-mutability
Es empfiehlt sich dump1090 automatisch per init script starten zu lassen.

Dump1090 kann jederzeit mit folgendem Befehl konfiguriert werden:
$ sudo dpkg-reconfigure dump1090-mutability
Zum Anfang sollte man mit den Standardeinstellungen hinkommen. Will man von einem anderen Gerät den dump1090 Webserver erreichen, muß man 'Interface address to bind to' leer lassen, andernfalls kann man den Server nur vom Raspberry selbst aus erreichen.
Die Kartenansicht kann je nach Konfiguration z.B. unter http://meinraspberry:8080 aufgerufen werden (meinraspberry natürlich ensprechend ersetzen).

Keine Kommentare:

Kommentar veröffentlichen