ADS-B with RTL-2832 based USB TV dongles made easy!

If anything, I think Realtek and ezCap are very happy companies when hobbyists discovered they could leverage a mode inside the low-cost TV-tuner chipset to get direct access to I/Q samples at a decent rate (2-3MS/s at 8 bits).

Many people were involved in making the RTL2832U SDR a possibility. It started at Osmocom as rtl-sdr, initially as a sample application that let us dump raw data from the tuners and put that into GNU Radio to decode. It was a bit rubbish initially as buffering wasn’t working, samples were dropped during recording to disk but it showed us the possibilities.

It’s also rather annoying for Windows users that this was really a Linux thing – I had set up several machines with Linux just to play with it. But thanks to the efforts of Balint Seeber (a radio and software guru – I had the pleasure of being able to contribute a little to this by discussing with him), an input block was developed for GNU Radio which allowed us to listen to the signals live from the tuner. Thanks Balint! There were issues with different front-ends, and I helped to test and troubleshoot support for the Fitipower FC0012 tuner (which, compared to the Elonics E4000, is a poor compromise).

He then bought us salvation by developing an ExtIO block (another input plugin, originally used to grab data from USRP devices into SDR applications) for the RTL2832 – one which worked under Windows. Using HDSDR under Windows was now a possibility with moderately satisfactory results at very low cost! All you had to do was to put in rtl tuner=e4k readlen=52488 and the bandwidth and things just worked!


An SDR with a range from about 64 – 1600Mhz (with several gaps) at 8 bit resolution with a bandwidth of 2-3MS/s for $10-$20? “Yes please!” screamed virtually all the hobbyists in unison!

RTL2832 + E4000 sticks

As a result, there was a point in time about a year ago when RTL2832 sticks were in short supply, and eBay sellers went a long way to sell them as SDR sticks and bump up the price by several fold. Of course, there were many sticks you could choose that had the RTL2832U + E4000 combination that was widely sought after.

RTL2832 + E4000 Internals

This topic has been covered to death by many online – getting it working is now a cinch thanks to the installer Balint had made. Of course, a few adapters or soldering might be necessary to get your favourite antenna connected to the tuner stick.

Interestingly, the RTL2832 sticks have bought out a lot of radio enthusiasts – someone has managed to convert their stick with a failed front end into a direct-sampling receiver. Someone else had worked on getting GPS signals on the RTL2832.

Since then, people have managed to get ADS-B decoding working using such a tuner stick as well.

What is ADS-B?

ADS-B stands for Automatic Dependent Surveillance – Broadcast, and is a radio link technology for aircraft to report their position autonomously to other aircraft nearby for a mutual awareness of the area.

Planes equipped with ADS-B emit their position, velocity, time, heading, climb, registration, airframe number, altitude on a regular basis – normally every few seconds. Unlike ACARS, it is not used to carry messages normally, but it has much more detailed information at much closer temporal spacing. Once you have the data – you can see the planes around you on a radar-like screen – you are presented with something similar to a traffic controller’s radar!

It operates at 1090Mhz and emits pulsed signals with a bandwidth of around 1Mhz making it challenging to receive for traditional scanners and radios which often top out below such frequencies and just don’t have the bandwidth to pass the signal.

Prior to using the RTL2832, specialized interfaces were required which were fairly expensive and difficult to obtain. Now, almost anybody with a decent computer can have an ADS-B receiver!

Making it Work

Initially, it was a bit complicated – but the recent advent of ADSB# (ADS-B Sharp) for Windows makes this quite an easy affair. I first installed Zadig drivers for the dongle as per the installer that Balint developed. Then it’s a simple case of installing ADSB# and running it, and adding the firewall exception. This runs a raw data server on port 47806 – now you need a client to make it visible. You should see a few frames/sec pop up if you have a decent antenna of some sort – I’ve just got a regular old scanner antenna hooked up to mine.

To this end, you can use adsbSCOPE and configure it by going through the menu other -> Network -> Network Setup. Click on ADSB# under presets, and click on the local button. Then go back to the menu other -> Network -> Raw-data Client Active and you’re in business!

How bloody simple is that!?

ADSB-with-a-dongle ADSB-loop-into-Sydney ADSB-loop-into-sydney2

It works! There are some jagged traces since we lose visibility or packets sometimes – extended projection is in dotted lines. No more buying expensive ADS-B receivers? Yes please!

About lui_gough

I'm a bit of a nut for electronics, computing, photography, radio, satellite and other technical hobbies. Click for more about me!
This entry was posted in Computing, Electronics, Radio and tagged , , . Bookmark the permalink.

4 Responses to ADS-B with RTL-2832 based USB TV dongles made easy!

  1. Pingback: RTL2832 (ISDB Mini) ADS-B Reception Field Test | Gough's Tech Zone

  2. Pingback: ADSB# Range Testing with the RTL2832U+R820T Tuner | Gough's Tech Zone

  3. montyw47 says: malware detected TROJAN (HEUR/QVN05.1.0000.Malware.Gen) in this zip file? Where can I get a clean copy of adsbscope?

    • lui_gough says:

      That’s likely to be a false positive – notice the HEUR indicating heuristic, meaning it’s not known bad but might share characteristics with trojan software. It also has Gen which is short for generic, indicating your antivirus doesn’t know what family of trojans it belongs to at all. If you don’t trust it, don’t run it, but don’t expect all antivirus to be accurate about detection. For a second opinion try Virustotal, where they will scan it with 40+ different engines and give you the results.

      – Gough

Error: Comment is Missing!