Cheap Rotor Controller

February 2012 - W9KE


The 'Cheap Rotor Controller' is a full function USB controller for the Yaesu G-5500 rotor system that can be built for less than $20. The low cost is achieved without any dodgy eBay LCD displays or jumble of parts and wires plugged into a protoboard. It works with SatPC32 and may work with other tracking programs that use the Yaesu GS-232 commands. In addition to being cheap it is full featured. Backlit 2x16 LCD display, in circuit programmable and USB interface. A picture of the completed controller is shown below. This project is not recommended for beginners. It does not have 'Heathkit' type instructions.

The low cost of the controller is made possible in large part due to a promotion Texas Instruments is running to showcase their MSP430 Value Line devices. For $4.30 you receive the board, two MSP430 chips, header connectors, 32Khz watch crystal and even a USB cable. You can download the free version of the Eclipse based 'Code Composer Studio' and you are ready to go.

Quantity Description Unit Price
TI Launchpad Development Kit
Hacktronics 16x2 LCD
2N4401 NPN transistor
4.7K 1/4 or 1/8 W resistor
0.01 mfd ceramic capacitor
8 pin DIN plug


The picture below shows the controller on top of the rotor control box. As you can see the controller is not only cheap but it is also quite small. The LCD display uses a 4 bit parallel interface which accounts for the large number of wires going from the LCD to the processor board.


The picture below shows the Cheap Rotor Controller from the back. The small piece of perf board holds the NPN driver transistors for the control lines on the rotor control box.

Below is the schematic for the NPN drivers on the small piece of perf board. The parts values are not critical.

The connections to the LaunchPad board are shown below.

MPS 430 Pin Connection
G-5500 UP NPN Driver
N/C (onboard USB port)
N/C (onboard USB port)
G-5500 DOWN NPN Driver
G-5500 LEFT NPN Driver
G-5500 RIGHT NPN Driver
Elevation analog signal GS-232A Pin 1
Azimuth analog signal GS-232A Pin 6


An introduction to the Code Composer Studio is presented here. Be sure to work through all the steps as shown.

Code Composer Studio Introduction

If this project looks like it is a bit much and you would rather try something easier take a look at the 'LVB Tracker Box' in the 'Store' section of the AMSAT-NA site. It is a classic design and is available fully wired and ready to go.


========== Construction Notes ==========

Be sure to read the documentation on your LCD display board for information on power, ground, back light and contrast connections. The R/W line on the LCD (Pin 5) is not used and must be connected to ground. The 32KHz crystal that came with the LaunchPad must be soldered to the board (it is used to sync the on chip digital oscillator). Be careful when soldering the crystal - it is tiny and easy to damage. 5 Volts to power the LCD display is available on the LaunchPad board at TP1 which is located near the USB connector. The LCD display I used is a 5 V device and works fine driven from the 3.3 V processor on the LaunchPad. If this bothers you use a 3.3 V LCD display or level shifters. Connect a 0.01 mfd ceramic cap between each of the analog inputs (P1.6 and P1.7) on the header connector to ground.

TI has been upgrading the processors they ship with the LaunchPad. One chip is plugged into the board and another chip is included in the box. They are usually not the same chip type. Most of the value line chips will work - be sure to update the references to the chip type. I used the 'MSP430G2452' chip that came with most of the LaunchPads I have purchased.


========== Calibration Notes ==========

Before you connect your Cheap Rotor Controller to your rotor control box turn the two 'Out Voltage Adj.' controls on the back of the G-5500 control box all the way down. After you have calibrated you rotor control box as described in the rotor manual you are ready to calibrate your Cheap Rotor Controller. Using the manual controls on the G-5500 rotor control box turn the Azimuth and Elevation values to their maximum setting (AZ 450 - EL 180). With the rotor set at maximum azimuth and elevation - while looking at the lcd display gradually increase the setting on the azimuth 'Out Voltage Adj.' control on the back of the rotor control box and stop when the value for azimuth displayed does not continue to increase. Back the control off a little bit and then repeat for the elevation 'Out Voltage Adj.' control.

The four lines shown below are contained in the 'rotor.c' file. These values are used to calibrate your rotor. Increasing a value will cause the displayed value to go down. Remember the G-5500 is an analog device that is not what anyone would describe as accurate. Yaesu claims "+ or - 4 percent" in their rotor manual. At 360 degrees 4 percent is 14.4 degrees. Even though it is not very accurate the G-5500 is way more than accurate enough for ham radio satellite use. Try not to worry if your readings on the LCD display are not exact. As they say "Hams often calculate the length on a computer to 4 decimal places. They then measure with a yard stick, mark with a piece of chalk and cut with an ax."


long azAdZeroOffset = 0; // adjust to zero out lcd az reading when control box az = 0
long elAdZeroOffset = 0; // adjust to zero out lcd el reading when control box el = 0

long azScaleFactor = 227; // adjust as needed to calibrate azimuth readings
long elScaleFactor = 568; // adjust as needed to calibrate elevation readings


Words of encouragement from G4ILO

Cheap Rotor Control - Beta 0.52 Source Code

73 W9KE Tom Doyle