The SRT Rotor Controller

Current Status

I received and soldered the first boards on 1/11/19. So far everything appears to work as planned.


I decided to start with the rotor controller first since getting the dish pointing was a decent priority. Newer versions of the SRT seem to use commercially produced controllers, but this one is driven by a custom circuit powered by a Basic Stamp I. Due to the stamps limited I/O there are some design trade-offs made that I decided to avoid by using an arduino. With the exception of some updated parts, the basic functionality is the same.

Principals of operation

The controller is a fairly dumb device. A PC does all the math to decide where the antenna needs to be pointed, and then tells the rotor how far to move each axis. In the gearing of the satellite dish there are two reed switches, one for azimuth(AZ) and one for elevation(EL). As the motors spin, these switches are closed 11.7 times per degree traveled. There are also limit switches on both axes to prevent the motors from going too far, these also act act as homing switches to reset the initial position when first turned on. The pulse lines from the rotor connect to the EL and AZ hookups along the bottom of the board, voltage dividers lower the input voltage to a safe level for the arduino. Interrupt routines read the pulses as they come in from the rotor.

Once the pc has determined how far to move the dish, a move command is issued:


AX specifies the axis to move, either AL or EZ. D specifies the direction, either P for positive or N for negative. Steps is the number of steps to move. Once this command has been received the controller will turn on the motor and enable an interrupt to count steps moved. When that number has been reached it will turn off the motor. In the original controller, the direction line for both motor drivers was controlled by a single pin, so only one axis could be moved at once. Since the arduino has more I/O pins, we will be able to move both axes at the same time.

Both motors are driven by LMD18200 H-Bridges. Since the arduino has more IO than the Stamp I’ve also added sensing for the Thermal flag’s. If either flag goes high a warning light on the PCB will be lit and the arduino will inform the controlling software. If overheating proves to be a problem, the header for the warning LED could be used to trigger a cooling fan. Another pair of voltage dividers step the 12V from the 18200’s thermal flag to a 4.8V signal safe for the input of a 74HCT32 OR gate. If either thermal flag goes high, the output of the OR gate will go high triggering an interrupt in the firmware.


The board is my first attempt at designing a circuit board with a CAD program, so there are sure to be some amateur looking spots. I used headers for the LEDs and screw terminals for the wire hookups, this should allow the board to be mounted in any project box without worrying too much about shape. All necessary files and a BOM are available from Git Hub


Table Of Contents

This Page