ADB-S Flugradar mit RTL-SDR und Dump1090

Die meisten Verkehrsflugzeuge besitzen einen ADB-S Transponder der regelmäßig auf 1090 MHz den Flugzeugtyp, Flugnummer sowie Position und Flugrouten-Informationen aussendet. Diese Signale lassen sich mit einem günstigen DVB-T Stick empfangen und mit einer SDR-Software am Raspberry Pi dekodieren und anzeigen. Optional lassen sich die Echtzeit-Daten auch an Flightradar24.com, FlightAware.com oder planefinder.net weiterleiten.

ADB-S Empfang und Dekodierung mit Raspberry Pi
ADB-S Empfang und Dekodierung mit Raspberry Pi mit SDR und Dump1090

Folgende Komponenten werden dafür benötigt:

Git Repository Tools

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install git-core
sudo apt-get install git

CMake Build System

CMake von Visible Human Project ist ein freies, Open-Source, Cross-Platform und Compiler-unabhängiges Build-System. Es benötigt lediglich einen C++ Compiler.

sudo apt-get install cmake

USB-Treiber für DVB-T Sticks

sudo apt-get install libusb-1.0-0-dev

Compiler Tools

sudo apt-get install build-essential

Installation von RTL-SDR

DVB-T USB Sticks die auf dem RTL2832U-Chipsatz basieren, können als günstiger SDR (Software Defined Radio) Empfänger verwendet werden, da der Chip die I/O-Samples zur Demodulation von DAB/DAB+/FM direkt an den Computer übermitteln kann. Die Möglichkeit diese DVB-T Sticks auf diese Weise zu verwenden, fand Eric Fry 2010 heraus.

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

sudo cp /home/pi/rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/

sudo reboot

rtl_test -t
RTL-Test
rtl_test: Ausgabe des RTL-SDR Tests des DVB-T Sticks

Installation von Dump1090

Dump1090 ist ein einfacher Mode-S Dekoder für RTL-SDR Empfänger der die ADB-S Signale der Transponder in Flugzeugen auf der Frequenz 1090 MHz dekodiert. Der Fokus von Dump1090 liegt in der robusten Dekodierung von schwaschen DF Signalen. Dump1090 startet einen TCP-Server, um die Daten an andere Software weiterzuleiten und optional einen HTTP-Server zur dynamischen Anzeige der empfangenen und dekodierten Flugbewegungen.

cd ~
git clone git://github.com/MalcolmRobb/dump1090.git

cd dump1090
make

Falls bei der Installation Fehler auftreten, so sollte folgendes ausgeführt werden:

sudo apt-get install pkg-config
make

Dump1090 kann nun mit folgendem Aufruf gestartet werden:

 ./dump1090 --interactive --net
# oder
./dump1090 --quiet --net --net-ro-size 500 --net-ro-rate 5

Sollte beim Start von dump1090 folgender Fehler auftreten, so ist noch der falsche USB-Treiber geladen:

„Kernel driver is active, or device is claimed by second instance of librtlsdr. In the first case, please either detach or blacklist the kernel module (dvb_usb_rtl28xxu), or enable automatic detaching at compile time.“

Das Problem kann durch entladen des Standard Kernel-Treibers dvb_usb_rtl28xxu, rtl2832 mit folgendem Befehl behoben werden:

sudo rmmod dvb_usb_rtl28xxu rtl2832

Nach dem Start von Dump1090 sollten nach einigen Sekunden die ersten Flugzeugbewegungen aufgelistet werden:

Dump1090
Dump1090: Liste von Flugzeugen im Empfangsbereich

Wird Dump1090 mit dem Parameter –net gestartet, so ist auf Port 8080 unter zB.: http://localhost:8080 eine einfache Karten-Ansicht zur Liste aufrufbar.

Dump1090: Web-Interfaceauf Port 8080 mit Kartenansicht der Flugbewegungen
Dump1090: Web-Interface auf Port 8080 mit Kartenansicht der Flugbewegungen

Flightradar24.com Feeder Software: fr24feed

Flightradar24 ist ein Flug-Tracking Dienst, der Echtzeit-Informationen über weltweit tausende Flugzeuge online unter www.flightradar24.com, auf Windows, Mac OSX, iOS und Android bereitstellt. Die Daten stammen dabei großteils aus den frei empfangbaren ADS-B und MLAT Signalen der Transpoder in den Flugzeugen. Download der Feeder-Software: http://forum.flightradar24.com/threads/4270-Linux-feeder-software-for-Flightradar24

mkdir fr24feed
cd fr24feed
wget https://dl.dropboxusercontent.com/u/66906/fr24feed_arm-rpi_242.tgz
tar -zxvf *.tgz

./fr24feed_arm-rpi_242 --signup
[i]FR24Feed v242 - built on Aug 15 2014/08:32:38
Welcome to the FR24 Feeder sign up wizard!

Before you continue please make sure that:
 1 - You have a working receiver/decoder providing Basestation compatible stream
 2 - You know the network address of the data feed (localhost:30003 by default)
 3 - You know your receivers location up to 1 decimal point
 4 - You have a working email address that will be used to contact you
To terminate - press Ctrl+C at any point

Step 1/5 - Enter Latitude  (DD.DDDD)
$:47.****
Step 2/5 - Enter Longitude (DD.DDDD)
$:13.****
Step 3/5 - Enter your email address (username@domain.tld)
$:<your-email@domain.com>
Step 4/5 - Enter your the hostname of the data feed (leave empty for localhost)
$:
Step 5/5 - Enter your the port number of the data feed (leave empty for 30003)
$:
Validating form data...OK

The closest airport found is ICAO:LOWS IATA:SZG near Salzburg.
Latitude: 47.793301
Longitude: 13.004330
Country: Austria

Flightradar24 may, if needed, use your email address to contact you regarding your data feed.
Would you like to continue using these settings?
(yes/no)$:yes

Taking data sample, minimum 3 AC required including at least 2 ADS-B:
[b]connecting to localhost:30003
[b]connected
[i]00:00 - Connected to the data feed
[b]working
[i]Data feed time difference OK abs(17:00:36.010 - 17:00:35.982)=1
[b]00:05 - 1 AC in range
[b]00:10 - 3 AC in range
[b]00:15 - 1 AC in range
[b]00:20 - 3 AC in range
[b]00:25 - 1 AC in range
[b]00:30 - 3 AC in range
[b]00:35 - 1 AC in range
[b]00:40 - 3 AC in range
[i]Removed 0 of 3 AC
[b]disconnected
Sending data sample to the server, completing registration...OK

Account registered successfully!
Your sharing key is: **********
Your radar  code is: T-LOWS22
Soon you should also receive an email containing this information.

To start sending data please start the feeder providing your key:
./fr24feed_arm-rpi_242 --fr24key=**************

Der Feeder für Flightradar24 kann nun mit folgendem Befehl unter Angabe des angezeigten Keys gestartet werden:

./fr24feed_arm-rpi_242 --fr24key=YOUR_SHARING_KEY --bs-port=30003
Flightradar24.com Feeder: fr24feed
Flightradar24.com Feeder: fr24feed nach dem Verbindungs-Aufbau

FlightAware Feeder Software: PiWare

FlightAware.com ist so wie Flightradar24 ein Flug-Tracker der live Tracking-Karten, Flugstatus und Flugverzögerungen der Luftfahrtgesellschaften, private Flüge und Flughäfen visualisiert. Um die selbst mit Dump1090 empfangenen Daten an FlightAware weiterzuleiten, muss eine kostenlose Registrierung unter http://de.flightaware.com/account/join/ durchgeführt werden.

Wichtig: Nach der Aktivierung muss der Aktivierungs-Link in der Registrierungsemail angeklickt werden!

Download und Installation von PiAware am Raspberry Pi:

cd ~
mkdir piaware
cd piaware
wget http://de.flightaware.com/adsb/piaware/files/piaware_1.18-2_armhf.deb
sudo dpkg -i piaware_1.18-2_armhf.deb

sudo apt-get install -fy

Anmerkung: Fehlermeldungen wegen fehlender Pakete wie „dpkg: Abhängigkeitsprobleme verhindern Konfiguration von piaware:…“ können an dieser Stelle ignoriert werden.

Optional können mit folgendem Konfigurations-Befehl automatische Updates von PiWare aktiviert (bzw. deaktiviert) werden:

sudo piaware-config -autoUpdate 1 -manualUpdate 1

PiAware wird mit folgendem Befehl konfiguriert, wobei das FlightAware-Password abgefragt und gespeichert wird:

sudo piaware-config -user <username> -password
please enter flightaware user password:_

Start und Aktivierung des Autostarts von PiAware mit:

sudo /etc/init.d/piaware restart
[ ok ] Stopping piaware server: piaware.
[ ok ] Starting piaware server: piaware.

Usage: /etc/init.d/piaware {start|stop|restart|try-restart|force-reload|status}

Das Log-File ist unter /tmp/piware.out zu finden:

tail -f /tmp/piaware.out

11/30/2014 17:09:53 ****************************************************
11/30/2014 17:09:53 piaware version 1.18 is running, process ID 32500
11/30/2014 17:09:53 your system info is: Linux myscope.local 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
11/30/2014 17:09:53 connecting to FlightAware eyes.flightaware.com/1200
11/30/2014 17:09:55 FlightAware server SSL certificate validated
11/30/2014 17:09:55 encrypted session established with FlightAware
11/30/2014 17:09:55 autoUpdate in adept config is enabled, allowing update
11/30/2014 17:09:55 manualUpdate in adept config is enabled, allowing update
11/30/2014 17:09:56 ADS-B data program 'dump1090' is listening on port 30005, so far so good
11/30/2014 17:09:56 i see nothing serving on port 10001, starting faup1090...
11/30/2014 17:09:56 started faup1090 (process ID 32526)
11/30/2014 17:09:59 connecting to faup1090 on port 10001...
11/30/2014 17:09:59 piaware is connected to faup1090 on port 10001
11/30/2014 17:09:59 logged in to FlightAware as user dumboxp
11/30/2014 17:10:00 piaware received a message from the ADS-B source!
11/30/2014 17:10:40 2 msgs recv'd from dump1090 via faup1090; 2 msgs sent to FlightAware
11/30/2014 17:10:54 server is sending alive messages; we will expect them
11/30/2014 17:11:30 piaware has successfully sent several msgs to FlightAware!

Die aktuell empfangenen Flugbewegungen und Tacking-Statistiken sind bei FlightAware unter folgender URL zu finden: http://flightaware.com/adsb/stats/user/<username>

PlaneFinder Client: pfclient

Auch PlaneFinder.net ermittelt weltweit die Flugrouten anhand des ADS-B Transponder Signales und verwertet auch Daten aus privaten Empfängern. Bevorzugt wird dabei der COAA PlanePlotter empfohlen – es gibt aber auch die Möglichkeit, über einen mit Node.js implementierten sog. „pfclient“-Client die Daten von Dump1090 an PlaneFinder.net zu übermitteln. Dazu ist eine kurze Anfrage unter support[at]planefinder.net nötig! Man erhält daraufhin ein PDF mit Download-Link und kurzer Erläuterung über die Installation und Einrichtung. Unter Angabe des „Share-Codes“ aus der eMail kann man sich daraufhin  unter http://planefinder.net/sharing/ registrieren. Über diese Seite lassen sich seine an PlaneFinder übermittelten Daten und Statistiken wie zB. die Anzahl der Flugzeuge und die Empfangsstärke der Antenne einsehen und überwachen. (Quelle: http://planefinder.net/about/coverage/)

Zur Verwendung des „pfclient“ wird NodeJS Version 0.10.x benötigt – am einfachsten lässt sich node folgendermaßen installieren:

cd ~
wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz tar -xvzf 

# Pfad konfigurieren:
sudo nano /etc/profile

NODE_JS_HOME=/home/pi/node-v0.10.2-linux-arm-pi
PATH=$PATH:$NODE_JS_HOME/bin 

# Version von node und npm abfragen:
node --version
v0.10.2

npm -version
1.1.4

Danach muss den Erläuterungen aus dem PDF von PlaneFinder gefolgt werden. Nachdem PlaneFinder diese Informationen nur per eMail verschickt und demnach offenbar nicht öffentlich verbreitet, möchte ich an dieser Stelle lediglich an support[at]planefinder.net verweisen.

Quellen:

Hinweise

Die mit * gekennzeichneten Links sind sogenannte Affiliate Links.
Kommt über einen solchen Link ein Einkauf zustande, werde ich mit
einer Provision beteiligt. Für Dich entstehen dabei keine Mehrkosten.
Wo, wann und wie Du ein Produkt kaufst, bleibt natürlich Dir überlas-
sen