Da ich direkt am Flughafen wohne, kann ich den Start und die Landung von Flugzeugen sehr gut beobachten. Die meisten Flugzeuge senden über transponder ihre Daten an den Tower und andere Flugzeuge. Diese Signale kann man leicht auch mit einem Raspberry Pi und etwas Hardware empfangen.
Es gibt da viele Anleitungen im Internet wie man das installieren kann. Einfach so vorgehen, wie hier beschrieben.
Hier mal die Schritte kurz zusammengefasst und um einige Anmerkungen mit Fotos ergänzt:
1 2 3 4 5 6 7 8 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install git git-core cmake libusb-1.0-0-dev build-essential git clone git://git.osmocom.org/rtl-sdr.git cd rtl-sdr/ mkdir build cd build/ cmake ../ -DINSTALL_UDEV_RULES=ON |
Oder anstatt des letzten Befehls, wenn ein WLAN Stick das Modul benötigt sudo cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
Ergebnis:
1 |
sudo make |
1 |
sudo make install |
1 2 3 4 5 6 |
sudo ldconfig cd ~ sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/ sudo reboot lsusb |
Ergebnis:
1 |
Bus 001 Device 004: ID 0ccd:008e TerraTec Electronic GmbH Cinergy HTC XS |
1 |
rtl_test -t |
ok, der USB-Stick läuft nicht und wird nicht unterstüzt.
Dann einen neuen bestellt, der liefert auch das richtige Ergebnis mit einem RTL2832U Chip (USB DVB-T & RTL-SDR Realtek RTL2832U & R820T DVB-T Tuner Receiver MCX Input):
1 |
Bus 001 Device 004: ID 0bda:2832 Realtek Semiconductor Corp. RTL2832U DVB-T |
Ergebnis: Es kommt die Fehlermeldung das der USB-Stick nicht unterstützt wird:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
No supported devices found. Found 1 device(s): 0: Generic, RTL2832U, SN: 7777111117777777 Using device 0: Generic RTL2832U 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. usb_claim_interface error -6 Failed to open rtlsdr device #0. |
Dann fix des Fehlers in dem er auf die Blacklist gesetzt wird:
1 2 3 4 5 6 7 8 |
cd /etc/modprobe.d # Datei no-rto.conf anlegen sudo nano no-rtl.conf # ergänzen um diese drei Zeilen blacklist dvb_usb_rtl28xxu blacklist rtl2832 blacklist rtl2830 sudo reboot |
Ok, dann nochmal
1 |
rtl_test -t |
Ergebnis:
1 2 3 4 5 6 7 8 |
Found 1 device(s): 0: Generic, RTL2832U, SN: 7777111117777777 Using device 0: Generic RTL2832U 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. No E4000 tuner found, aborting. |
Super, so muss es sein. Hier noch einmal den USB-Stick mit der kleinen 15 cm Antenne:
Nun noch DUMP1090 holen und starten
1 2 3 4 5 |
cd /home/pi/ git clone git://github.com/MalcolmRobb/dump1090.git cd dump1090 make ./dump1090 --interactive |
Mit der kleine 15 cm Antenne auf der Fensterbank werden schon einige Flugdaten empfangen.
Nach ein paar Minuten werden die Flugzeugdaten wie folgt angezeigt:
Habe mal eins etwas verfolgt, um die Reichweite zu checken. Von Langenhagen bis weit über Hameln hinaus! Das ist ja schon mal ganz gut.
Nun mal weiter Infos zu dem dump1090 mit
1 |
./dump1090 --help |
abgefragt um zu erfahren, wie die Daten in metrische Daten angezeigt werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
----------------------------------------------------------------------------- | dump1090 ModeS Receiver Ver : 1.10.3010.14 | ----------------------------------------------------------------------------- --device-index <index> Select RTL device (default: 0) --gain <db> Set gain (default: max gain. Use -10 for auto-gain) --enable-agc Enable the Automatic Gain Control (default: off) --freq <hz> Set frequency (default: 1090 Mhz) --ifile <filename> Read data from file (use '-' for stdin) --interactive Interactive mode refreshing data on screen --interactive-rows <num> Max number of rows in interactive mode (default: 15) --interactive-ttl <sec> Remove from list if idle for <sec> (default: 60) --interactive-rtl1090 Display flight table in RTL1090 format --raw Show only messages hex values --net Enable networking --modeac Enable decoding of SSR Modes 3/A & 3/C --net-beast TCP raw output in Beast binary format --net-only Enable just networking, no RTL device or file used --net-bind-address <ip> IP address to bind to (default: Any; Use 127.0.0.1 for private) --net-http-port <port> HTTP server port (default: 8080) --net-ri-port <port> TCP raw input listen port (default: 30001) --net-ro-port <port> TCP raw output listen port (default: 30002) --net-sbs-port <port> TCP BaseStation output listen port (default: 30003) --net-bi-port <port> TCP Beast input listen port (default: 30004) --net-bo-port <port> TCP Beast output listen port (default: 30005) --net-ro-size <size> TCP raw output minimum size (default: 0) --net-ro-rate <rate> TCP raw output memory flush rate (default: 0) --net-heartbeat <rate> TCP heartbeat rate in seconds (default: 60 sec; 0 to disable) --net-buffer <n> TCP buffer size 64Kb * (2^n) (default: n=0, 64Kb) --lat <latitude> Reference/receiver latitude for surface posn (opt) --lon <longitude> Reference/receiver longitude for surface posn (opt) --fix Enable single-bits error correction using CRC --no-fix Disable single-bits error correction using CRC --no-crc-check Disable messages with broken CRC (discouraged) --phase-enhance Enable phase enhancement --aggressive More CPU for more messages (two bits fixes, ...) --mlat display raw messages in Beast ascii mode --stats With --ifile print stats at exit. No other output --stats-every <seconds> Show and reset stats every <seconds> seconds --onlyaddr Show only ICAO addresses (testing purposes) --metric Use metric units (meters, km/h, ...) --snip <level> Strip IQ file removing samples < level --debug <flags> Debug mode (verbose), see README for details --quiet Disable output to stdout. Use for daemon applications --ppm <error> Set receiver error in parts per million (default 0) --help Show this help Debug mode flags: d = Log frames decoded with errors D = Log frames decoded with zero errors c = Log frames with bad CRC C = Log frames with good CRC p = Log frames with bad preamble n = Log network debugging info j = Log frames to frames.js, loadable by debug.html |
Ok, der Aufruf muss wie folgt geschehen damit die Geschwindigkeit (Spd) in KM/H und die Höhe (Alt) in Meter angezeigt wird:
1 |
./dump1090 --interactive --metric |
Jetzt wollen wir noch den Server Modus starten und auf einer schönen Karte im Browser anzeigen. Das geht mit dem Aufruf:
1 |
./dump1090 --interactive --metric --net --net-beast --net-ro-port 31001 |
Dann im Browser die http://raspi-ip:8080 aufrufen und es werden alle Flugzeuge die empfangen werden angezeigt. Es können die Zeilen markiert werden, um das Flugzeug zu verfolgen:
Habe mal den Dreamliner 787-8 von Düsseldorf nach Tokyo mit der Nr. ANA942 -NH942 markiert. Die Links gehen auch gleich nach Flightradar24 ua.:
Cool, da bekommt man ja wieder Lust auf fliegen…
Weitere URLs zum Thema in englisch:
http://www.flightradar24.com/software/
https://uk.flightaware.com/adsb/piaware/