arduino antenna rotator controller

| enero 23, 2014

arduino antenna rotator controllerArduino Rotator Computer Interface and Controller

This is an Arduino-based rotator interface that interfaces a computer to a rotator or rotator controller, emulating the Yaesu GS-232A/B and Easycom protocols which are supported by a myriad of logging, contest, and control programs.

It can be easily interfaced with commercial rotator control units.  With the addition of a proper capacity power supply and several interface components such as relays, this unit could also serve as a total replacement for a rotator control unit or serve as the basis for a 100% homebrew rotation system.

Several azimuth and elevation position sensors including potentiometers, rotary encoders, and I2C devices are supported.  The code is very flexible, modular, and easy to read allowing intermediate and advanced experimenters and builders to customize it.


  • Azimuth only and azimuth / elevation rotator support
  • Serial interface using the standard Arduino USB port
  • Control Port Protocol Support:
    • Yaesu GS-232A
    • Yaesu GS-232B
    • Easycom
  • Support for position sensors:
    • Potentiometers / Analog Voltage
    • Rotary Encoders
    • Pulse Ouput
    • HMC5883L digital compass
    • ADXL345 accelerometer
    • LSM303 digital compass and accelerometer support under development
  • LCD display (2 x 20 preferred, but any LCD over 15 columns supported)
  • Can be interfaced with non-Yaesu rotators, including homebrew systems
  • Directional indication on LCD display (North, South, North Northwest, etc.) along with degrees
  • Intelligent automatic rotation (utilizes overlap on 450 degree rotators)
  • Support for both 360 degree and 450 degree azimuth rotators or any rotation capability up to 719 degrees
  • North Center and South Center support
  • Support for any starting point (fully clockwise)
  • Optional automatic azimuthal rotation slowdown feature when reaching target azimuth
  • Optional rotation slow start (now with smooth ramp up)
  • Optional brake engage/disengage lines for azimuth and elevation
  • Buttons for manual rotation
  • Command timeout
  • Timed interval rotation
  • Overlap LED Indicator
  • Help screen
  • Speed Control, both single PWM output (compatible with Yaesu controllers) and dual PWM rotate CW and rotate CCW outputs and dual elevate up and elevate down outputs
  • Variable frequency outputs
  • Preset Control using either potentiometers or rotary encoders with optional preset start button
  • Speed Potentiometer
  • Manual Rotation Limits
  • Classic 4 bit, Adafruit I2C LCD, and Display Support
  • Optional tenth of a degree support with Easycom protocol (i.e. 123.4 degrees)
  • Park button
  • Azimuth and elevation calibration tables
  • Host unit and Remote unit operation for remotely located sensors using two Arduinos or ATMega chips
  • Works with hamlib rotctl/rotcltd

This unit can be interfaced with Yaesu rotator controller using the standard 6 pin DIN port on the back.  Older controllers may not have the DIN interface and will require opening and soldered connections.  This unit does not disable the rotator controller and all controls on it can continue to be used (although it is advisable not to attempt to control the rotator with manual controls and with the interface simultaneously.)  Other rotator controllers can be interfaced as well with a little research and design.

Basic Schematic

Arduino Rotator Computer Interface

Note: Refer to the pin numbers on the inside of the Arduino component outline (i.e. D1, D2, A0, A1, etc.) and not the numbers on the outside of it (1, 2, 3…).

The schematic above shows a basic setup supporting a 4 bit interface LCD, azimuth and elevation voltage inputs, manual buttons, and a single variable speed voltage output.  Additional controls and options such as an azimuth present potentiometer, azimuth and elevation preset rotary encoders, and brake control lines can be added as needed if the appropriate pins are chosen and set in code at compilation time.  If using with an azimuth-only rotator, all components related to elevation can be omitted.  So, again, keep in mind the above schematic is a basic unit that will work for most applications and additional features will require additional components.

I have this unit interfaced to a Yaesu GS-1000DXA control unit, and others have interfaced it to various other rotator control units.  I’m also building a complete azimuth/elevation rotation system called Frakenrotator.  This project illustrates how to build a complete system without a commercial control unit.  Consult this for additional ideas for interfacing, power supplies, and master/slave operation.


Radio Artisan website has simply done the hard stuff with the codes and secondly Anthony Stirk, M0UPU has made a shield / board for easy interfacing.

About the Author:

Filed in: Hamradio

Comments are closed.