Tracking airplanes in real time with ADS-B

Raspberry Pi

All of the tests performed thus far work just as well on a Raspberry Pi as they do on a mature Linux system with one exception. Although the Midori and Epiphany web browsers display the map on a laptop without any trouble, they fail to do so on the Raspberry Pi. Figure 4 shows the disappointing results that Epiphany returned on a Raspberry Pi 3.

Even though the browser accurately updates flight movements, the background map freezes on a single tile. One possible solution to this problem would be to call Dump1090 via another computer on the network. There is also a more direct approach. Firefox also runs as Iceweasel on a Raspbian system. It builds the website slowly but carefully, authorizes the selection of various maps and also correctly loads the map tiles when sections of the map are moved.

Output formats

Two output formats have already been introduced. These are the output in the console and the output on port 8080. The --interactive-rtl1090 switch adapts to the output format for the program of the same name (Listing 9).

Listing 9

Output from dump1090 --interactive-rtl1090

Hex    Flight   Alt      V/S GS  TT  SSR  G*456^ Msgs    Seen /
4baada          F380                             1       0
3c6441 DLH7NM   F359                 6664        26      0
4ca7b3          F350         513 124 3475        21      0
v/s: vertical speed
gs: ground speed in knots
tt: true track in deg true
v/s: vertical speed
gs: ground speed in knots
tt: true track in deg true

The SBS BaseStation format [8] can be queried at any time via port 30003. The program Netcat, abbreviated as nc, assumes this task in the first line of Listing 10. The grep MSG,3 command reduces the display size to the message font 3.

Listing 10

Output from nc

01 $ nc localhost 30003 | grep MSG,3
02 MSG,3,111,11111,4B1937,111111,2016/08/15,13:25:53.412,2016/08/15,13:25:53.384\
03   ,,39025,,,50.79378,7.33597,,,,,,0
04 MSG,3,111,11111,394A04,111111,2016/08/15,13:26:09.707,2016/08/15,13:26:09.700\
05 ,,35975,,,50.64885,6.87195,,,,,,0
07 $ nc localhost 30003 | grep MSG,3 >flightdata.csv
09 Key:
10 Message type, transmission type, nn, nn1, ModeS-Fight no, Date-gen, Time-gen, Date-log,\
11 Time-log, Callsign, Altitude, Groundspeed, Track(heading on earth), lon, lat

The program creates each time stamp. The numerous decimal places it contains do not represent a precise designation of the time of receipt. Instead, the numbers help with the sequential arrangement of the data. In line 7, the operator > redirects the data from the console display to the flightdata.csv file. The output format with commas as separators makes it easier to process the data further. The graphics in Figure 5 were created in this way.

Figure 5: These are statistics on reception using a simple dipole antenna when there is limited visibility.

The file fills up with around 2 MB of data after collecting measurements for one hour. The table calculator LibreOffice Calc recognizes the comma as a column divider and a few clicks place values for the signals that have been received in the columns for longitude and latitude. Then the GIS software of the user's choice accepts the values and displays them on a map.

The distinctive asymmetry of the reception diagram in Figure 5 is caused by shadowing. The skies were clearly visible only when heading southwards. Airplanes traveling up to 100 kilometers away were identified with a simple dipole antenna. Increasing the area of coverage requires a directional antenna which can follow airplanes to the horizon at a maximum distance of 400 kilometers.

Buy this article as PDF

Express-Checkout as PDF

Pages: 7

Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Taking the Raspberry Pi over hill and dale

    The Raspberry Pi is the heart of many different projects, be they navigation devices or flight scanners. When equipped with a suitable keyboard and simple monitor, the little computer can also be put to use for tasks in the great outdoors.