ADS-B Feeders on Raspberry Pi
I happen to be an aviation nerd and flight tracking services enable aviation nerds to learn a lot about any aircraft flying over. Where it’s going, where it’s coming from, why it’s flying over my house at 6AM after I went to bed only 4 hours ago. Important stuff.
In this article, I explain how you can become a part of this process by using a Raspberry Pi to capture and feed ADS-B data to the top four most popular tracking services.
Introduction
You’ve likely used or heard of Flightradar24, FlightAware, RadarBox, and Plane Finder before. Most of their coverage comes from regular people capturing live ADS-B data, broadcast by nearby aircraft on 1090 MHz and 978 MHz (US-only) frequencies, with some form of software-defined radio (SDR), and feeding it to them with a computer or a mobile device.
Why? Beyond the cool factor, most of them offer a free premium account for your trouble, which is handy if you track planes frequently and want some advanced features. Next question is “how” then.
If you live in a remote area with poor existing coverage, you can apply for a free professional receiver at Flightradar24, FlightAware, RadarBox, or Plane Finder. The only caveat is that you have to install it on your roof or a tall mast with unobstructed 360-degree view of the sky and a 24/7 internet connection. These receivers are also black boxes with an Ethernet port, so you won’t be able to install any third-party software on them, in case you also want to tinker with ADS-B data yourself.
For everyone else who lives in a large city with plenty of coverage or has no ability to install suspicious-looking equipment on the roof of their apartment building, your best bet is building a DIY receiver of your own.
Hardware
You can install ADS-B feeder software on almost any computer. But remember that you’ll be running it 24/7, so it’s probably unwise to install it on your main laptop or desktop. Unless you already have a rack of servers, the cheapest and most energy-efficient option is a Raspberry Pi.
Exact model makes no difference, I’ve installed feeders on first-generation Model B and Zero W without issues. So long as it has one free USB port and an internet connection (i.e. you have a wired router nearby or your Pi has Wi-Fi), it’s good enough.
You will also need an SDR adapter with an external antenna. This can be anything from a cheap DVB-T USB dongle with a small magnetic antenna for $10 off eBay, all the way up to a purpose-built ADS-B receiver with an outdoor fibreglass antenna for $100+ (most tracking services can sell you one on their website). Either option will work, but cheaper equipment and lazier antenna positioning will get you significantly shorter range (5–10 NM) compared to a more serious setup (100–200 NM). It all depends on your budget and level of enthusiasm.
Software
You have some options for the software part as well. If your Raspberry Pi will only be used for feeding data to FlightAware or Flightradar24, the easiest option is installing their pre-made OS images, PiAware or Pi24, respectively.
But if you want to feed data to multiple services or you want to simultaneously use your Raspberry Pi for other tasks, keep reading.
0. Raspberry Pi OS
Let’s start by downloading Raspberry Pi OS (formerly, Raspbian), the official Debian Linux-based operating system made for all Raspberry Pi models. If you intend to run it headless (no monitor, no keyboard), I would recommend Raspberry Pi OS Lite, but full desktop version would work too. Follow the instructions on the website to write it to your SD card.
Now insert the SD card into your Pi and turn the power supply on. Unless you have a console cable, you will have to connect a monitor and keyboard initially, to enable SSH and/or VNC to control it remotely.
Once the system boots, log in with the default username “pi” and password “raspberry” and run sudo raspi-config
to do some basic configuration:
- Change the default password!
- Under locale settings, set time zone to UTC (required by some feeders)
- Enable SSH and/or VNC, depending on how you plan to control your Pi in the future; optionally, change the hostname to something unique, like
radarpi
, that way you can address it asradarpi.local
on your network, instead of configuring a static IP
Before we go any further, it’s not a bad idea to install any available OS updates by running sudo apt-get update
and then sudo apt-get upgrade
.
1. FlightAware
Always install FlightAware first, because its PiAware packages include a working version of dump1090
and dump978
that other feeders rely on. This avoids having to install them separately, which sometimes causes issues.
Sign up for a free FlightAware account before going any further.
Follow their guide, it boils down to this (replacing with latest version):
wget https://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_4.0_all.deb
sudo dpkg -i piaware-repository_4.0_all.deb
sudo apt-get update
sudo apt-get install piaware
sudo piaware-config allow-auto-updates yes
sudo piaware-config allow-manual-updates yes
sudo apt-get install dump1090-fa dump978-fa
All done! Now claim your feeder and it should appear in your stats. Here you can edit the location and elevation of your antenna, your closest airport, etc.
You can also now navigate to port 8080 of your Pi in your browser, e.g. http://radarpi.local:8080/, for a dashboard that shows you which flights the dump1090 daemon can see.
2. Flightradar24
Flightradar24 provides an easy installation script, but for me it always fails with a GPG error. So I pieced together a way to install everything manually from various forum posts.
Sign up for a free Flightradar24 account before going any further.
Go to fr24feed_versions.json to check the latest version available for “linux_arm_deb” platform. At the time of writing, it was 1.0.26–9, so update it to the latest one and execute the following:
wget http://repo.feed.flightradar24.com/rpi_binaries/fr24feed_1.0.26-9_armhf.deb
sudo dpkg --install fr24feed_1.0.26-9_armhf.deb
sudo fr24feed --signup
You will be asked to type in the email address associated with your account and other details, such as the sharing key (which you can leave blank if this is your first feeder) and your antenna location.
Finally, just run this to restart the client and start feeding data:
sudo systemctl restart fr24feed
Your feeder should now appear under data sharing in your account.
3. AirNav RadarBox
RadarBox also provides an installation script and this one worked for me.
Sign up for a free RadarBox account before going any further.
Here’s what you need to execute:
sudo bash -c "$(wget -O - http://apt.rb24.com/inst_rbfeeder.sh)"
sudo apt-get install mlat-client
sudo systemctl restart rbfeeder
sudo rbfeeder --showkey --no-start
Once it shows you the key, all you have to do is claim it.
You can check your sharing status, including flights your feeder can see and your coverage, by going to Account > Stations and selecting the name of your station.
4. Plane Finder
Last one is Plane Finder. This feeder is just a single Debian package with instructions in a PDF file.
Sign up for a free Plane Finder account before going any further.
Instructions boil down to this (replacing with latest version):
wget http://client.planefinder.net/pfclient_4.1.1_armhf.deb
sudo dpkg -i pfclient_4.1.1_armhf.deb
Once installed, navigate to port 30053 of your Pi in your browser, e.g. http://radarpi.local:30053/, fill out your account email address, and the latitude and longitude of your antenna.
Then select “Beast” and type in “127.0.0.1” for the IP address and “30005” for the port (output for dump1090’s Mode-S Beast binary format) and take note of the generated share code. Plane Finder will also automatically email it to you, in case you lose it.
Finally, navigate to receivers in your account, enter the share code and click “Add receiver”. Eventually, “inactive” should switch to “active” — this took around 15–20 minutes for me (much longer than with other services).
Conclusion
Congratulations, you’re now feeding to four flight tracking services simultaneously. After a while (within an hour), all your accounts should switch to “premium”, “business” or “enterprise”, depending on what each service is offering in exchange for sharing data.
Keep an eye out on sharing stats to see how many flights and positions your feeder captures, and what your range is. If you’re unhappy with these results, try moving your antenna closer to the window and raising it higher. Alternatively, you can go out and purchase a better USB dongle and/or a bigger antenna. Either way, your existing Raspberry Pi setup won’t change.
My last point is a “life hack” unrelated to aviation. Flightradar24 has a useful setting to notify you when your feeder is offline and display a graph of your uptime. This is surprisingly handy for checking your internet connection, in case you need to yell at your ISP for an all-night outage or decide whether you should stay at work a little longer because your home internet is dead. Enjoy!