Airband - ADS-B

With the use of an SDR radio and the work other interested people have done on creating software there's a wealth of interesting information you can get from the airwaves. I've recently just setup an ADS-B reciever using a Raspberry Pi, R820T based dongle and some free software. The data I recieve is uploaded to Flightradar24 to help them boost coverage.

My Initial tests used a windows PC using the rtl1090 application and the flightradar software however I now have it running on a Raspberry Pi which makes for a much smaller and power effiecient reciever. I also tried doing this with my original E4000 based device but found that it cut off just below the required frequency for recieving ADS-B data.

dump1090

To recieve the ADS-B data I used an application called dump1090.

Building this requires the rtl-sdr to have already been build (write up to come), The steps to build dump1090 are:

git clone https://github.com/antirez/dump1090.git
cd dump1090/
make
sudo cp dump1090 /usr/local/bin/

This can then be run from the command line like this

dump1090 --interactive --enable-agc --interactive-ttl 3600 --interactive-rows 30 --metric

and it will show all the flight data being recieved which should look something like this:

Hex    Flight   Altitude  Speed   Lat       Lon       Track  Messages Seen  .
--------------------------------------------------------------------------------
4ca704          0         0       0.000     0.000     0     3         51 sec
450023          0         0       0.000     0.000     0     1         105 sec
4ca6a5 RYR6275  1743      518     50.577    -1.640    7     344       1 sec
400e5c          4287      783     0.000     0.000     22    8         175 sec
4006b3 BAW247   6473      870     50.588    -1.748    212   1627      1 sec
40055f          7760      0       0.000     0.000     0     1546      0 sec
405bfe BAW245   7714      811     50.425    -1.905    214   2350      21 sec
400fe0          0         0       0.000     0.000     0     3         245 sec

Flight Radar 24

To upload the data to flightradar you need to download the package from http://forum.flightradar24.com/threads/4270-Linux-feeder-software-for-Fl... For the Raspberry Pi the ARM LE version. I'm using the Dynamicly linked version dated 10/4/2013. This can be installed into /usr/local/bin with the command

sudo tar xzvf fr24feed_arm-le_232.tgz -C /usr/local/bin/

Two allow the Flight Radar application to use the data from dump1090 you need to add two additional flags to the command line

dump1090 --interactive --enable-agc --interactive-ttl 3600 --metric --interactive-rows 30 --net --net-sbs-port 30003

You can then run the flight radar application to get the data from dump1090 and upload to the flight tradar servers.

fr24feed_arm-le_232 --fr24key=<key>

As I had already set up flight radar on a windows machine I had the key to use. If you don't have a key for this recieving station you'll need to read the instructions on the Flight Radar site.

 

Updates

I've had issues with the dynamically linked version of fr24feed stopping working after a period of time. To fix this I'm currently trying the statically linked version of fr24feed. This seems to need an extra environment variable to connect and so should be run like:

FR24AUTHIP=83.140.247.20 fr24feed_arm-le_232s --<key>

There are some reports of this still failing, as a fix for this the recommendation is to try an older copy (version 225).

Virtual Radar Server

A Work in Progress is to run a local server to show the flights I'm recieving which I intend to do with http://www.virtualradarserver.co.uk/ and mono.

 

Installing mono on the Raspberry Pi can be acheived using the command

sudo apt-get install mono-runtime mono-2.0-gac libmono-winforms2.0-cil mono-csharp-shell

Check if the version of mono on the pi will work properly

pi@pi ~ $ csharp
Mono C# Shell, type "help;" for help

Enter statements below.
csharp> Math.Pow(2,4);
0.00129999965429306
csharp>

pi@pi ~$

If the output is not 16 (like the above) then the version of mono may have issues, See http://elinux.org/CSharp_on_RPi for information. You can either try installing mono from source (possibly with patches) or change to using a softfloat version of raspbian.

 

Download the VirtualRadar Software

http://www.virtualradarserver.co.uk/Files/VirtualRadar.tar.gz

Create a Folder for it and change into that folder

mkdir VirtualRadar
cd VirtualRadar

extract the archive

tar xzvf ~/HAB/VirtualRadar.tar.gz

Run the application

mono VirtualRadar.exe

At this point there are errors that still need resolving

Screen

The method I prefer to run these on the Pi is via a screen session. This allows me to run both applications within a single SSH session and also close that SSH session leaving the programs running in a way that I can reconnect to them later. This is setup be first installing screen:

sudo apt-get install screen

To simplifiy starting the programs I have also created a ~/.screenrc file which starts both programs with screen. This file looks like:

screen -t dump1090 0 dump1090 --interactive --enable-agc --interactive-ttl 3600 --metric --interactive-rows 30 --net --net-sbs-port 30003
screen -t fr24 1 fr24feed_arm-le_232 --fr24key=<key>

To start screen for the first time just type:

screen

If you want to re-connect to an existing screen session run

screen -rd

There are many more things you can do with screen and if you regularly use linux SSH sessions I highly recommend learning to use screen or one of the alternatives.

 

Resources I used to configure this are:

Alternatives

  • adsbox
  • Alternative dump1090 supposedly good for use with planeplotter  git://github.com/MalcolmRobb/dump1090.git

Other Potential Resources