Having been a 'dormant' radio amateur operator for many years, the interest radio waves, transmitters, receivers, antennas and more never seem to go away. With SDR (Software Defined Radio) becoming very affordable in the form of (hacked) RTL-SDR USB dongles it became time to see what radio waves were landing in my back yard and what they carry.

PlaneBuilding an affordable personal real-time aircraft ground radar system based on three components. A Raspberry PI, a Realtek R820T2 DVB-T dongle and a home brew 1090Mhz antenna built using the antenna calculators. All the software and source code needed to get this operational are available via the Internet.

Introduction to ADS-B

Automatic Dependent Surveillance-Broadcast or ADS-B is a cooperative surveillance system used in avionics. It uses GPS location and other aircraft information like height, heading, identification and squawk and regularly transmits this information making it possible to track the aircraft. In 2002 the FAA announced the decision to implement 1090MHz squitters on all air carrier, commercial and private operators of high performance aircraft. More in-depth information on ADS-B can be found here at Wikipedia

Personal note: ADS-B transmissions are not encrypted and is an open protocol for reception and transmission. There is talk of using this as a true radar and automatic collision avoidance system. I seriously hope this is very implemented as this system is a major security hazard!.

Introduction to SDR

Software Defined Radio or SDR refers to a radio communication system that has conventional hardware like filters, mixers, modulators, detectors, demodulators and more, implemented as software.

To use SDR a (personal) computer with an audio interface or a digital to analog converter linked to a RF front end is needed. this combination creates a radio that can receive and transmit just about any radio protocols (waveforms) based completely on software. More information on Software Defined Radio can be found here at Wikipedia.

In this project we will limit SDR to reception only, leaving the radio tuning and analog to digital conversion to the low cost DBV-T USB dongle.

Building the Internet accessible (Iot) ADS-B aircraft radar

ADS-B radar

Required components

What I used: A Raspberry PI (purchased mainly to brush up on my UNIX), I use a PI 2, but any model should do fine. Secondly a USB DBV-T dongle, this does the RF AD work. Lastly a suitable antenna for the ADS-B frequency of 1090 MHz.

DVB-T dongle

DVB-T RTL-SDR dongle

This USB dongle uses the RTL2832U / R820T2 chipset from Realtek, it has a range from 24 MHz to 1700 MHz.

Note for using with PI: This dongle requires a lot of power. If used in combination with mouse, keyboard, WiFi, it may cause boot errors on initialization.

Raspberry PI 2

Raspberry PI

Standard PI with NOOBS installed. Used PuTTY to get a remote SSH connection to run the PI headless (no keyboard, no mouse, no monitor).

Downloaded the USB driver for the RTL-SDR from GitHub and compiled.

Downloaded (tweaked) and built Dump1090. Wired it up and connected it to Internet.

1090 MHz 1/4 wave antenna

1090 MHz antenna

Antenna base is a 50 ohm BNC female chassis mount connector. It is a classic 1/4 wave ground plane design with the radials bent slightly more than the classic 45 deg to compensate for the 75 Ohm dongle and feed line. All radial elements are exactly 68.1 mm from center.


Size does matter when it comes to antennas. Ensure the antenna elements are resonant for the specific frequency you need. Missing in these pictures is the coax based collinear (eight element), it performed so poorly it's hardly worth the mention. The collinear has increased the range of reception by about 25km, I don't have the equipment to measure the gain.

Building your own ADS-B radar

If you are interested in building your own ground radar for aircraft, I highly recommend an article at http://www.satsignal.eu/. It has a step by step tutorial that takes you from the beginning to the end.

Building your own ADS-B radar front end

The website https://www.steeman.org/adsb/Virtual-Radar will give you an updated real-time geolocation radar view of the aircraft in the air around my location. The data used to make this display is also available and streamed onto the Internet for feeding other display front ends.
https://www.steeman.org/aircraft is the entry point to receive real-time raw data output from the ADS-B receiver/decoder in JSON format.

1090 MHz collinear

Collinear ADS-B antenna design with about 2.7db gain.

1090 MHz ADS-B collinear

Testing the 1090 MHz collinear.

Tracking aircraft with the ADS-B Flight Tracking Ground Radar

Below are some images from the ADS-B Ground Radar. Here we tracked aircraft landing and taking off at Eindhoven Airport.

Aircraft taking off

Aircraft taking off

Aircraft on approach route

Aircraft on approach route

Aircraft landing

Aircraft landing

Aircraft taking off

Aircraft taking off

Real-time aircraft proximity monitoring

Using software defined radio in combination with digital radio signal decoding makes it possible to construct very effective data reception systems without the investment of specialized radio equipment and other hardware. Software defined radio allows for broadband and dynamic radio reception, transmission as well as encoding and decoding signals using all possible modulation possibilities. The ADS-B project is an example of how this process can be implemented using low cost hardware and readily available software from the Internet.

Update: Major changes and refactoring to the virtual radar to create the virtual radar 2.0 and why.

Maintaining and running the virtual radar for three plus years has been fun and challenging. However it came to the point that it was no longer presentable and the reliability of the computer system used, left a lot to be desired.

The issues that caused a redesign of the system

  • Raspberry PI unstable platform: power fluctuations or failure, static electricity and problems with fast temperature changes was a sure shot guarantee that the PI crashed and the SD card was so corrupt it would never restart again. Tried many SD cards and power supply noise filters, none passed the tests more than twice before total failure. Because I implemented this as a wifi connected remote unit mounted 10 meters in an antenna mast without first bench testing it properly, every failure was a load of work plugging in a new SD card. I got really tired of this unreliability. It is a cheap toy and no where near any reliability norm.
  • Avoid (pretentiously free) Google services completely: Developer and other accounts suddenly blocked! Access to these accounts denied! For reason unknown to me. Google will not correspond with me as to why this corporate entity undertook these actions. (really!!! I must be a dangerous threat then, I assume ;). Also the fact that Google maps suddenly required you to supply a credit card number and permission to withdraw funds as and when they see fit was the cherry on the cake for my growing distrust in this institution and a strong motivation and challenge to do better without them involved completely.
What has changed
Windows Visual Studio

The platform has changed from Raspberry PI to Windows Server. I have a Windows server providing services in my LAN network. It spends most of its time doing nothing much. Thus the challenge to run the virtual radar as a native Windows service. The source code needed to be ported from Linux based to Windows C toolchain. By this time I was working with Visual Studio 2017. There were plenty of challenges, for one I hadn't touched C for a very long time. Then native C in windows is not threading, but the virtual radar code needs it to be, and I had no want for refactoring it all. This is when cross platform (yes, I am sometimes a slow learner) opened up to me. And this was just the start.

Cartography and Mapping needed replacement as Google maps is no longer usable for small non-commercial free applications and now requires compulsory access to your bank account. As I have worked with many other projects that interactively work with OpenStreetMaps, the choice was easily made. Do note that even though OSM is 'free', users of this system are required to contribute back by adding or keeping existing data updated.

All geographical calculations, like the distance (as the crow flies) between two co-ordinates had to be researched and programmed (Haversine formula), as previously the Google Maps libraries were used for these types of services, needed to be understood,coded and 'owned' as local accessible and manageable code base. Tip to self: Beware! Maybe advise others and also look into CDN's, I expect that to go the same way soon as well or at least at a cost.