Für etwas unter €10 kann man in China einen kleinen DVB-T Empfänger kaufen, um dessen RTL2832U Chip sich eine rege Entwickler-Community gebildet hat. Der Vorteil des Chips ist, dass er den Stick im „Handumdrehen“ in ein Software Defined Radio verwandelt. In einem anderen Beitrag habe ich gezeigt, wie man damit Radioempfangen kann und auch mal den Gesprächen zwischen Pilot/Copilot und der Flugsicherung mithören kann. In diesem Beitrag möchte ich zeigen, wie man die ADS-B (Automatic Dependent Surveillance – Broadcast) Signale von Flugzeugen auslesen kann.

Man braucht dafür also den USB-Stick und für die eigene Bequemlichkeit Homebrew und fängt dann im Terminal mit folgenden Befehlen an:

brew install cmake
brew install libusb
brew install pkgconfig
brew install sox

Damit installiert man eine Menge an Paketen, die wir für die nächsten Schritte brauchen. Im folgenden gehe ich davon aus, dass die Software in Euer Home-Directory geschrieben werden soll, wenn Ihr ein anderes Verzeichnis bevorzugt, dann achtet einfach darauf, dass Ihr die Befehle entsprechend anpasst. Aus cd ~/ würde so dann vielleicht cd ~/weekendproject/…

Treiber installieren

cd ~/ 
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build/
cmake ../
make
sudo make install

Sobald Du damit durch bist, solltest Du Dich vergewissern, dass das geklappt hat. Mit diesem Befehl kannst Du das testen:

rtl_test -t

Das Ergebnis könnte Dir das Gefühl geben, dass es nicht geklappt hat, aber wenn es ähnlich, wie hier, aussieht, dann ist „alles gut“:

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 
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.

Dump1090 installieren

Wenn es also gut gelaufen ist, dann kannst Du dump1090 installieren. Folgende Befehle erreichen das.

cd ~/ 
git clone https://github.com/antirez/dump1090.git
make

Du bist fertig und kannst jetzt gleich loslegen. Wechsele ins dump1090 Verzeichnis:

cd ~/dump1090

Die Ausgabe kannst Du dann mit folgendem Befehl beginnen:

./dump1090 --interactive

Als Ergebnis bekommst Du nun eine Tabelle angezeigt, die Dir die „gesichteten“ Flugzeuge als Text ausgibt und die ständig aktualisiert wird. Das ist schon mal nicht schlecht, aber doch sehr „geeky“.

Bildschirmfoto 2016-03-05 um 20.29.19

Wenn Du es also ein wenig visueller magst, dann beendest Du diese Ausgabe mit ⌃+c (ctrl+c) und gibst stattdessen folgendes ein:

./dump1090 --interactive --net

Auf den ersten Blick hat sich nichts verändert. Wenn Du aber in Deinen Browser gehst und dort den localhost mit Port 8080 aufrufst, siehst Du eine wirklich gut gemachte grafische Übersicht:

http://localhost:8080

Bildschirmfoto 2016-03-05 um 20.33.05

Im Prinzip hast Du hier nämlich ein „mini-Flightradar24“ am laufen, nur halt mit den Daten, die gerade Deinem Empfänger zugänglich sind. Ich selbst habe das ganze auf einem Raspberry Pi laufen und füttere Daten an FlightRadar24. Der Raspberry Pi ist hier einfach effizienter, da er kaum Strom braucht. So zum „Spaß“ ist das hier gezeigte Projekt ja auch ganz nett und es läuft halt auch ganz ohne Raspberry Pi.

Bitte nicht enttäuscht sein, wenn das bei Euch nicht so gut klappt. Die Signale, die wir hier empfangen wollen sind sehr schwach und die Antenne am USB-Stick sehr klein. Bist Du von vielen Häusern umzingelt, verringert das Deine Chancen „Flugzeuge zu sehen“. Bei mir ist es z.B. so, dass ich im Wohnzimmer weniger Flugzeuge gelistet bekomme, als im Hauswir… – äh – Serverraum, wo ich den USB-Stick fast unter der Decke anbringen konnte. Weiterhin haben wir das „Glück“, dass der Flughafen in Frankfurt nicht all zu weit ist und Flugzeuge hier ständig „vorbeikommen“.

Wenn Dich interessiert, was Du hier genau siehst – hier der Versuch einer ganz kleinen Erklärung:

Hex    Flight   Altitude  Speed   Lat       Lon       Track  Messages Seen  . 
--------------------------------------------------------------------------------
478075 SAS7516  36000     488     49.754    9.551     9     562       1 sec
3c6678 DLH7JE   21075     403     49.603    9.330     127   2041      22 sec
405f0a EZY16HC  33825     418     49.485    9.648     131   1870      38 sec
3c48ae DLH6K    4400      227     50.061    9.141     310   953       52 sec

Flight = Das „Call Sign“ des Fluges. Die eigentliche Flugnummer ist oft anders und ist zwar mit dem Call Sign verknüpft, lässt sich jedoch nicht immer daraus ablesen. Für SAS7516 war es z.B. SK7516 (Turin – Oslo) – hier ist die Flugnummer richtig nah am Call Sign. Direkt darunter findest Du DLH7JE, was Flug LH120 von Frankfurt nach München repräsentierte.

Altitude = Höhe in Fuß (36000 Fuß = ~ 10973m); Speed in Knoten (z.B. 488 Knoten = ~ 903 km/h)

Lat & Lon = geographische Breite & Länge zum Zeitpunkt des Broadcasts (wird vom Flugzeug gesendet)

Track: 360° Angabe, wobei 180° direkt nach Süden zeigen würde, 0° direkt nach Norden, etc.

 


Claus Wolf

Seit 1994 im Netz unterwegs und seit 2004 eingefleischter Mac-Nutzer.

5 Kommentare

Dino Lupan · 11. Juni 2017 um 16:52

Hallo Claus, habe versucht ADS-B dump1090 auf OS X (El Capitan) auf meinem MacBook Pro zu installieren, bin allerdings nur bis zu diesem Punkt gekommen:
(in welches „Target“ soll die Datei rein)

1
2
3
cd ~/
git clone https://github.com/antirez/dump1090.git
make

dionyzs-mbp:~ dionyzlupan$ git clone https://github.com/antirez/dump1090.git
fatal: destination path ‚dump1090‘ already exists and is not an empty directory.
dionyzs-mbp:~ dionyzlupan$ make
make: *** No targets specified and no makefile found. Stop.
dionyzs-mbp:~ dionyzlupan$

wo mache ich einen Fehler?

..bin vor 2 Jahren von Win auf Mac umgestiegen (ist besser) .. einige Programme sind nur für Windows geschrieben worden, um so mehr freut es mich dass auch für Mac ein SDR gibt. Daten von den Flugzeugen bekomme ich sehr gut, wohne ca 15 km von dem frankfurter Flughafen. Unter Windows lief eigentlich alles prima. Ich bin Funkamateur (DH1FBY) und empfange fast alles was es so gibt. Es würde mich freuen einen Hinweis zu bekommen.. bin allerdings kein Fachmann am Computer, und auch ein bisschen älter.
Besten Dank & LG Dino Lupan, dinolupan@hotmail.de

    Claus Wolf · 11. Juni 2017 um 16:54

    Ich fürchte, dass ich die Anweisung für die aktuelle macOS überarbeiten muss. Dazu komme ich leider nicht so schnell…

    Jan Liebenau · 19. September 2017 um 08:15

    Hallo Dino,
    Hallo Claus,

    erstmal vielen Dank an Claus für die tolle Anleitung. Ich bin gerade an gleicher Stelle hängengeblieben. Lösung: Man muss bevor man „make“ für dump1090 aufruft, in das Verzeichnis wechseln, in das man gerade den Quellcode von dump1090 mit git synchronisiert hat. (git legt automatisch das Unterverzeichnis dump1090 an)

    cd ~/
    git clone https://github.com/antirez/dump1090.git
    cd dump1090/
    make

    Dann klappt’s und du kannst gleich „./dump1090 –interactive“ aufrufen.

    Viel Spaß beim Emfang.

    73 und Alles Gute

    Jan

Wolfgang Weber · 15. Dezember 2018 um 11:15

Hallo zusammen, habe alles installiert bekommen, sehe auch Flugzeuge auf dem localhost, aber die Google Map verweigert sich. Hat da jemand einen Tip für mich?
Wir wollen später auch über einen Rasperry Pi gehen als Luftunterstützung an Einsatzstellen für die Drohne Rotkreuz Hessen 12-79

    Claus Wolf · 15. Dezember 2018 um 16:16

    Hallo Herr Weber,

    Für die Google Karten braucht es jetzt einen API Key – man sieht eine Karte mit For Development Purposes Only. Richtig angeschaut hab ich mir das auch nicht, aber mit einem API Key sollte sich das Problem mit ein paar Zeilen im Quelltext lösen lassen. Ich wünsche viel Erfolg!

    Mit besten Grüßen

    Claus

Schreibe einen Kommentar zu Claus Wolf Antworten abbrechen

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.