GR-Air-Modes GNU Radio ADS-B Decoder for the RTL-SDR Updated

Reddit user bistromat has recently updated the GNU Radio based Mode S ADS-B decoder gr-air-modes. He has added Google maps view, a legend and zoom support to the azimuth map view, and has restructured the underlying code. The new gr-air-modes requires the latest GNU Radio 3.7 version.

Check out the original post here (with cute puppy included), and clone the latest version via github from the following link.

gr-air-modes google maps screenshot


Notify of

Inline Feedbacks
View all comments

I have been using the gnuradio-3.7 branch of gr-air-modes on Ubuntu 12.04LTS. A couple of things I ran across are:
1: Using my “Newsky” realtek dongle would experience both modes_rx and modes_gui to fail on start; neither would recognize the dongle; I edited modes_gui and modes_rx as sudo to remove the ‘_c’ extension originally at the call ‘source_c’ call for the dongle device. (line 416 of original modes_gui file):
self.u = osmosdr.source() #removed _c that originally was at end of ‘osmosdr.source’
Find similar in modes_rx file and do same. (Both files are located in /usr/local/bin)

My second failure with the gnuradio 3.7 branch of gr-air-modes was a failed call to ‘gr.firdes.low-pass’ at line 432 of the original modes_gui file. (same but different line number in modes_rx as well).: Call needs to be filter.firdes. not gr.firdes.

Once these were fixed, both apps work well. Note that the gr-air-modes ADS-B errr correction is a bit less forgiving than other ADS-B decoders, It definitely needs a clear view of the sky with a quality antenna and quality cable to yield full results. I also fund that I had to modify the freq variable in both modes _rx and modes_gui for my specific dongle. My RTL requires a +55 ppm correction to center on a called frequency. This should not matter for ADS-B due to the wide bandwidth of the transmissions; however, I have still found definite better performance tuned to 1089.8965. This will differ from unit to unit, I used gqrx to determine the offset and correction by tuning to various known transmitters. Also note that gain setting and threshold are quite particular using RTL-SDR dongles. get a good antenna, good cable and good location, then look at the received data; if you see many messages that say “No Handler for Message …” you need to tune your gain and thresh settings. My best luck using an aircraft transponder antenna and great cable has been set at 45 to 50 gain with a 4 db threshold and pulse matching filter set to on. you MUST close the application and totally re-open to make changes; simply stopping it, making changes and restarting from the gui start-stop button yeilds unpredictable dongle performance.

In the US, you wont see many full ADS-B DF-17 position reports as of yet except near international airports. US is a bit slow at mandating ADS-B, but you can still see the S-Mode TCAS messages in the raw data; and occasionally see verbose of collision avoidance messages.

Good luck, once it works, it is quite enjoyable . (only make any of the above changes IF you have the same symptoms upon trying to start the application(s).


wow thanks, airmode didn’t work for me, but with reseting the frequencies it works fine! Thanks alot for that info with gqrx!