Flugzeuge senden nicht nur transponder Daten im Bereich von 1090 MHz via ADS-B die mit Dump1090 empfangen werden können.
Auch ACARS Daten auf ca. 130 MHz (3 Meter Band). Auch diese können mit eine Software Radio und eine kleinen Raspberry Pi Zero W empfangen werden. Diese ACARS Meldungen enthalten diverse Infos, wie aus dieser Mindmap hervorgeht:
Vorraussetzung ist ein frisch installiertes Debian Raspbian Stretch Lite Version 2017-08-16 und das ein rtl_test -t ohne Fehler auf der Konsole durchläuft. Das heißt, ein RTL-SDR Software Radio ist erfolgreich installiert.
Wie das installiert wird, habe ich ja ua. hier beschrieben.
Nun compilieren wir uns das Multi-Channel ACARS Programm acarsdec wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# zuerst erstellen wir uns ein Verzeichnis cd ~ mkdir acars cd acars # dann clonen wir das Repo von GitHub git clone https://github.com/TLeconte/acarsdec.git # installieren noch ein paar benötigte Abhängikeiten sudo apt-get install libsndfile1-dev sudo apt-get install libasound2-dev # evl. auch noch nötig #sudo apt-get install librtlsdr sudo ldconfig # wechseln in das Verzeichnis cd acarsdec mkdir build cd build/ cmake .. -Drtl=ON make sudo make install cd ~ # Test Hilfe ausgeben acarsdec -h |
Das Ergebnis:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
./acarsdec -version Acarsdec/acarsserv 3.5 Copyright (c) 2017 Thierry Leconte Usage: acarsdec [-v] [-o lv] [-t time] [-A] [-n ipaddr:port] [-l logfile] [-g gain] [-p ppm] -r rtldevicenumber f1 [f2] ... [fN] -v : verbose -A : don't display uplink messages (ie : only aircraft messages) -o lv : output format : 0: no log, 1 one line by msg., 2 full (default) , 3 monitor mode, 4 newline separated JSON -t time : set forget time (TTL) in seconds for monitor mode (default=600s) -l logfile : Append log messages to logfile (Default : stdout). -n ipaddr:port : send acars messages to addr:port on UDP in planeplotter compatible format -N ipaddr:port : send acars messages to addr:port on UDP in acarsdev native format -i stationid : station id used in acarsdec network format. -g gain : set rtl preamp gain in tenth of db (ie -g 90 for +9db). By default use AGC -p ppm : set rtl ppm frequency correction -r rtldevice f1 [f2]...[f8] : decode from rtl dongle number or S/N rtldevice receiving at VHF frequencies f1 and optionally f2 to f8 in Mhz (ie : -r 0 131.525 131.725 131.825 ) Up to 8 channels may be simultaneously decoded |
Jetzt könnte man sich noch eine kleines Startscript start-acars.sh erstellen und mit chmod +x start-acars.sh ausführbar machen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/bash # (c) 2017 Thomas Wenzlaff #Frequenz in MHz Region/Bemerkung #131,550 Primär weltweit #129,125 Zusätzlich in USA und Kanada #130,025 Sekundär in USA und Kanada #130,425 Zusätzlich in USA #130,450 Zusätzlich in USA und Kanada #131,125 Zusätzlich in USA #131,450 Zusätzlich in Japan #131,475 Air-Canada-Kanal #131,525 Sekundär Europa #131,725 Primär Europa #136,700 Zusätzlich in USA #136,750 Zusätzlich in USA #136,800 Zusätzlich in USA #136,900 Europa Sekundär #136,850 SITA Nordamerika #136,750 Europa neue Frequenz #131,850 Europa neue Frequenz #131,725 Hannover? ./acarsdec/acarsdec -p -0 -r 0 131.725 131.850 |
Schon könnten bis zu 8 Kanäle von ACARS-Daten empfangen werden. Wenn man aber z.B. 6 Kanäle gleichzeitig abfragt, ist die CPU des Zero W mit 80 % schon sehr ausgelastet. Aber man könnte ja nur den Kanal abfragen der ein interessiert. Mit dem Programm, können auch Sound-Dateien im WAV-Format ausgewertet werden, aber Echtzeit ist wohl mehr interessant. Auf jeden Fall, müssen die rechlichten Vorraussetzungen für den Empfang beachtet werden, die in jedem Land anders sind.
Man kann auch noch einen extra Server acarsserv installieren, der die Daten dann in eine DB speichert. Dazu aber hier mehr.
Jetzt noch ein paar infos, zum kompilieren des Kalibrate Programm. Da für das obige Programm, evl. noch ein offset nötig ist, den man mit dem Programm ermitteln kann.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# wir erstellen wieder ein Verzeichnis mkdir ~/kal cd ~/kal # installieren nötige Libs sudo apt-get install libtool autoconf automake libfftw3-dev # clonen das GitRepo von kalibrate-rtl git clone https://github.com/asdil12/kalibrate-rtl.git # gehen in das install Verzeichnis cd kalibrate-rtl git checkout arm_memory ./bootstrap ./configure make sudo make install # Test der installation kal -h |
Das Ergebnis:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
kalibrate v0.4.1-rtl, Copyright (c) 2010, Joshua Lackey modified for use with rtl-sdr devices, Copyright (c) 2012, Steve Markgraf Usage: GSM Base Station Scan: kal <-s band indicator> [options] Clock Offset Calculation: kal <-f frequency | -c channel> [options] Where options are: -s band to scan (GSM850, GSM-R, GSM900, EGSM, DCS, PCS) -f frequency of nearby GSM base station -c channel of nearby GSM base station -b band indicator (GSM850, GSM-R, GSM900, EGSM, DCS, PCS) -g gain in dB -d rtl-sdr device index -e initial frequency error in ppm -v verbose -D enable debug messages -h help |
Ein Scann des GSM900 Bandes können wir wie folgt starten:
1 |
kal -s GSM900 -d 0 -g 40 |
Ergebnis z.B.:
1 2 3 4 5 6 7 8 9 10 11 |
Found 1 device(s): 0: Generic RTL2832U OEM Using device 0: Generic RTL2832U OEM Found Rafael Micro R820T tuner Exact sample rate is: 270833.002142 Hz [R82XX] PLL not locked! Setting gain: 40.0 dB kal: Scanning for GSM-900 base stations. GSM-900: chan: 15 (938.0MHz + 31.708kHz) power: 416392.87 |
Wir brauchen nur etwas Geduld. Evl. mehrfach starten. Wenn die Ergebnisse vorliegen, kann der gewünschte Kanal mit
1 |
kal -c <channel> -d 0 -g 40 |
abgefragt werden und der Offset ausgegeben werden. Und zwar wird der xx Wert aus der Zeile:
1 |
average absolute error: xx.yyy ppm |
im obigen Programm als -p xx Parameter angegeben. Zum Flugfunk und den nötigen Lizenzen gibt es hier Infos oder auch die Frequenzdatenbank und Videos zum Thema.
Was alles so für Infos durch den Äther (griech. αἰθήρ [„aithḗr“], der (blaue) Himmel‘) gehen!