Last edited · 148 revisions  



OnStep is composed entirely of off-the-shelf components and only modest soldering skill is required to assemble them. Costs are low and everything is readily available should something break. Stepper motors are, generally, very reliable. The device attaches to a computer over an USB interface and also requires a seperate power supply to run the stepper motors.
Total cost can be <$100, I spent about $250 on each of my conversions. There was some experimenting involved, the first motors I bought for the EM10b were a little weak and had to be replaced (wasted maybe $30.) The Hurst steppers on the G11 worked well enough, but gotos were slow. The NEMA17 400 step motors I now have on the G11 are better and cheaper. But making them work required machining (turning down) motor couplings, careful fabrication of mounting plates, fabrication of motor cables, etc.

A good place to start is the Configuration Calculator spreadsheet, it does what-if calculations for gear ratios and stepper motors.  Gear ratios for common mounts can be found here and here. The default values are for my setup. Please take note that the values are labeled here as they are in the OnStep Config.h file.

Main Controller:
These cost $2 to $40 ea.  The Mega2560, Teensy3.x, and STM32 and are all supported and well proven in the field now.  The ESP32 is also supported though that's a more recent development so not as well tested.  Our Wiki has PCB options and build instructions for each of these devices.  Be sure to take a look at the Micro-controller Performance Differences on the FAQ Wiki page.

  • The Arduino Mega2560 Rev. 3 (and clones) have a low accuracy ceramic resonator (on the main MCU,) instead of an accurate crystal oscillator like the other platforms have.  Note that almost all Mega2560's also have crystal oscillators and are advertised as such; It's on the USB to Serial chip but we need one on the main MCU.  If a GPS (or RTC) with PPS (Pulse Per Second) output is also used, the PPS signal then governs the tracking rate and solves the resonator issue on the Mega2560.  For a Mega2560 based OnStep we recommend using the MKS Gen-L all-in-one (3D printer) board since it has a crystal oscillator on the main MCU and is pretty much ideal in other regards too (inexpensive, pre-assembled, 5 axes, MOSFETs for dew heaters etc.)  

Serial/USB interface:

Most micro-controllers have a USB port which can be used for uploading firmware and also for connecting to OnStep once it's uploaded.  There are drivers that get installed on the PC that make the USB port appear to be a standard RS232 serial port, in other words a "virtual" Serial port.  A single program can connect to OnStep on this port.  On a PC this "program" can be the OnStep ASCOM telescope driver and above that ASCOM's POTH for sharing the connection among several ASCOM aware programs at the same time.  It can also serve as a LX200 protocol Serial connection instead for software like CdC (which supports ASCOM too) or Stellarium.

Optional Bluetooth, WiFi, and Ethernet:
Any of these devices connect to one of the micro-controllers other TTL Serial ports (designated SerialB, and if available SerialC, in OnStep's configuration file.) The Bluetooth option is probably the least flexible since it doesn't offer the Web Server and advantages of IP. The WiFi option should be the cheapest except when running OnStep on the ESP32 where Bluetooth is built in and requires no additional hardware.  None of these devices are very hard to setup, choose according to your needs.

The Teensy3.2 + W5500 (etc.) combination needs to have my Ethernet firmware uploaded.
The ESP8266 ESP-01 or WeMos D1 Mini (etc.) needs to have my Wifi-Bluetooth firmware uploaded. 

***The source code for both of these are present in the /src/addons directory within your OnStep directory***

Stepper Drivers:
Basically any stepper driver with step/dir inputs will work but the current chopping bi-polar stepper drivers are the ones usually used.  Keep in mind the stepper motor that you plan to use will have a current rating and that should be within the stepper driver's capabilities.  Below I cover the StepStick type drivers that we often use for this application.  For large mounts that require NEMA34 and up stepper motors there are step/dir interface equipped stand-alone stepper drivers that can run these powerful stepper motors.  Also step/dir interface equipped servo drives should work too.

For most users the StepStick style drivers as detailed in this in this summary are suitable to the task and the following are our recommendations:

  • In most cases the SilentStepStick TMC2130 and TMC5160 (read about the TMC2130 and TMC5160 before buying!) will offer the best overall performance and feature set.
  • The LV8729 is the budget champ but it isn't a good match for the Mega2560/RAMPS/Mks Gen-L builds (unless you are up for a little soldering and add jumper leads to plug in and allow OnStep to switch micro-step modes on the fly.)
  • The S109 is good higher current capable option that's also budget friendly.
  • The long available A4988 and DRV8825 seem to have more difficulties with smooth micro-step motion on a variety of hybrid stepper motors so their use should be limited to "tin-can" permanent magnet stepper motors, if they are used at all.  Their only positive attribute relative to other options is low cost.

Stepper Motors:
There two frequently encountered types of stepper motors.  Permanent magnet "Tin-can" and Hybrid.  Additionally these will usually be classified as bi-polar (4-wire) or uni-polar (usually 6 or 8 wire.)  Most of these stepper motors will work with a bi-polar driver (as we normally use.)  There are other 3-phase and 5-phase stepper motors that will not work with a bi-polar stepper driver.

The Tin-can steppers (of a given size) are less powerful than a Hybrid stepper.  They tend to come in 24 or 48 step per rotation models and often have a gear-head installed.  The Hybid steppers usually come in 200 or 400 step per rotation models and more often don't have a gear-head installed.

Use my spreadsheet to see what range of gear reduction is workable, keep in mind that sometimes the best design is the one that's easiest to implement, gets the job done, and is reliable.  It helps to test the stepper motors (and OnStep) "on the bench" before putting it all together.  That way you might notice/correct performance as well as some acoustic issues (noise) before spending more time and effort on a unworkable design.

Drive Design:
Often there have been others who have implemented and verified drive designs for common mounts, see the Showcase for ideas.  If you're designing your own unique mount/drive and have carefully considered requirements be sure to read over the Wiki sections on Drive Design and Stepper Motor Accuracy.

Motor Connectors:
I've used RJ11 connectors (just like the G11 digital drive has) for running lower power steppers. These accept the stock Losmandy coil-cords that go to both motors. They cost $7 ea. For the more powerful hybrid motors I use RJ45 or DIN connectors which can handle higher current.  Sometimes the controller gets built into the mount in which case you can just plug directly into the 0.1" headers.

Power Supply:
Usually a DC power supply in the 12 to 24VDC range runs the OnStep controller and provides power for the stepper motors.  This might be a 12V lead-acid battery, a modern lithium ion battery, an old laptop switching power supply, or an industrial DC power supply.

There are plenty of cheap DC-DC switching boost converters to provide 24VDC (if you need that) from about 12VDC if running on a battery.  Look on eBay or see or Pololu as a source for these.

  • Controller Power Supply:
    Usually the micro-controller running OnStep needs to be powered from 5V DC or 12V DC.  My designs have DC-DC converters to take the higher voltage motor supply and drop it to a level suitable for the micro-controller.  This isn't needed if the motor supply voltage is within the controller's supply range, for example a Arduino Mega2560 running from a 12V source is ok since its linear regulator onboard can handle turning 12V into 5V for the MCU.

DC Power connections:
Most controller designs mentioned in this Wiki have an internal DC rated fuse.  Often we use a typical coaxial DC plug at one end and fused cigarette lighter plug at the other if running everything from on a 12V source.

  • The fuse(s) should be of an appropriate rating (DC, current, voltage) and placement to guard against unintended short circuits at dangerous/high power levels for your setup.

Many find an suitable enclosure on eBay etc. and do lots of sawing/drilling.  There are some 3D printable case designs and STL files are available in this Group's Files section.  My most recent controllers use inexpensive aluminum enclosures purchased on eBay in combination with (easily) 3D printed back and front plates to achieve a refined appearance.

McMaster-Carr, SparkFun, eBay, and Amazon carry a variety of standoffs, screws, jumper wires/connectors (0.1" centers), pin/socket headers (0.1" centers), etc. to mount everything just right, wire things together, or help build a PCB based controller.