Friday, 8 September 2017

The Art of Rotator Control

Well,

I decided that there had to be an easy way to computer control my antenna rotators. I already have this on the Satellite antennas in Azimuth and Elevation, but not the "normal" antennas I have here for HF & VHF.

I looked on the big bad internet and found that Yaesu make a rotator interface for the G-1000 rotators that I have, but they are a simply staggering price.

So, there had to be a way....

The first thing I did was connect to the interface socket on the back of the rotator and figure out which pin did what. We have a voltage output that represents the heading, which plotted like this:


Using simple bit of maths we can then create an equation to calculate the voltage at any heading (to save me having to keep moving the antennas back and forth):


There are also two pins on the interface connector that you ground to turn the rotor left and right. There's also a fourth pin you can use to set the rotator speed.

I then figured that Arduino was certainly the way to go, but then I found this:

https://blog.radioartisan.com/yaesu-rotator-computer-serial-interface/

Now, this interface does all I want and a million things more, it's been written in a way that allows you to configure the bits you want and exclude the bits you don't.

To get this to work with my G-1000 series rotator, I configured the following:

#define AZIMUTH_STARTING_POINT_DEFAULT 0

in the rotator_settings.h file; that's about it!

That setting defines the rotator as one that turns around 0 degrees (rather than 180 being the end stop).

Once I had done that and defined the pins (I just used the defaults) and also defined Digital pin 10 as the speed output:

#define azimuth_speed_voltage 10

in the rotator_pins.h file

I compiled the code for a Arduino Nano with an ATMega328 processor (because that is what I had lying around).

I then built the simple interface needed:


Now, the next step was to calibrate the software. Instead of turning the rotator from fully CCW to fully CW (including the 90 degree overlap), I just used the equation I established above to calculate the voltage and set the bench PSU to deliver same.


Then once that was complete, I connected the Arduino board to my Radio Control PC, fought with COM port settings (a favorite hobby of mine) and then configured my logging software to use a rotator controller emulating the Yaesu GS-232B command set.


So now I have this display above, it shows where the antennas are pointing and allows me to click on a heading to send the antennas there. I can also configure the system to auto turn the rotator based on selection of DX spot if I like too.

Neat, egh?

No comments:

Post a Comment