Flightradar uses a RTL-SDR for receiving ADS-B data sent by MODE-S
compatibile aircraft transponders.
this project are available on Github. The frontend was copied from
my Vatsim project (with significant modifications
which mainly involved removing most of the features) while the backend was
created from scratch using Go.
The live version of this project is available
here. Click on the planes to see more
details about them and click in the bottom left to toggle the polar range
Currently, my setup uses a stock dipole antenna which was provided with my
RTL-SDR kit; however I plan on constructing a custom weather-proofed antenna in
the near future. I do not use additional amplifiers or filters since my
reception range is mainly limited by the surrounding buildings obstructing my
view of the horizon.
For now I use a very basic kit available form the
RTL-SDR community website
. The kit is
listed as "RTL-SDR Blog R820T2 RTL2832U 1PPM TCXO SMA Software Defined Radio
with Dipole Antenna Kit
" in the store available on the website.
Communicating with the SDR
In order to avoid implementing message decoding myself I use
a fork of a popular dump1090 program
The program communicates with the SDR, parses the incoming ADS-B messages and
exposes a web interface which can be used to retrieve the messages. The messages
can also be printed directly to standard output and the program provides its
own implementation of a realtime map, if you don't feel like writing your own
Processing the messages
The backend which I have written downloads the messages from dump1090 and
stores them locally in the filesystem. It exposes a JSON API which can be used
to selectively retrieve the collected data points based on the time or involved
Real time map
The frontend displays the real time map of the tracked aircraft, short flight
history for each aircraft, the list of last sightings of the given aircraft and
a range graph which displays the furthest detections in every direction for a
given time range. The project is very rudimentary and doesn't use any frameworks
apart from libraries such as jQuery or OpenLayers.