Raspberry Pi + Wi-Fi USB + RTL SDR (DVBT) Receiver

Track Aircraft with a Raspberry Pi

If you’re looking for an interesting project for your old Raspberry Pi, receiving data from aircraft’s flying above you might be something. If you’re starting from scratch, and you need a low cost receiver, look here. As an added bonus feeding ADS-B data to FlightRadar24 or other services will gain you a free subscription.

You probably need to position your Pi somewhere high, the DVB-T / 1090 Mhz antenna close to or outside a window, so you might need a USB Wi-Fi dongle. Most of them should work out of the box, take care to pick one that draws a minimum of power otherwise it won’t work without a USB hub. Alternatively connect the Pi to your ethernet network or router and, if you’re no longer using your rooftop antenna as you’re only streaming, use the existing coax cable and connect the 1090 Mhz antenna instead.

You can buy an RTL-SDR dongle with Antenna for 10$, these are usually dedicated to receiving DVB-T but happen to receive the 1090 Mhz frequency as well. A Wi-Fi dongle sells for for 7$. Take care to pick a RTL-SDR dongle that supports ADS-B / 1090Mhz! The dedicated ADS-B dongles sell for around 20$.

Step 1: Install the latest Raspbian OS. Once you have the SD card ready, use terminal and add a file named “ssh”:

touch ssh

This will enable SSH access to the Pi, so you don’t have to hook it up to a TV or monitor. For now you only need ethernet network access.

The following steps 2 & 3 are only required if you prepare the Pi for a wireless network connection:

Step 2: Not all Wi-Fi dongles work out-of-the-box. SSH to the Pi and insert the dongle in the Pi and type:


If you don’t see the “wlan0” interface, you need to install a driver. To check if it is recognised at all type:


This should show you all connected USB devices and it’s manufacturer. The cheaper Wi-Fi dongles mostly use RealTek, you can download an automatic RealTek install script from raspberry.org. Follow the instructions to install the driver and test if your Wi-Fi is up and running with a network scan:

iwlist wlan0 scan

Step 3: Configure your Wi-Fi network by providing the SSID (network name) and Password:

sudo wpa_passphrase "YOURSSID" "YOURPASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Remove the plain text password from the configuration and save the file (Command+X). Then reboot the Pi:

sudo reboot

Step 4: Prepare the Pi for the RTL SDR dongle. This section was taken from the excellent tutorial on fontenay-ronan:

sudo apt-get install git cmake libusb-1.0-0-dev build-essential
git clone git://git.osmocom.org/rtl-sdr.git
cd  rtl-sdr
mkdir build
cd build
sudo make install
sudo ldconfig
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot
cd ~ 
git clone git://github.com/flightradar24/dump1090
cd dump1090
sudo modprobe -r dvb_usb_rtl28xxu
sudo nano /etc/modprobe.d/rtl-sdr-blacklist.conf

Then add the following line and save the file:

blacklist dvb_usb_rtl28xxu

Insert/connect the USB RTL-SDR dongle and test the output:

./dump1090 --interactive

If you don’t see any airplanes, check the dongle’s tuner:

rtl_test -t

In case you have a Fitipower FC0012 or FCI FC2580 tuner, you’re in bad luck, these versions do not support 1090 MHz and cannot be used to track airplanes.

First thing to do is check the offset of the tuner. Let it run for a few minutes, then use the cumulative PPM value in the configuration (few steps below).

rtl_test -p

Step 5: The next step would be to start feeding the data to a tracker service, this would install and prepare your system for flightradar24:

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

You will be asked to enter your email address, antenna position and other details, and your account will automatically be created. Your account will remain in free trial mode until you spot the first airplanes and the Pi uploads data. After the first data upload, your account will change to a full business account.

If you open the configuration page in your web browser, let’s say:

You will be able to check the status and you could set/change the settings. Add the ppm setting and enable the web interface as per below:

--ppm 18 --phase-enhance --net

To view the web interface with tracked aircraft:

To stop/start:

sudo service fr24feed stop

To restart the Pi every day at midnight (to ensure a higher uptime), add this to your crontab:

crontab -e
0 0     * * *   root    reboot

If you’re looking for a nice macOS app to monitor your new ADS-B receiver, it’s right here!

ADS-B Radar for macOS