Back
Featured image of post Flightradar24 feeding: Receiver setup with Raspberry Pi and DVB-T adapter

Flightradar24 feeding: Receiver setup with Raspberry Pi and DVB-T adapter

How to contribute to FR24 with a Raspberry Pi and DVB-T adapter

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 broadcasts 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.

Hardware

Raspberry pi with DVBT adapter for ADSB tracking
Raspberry pi with DVBT adapter for ADSB tracking

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

Software

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

Installation

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

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

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

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 :The option “–net” enable a web interface :http://X.X.X.X:8080 (replace by the Raspberry Pi address).The web interface :

Dump1090 data
Dump1090 data

Dump1090 web interface
Dump1090 web interface

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 &amp; 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 :

Dump1090 web interface
Dump1090 web interface

You can adjust your settings (restart the software is needed) :

FR24 software configuration
FR24 software configuration
FR24 software settings
FR24 software settings

You can see the list of tracked planes (here in Singapore) :

List of tracked planes
List of tracked planes

Happy tracking :)

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy