This interest of mine developed as I’ve been using flightaware.com since around 2011. I discovered that it has a piece of software which we can run at home, and with the right pieces of hardware, will be helping to scan for planes and send the data to the main site.
The idea is that planes broadcast their details, location, etc. over ADS-B. These are not encrypted and anyone with a 1090MHz receiver can pick up those signals. That’s pretty much what we will build. A Raspberry Pi running Piaware, and using a SDR dongle to receive the 1090MHz signals.
List of components required
Here are the things you’ll need, I’ll share my config. You can refer to the Piaware official post for other details.
- Raspberry Pi – minimally a Raspberry Pi 2. Newer is better. I started with the first generation Pi B+ and the CPU is too old to deliver good performance.
- Boot media for your RPi – likely a MicroSD (a.k.a. transflash) card. At least 8GB will be good.
- A SDR USB dongle – SDR is Software Defined Radio, which is a device that is able to tune to a huge range of frequencies. I am using the Nooelec Nano3 purchased from Amazon.sg. The package came with antennas.
- [Optional] A band pass filter – This is to clean up the received signal to the range of frequencies we want. Though outside of the USA we pretty much only need 1090MHz, this filter I am using, made specifically for Flightaware includes 978MHz. It is another signal used by planes in the US. I can see that with the filter Piaware is able to pick up more messages.
My specific build (Raspberry Pi 3)
- Raspberry Pi 3 Model B+ – I have this Pi for many years, and in terms of performance it looks to be more than enough for Piaware. I built a second FlightFeeder with a Raspberry Pi 4 Model B 8GB that I purchased from Cytron.
- Raspberry Pi Enclosure – the one I bought is no longer available on Amazon, but it looks similar to this.
- 3.5″ LCD screen – the one I bought is no longer available on Amazon, but it looks similar to this. This has a great purpose from Piaware 4.0. The recommended screen by Piaware is the Waveshare 3.5″.
- MicroSD Card – I’m a long term Sandisk supporter, and have a 32GB card in my Raspberry Pi 3.
- Power – using a good power adapter for the Raspberry Pi is important. I’ve learnt the hard way, and am now only sticking to the original adapter from Raspberry Pi. The others I’ve used can’t sustain the voltage at higher power draw. One exception is a higher rated multi port Anker charger which I use for my phone charging station. That is an overkill for one Pi though.
- SDR – Nooelec Nano 3 that I ordered from Amazon.sg.
- 978MHz & 1090MHz Band Pass Filter – I do find that my set up is receiving more messages after adding the filter. It is optional for sure.
Software Installation Process
I won’t go into the details to assemble the components together. I will write about the software aspect. When I did this, it was still Piaware 3.x and there are a few steps to go through. You’ll want to connect your keyboard, mouse and HDMI monitor to the Raspberry Pi for the set up. When you are done, you should not need these any more, and the device can
- First up is to get hold of the Raspberry Pi Imager from raspberrypi.org. Use the latest Raspberry Pi 32bits OS. Instructions from the official website is pretty good to get you past this point. If you have an existing Pi, make sure you are at least on Buster release.
- Boot up your Raspberry Pi – configure the following
- password for the user pi (if you want to change a username, go ahead)
- enable ssh – use raspi-config
- configure networking – use raspi-config as well for wifi settings
- Get the SDR working with Raspberry Pi
- These are the steps I followed from Nooelec website.
- Check that your SDR is detected by Raspberry Pi OS
- Check that the default dvb drivers have been loaded by Raspberry Pi OS. As long as some lines are returned, drivers are loaded
pi$ lsmod | grep dvb
- Blacklist the SDR dongle so that Raspberry Pi OS does not load the default drivers.
pi$ sudo echo "blacklist dvb_usb_rtl28xxu" >> /etc/modprobe.d/blacklist_dvb.conf
- Reboot the Raspberry Pi
pi$ sudo reboot
- Login again when it has come up, and check once mode to make sure the default DVB drivers are not loaded, the follow command must not yield any output.
pi$ lsmod | grep dvb
- Next we install the required drivers for Nooelec Nano 3
pi$ sudo apt-get install rtl-sdr
- if there’s a
continue [Y/n]prompt, choose
- When the installation is completed, we can do a quick test
- watch the output for about 5s-10s and then press CTRL-C to quit
- You want to make sure your SDR dongle is detected and there are no lost samples
- The drivers for the Nano3 are ready, and we can stop at this part of the Nooelec instructions, as we do not need the Gqrx software for Piaware.
The following steps are taken from the PiAware manual installation page. I the initial paragraph may mention about dump1090, it is not a pre-requisite at this stage. If you follow the instructions, it will also lead to installing the software.
At this point, the assumption is that the Raspberry Pi is connected to the network and has access to the Internet. Additionally, the SDR dongle is already set up in the earlier steps above.
- Download a copy of the PiAware installation package, refer to the official page for any updated versions. Run the below in the home directory of the pi user.
pi$ wget https://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_4.0_all.deb
pi$ sudo dpkg -i piaware-repository_4.0_all.deb
- Download updates and dependencies for Raspberry Pi OS
pi$ sudo apt-get update
pi$ sudo apt-get install piaware
- Now, piaware is installed, and we will make a couple of config changes to allow auto updates of piaware. If you like to have manual control, then skip this step.
pi$ sudo piaware-config allow-auto-updates yes
pi$ sudo piaware-config allow-manual-updates yes
- Next is to install dump1090 and dump978, each of these can take a little more time
pi$ sudo apt-get install dump1090-fa
pi$ sudo apt-get install dump978-fa
- All installation has completed, we’ll need a reboot
pi$ sudo reboot
Register the FlightFeeder to your FlightAware account
If you’ve been following the steps since the start of this post, at this point, you should have a fully functional FlightFeeder. If the thought hasn’t crossed your mind yet, let me jog it now. How do you associate the new FlightFeeder with your FlightAware account.
First and foremost, if you haven’t created an account on FlightAware.com you have to do it now. It should be a typical sign up process which I hope you are familiar with.
Once your account is ready, hit up the URL https://flightaware.com/adsb/piaware/claim. Once you get there, you’ll see a page with the below.
It is a seemingly smart process. I think the key is that the computer you are using to hit the URL is on the same network as your Raspberry Pi. My guess is that the FlightAware website is able to recognise that both the RPi and your computer are sharing the same public IP address, and there is currently an unclaimed instance. It will just associate that instance with your account.
You are pretty much done. There are some settings you can play around with on your ADS-B Feeder Statistics page. The settings I touched were, and in sequence:-
- Site Name
- Receiver Location
- Precision on Coverage Map
- Outage Emails
- Nearest Airport
This was a fun experience and got me to be more familiar with my Raspberry Pi. While doing this, the PiAware 4.0 release came out and it includes a built in support for the 3.5″ LCD screen. This is great as I have this screen for a couple of years now, but never had a good use for it.
I hope you find this useful. I’ve added in some details that were not clear with the original instructions. I’ve repeated these steps a few times now while I built and rebuilt my FlightFeeders, I hope it is clear enough for anyone else who wishes to give this a try.
In a future post, I’ll share my experience rebuilding to PiAware to 4.0.