Flightradar24 : Behind the scene – Receiver setup

The technology used by Flightradar24 is based on ADS-B technology.

Automatic Dependent Surveillance – Broadcast (ADS–B) is a cooperative surveillance technology in which an aircraft determines its position via satellite navigation and periodically adsb-flightradarbroadcasts it, enabling it to be tracked. The information can be received by air traffic control ground stations as a replacement for secondary radar. It can also be received by other aircraft to provide situational awareness and allow self separation.

ADS–B is “automatic” in that it requires no pilot or external input. It is “dependent” in that it depends on data from the aircraft’s navigation system.

1. Hardware

raspberry-DVBT
– 1 Tiny computer (Raspberry pi)
– 1 DVB-T USB receiver (usually used to receive HD TV on computers)
– 1 WiFi dongle

2. Software

– OS : Raspbian
– Driver : Rtl-sdr
– Decoder : Dump1090, a simple Mode S decoder for RTLSDR devices
– Data feeder : FR24 Data feeder

3. Installation

We’ll assume that your OS (Raspbian) is installed and the network is configured.

3.1 Preparation

Update your system and install some software that we’ll need later (to compile) :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git cmake libusb-1.0-0-dev build-essential

3.2 Rtl-sdr driver

Clone it from git, compile and install :

git clone git://git.osmocom.org/rtl-sdr.git
cd  rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot

3.3 Decoder: Dump1090

Clone it from git, compile and test:

cd ~ 
git clone git://github.com/flightradar24/dump1090
cd dump1090
make
./dump1090 --interactive --net --net-http-port 8080

You may encounter this issue :

Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001 (currently selected)
Kernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.
usb_claim_interface error -6
Error opening the RTLSDR device: Device or resource busy

This is due to a conflict with the dvb_usb_rtl28xxu module.
Unload the module :

sudo modprobe -r dvb_usb_rtl28xxu

And blacklist it to avoid any future problem by editing the blacklist configuration file :

sudo vi /etc/modprobe.d/rtl-sdr-blacklist.conf

And add the following lines :

blacklist dvb_usb_rtl28xxu

Then try again :

./dump1090 --interactive --net

You should see some planes :
dump1090-data
The option “–net” enable a web interface :
http://X.X.X.X:8080 (replace by the Raspberry Pi address).
The web interface :
dump1090-webinterface

3.4 Feeder: Flightradar24

They did a script, you should just follow the instructions :

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

When it’s done, you can start the service :

sudo service fr24feed start

You can check the feeder status by using the following command :

service fr24feed status

Here is a standard output :

● fr24feed.service - LSB: Flightradar24 Decoder & Feeder
   Loaded: loaded (/etc/init.d/fr24feed)
   Active: active (running) since Sun 2016-02-21 12:48:08 UTC; 3min 8s ago
  Process: 29717 ExecStop=/etc/init.d/fr24feed stop (code=exited, status=0/SUCCESS)
  Process: 29871 ExecStart=/etc/init.d/fr24feed start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/fr24feed.service
           ├─29888 /usr/bin/fr24feed -- --monitor-file=/dev/shm/fr24feed.txt --write-pid=/var/run/fr24feed.pid --quiet --log-base=/var/log/fr24feed --log-...
           └─29909 /usr/lib/fr24/dump1090 --net --raw

To go further, you can inspect the log file :

tail -f -n 100 /var/log/fr24feed.log

Here is a standard output, just after starting the application:

2016-02-21 12:48:08 | [main][i]FR24 Feeder/Decoder
2016-02-21 12:48:08 | [main][i]Version: 1.0.16-11/generic
2016-02-21 12:48:08 | [main][i]Built on 20160128-1017 (r:HEAD-796dd01.git/Linux/armv7l)
2016-02-21 12:48:08 | [main][i]Copyright 2012-2016 Flightradar24 AB
2016-02-21 12:48:08 | [main][i]http://flightradar24.com
2016-02-21 12:48:08 | [main][i]DNS mode: LIBC
2016-02-21 12:48:08 | [main][i]Automatic updates are DISABLED
2016-02-21 12:48:08 | ERROR
2016-02-21 12:48:08 | [main][i]Reader thread started
2016-02-21 12:48:08 | [time][i]Synchronizing time via NTP
2016-02-21 12:48:08 | [reader][i]Initializing reader
2016-02-21 12:48:08 | [reader][i]Connecting to Generic receiver via (exe:///usr/lib/fr24/dump1090 --net --raw)
2016-02-21 12:48:08 | [master][i]Starting processing thread
2016-02-21 12:48:08 | [httpd][i]Server started, listening on 0.0.0.0:8754
2016-02-21 12:48:08 | [reader][i]Connected to the receiver, configuring
2016-02-21 12:48:08 | [reader][i]Configured, processing messages
2016-02-21 12:48:09 | [reader][w]Setting new UTC offset: 0!
2016-02-21 12:48:13 | [time][i]Time synchronized correctly, offset +0.0024 seconds
2016-02-21 12:48:13 | [main][i]Feed Network client started
2016-02-21 12:48:13 | [feed][i]Downloading configuration
2016-02-21 12:48:15 | [feed][c]Interval: 5s
2016-02-21 12:48:15 | [feed][c]Latitude: 1.3517
2016-02-21 12:48:15 | [feed][c]Longitude: 103.9376
2016-02-21 12:48:15 | [feed][c]GND: YES
2016-02-21 12:48:15 | [feed][c]NonADSB: YES
2016-02-21 12:48:15 | [feed][c]Timestamps: optional
2016-02-21 12:48:15 | [feed][c]Max range AIR: 350.0nm
2016-02-21 12:48:15 | [feed][c]Max range GND: 100.0nm
2016-02-21 12:48:15 | [feed][i]defined 1 server
2016-02-21 12:48:15 | [feed][n]WSAP27@83.140.21.66:8099/UDP
2016-02-21 12:48:15 | [feed][n]connecting
2016-02-21 12:48:15 | [stats][i]Stats thread started
2016-02-21 12:48:36 | [feed][n]connected via TCP (fd 8)
2016-02-21 12:48:36 | [feed][n]switching to UDP
2016-02-21 12:48:36 | [feed][n]working
2016-02-21 12:48:37 | [feed][i]sent 3 AC in 1 packet
2016-02-21 12:48:40 | [feed][i]removed 1 of 6 AC
2016-02-21 12:48:43 | [feed][i]sent 6 AC in 1 packet

As mentioned in the log, there is a web interface as well :
http://X.X.X.X:8754(replace by the Raspberry Pi address).
The web interface :
fr24feed-configuration-page
You can adjust your settings (restart the software is needed) :
fr24feed-settings
You can see the list of tracked planes (here in Singapore) :
fr24feed-tracked-planes

Happy tracking 🙂

7 thoughts on “Flightradar24 : Behind the scene – Receiver setup”

  1. Best setup guide for ADS-B setup available.
    The ultimate up to date resource to refer to and get up and running quickly when things go South.

  2. Thanks, this one saved my day! Just upgraded my Ubuntu from 14.04 to 16.04 and my feeder failed. Followed this until the feeder download and now everything works just great. THX!

  3. YOU NEED QUALITY VISITORS for your: fontenay-ronan.fr

    My name is Reina, and I’m a Web Traffic Specialist. I can get:
    – visitors from search engines
    – visitors from social media
    – visitors from any country you want
    – very low bounce rate & long visit duration

    CLAIM YOUR 24 HOURS FREE TEST
    ContactMe: ventfara@mail.com

Leave a Reply to Ronan Cancel reply

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