Atlas / EQ6 MCU Replacement Project


This project involves the modification of the existing Atlas/EQ6 mount electronics. This should only be attempted by people experienced in electronic fabrication.

Performing these modifications will definitely void any manufacturers warranty and may damage the existing motor controller electronics if not correctly performed.

No responsibility will be accepted for any damage caused by following the instructions on this page, even if directly caused by errors in these instructions.

Having said that, I've done these modifications to two sets of mount electronics without incident. I don't think there is anything these pages that could not be done by any reasonably competent electronics hobbyist.

Table of Contents

  1. Warning
  2. Table of Contents
  3. Page Revision Information
  4. Introduction
  5. Copyright
  6. Serial Protocol
  7. Tools
  8. Preparing the MCU
  9. Software upgrading using the serial bootloader
  10. Software
  11. Hardware
  12. Occasionally Asked Questions
  13. Contact information

Page Revision Information

Page revision
9 May 2004
Attribed concepts from Anand Rajiva, with apologies for the ommission. See the software releases information for details.
4 May 2004
Added attribution information
25 Apr 2004
Update to include serial bootloader option
10 Apr 2004
Update software version, documented serial protocol including LX200-compatible commands
29 Mar 2004
Added programming instructions
10 Mar 2004
Added pictures and detailed modification comments
10 Mar 2004
Updated with fixes suggested by David Butler. Added notes on kits (lack thereof)
9 Mar 2004
Initial version, full of silly typographical and grammatical errors.


The Atlas/EQ6 mount in manufactured by Synta in China. While is it a very good mount out-of-the-box, it has some problems as far as more advanced uses are concerned.

Many of the problems stem from the desire to manufacture the mount as inexpensively as possible. There are several products that address the mechanical issues by replacing the stepper motors, gearboxes, spur gears and worm/worm gears.

Another area of concern is the original motor control electronics provided with the mount. While the electronics provide a set of basic facilities, they have a number of problems:
There are a number of after market controllers that try to solve these problems as well as adding GOTO capabilities to the mount. Typically these require the replacement of the motor and, in some cases, the gearbox and drive chain.

Although these controllers offer an impressive array of features they are normally quite expensive - in some cases the price of the controller and motors can rival the price of the mount.

This project takes a different approach. The existing Atmel 8751-clone MCU is replaced with an Atmel MEGA162 controller. This new MCU is almost pin-compatible with the existing MCU and offers several significant features:
The existing motor driving hardware and hand paddle are reused to minimize the cost of the modification, although the motor driver hardware is definitely not optimal.

The complete setup (existing hand paddle and modified motor driver hardware) give the mount control system the following capabilities:



Hand Paddle

Motor driver

This project can be constructed for as little at $10 US, but in most cases the anticipated cost would be about $60 US (including the in-system MCU programmer!)


Given the cost of Astronomy as a hobby I can see why people would want to make some money on their projects, but that isn't my interest!

This project is released under the GNU GPL. See the GNU foundation license page for further information.

Basically allows you to use and modify the firmware, with the main restriction that whenever you give the software to someone in a compiled form you must be willing to provide the source code (including any modifications you have made) under the same license.

The hardware modifications are in the placed into the public domain and may be freely copied.

If you wish to use this project as the basis of a commercial kit or modification it would be appreciated if:

Note that you will be expected to provide your own support - product specific questions will forwarded to you for resolution.

Serial Protocol

This firmware actually uses two separate protocols:
The supported LX200 commands are:

Return mount alignment mode (always 'P' for polar)
Start guiding east (RA RIGHT) at the current guiding rate
Start guiding west (RA LEFT) at the current guiding rate
Start guiding south (DEC DOWN) at the current guiding rate
Start guiding north (DEC UP) at the current guiding rate
Stop all guiding motion
Stop guiding east
Stop guiding west
Stop guiding south
Stop guiding north
Set guiding rate to +/- 0.3x sidereal rate
Set guiding rate to +/- sidereal rate
Set guiging rate to +/- 8x sidereal rate
Set guiding rate to +/- 16x sidereal rate

The custom set of commands are based on a different idea. Each command operates on a number (called the accumulator), or single bit flag that is set before the command is executed.

This reduced the number of characters required for each commands and is very simple to extend.

The commands that set the accumulator and flags are controlled by:

Clear the accumulator to zero and set the flag to OFF
Set flag to OFF
Set flag to ON
0 to 9
Add the digit to the accumulator
Indicates the number in the accumulator is negative

The following commands use the flag and/or the accumulator:

Start / stop guiding in DEC UP, depending on the flag
Start / stop guiding in DEC DOWN, depending on the flag
Start / stop guiding in RA LEFT, depending on the flag
Start / stop guiding in RA DOWN, depending on the flag
Stop all guiding

Set DEC backlash to the specified number of microsteps from accumulator. A good value seems to be about 100
Set then way DEC backlash is used depending on the value of the accumulator:
< 0:   Always finish motion in the DOWN direction
0:      Takeup backlash only at the start of motion (see below)
>0:    Always finish motion in the UP direction

Note that backlash is always taken up at the start of motion if the direction of motion has changed.
Set RA backlash to the specified number of microsteps from accumulator. Typically this should be set to zero as the direction of motion does not change.
Set the way RA backlash is used depending on the value of the accumulator:
< 0:   Always finish motion in the LEDT direction
0:      Takeup backlash only at the start of motion (see below)
>0:    Always finish motion in the RIGHT direction

Note that backlash is always taken up at the start of motion if the direction of motion has changed.

Set tracking rate used by the mount according to the accumulator. The following tracking rates are supported:
< 0:    Disable tracking (for testing or terrestial use)
0:        Track at sidereal rate
1:        Solar / planetary rate
2:        Lunar rate

Set paddle guiding rate used in 2x paddle movement mode. Set to +/- 0.3x if the flag is ON, or +/- 1x if the flag is OFF.

Set the gearbox reduction ratio to the value in the accumulator. Defaults to the correct value for the standard EQ-6/Atlas stepper gearbox.

Note: This does not take effect until after the mount is powered down.


Each firmware release comes with pre-built downloadable files for board using either 8 and 16 MHz crystals, so there is no need to build the software at all.

If you want to experiment with the software, add features, or just like to build it yourself then to will need the FREE GNU "C" compiler toolchain for the AVR-family of processers from the WinAVR project

To prepare a new MCU, or to upgrade the software in the MCS (either via programmer or serial port) you will also need  AVR Studio 4 from Atmel (this is free), and some sort of programmer.

AVR Studio 4 has a complete assembler language development environment including a (mostly functional) simulator that may be useful during debugging. The supplied Makefile creates the necessary files for simulator.

The programmer (remember - you probably don't need one) is soemwhat less free. Atmle make two inexpensive alternatives:
  1. The STK500 is a combined development system and programmer. It's the easiest way to get project off the ground having extra serial ports, switches, LEDs and other support hardware. It's currently available at Digikey for $79 US.
  2. The AVR ISP is the cheapest commercial programmer I know of. It's currently available at Digikey for $29 US.
There are also a number of web projects to build your own programmer. You'll have to do you own searching for those :-)

Preparing the MCU

A MCU must be prepared before use. The MCU can be prepared either on-board (using either the STK500 or AVR ISP), or simply plugged directly into the STK500.

If you need a MCU prepared please contact me and we should be able to organize something.

The preparation is slightly different depending on whether you will use serial port upgrading or in-circuit programming.

To prepare a MCU for ICP programming set the following fuses:
None of the lock bits need to be changed.

To prepare a MCU for serial bootlader upgrading:
  1. Set the fuses as follows:
  2. Set the locks bits to protect the bootstrap area from reprogramming via the MCU (the bootstrap cannot be upgraded using the bootstrap!)
  3. Download the serial bootloader to the MCU. See the AVR Serial Bootloader Project for the bootloader source and object code.

Software upgrading using the serial bootloader

The serial bootloader allows the MCU firmware to upgraded without a special programmer or removing the MCU from the board.

You will need the AVR Prog program from the (free) AVR Studio 4 package from Atmel.

For five seconds after power-up the serial bootloader waits for AVR Prog to connect to the board. If AVR Prog does not connect within five seconds then the main application is executed.

See the AVR Prog manual for further information on AVR Prog.


The source code is currently completely implemented in "C". The releases are:

Release 2
Updated with LX200 command support. No bugs to fix. Included pre-built HEX files for modifications using both 8 and 16 MHz crystals.

Added limited LX200 serial support for autoguiding and support for different gear system ratios, both inspired by code contributed (but not used) by Arand Rajiva. Many thanks.
Release 1
Initial release after field testing.


Note that only the existing motor controller is modified. The hand paddle does not require modification.

Before modification the motor controller looks like:

Unmodified EQ-6/Atlas motor controller board (panel removed)

Note that this is the "new" version of the controller with the polar scope illuminator. The modification is the same for the "old" and "new" board versions.

Crystal, C4 and C5 removed

Cut track leading to pin 9 of the MCU

Once the original MCU is replaced by the programmed MEGA162 MCU, the mount controller should be operational again. The MCU firmware defaults to a configuration that is compatible with the original MCU firmware, except that micro stepping would be used to drive the RA stepper motor.

To get the most benefit from the modified drive controller, it will be necessary to build the hardware for the serial port and, perhaps,  the parallel guiding input as well.

The second part of the modification is to construct a sub-board to carry the RS232C level converters and the parallel guiding input pull up resistors. See the circuit diagram for circuit details.

The prototype sub-board was constructed on "veroboard". This isn't readily available in the US, but there are several alternatives. The "clone" veroboard used came from Jaycar Electronics in Australia, but it can also be ordered from R+D Electronics in Milpitas, CA.

Connectors are used on both ends of the cable in this prototype, but I would suggest soldering the wires for the sub board directly (carefully!) to the motor controller board.

Righ angle connector pins soldered to CPU

Note that the connector is mounted at an angle and the power wires are covered in heat-shrink tubing to make sure they don't touch nearby solder pads. The lower three pins are soldered directly to the MCU socket pins.

ICP header installation

Partially completed sub board

Completed sub board

Top plate with slot for cables and holes for box mounting

Top view

Bottom view

Occasionally Asked Questions

Since this page was first put up I've had some questions. Most are addressed in the text, but a few really don't have a sensible place, so I've put them here.
However if there is anybody else who is reading this who wants to offer a kit, please go ahead! I'd be happy to help you (and I don't even want a share of the profits :-)

Contact me if you're interested in producing a kit, or a pre-built version of the modification - I have a reference PCB design that you may want to use. You might also consider performing the modification for other people.
It's a common misconception that the GPL prevents the manufacture of devices using the GPL software. Nothing about the GPL prevents you from using the software, as long as you meet the conditions of the license.

Contact information

If you have comments or corrections please contact me at