AZ-EL Radio Shack Antenna Rotator Controller

This project is still unfinished yet fully functional. While being in the LY land I used it almost daily to operate AO-7, FO-29 and AO-73 satellites, software is SatPC32.  In the future I plan to add graphic display 128x64 (at the moment feedback is made by Morse code).

This is LEO Satellites antenna rotator controller to be used for rotating wide beamwidth antennas like famous Arrow antenna or similar ones. The rotator used is simple Radio Shack TV antenna rotator also sold under Antennacraft and other brand names. The problem with these rotators that they don't have any feedback where antenna is pointing to. There is a nice article about installing Potentiometer inside rotator casing but it was winter and I had no desire to get onto the roof, so I decided to try to make a controller using rotator as it is, at the beginning I was kind 'a disappointed, the antenna will get off by 5 degrees or so even after couple of satellite passes, but the thing is, that when rotator crosses 0 degrees it gets resynchronized, so as long as some orbits that I operate are the ones that cross 0 degrees I should be fine. Besides if to look at 70cm 7el yagi beamwidth it is 60 degrees at 3db level so the pointing error  could be 30 degrees to each side, 3el 2m beam is even wider it is 70 degrees.

Controler uses EasyCom protocol, the format looks like that: AZxxx.x ELyyy.y
where xxx.x and yyy.y are degrees. Software is SatPC32 and the setup is:
SatPC32->Setup->Rotor Setup->SAEBRTrackBox

The sensivity is set to 10 degrees.

I didn't test it with other satellite tracking software. The easiest way to test is to connect Terminal Emulator through Virtual serial Cable and check what software is sending to a rotator controller, if you see AZ000.0 EL000.0 (the numbers might be different) then it should work.

The microcontroller for this project is used Arduino Nano.

Who doesn't like making their own PCB boards there is very simple and cheap solution, when I started, I didn't realize I could go that way:
instead of  Nano use Arduino UNO and 4 Relay Arduino Shield they are like 5$ each, sandwich them together and then hang those few remaining extra components or even use Arduino solderless board if you don't like soldering at all and the controller is ready.

D1, R9, C3, C4 also R11, D2, C5 these are the external interrupt chain components. Since the RadioShack type antenna rotators are used, when you turn on the controller next time there is no way to know where antenna is pointing to unless you always park it pointing the same direction. So when controller is shut of by unplugging or switching it off, C4 which is quite large capacity still feeds the Arduino microcontroller while R11, D2(4.7v Zener diode), C5 interrupts the processor which in turn executes a program to save current direction into EEPROM memory, so next time rotator controller is turned on it reads direction from memory and starts rotating an antenna from there.
Switch S8 and capacitor C9 are needed because Arduino are designed the way that when USB port is initialized it resets the microcontroller and if for some reason port is reinitialized (accidentally unplugging USB, or restarting software, restarting computer...) while you use Rotator Controller the Arduino is reset and when it starts it reads antenna direction from memory and these are the old bearings, they are from the last time you operated. C9 prevents this restart, but it also prevents you from uploading the program into Arduino microcontroller, so when uploading/updating the program S8 must be in neutral position, S8/Left also turns on the Piezo speaker which announce a new bearing in Morse code (later I will install a display too) S8/Right Morse is off.
These are the components you would have to add if you go Arduino UNO + Arduino 4 relay Shield way.

Above there is AntennaCraft or RadioShack antenna controller schematic with changes we needed to make:
Add the Jumper J2 and connect wires from Antenna Controller. Essentially all this controller is not needed and if to leave just the transformer would make nice enclosure for the project, but when experimenting I didn't feel comfortable without any feedback what is going on the roof up there, eventually I will use just the transformer.

To upload the code and adjust timings etc. we need Arduino software, it is free and can be downloaded from their web site.

The source code for Antenna Controller is here. When downloaded you will need to open it in Arduino IDE, compile and upload and also you may need to adjust time constants by changing two lines in the code:

For AC frequency 50Hz:

const int rotator_speed = 224; //time in ms to rotate one degree
const int inertia = 170; //movement after rotator stopped

For AC frequency 60Hz:

const int rotator_speed = 177; //time in ms to rotate one degree
const int inertia = 170; //movement after rotator stopped

The "inertia" constant adjust free movement of the rotor because when power is turned off it still moves about one degree and when folowing satellite there are a lot of starting and stopping so the error starts accumulating.

The adjust procedure I would recomend:
start to rotate like 90 degrees and adjust rotator_speed constant, when satisfied with results move 180 degrees and fine tune again, then 270...

There are some more pictures:

Good luck!

73 Jonas N0LY/LY3QA

1 comment: