Search results for: VOR

Decoding and Plotting VOR Signals with an RTL-SDR: Part 4

Previously we posted about Will’s (aka hpux735) project [1] [2] where he has been using an RTL-SDR dongle to help understand and decode aircraft navigation VOR signals. VOR is an acronym for VHF Omni Directional Radio Range and is an older method of navigation used by aircraft which is used to provide a heading towards a VOR transmitter.

In his latest video, Will has been able to finish his code which allows him to actually plot some VOR data that he obtained from a flight on a map. In the video the VOR data is used to draw a heading line between three recorded VOR transmitters and the aircraft. The video clearly shows the accuracy of the VOR signals (about 1 degree) and shows what happens to the heading accuracy when reception is bad.

VORs and SDRs Part 4: Fusion!

Decoding Aviation VOR and ILS Signals with RTL-SDR

Previously we’ve posted about how hpux735 (aka William) was able to use an RTL-SDR to decode an aviation VOR navigation signal using GNU Radio and an RTL-SDR. VOR is an acronym for VHF Omni Directional Radio Range and is an older method of navigation used by aircraft.

Now over on YouTube William has uploaded a new video that continues his series on decoding VOR and navigation radio signals. This time he focuses on ILS or Instrument Landing System signals. The ILS is a radio system that is used to help aircraft find and land on the runway safely even in reduced visibility situations such as rain and fog. William’s video explains how ILS works and also shows how he is able to make use of the ILS signal in GNU Radio to extract navigation information.

William has also uploaded some supplemental material to his blog including the GNU Radio grc file and the baseband ILS signal data he collected whilst flying.

VORs and SDRs Part 3: ILS

Receiving VOR Radio Navigation with an RTL-SDR and GNU Radio

Over on YouTube user hpux735 has uploaded a video where he explores the feasibility of receiving VOR radio navigation signals using GNU Radio and an RTL-SDR. VOR is an acronym for VHF Omni Directional Radio Range and is an older method of navigation used by aircraft which is quickly being made redundant due to GPS navigation. VOR uses two signals, one master omnidirectional signal and one rotating directional signal. By doing some calculations on the received phase of these two signals it is possible to determine the angle of the aircraft from the transmitter.

In the video hpux735 explains and discusses the VOR signal and also shows how to use these signals for navigation with an RTL-SDR and GNU Radio flowchart. To receive the VOR signal he uses an RTL-SDR to record the VOR signal while he drives around with a car. Then later he uses his GNU Radio program to generate a plot that shows when he is moving and in which direction.

hpux735 has also uploaded some supplemental material over on his blog. In the future he hopes to correlate his VOR results with GPS coordinates that he will take whilst actually flying around.

VORs and SDRs part 1: Playing with angles

Studying VOR Signals with the RTL-SDR

VHF Omni Directional Radio Range (VOR) signals are used in aviation as a short range radio navigational system. Amateur radio hobbyist F4GKR decided to study these VOR signals by recording them using his RTL-SDR, and then analyzing them in MATLAB. On his post he shows his method of analysis and discusses his results.

VOR Spectrum and Waterfall
VOR Spectrum and Waterfall

YouTube Satellite Decoding Series

Over on YouTube @dereksgc has been putting together a comprehensive video series on weather, amateur and other satellite reception. His series starts with receiving images from NOAA APT satellites, then Meteor M2, as then goes on to talk about low cost V-Dipole satellite antennas, how satellite dishes work, and recently how to use Ku-band LNBs with a satellite dish.

If you're getting started with RTL-SDR and satellite reception, this video series may be a good introduction for you.

Downloading images directly from weather satellites || Satellite reception pt.1

SDRangel Now Available on Android: Mobile ADS-B, AIS, APT, Digital Voice, POCSAG, APRS, RS41 Radiosonde Decoders

SDRangel is a free open source software defined radio program that is compatible with many SDRs, including RTL-SDRs. SDRAngel is set apart from other programs because of it's huge swath of built in demodulators and decoders.

Thank you to reader Jon for writing in and noting that SDRangel has recently been released for Android as a free Google Play download. This is an amazing development that could open up many doors into portable decoding setups as the Android version supports almost every decoder implemented on the desktop version. Jon writes:

It includes most of the functionality of the desktop version of SDRangel, including:

  • AM, FM, SSB, Broadcast FM and DAB, AIS, ADS-B, Digital Voice (DMR, dPMR, D-Star, FreeDV), Video (DVB-S, DVB-S2, NTSC, PAL), VOR, LoRa, M17, Packet (AX.25), Pager (POCSAG), Radiosonde (RS41), Time signal (MSF, DCF77, TDF and WWVB) modems.
  • RTL SDR, Airspy, Airspy HF, LimeSDR, HackRF and SDRplay support via USB OTG as well as networked SDRs
  • 2D and 3D signal analysis in both time and frequency domain with statistical measurements of SNR, THD, THD+N, SINAD, SFDR and channel power
  • Satellite tracker, star tracker, maps and rotator controller

It should work on Android 6 and up. It’s a straight port of the desktop application, so although it will run on a phone, probably best used on a large tablet with a stylus or mouse.

SDRangel on Android
SDRangel on Android

A Software Based VGA AGC Implementation for the RTL-SDR

Thank you to Chris G for writing in and sharing with us his software VGA ADC controller for the RTL-SDR. AGC or 'automatic gain control' is an algorithm that attempts to automatically adjust the gain on the RTL-SDR in order to maximize the signal to noise ratio. The built in hardware AGC's on the RTL-SDR are intended for wideband TV signals, and work poorly with the narrower signals that SDR users typically deal with. However, it's possible that a software AGC implementation could be used instead.

Initially, I wanted to see how well things would work if I could manually control the VGA gain to avoid A/D overload within the 2832 chip.

I liked how things worked so I said: let's make things automatic! I implemented two variants of my AGC. One variant (my favorite) is an implementation of an AGC by Harris and Smith. It is an LMS algorithm that has equal transient response to a sudden increase in input signal magnitude and a sudden decrease in signal magnitude.

Since I'm doing this stuff in software, I operate on blocks of IQ data rather than operating on a sample by sample basis.

Initially, I observed limit cycles for at least two reasons:

  1.  The (approximately) 3.5dB step size in VGA gain adjust.
  2. The fact that when I receive a block of IQ data, another block is in transit.

This resulted me adjusting the gain while a block of data was in transit.

For item 1, I allow the deadband go be settable.

For item 2, I allow a "blanking time" to be settable. For my use case, If the AGC just made an adjustment, I skip making an adjustment while the next black is in transit.

Here is output of my 'get agcinfo' command.

AGC Internal Information
AGC Emabled : Yes
AGC Type : Harris
Blanking Counter : 0 ticks
Blanking Limit : 1 ticks
Lowpass Filter Coefficient: 0.800
Deadband : 1 dB
Operating Point : -12 dBFs
IF Gain : 11 dB
Signal Magnitude : 27
RSSI (After Mixer) : -24 dBFs

Note that my setpoint and gain adjustment works in decibels. That way, I treat the AGC as a linear system (it's actually uses an LMS algorithm) to simplify processing.

Now, I have used the same algorithm for my HackRF software.

I should mention that I implemented a pretty nice software squelch system for the rtl-sdr (and HackRF of course) if you have any interest in that.

I have a github repository at

I've thought about adding an I2C DAC whose output is connected to the VGA analog gain control line, but I really hate to butcher my v3 dongle. Having 1dB (or less) gain resolution would be nice though.

Another thing that I noticed is that, when writing to the tuner registers, the I2C repeater is enabled and you hear a spike in the demodulated audio. This may also occur (I haven't done that experiment) when disabling the repeater. Maybe not......

I have composed a report in,

If you get curious how I implemented my AGC, you can look at the file,

The header file is in radioDiags/hdr_diags/AutomaticGainControl.h.

TechMinds: Reviewing the RX888 MK2 Software Defined Radio

The RX888 MK2 is a software defined radio with 1 kHz - to 1.7 GHz tuning range and up to 64 MHz of real time bandwidth between 1 kHz and 64 MHz and 10 MHz real time bandwidth between 64 MHz - 1.7 GHz. It is available on sites like Aliexpress for about US$170.

Previously we posted about how a number of SDR software developers issued a warning about the RX888, noting that it has very poor driver support, and very poor developer support.

However, in his video Matt reviews the RX888 MK2 and has a favorable opinion of the device. The video begins with an overview of the RX888, shows the driver installation process and then demonstrates the device operating in SDR Console V3 in HF reception mode.

RX888 MK2 16BIT Software Defined Radio