ADS-B am Raspberry Pi: dump1090-mutability

Bereits seit einigen Jahren setze ich einen DVB-T Stick zum Empfang von ADS-B Daten an einem Raspberry Pi ein. Damals habe ich erklärt, wie man die Linux Software dump1090 dafür verwendet. Der seit dem von mir verwendete Fork auf GitHub von MalcolmRobb wird allerdings seit Jahren nicht mehr weiterentwickelt. Nach einiger Recherche bin ich auf den Fork dump1090-mutability gestoßen, welcher sich von MalcolmRobbs ableitet. “It adds new functionality and is designed to be built as a Debian/Raspbian package.”

Tatsächlich lässt sich dieses Tool sehr einfach installieren, was ich nachfolgend gerne erläutern möchte. Die erweiterten Funktionlitäten sind z.B: die Logging-Möglichkeiten, mit denen sich Statistiken erzeugen lassen. Hierüber wird es einen extra Blogpost geben.

[Dieser Beitrag ist Teil einer Serie über ADS-B. Hier gibt es eine strukturierte Übersicht.]

Installation

Ich habe diese Variante von dump1090 nicht auf dem bereits vorhandenen Raspberry Pi installiert, sondern gleich komplett neu formatiert um auch das aktuellste Raspbian am laufen zu haben. Die Installation von dump1090-mutability war dann tatsächlich sehr einfach indem nur die bereits auf GitHub gelisteten Befehle ausgeführt werden mussten:

Die Frage nach “Start dump1090 automatically …” wurde natürlich mit Yes beantwortet. Um darüberhinaus alle Optionen anpassen zu können habe ich den folgenden Befehl abgesetzt, welcher in einer Art Menü durch alle Parameter lotst:

Die meisten Optionen kann man auf den Default Einstellungen lassen. Ich habe lediglich folgende Sachen angepasst:

  • Latitude: <entsprechend der Position>
  • Longitude: <dito>
  • Port for internal webserver: 8080
  • Interface address to bind to (blank for all interfaces): <leer>

Sprich: Der Webserver soll auf Port 8080 lauschen und außerdem sollen Verbindungen von überall (also aus dem lokalen Netz bzw. dem Internet, insofern ein Port-Forwarding am Router eingerichtet ist) möglich sein. (Man kann auch ohne diesen dpkg-reconfigure Befehl manuell die Konfigurationsdatei anschauen oder editieren: sudo nano /etc/default/dump1090-mutability.)

Google ist dein Freund …

Leider lief das Programm zwar direkt, allerdings wurde nichts empfangen. Ein Blick in die Logdatei offenbarte folgendes:

Also irgendetwas mit den permissions bzw. den udev rules. Aha. Google hat da wie immer geholfen und mich zu diesem Blogpost gebracht. Folgendermaßen konnte ich demnach das Problem lösen. Per lsusb  habe ich die Device ID herausgefunden:

In meinem Fall also 0bda:2832. Danach diese Datei erstellt und das System neugestartet:

Nach dem Neustart sah das Log schon besser aus:

Außerdem konnten die eingehenden Verbindung jetzt auch Daten bekommen. Per netstat sieht man die geöffneten Ports sowie bereits vorhandene Verbindungen:

Installation des Webservers

Möchte man den Pi nicht nur als Empfänger für ADS-B Daten (als externe Station via Port 30005 o.ä.), sondern auch autark als Webserver betreiben, muss man noch den folgenden Befehl ausführen, welcher lighttpd installiert und entsprechend konfiguriert:

[UPDATE: Ich habe die Schose jetzt noch mal auf einem anderen Pi installiert. Dort lief der Webserver bereits ohne dass ich ihn mit den beiden folgenden Befehlen installiert hatte. Warum auch immer. Scheint wohl ein in dump1090-mutability eingebauter Server zu sein.] Unmittelbar danach kann man unter der IP Adresse des Pis auf Port 8080 (welchen ich oben so konfiguriert hatte) den Webserver sehen. Sehr cool. Sieht bei mir wie folgt aus:

Deutlich erhöhter Load-Average

Interessanter Fakt meines (in die Jahre gekommenen) Raspberry Pi 1 B bzgl. des Load-Average, also der Durchschnitts-Last ist wie folgt: Von lässigen 0.3 zu quasi überstrapazierten 1.2! Bei der reinen CPU stieg es von ca. 32 % zu 65 %, also ebenfalls deutlich. (Die Differenz lässt sich wie gewohnt durch Lese-/Schreibzugriffe auf die SD-Karte, IO und Co. erklären.)

Ich kann allerdings nicht genau sagen, ob das eher a) an dem FlightAware Pro Stick liegt, welcher den Empfangsbereich deutlich vergrößerte (siehe vorheriger Post) oder b) an dump1090-mutability, welches erweiterte Techniken bzgl. der Fehlererkennung usw. verwendet oder c) an dem Statisik Modul dump1090-tools, welches alle 5 Minuten eine ganze Reihe schöner rrdtool Grafiken erzeugt (siehe nachfolgendem Blogpost). In jedem Fall ist mein alter Pi mit 900 MHz (Übertaktung) bei einem Core jetzt tatsächlich mal überlastet. Egal. ;)

[UPDATE: Da mir bei meinem Pi 1 B nun auch noch die SD-Karte flöten gegangen ist, habe ich ihn kurzerhand durch einen aktuellen Pi 3 B ausgetauscht. Jetzt also vier Kerne bei 1,2 GHz. Sehr gut. Die Load Average liegt jetzt wieder bei gemächlichen 0.3.]

Ich freue mich mal wieder über dieses Projekt, welches ohne viele Fehler weiterhin fleißig interessante Daten empfängt. Viel Spaß euch ebenso!

Featured image: “Miniatur Wunderland: Flughafen – Lufthansa A380” by Kevin Hackert is licensed under CC BY-NC 2.0.

6 thoughts on “ADS-B am Raspberry Pi: dump1090-mutability

  1. jprochazka/adsb-receiver automatisiert alle genannten Schritte und verbesserte die graphischer Weboberfläche sogar noch. Leider können auch dort noch keine Informationen zur Flugroute und Fotos zum Flugzeug angezeigt werden. Hoffentlich tut sich da bald noch was in der Open-Source-Landschaft.

  2. Hallo,

    ich habe lighttpd und dump1090-mutability installiert wie beschrieben.

    Auf http://luftraum.südliches.nrw lässt sich das Ergebnis betrachten. Mein Problem ist, dass keine Flugzeuge angezeigt werden. Mein Konto auf Flightaware zeigt aber, dass Daten übermittelt werden.

    Könntet Ihr mir bitte helfen? Ich weiß nicht, was da nicht stimmt.

    1. Hey Florian,

      puh, ich fürchte ich kann dir da nicht so ad hoc weiterhelfen. Bist du sicher, dass Flightaware von dir Daten bekommt? Wenn ja, dann könnte es irgendwie an dem lokalen http Server liegen. Sorry, weiter weiß ich so ohne Details auch nicht.

      Johannes

Leave a Reply

Your email address will not be published. Required fields are marked *