[simpits-tech] Real VOR indicator

Rene Koopman rene at ejection.nl
Wed Feb 13 14:51:51 PST 2013


Nice Matt,

Must have taken some hours study ;)

Biggles.

-----Oorspronkelijk bericht-----
Van: simpits-tech-bounces at simpits.org [mailto:simpits-tech-bounces at simpits.org] Namens dabigboy at cox.net
Verzonden: woensdag 13 februari 2013 17:54
Aan: Simulator Cockpit Builder's List
Onderwerp: Re: [simpits-tech] Real VOR indicator


---- geneb <geneb at deltasoft.com> wrote: 
> On Tue, 12 Feb 2013, dabigboy at cox.net wrote:
> 
> > Thanks! I used my sound card. :)
> >
> Ok, that all by itself requires a lengthy explanation. :)
> 
> g.

LOL! OK, here's more or less what happened:

So I had been wanting to get my hands on a real VOR indicator for a while, with the basic plan that I could gut it and use the electrical bits to read OBS setting, and use PWM pins on the Arduino to drive the needle (since, as I understood it, the needle was just a simple D'Arsonval meter). I eventually purchased this KI-201C on ebay for like $30 shipped, mostly just to see what I could do with it. When I got to looking at the instrument and the documentation for it (found on the 'net), I realized that the signal driving the gauge only required three pins, and two of them were actually *output* for an autopilot connection....so only one pin was used for signal input. Intrigued, I started hitting the internet for more info........

Having sat through ground school years ago, I knew that the signal coming from a VOR station was "two different signals that vary based on your orientation to the station"....and that was about as far as a typical ground school instructor would go. It turns out, the composite VOR signal is pretty interesting. Each ground station puts out an omni-directional signal which is composed of a 30hz sine wave, plus the Morse stuff on a different frequency. The "rotating antenna" (actually a circular array of antennae on the ground that is electronically "rotated") puts out another 30hz signal, but is composed of a 9960hz carrier signal. The phasing of the two signals determines what radial you are on, and the 9960hz signal helps keep them "separated", so to speak.The 9960hz signal also allows the signal to be differentiated, if the two 30hz tones are 180* out of phase, for instance (otherwise there would be no difference between the 0* radial and 180*).

The complex thing is that the 9960hz carrier signal is frequency-modulated at 30hz, and where the 9960hz signal is at depends on where the 30hz signal is at in its phase. This is the hardest part.......I was getting the right idea, but wasn't sure exactly how to make it work. One thing I knew, that 9960hz was well within the ability of a computer's sound card to produce, so I *should* be able to actually generate this signal myself.

Then I come across a post on a message board from 2006 where some folks were discussing VOR signals. One poster was a ham radio operator and mentioned that he had actually written a program that generates all the signals for a VOR gauge. I emailed him and, thankfully, his address was still active. He generously sent me his entire program, source code and all! Unfortunately it was written as a Visual Studio project, and there was so much Microsoft fluff involved, I wasn't sure exactly how to read the code and apply it to my Python/Linux work. So, I fired up my barely-used copy of VS 2010, migrated his project, made some tweaks to get it to run (his program was from 2001, so it was written in an old version of VS), and actually got it to output the tones for each radial.

I then used Audacity to record each radial, 0*-359*, and saved them as WAVs. After that, I wrote software that calculates the current radial from X-Plane, then plays the appropriate WAV file.

The really tricky thing is that the calibration is funky....depending on what radial I'm at, the error is anywhere from no error at all, to around 30*. So, I had to write a calibration table to send the correct WAV to the sound card. I'm not sure if this is a problem with the instrument, weirdness with my sound card (the phasing is actually messed up by the soundcard, but it's supposed to be a constant error that you can allow for in software), or something funky caused by playing pre-recorded WAVs instead of generating the tone in real time. I've got it pretty well working within 4 degrees accuracy or so, but there are a few radials that are off by more than 20* still..........I think it's a problem with my radial-calculating code (the X-Plane SDK does not seem to have a dataref for current VOR radial, I have to subtract relative bearing to the VOR from current heading, then apply corrections to keep the resulting value within 0-360). But it is working, which is the main thi  ng. I don't think the calibration errors will be hard to fix.

If I wrote my software to generate the 30hz tone and the 9960hz modulated at 30hz, I'm pretty sure I could fill in the gaps of my knowledge through experimentation and study of the other guy's code.....but what I'm doing now with the WAVs appears to work just fine, so I will probably leave it.

Now, the astute observer might note that the signal coming from a real VOR station is actually an AMPLITUDE-modulated signal between 108mhz and 119.95mhz, and you would be correct! That's the carrier signal to broadcast to your plane. The NAV receiver in the plane de-modulates that AM signal to yield the "clean" VOR composite signal, which is what goes to the indicator. Theoretically, if I designed a device that takes my current signal and amplitude-modulates it at the above frequencies (basically, half of an AM radio transmitter), I could run the signal right into the antenna input of a real NAV radio and actually be able to use all the tuning and functionality of the real radio! This is overkill for me though, I already have nice Gables control heads doing my nav/com stuff (plus good NAV radios are over $1,000 a piece.........)

So what is all this magic inside the VOR indicator itself? It is simply a phase-shifter, and the VOR needle indicates how far out of phase the two signals are....turn the OBS knob until the shifted signals are in phase, and the needle will be centered.

Matt
_______________________________________________
Simpits-tech mailing list
Simpits-tech at simpits.org
http://www.simpits.org/mailman/listinfo/simpits-tech
To unsubscribe, please see the instructions at the bottom of the above page.  Thanks!


More information about the Simpits-tech mailing list