ADS-B Reception RTL vs Airspy Round 2

In my previous article I compared an older Elonics E4000 based dongle with an Airspy for ADS-B reception. Unsurprisingly the Airspy beat the performance of the RTL dongle in all areas. However a number of commenters here noted the performance of the E4000 dongles wasn’t great for ADS-B.

So I went out and bought an R820T2 dongle from Cozycave.I got the expensive one (£7.85!)

The test setup was exactly as before, the Airspy and RTL connected via the Minicircuits splitter. The Airspy providing power to the 1090Mhz preamp. Airspy was using ADSB Spy V1.0.0.14 and the RTL 820T2 was using ADSB# V1.0.11.1 (Both are now packaged with SDRSharp). Again the Airspy wasn’t correcting using FEC/CRC and was suppressing duplicates, the ADSB# was correcting and using CRC and allowing duplicates through.

The test was run on a week day for 24 hours from around 20:00 to 20:00.

The range results were very similar to the initial tests with the Airspy for most part having slightly greater range than the RTL, again in one specific direction over 50km more. But generally it was limited by geography with both radios exceeding 400km over the North Sea (Outer green ring is 400km).


The results from Virtual Radar showed in the 24 hour period the Airspy received over 31 million messages of which 31 were unusable and 111 had bad parity. Of these 2.2million were Airborne Position/Velocity.

In the same period the RTL820T2 recorded 22.3million messages of which 3 million were unusable, 5523 had bad parity. Of these 1.2million were Airborne position/Velocity.

So yes the commenters were correct the RTL820T2 does exhibit much better performance for ADS-B reception than its E4000 based counterparts. Unsurprisingly the Airspy does still exceed the performance of the RTL dongles by a significant amount but you have to draw attention to what an absolute bargain the RTL dongles are.

I am going to perform one final test where I compare the Airspy to the R820T2 again but this time using dump1090 with –no-fix to prevent the correction of data (duplicates will still happen). This should give a true like for like comparison. We already know what the results are but its worth demonstrating what the additional cost of the Airspy translates to in outright ADS-B performance.


Youssef Touil kindly supplied a version of ADSB# with duplicates suppressed, with the equivalent of dump1090’s –no-fix and with no phase “enhancement” that produce CRC valid noise. This would provide a direct comparison with the Airspy. This is available here should you wish to try it:

Just to remind this isn’t to make the RTL look bad, this is preferred by sites such as such as FR24 and PlanePlotter’s sharing network as the CRC is weak and it can result in erroneous data being uploaded to their servers.

The results over a 46 hour period were as follows :

Total Messages Received:
Airspy 65,150,313
RTL 32,973,049

Airborne Position:
Airspy 4,615,972
RTL 2,270,810

Airspy 533
RTL 635,549

So as near as makes no difference the Airspy is doing twice the number of messages compared to the RTL. Range was again limited by radio horizon/geography both radios exceeding the 400km range.

For the money you simply can’t beat the RTL however if you’re serious about ADS-B the Airspy is most certainly the way to go.

  1. Hi,

    Did you manage to get dump1090 to work with AirSpy?
    I’m having difficulties with this. If so, can you point me to
    the fork that you used?


  2. I didn’t use dump1090, use adsb_spy from


  3. OK, Anthony, thanks for that info.

    I just tried adsb_spy under Ubuntu V14 (kernel 3.13.0) but it doesn’t seem to work. I get this error when I run it:

    airspy_set_samplerate() failed.

    I think this is a USB driver issue.
    The device seems to be detected OK, as it’s serial number is being read back correctly. Airspy lib version is 1.0.9.
    If you have come across this issue already, I’d be interested in your fix.

  4. Check the firmware on your Airspy is upto date then ask on their IRC chat channel if you’re still stuck:


  5. Good stuff, Anthony. You are correct – the firmware was old. It spits out raw data to the terminal now, if I use the verbose switch. But how do I use this data and convert it into some readable format (which shows position, height, speed etc)? Presumably, the data generated must be passed on to some other program. I have no documentation.

    Thanks a million for your help,

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Human test : * Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackbacks and Pingbacks: