An Open Source VOR Receiver for Airspy and RTL-SDR

Thank you to Thierry Leconte (TLeconte) for writing in and submitting his new command line based open source software called vortrack. Vortrack is a simple VOR decoder which calculates the angle towards the VOR. It is compatible with both RTL-SDR and Airspy radios, and runs on Linux.

In the past we've seen several other posts about RTL-SDRs being used to decode VOR signals, but Thierry's implementation appears to be the easiest way to get a bearing straight away. You'll get the most use out of the software if you install it on a portable device like a Raspberry Pi and take it out for a drive as you'll be able to see the VOR angle changing then.

VOR stands for VHF Omnidirectional Range and is a way to help aircraft navigate by using fixed ground based beacons. The beacons are specially designed in such a way that the aircraft can use the beacon to determine a bearing towards the VOR transmitter. VOR beacons are found between 108 MHz and 117.95 MHz, and it's possible to view the raw signal in SDR#.

A DVOR Ground Station at an Airport. Source Wikipedia.
A DVOR Ground Station at an Airport. Source Wikipedia.
Notify of

Inline Feedbacks
View all comments
Edouard Griffiths


thanks to the work of Jon M7RCE and myself a VOR localization plugin is available in SDRangel: with which you can spot your position on a map taking the bearing of several VORs. It will take a little bit of practice to understand how SDRangel works.

Edouard, F4EXB.

Pat P

I can’t seem to get this to build correctly on mac – any advice?


thanks for your awesome softwares 🙂


Great, working fine for my local airport. Could you implement DME also ?


No I could not directly , for 2 reasons :
1) DME is question/response protocol : The aircraft send a coded pulse and the DME re-transmit it after a short delay. The delay between the transmission and reception of the re-transmitted pulse by the aircraft give the distance.
So, as we can’t transmit, we can’t get our distance from a DME
2) transmission and reception are separated by 63 MHz . It’s way to much for an RTL-SDR and even an airspy to receive the two signals simultaneously .

As Molax said, what could be done is just listening to DME signals transmitted by airplanes or DME station (but not the two together) , but I don’t really see a practical usage…
Yes man coud do mlat on transmitted signals, but the problem of clock delay between receivers is always the same. Mode-s mlat is possible, because man could estimate the clock delay between receivers by listening to adsb packets that give the location of a plane and allows to compute clock delays. We don’t have this possibility with DME.


I think that it would be possible to look at DME using 2 SDRs, one that is just the receiver (RTL-SDR) and another SDR that is a transceiver (HackRF One for example), which could then be used as your question and response mechanism to a DME system. SDR Angel has the capability to utilize the transmitter capability of the HackRF One.


It would be interesting to have similar decoders/detector for the DME part of VOR/DME and TACAN interrogations. They are TX from airplanes and therefore have much more coverage. Many planes still dont have or dont send ADSB-out. In a single receiver station can be useful to know the volume of air traffic in an area and multiple station could do multilateracion.


My vortrack program could only receive one frequency at a time now. It will be easy to make it receives multiple frequencies (just copy/past + glue from the frontends of my acarsdec or vdlm2dec programs). It will be great with airspy that have 10MHz bandwidth and so could receive all the VOR band in one shot.
But, in practice, it will not so be useful because VOR have been designed to be received by planes, up in the sky, not from the ground. Their ranges are not so great , and (at least where I live) there are not so much places where you can receive more than one or two VOR simultaneously.
I live at less than 10km from a regional airport that have a VOR and I receive it easily, but the next closest one is at more 50km and I did not receive it. Airports VOR are often low power because they are used only for the final approach, when “in the fields” VOR are more powerful.
If there is great interest (I mean lot of people that are interested in) I could add multi reception . But then, it will be very tempting to add automatic computation of the receiver position from the VOR radial and positions, but it’s a little more work


hello Thierry, I am based not far from the VOR of the Monts d’Arrée in Brittany. I use a QFH antenna (like for NOAA sat’s) and can get VOR from Nantes, Rennes, South UK… (I use them for aircraft bouncing and I try to do the same for meteors). Thank you for your program, will test it here.


While it is true that there are few places where one can receive multiple VORS from the ground, there are thousands of home built aircraft, many/most with Stratux (RPI -SDR based weather and traffic receivers) that could really benefit from a radio that could receive 3 VORs at once. I am not bright enough to do that myself, but I could supply code to facilitate computing lat/lon from 2/3 VORS, and figuring out what VORs are likely in range. And I will write code to use your existing VOR to combine sequential readings from 2/3 VORs when my home built aircraft is ready.


Have been thinking about this kind of thing quite a bit lately and just tonight decided to Google “SDR VOR” and found this latest article(s) – what a coincidence! Very interesting stuff, would like to try this out in the not too distant future to see how well it works. Would be interesting to utilize this to plot (and log) position fixes over time as well as logging GPS fixes to see how well they correlate. Would need at least two (or maybe three or more – don’t know what the capability of the hardware is) VORs being received