Raspberry Pi Based Mobile ADSB Receiver

Raspberry Pi Based Mobile ADSB Receiver

I built this simple mobile ADSB receiver with GPS and feeds to popular flight location aggregation sites like FlightAware, Radarbox, ADSBExchange, PlaneSpotter, OpenSky, and more. With the right antenna and a good location, this receiver is very capable of pulling in signals 250-300 miles away.

I used a Pi4 but it can just as easily be built on a Pi3. If you don’t need a screen, even a Pi Zero will work surprisingly well with the right adaptors. I have also built a screenless version using the Le Potato SBC and a few other Linux-based boards with some slight modifications to the code. The computing horsepower to make all this possible is minimal.

Below is what I used for my setup. I have included links to each product on Amazon. Use what you have in the parts bin, experiment, and try new combinations. I laser cut and stained a wood case and have since added even more receivers and software to decode a variety of signals other than ADSB. That is the fun of this hobby!

Parts List

  • Raspberry Pi 4 2GB (Other versions also work, just make sure to check the screen specs.)
  • 32GB Micro SD Card
  • 3.5A Raspberry Pi 4 Power Supply More power is always better. This adaptor runs the screen and receiver without sags.
  • Miuzei Raspberry Pi 4 Touchscreen with Case Fan, 4 inch IPS Touch Screen LCD Display This is an ok screen for the money. Having a case, fan and heatsinks is also nice. The touch is not perfect but is acceptable with a stylus. It is super bright! In hindsight, I think I would have gone with a 5″ or 7″ screen. Instructions for getting the touchscreen to work are included with the screen.
  • ADSBexchange.com Blue R820T2 RTL2832U, 0.5 PPM TCXO ADS-B SDR w/Amp and 1090 Mhz Filter, Antenna Great receiver. Has a built-in low noise amplifier and 1090mhz filter that really help pull in the packets to decode. You can use any RTL-SDR dongle such as a NooElec or RTLSDR but having the LNA and filter either built-in or external makes a huge difference!
  • An Antenna tuned to 1090mhz for optimum reception. Remember your antenna is the first link in the chain and can make or break your reception

    The ADSBexchange.com Blue receiver comes with a decent stock antenna that is good for portable use right out of the box. I added this small 1090mhz mag-mount antenna to my vehicle and it really improved reception.

    At home, I use a homemade 4-element coax collinear antenna up about 30′. It works really well consistently pulling in 250+ mile signals even in a crappy location. I am working on an improved design and will post the details after it’s verified.
  • VK-172 Gmouse USB GPS Glonass Dongle Optional. This allows the software to use your location to calculate the distance from each plane in real time.
  • 40000mAh Power Bank Support PD 30W This is optional but makes the unit truly mobile. This battery runs my Pi, Screen, Receiver, GPS, and an additional USB wifi card for 4-6 hours. I was impressed!
  • Mouse & Keyboard and any other cables and accessories you deem fit for your rig.

Construction

I feel pretty confident that if you are reading this you can figure out how to assemble the case, add the screen, etc. I’ll focus on the software load and some of the small quirks I ran into as that is where the fun happens.

Before you start running the commands, please have your longitude, latitude, and elevation handy as some of the software requires you to enter them during setup. Here is a good site to get your location info. https://www.freemaptools.com/elevation-finder.htm

Install Raspbian on your sd card. I am using the Bullseye 32-bit desktop version. Instructions on how to download and create the sd card using Raspberry Pi Imager can be found here. https://www.raspberrypi.com/software/

I would recommend setting up the wifi, SSH and/or VNC in the imaging software to make it easier to run the following commands.

Launch a terminal window or ssh into your pi and let’s get started.

Enter each of the following commands in the terminal window, answer any questions like lat and long, elevation, station name, etc and before long you will be tracking planes!


Install Dump1090-FA

cd /tmp

sudo wget https://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_7.2_all.deb

sudo dpkg -i piaware-repository_7.2_all.deb

sudo apt-get update

sudo apt-get install dump1090-fa rtl-sdr -y


Install FlightAware Feeder

sudo apt-get install piaware -y

sudo piaware-config allow-auto-updates yes

sudo piaware-config allow-manual-updates yes


Install PlaneFinder Feeder

sudo wget http://client.planefinder.net/pfclient_5.0.161_armhf.deb

sudo dpkg -i pfclient_5.0.161_armhf.deb

sudo rm -f pfclient_5.0.161_armhf.deb

Install Radarbox Feeder

sudo bash -c "$(wget -O - http://apt.rb24.com/inst_rbfeeder.sh)"

sudo rbfeeder --set-network-mode on --set-network-host 127.0.0.1 --set-network-port 30005 --set-network-protocol beast --no-start

Install OpenSky Feeder

sudo wget https://opensky-network.org/files/firmware/opensky-feeder_latest_armhf.deb

sudo dpkg -i opensky-feeder_latest_armhf.deb

Install FlightRadar24 Feeder

sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"

Install ADSB.fi Feeder

sudo curl -L -o /tmp/feed.sh https://raw.githubusercontent.com/d4rken/adsb-fi-scripts/master/install.sh

sudo bash /tmp/feed.sh

sudo rm -f /tmp/feed.sh

Install Graphs1090 & Tar1090 Mapping

sudo bash -c "$(curl -L -o - https://github.com/wiedehopf/graphs1090/raw/master/install.sh)"

sudo bash -c "$(wget -nv -O - https://github.com/wiedehopf/tar1090/raw/master/install.sh)"

sudo sed -i -e 's?.*flightawareLinks.*?flightawareLinks = true;?' /usr/local/share/tar1090/html/config.js

Replace Dump1090-fa with Readsb (Optional but highly recommended)

sudo bash -c "$(wget -O - https://github.com/wiedehopf/adsb-scripts/raw/master/readsb-install.sh)"

How to access everything you just installed.

Reboot your pi. Once rebooted use the following URLs to check the installation.
If you are running locally on the pi, the IP address will be 127.0.0.1
If you are accessing from a different device, use the IP address of your Pi
Open the web browser and use the following links to access each service.
Replace ${MYIP} with the address of your device in each example.

Tar1090 Map: http://${MYIP}/tar1090/
Graphs1090: http://${MYIP}/graphs1090/
Planefinder: http://${MYIP}:30053/
FR24 Status: http://${MYIP}:8754/

Claim your feed status on each site to receive premium account access.

To claim your accounts, visit each of the following URLs from either your pi or a pc that is on the same network.

Radarbox: https://www.radarbox.com/raspberry-pi/claim 
FlightAware: https://flightaware.com/adsb/piaware/claim
FlightRadar24: https://www.flightradar24.com/activate-raspberry-pi
ADSBexchange: https://www.adsbexchange.com/myip/

Install GPSD

sudo apt-get update

sudo apt-get install gpsd gpsd-clients python-gps
Next, we need to add some variables to the GPSD config.
sudo nano /etc/default/gpsd

Below is a screenshot.  After entering the variables, press CRTL-X and Y to save.
Reboot the Pi.  Once rebooted, open a termanal and type cgps and hit enter.  This should display the current GPS status.  Be sure to be in an area with a view of the sky.

Now we need to configure Readsb to read the GPSD data.

sudo nano /etc/default/readsb

Add the following line to the config file.
--net-connector localhost,2947,gpsd_in

Press CTRL-x and y to save and exit

sudo systemctl restart readsb

If you made it this far, you should have a functioning ADSB receiver that reports data to multiple aggregation sites and captures an amazing amount of stats.

Readsb has many options so dig in and tinker and see how good you can make your receiver. I would suggest the auto-gain function to start with but there are plenty more. A full list of commands can be found at https://github.com/wiedehopf/readsb

If you run into any issues with any of the software, google is your friend! Now go out and track some planes.

Many thanks go to all the people who made all this possible. Check out all their sites and support their efforts. They put blood, sweat and tears into creating and maintaining the software that lets us do what we love to do!

Show 1 Comment

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *