In this post I’ll show you how to build a Raspberry Pi powered ADS-B ground station receiver that can track aircraft over 100 miles away using a small USB software-defined radio dongle.
This ground station is very easy, and inexpensive to build and it will open your eyes to some of the amazing uses for SDR.
Plus, by feeding data from your ground station to FlightAware’s aircraft tracking network you will receive a free enterprise account which normally would cost $90 per month.
What is ADS-B?
ADS-B (automatic dependent surveillance-broadcast) is a system which allows equipped aircraft to transmit their callsign, altitude, heading, GPS position, squawk number, and speed.
The ADS-B signal is broadcast at 1090MHz and can be received by a receiver with line of sight to the sending aircraft. The range of these signals is typically 100 – 200 miles depending on aircraft altitude and the location of the ground station antenna.
ADS-B is also unencrypted and unauthenticated which means anyone with a receiver can easily receive, and decode the information.
Under FAA regulation 14 CFR 91.227 aircraft must be equipped with ADS-B avionics equipment by January 1st, 2020 in order to fly in the majority of US airspace.
Software Defined Radio
The key piece of technology which makes this project possible is a small USB dongle made by NooElec that contains the R820T2 chip made by Rafael Micro. This chip is an IC radio frequency tuner with an impressive range of approximately 25MHz to 1750MHz! The frequency of the tuner can be controlled through software, hence the name software defined radio.
These dongles are essentially a modified version of a USB DVB-T receiver sold for receiving over the air TV signals in Europe.
Besides receiving ADS-B transmissions these dongles can be used for everything from exploring the RF spectrum to receiving images from NOA weather satellites.
Benefits of Operating a Ground Station
Whether you’re an aviation enthusiast or just someone interested in identifying the aircraft flying over your house there are several perks to building an ADS-B ground station receiver.
By sharing your ADS-B data with FlightAware you will receive a free Enterprise Account (normally $90/month). Enterprise users gain access to live (non delayed) data, as well as historical flight data, alerts, and many other benefits
Raspberry Pi ADS-B Ground Station Parts List
The list below contains all of the parts you will need to build your own ADS-B ground station receiver.
|Raspberry Pi Model 2 B||1|
|NooElec NESDR Mini 2 USB RTL-SDR Receiver||1|
|Sandisk Ultra 16GB Micro SDHC Card||1|
|Micro USB Power Supply Wall Charger (or a nearby USB port)||1|
I’ve found that cheap telescoping antenna included with the NooElec dongle performs surprisingly well for receiving ADS-B transmissions, my station can track planes up to about 100 miles away depending on their altitude.
If you want to get even better range you can purchase an upgraded antenna made specially for 1090MHz transmissions.
|Edimax Wi-Fi USB Adapter||1|
|1090MHz ADS-B Antenna (26in)||1|
|N female to MCX male right angle adapter||1|
|HABAmp 1090Mhz/ADS-B Filter & Preamp For Dongles||1|
Mounting the antenna outside will further enhance the range for your ground station.
User Spfoamer on Reddit built a self contained outdoor receiver using a waterproof enclosure, quater wave ground plane antenna, and a 1090 MHz bandpass filter.
Step 1: Load the PiAware Image on the SD Card
The quickest way to get started is to download the PiAware disk image based on Raspbian that contains all of the required software and drivers.
Step 2: Connect the Components and Boot the Pi
Insert the imaged SD card into your Raspberry Pi and connect the NooElec SDR dongle, micro USB power cable, and ethernet cable.
Connect your antenna of choice to the MCX connector on the NESDR dongle.
Once the Pi finishings booting it will automatically start the piaware service , connect to the internet, and begin feeding ADS-B data to FlightAware.
Step 3: Claim your Ground Station
Once you’ve successfully claimed your station FlightAware will begin processing the ADS-B data you send them and your account will automatically be upgraded to an enterprise subscriber.
It may take about 10 minutes before your Pi station is available to claim on the FlightAware website. If it doesn’t show up on the site there are few things you should check.
- Make sure the Pi has an active internet connection (via ethernet cable or wireless)
- Check the status of the piaware service to make sure it is running (service piaware status)
- Scan the USB bus to see if the NooElec dongle is detected (lsusb | grep DVB-T)
- Run the piaware-status command (as root)
- If the PiAware service fails to start check the log file for more information (/tmp/piaware.out)
- Make sure the correct FlightAware username and password is configured. The credentials can be updated using piaware-config.
- piaware-config -user
- piaware-config -password
Viewing the Ground Station Statistics
Once you ground station has been claimed FlightAware will begin collecting statistics for all of the data it uploads to the tracking network. You can view your ADS-B collection stats from your FlightAware account. After about 24 hours of operation you’ll start to get a good view of the range of your ground station.
My ADS-B station in Kansas City identifies on average about 300 different aircraft per day within my range. Of these aircraft 90% are less than 60 miles away and about 10% are within 60 – 120 miles.
The PiAware service running on the Pi can also be accessed directly through the web server running on port 8080. On this page you can view all of the aircraft which are currently being tracked by the ground station.
Clicking on the individual aircraft on the map will display detailed information about the flight including a link to the flight details on the FlightAware website.
The easiest way to find the local IP address of your PiAware station is to log into your account look in the site information section for your ADS-B station.
I was quite surprised by the range of ADS-B reception I was able to obtain with the NooElec dongle and a tiny antenna located in a spare bedroom of my home.
Next I plan to look into the feasibility of mounting a better antenna either outside, or in my attic to improve my signal reception.
I’m also quite intrigued by Simon Aubury’s Pi Plane Project which integrates a servo mounted camera for producing video footage of aircraft that travel within sight.
If you’ve built an ADS-B station leave a note in the comments and let me know how it’s performing.