Skip to content
Kent Johnson edited this page Jan 9, 2016 · 5 revisions

Many aircraft broadcast their position and altitude using ADS-B technology. With an inexpensive receiver and free software, a Raspberry Pi can receive and decode these signals.

Required Parts

The only required addition to the Raspberry Pi noise monitor hardware is an inexpensive USB radio:
NooElec NESDR Mini 2 SDR $22
http://www.amazon.com/dp/B00P2UOU72/ref=sr_ph?ie=UTF8&qid=1448413545&sr=1&keywords=nooelec+nesdr+mini+2

Optional Parts for better reception

The NooElec radio includes an inexpensive antenna. For better results, an antenna tuned to the ADS-B frequency of 1090 MHz is recommended. FlightAware sells a suitable antenna:
1090MHz ADS-B Antenna - 66cm / 26in $45
http://www.amazon.com/1090MHz-ADS-B-Antenna-66cm-26in/dp/B00WZL6WPO/ref=sr_1_1?s=electronics&ie=UTF8&qid=1448413718&sr=1-1&keywords=FlightAware

I also use the FlightAware filter. It is recommended for urban areas where there may be a lot of radio interference:
ADS-B 1090MHz Band-pass SMA Filter $20
http://www.amazon.com/ADS-B-1090MHz-Band-pass-SMA-Filter/dp/B010GBQXK8/ref=sr_1_2?s=electronics&ie=UTF8&qid=1448413718&sr=1-2&keywords=FlightAware

You will need two cables, a long one from the antenna to the filter and a short pigtail from the filter to the USB dongle. Be careful buying the antenna cable, there are inexpensive cables available with an SMA-RP male connector. This is not what you want! The correct cable is SMA-Male to N-Male. The length of the antenna cable depends on your requirements. I bought a 20' cable from L-Com:
CA-SMNMT020 SMA-Male to N-Male 240 Series Assembly 20.0 ft $30
http://www.l-com.com/coaxial-sma-male-to-n-male-240-series-assembly-200-ft

The pigtail is
RF coaxial coax cable assembly SMA female to MCX male right angle 6" $5
http://www.amazon.com/coaxial-cable-assembly-female-right/dp/B00CP17WMG/ref=pd_bxgy_23_3?ie=UTF8&refRID=1CF9Z3CTSHACNDCNGQA0

There are also many recipes for DIY ADS-B antennas available on-line.

Software

One stop shopping

This project has scripts to set up a suite of ADS-B software - dump1090, PiAware, adsbexchange and monitoring with collectd and rrdtool. (See http://www.dump1090.com/graphs/ for an example) https://github.com/jprochazka/adsb-feeder

Continue reading if you want to install the pieces yourself...

dump1090

dump1090 is the software that controls the radio and receives and decodes the ADS-B signals from aircraft. I use the development build of dump1090-mutability.

Install dump1090-mutability

  • It's easiest to first install the released distribution. From the Raspberry Pi shell,
wget https://github.com/mutability/mutability-repo/releases/download/v0.1.0/mutability-repo_0.1.0_armhf.deb
sudo dpkg -i mutability-repo_0.1.0_armhf.deb
sudo apt-get update && sudo apt-get install dump1090-mutability
  • To configure,
sudo dpkg-reconfigure dump1090-mutability
  • You will also want to install the lighttpd integration:
sudo apt-get install lighttpd && sudo lighty-enable-mod dump1090
sudo service lighttpd force-reload

After a reboot, you should be able to browse to http://<rpi.local>/dump1090 to see a map and flight locations.

Multilateration support

Not all aircraft broadcast their location via ADS-B. To locate these flights you can join a network of ADS-B receivers and locate the aircraft using multilateration (MLAT). FlightAware has a free service providing MLAT support. There are a few more pieces needed.

dump1090 source release

Install dump1090 from source to get the latest version (see http://discussions.flightaware.com/post177419.html#p177419 for details).

mkdir git
cd git
git clone https://github.com/mutability/dump1090.git
sudo apt-get install librtlsdr-dev libusb-1.0-0-dev pkg-config debhelper
cd dump1090
dpkg-buildpackage -b
cd ..
sudo dpkg -i dump1090-mutability_1.15~dev_armhf.deb
sudo reboot

Create a FlightAware account

Create an account at FlightAware. Later you will link your Raspberry Pi to your account.

Install PiAware

PiAware software links your Raspberry Pi to FlightAware. http://flightaware.com/adsb/piaware/install

wget http://flightaware.com/adsb/piaware/files/piaware_2.1-3_armhf.deb
sudo dpkg -i piaware_2.1-3_armhf.deb # *** ignore the errors ***
sudo apt-get install -fy
sudo piaware-config -autoUpdate 1 -manualUpdate 1

## Enable mlat
sudo piaware-config -mlat 1 -mlatResults 1

## Add FlightAware account (will ask for password)
sudo piaware-config -user username -password

Finally, log on to the FlightAware website and configure the location of your antenna. This will enable MLAT support. Go to your dump1090 web page and refresh the browser. Flights with ADS-B location data are shown in green in the table; flights with MLAT location data are shown in purple.

Addendum

ADS-B Exchange

ADS-B Exchange is a non-commercial ADS-B aggregator. It is easy to add them as a recipient of dump1090 data; see http://www.adsbexchange.com/how-to-feed/

File locations and useful commands

dump1090 files

/etc/init.d/dump1090-mutability # Executable
/etc/default/dump1090-mutability # config file, edited by dpkg-reconfigure
/etc/lighttpd/conf-available/89-dump1090.conf # lighttpd configuration

/var/run/dump1090-mutability # JSON data files (configurable)
/var/log/dump1090-mutability.log # log file

/usr/share/dump1090-mutability # web files (HTML, js, etc) for use with lighttpd

PiAware commands

## Configuration
sudo piaware-config -help
sudo piaware-config -show

## Show status
sudo piaware-status
tail /tmp/piaware.out

Clone this wiki locally