Last edited · 128 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 this 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 file.

Main Controller:
These cost $12 to $40 ea.  The Teensy3.x and Mega2560 are well proven in the field for years.  The STM32 and ESP32 are less well tested but appear to be working properly.  The Teensy3.x, STM32, and ESP32 all use crystal oscillator's.  Most Arduino Mega2560's have low accuracy ceramic resonators (on the main MCU,) but not all.  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 I usually 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 (inexpensive, pre-assembled, 5 axes, MOSFETs for dew heaters etc.)  

Be sure to take a look at the Micro-controller Performance Differences on the FAQ Wiki page.

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. None of these devices are very hard to setup, choose according to your needs.

The Teensy3.2/W5500 (etc.) needs to have my Ethernet firmware uploaded.
The ESP8266/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***

The Bluetooth modem sometimes needs security settings, etc. manually changed via. a terminal (see the device documentation.) Users have had success with the HC05/HC06/Sparkfun Bluetooth Silver. I generally recommend the Sparkfun Bluetooth Silver (an RN42, setup like this). Most (all?) HC05/06 devices (3.3V) need level shifting if connected to a Mega2560 (5V) OnStep.

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 mounts that require NEMA23, NEMA34, etc. stepper motors there are step/dir interface equipped stand-alone stepper drivers that can run very large powerful stepper motors.  Even step/dir interface equipped servo drives should work.

For most users the StepStick style drivers as detailed in this in this summary are suitable to the task. 

The A4988 and DRV8825 seem to have more difficulties with smooth micro-step motion on a variety of hybrid stepper motors. 

The LV8729 and its equivalent, the RAPS128 are better than the basic A4988 and DRV8825.

There is support in Alpha for the S109 (low cost, high current) and ST820 (medium current, high micro-stepping), but they have not been tested. If you do test them, please report your finding to the mailing list.

Experience has shown that the SilentStepStick TMC2100 and TMC2130's (read about the TMC2130 before buying!) will offer the best overall performance in most cases.  The SSS TMC2208 offers some compelling features but is also difficult to work with vs. the TMC2100 or TMC2130.

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.

Keep in mind that these are general recommendationsThe stepper motor performance (possible mid-band resonance issues,) stepper driver performance, drive voltages, acceleration settings, mass, quality of mount construction (drive efficiency,) and any tendency of to be out of balance (and probably other things not coming to mind at the moment) all make it difficult to know how a design will perform before testing.

  • Use the stock steppers motors:  In some cases you can use an older mount's stock stepper motors (not designed for goto) to make a slow goto drive.  These steppers are usually tin-cans with a 120:1, 150:1, or even 300:1 reduction built-in (which in combination with a typical 144:1 worm/wheel gives a very high overall reduction.)  To reach goto speeds requires operating the stepper motor at speeds far above optimal.  Fast enough and the motor stalls (stops moving but vibrates making a "singing" noise.)  To reach higher speeds overcoming inductance by operating at higher voltages (relative to the stepper's design voltage) helps.  Unfortunately these older drives often have uni-polar stepper motors which which were designed for 8 or 12V which limits performance (high inductance.)  Usually these efforts result in about 0.25 to 0.75 deg/s speeds.  I call 0.5 deg/s the lower limit for goto (very slow but useful.)
  • Use a Hybrid stepper: Depending on the NEMA frame size (and available torque across various speeds) and overall reduction they are driving into, goto speeds for a typical amateur telescope can range from 2 deg/s up to dangerously fast.  Into a 360:1 reduction a NEMA17 400 step motor is known to work well with no additional reduction (for G11 mounts, 60 lbs payload.)  About 360:1 is where a 400 step motor's arc-sec/micro-step reaches a nice level (0.28".)  This is based on a 32x micro-stepping mode do not count on 128x or 256x micro-stepping to improve tracking much there is very little torque & accuracy between those tiny steps.  Also, 360:1 is about where torque from a NEMA17 reaches respectable proportions into a low efficiency worm-wheel [See Figure 2.]  More optimal from a goto speed (and efficiency) standpoint would be a 200 step motor into a 720:1 or 1440:1 reduction [See Figure 1.]  Note that not all hybrid stepper motors are designed to operate at high speeds with the typical 12VDC or 24VDC power supply levels we run at so pick a low design voltage stepper motor (so it's running at several times the design voltage) if the reduction ratio is higher.  Just be sure pick a stepper motor that stays within the current limits (with consideration to heat dissipation) of the stepper driver you plan to use with it.
  • Drive design and Torque: Note that 1 lb-ft is a force of 1 pound applied 1 foot from an axis of rotation.  So if applying 5 lbs of force 2 feet from an axis of rotation moves your telescope around with confidence that's about 10 lb-ft.  Perhaps add another 5 or 10 lb-ft "coverage" for wind, out of balance, mechanical aspects, acceleration (inertia,) etc. to arrive at a rough estimate of the required torque (about 15 or 20 lb-ft for this example.)  The charts below give numbers for two fairly common types of NEMA17 frame stepper motors.  Smaller lower torque and larger higher torque steppers exist.

    Figure1 :

    Figure 2:

  • The Oriental Motor website: This is an excellent resource for comparing stepper motor coil resistances/design voltages and performance (torque vs. speed charts.)  The Hurst website and others have similar information on Tin-can stepper motors.

Motion Transfer to Axes:

Depending on your mount's design, you may be used transfer gears, or belts and pulleys. If you are using pulleys and belts, this Timing Belt Calculator will provide you precise values for the belt length, reduction ratio, ...etc.

Members report some of the belt and pulleys for EQ5 they have used, from eBay.

Motor Power Supply:
I use a DC-DC converter to provide 24VDC (from 12VDC) to run my motors, again an ebay item. See or Pololu as a source for these too.
Some steppers will be perfectly happy at 12VDC from a battery.

Controller Power Supply:
I also use a DC-DC converter to take the higher voltage motor supply and drop it to a level suitable for running a Teensy3.2 (3.6 to 6V) or Mega2560 (7 to 12VDC.) For the Teensy3.2's I use the Murata OKI-78SR-5/1.5-W36-C ( to convert the 24VDC motor supply down to 5V. Pololu sells similar devices too. This isn't needed if the motor supply voltage is within the controller's supply range. In some cases you could also just run the controller from a USB connection.

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 used a DIN connector which is rated for higher current. For the EM10b I just plugged directly in (0.1" headers) since the controller is built into the mount.

DC Power connections:
I added a jack (to the case) and a obtained a cord with matching coaxial DC plug at one end and fused cigarette lighter plug at the other. The fuse should be of an appropriate rating for your setup. Costs about $10. My newer controllers also have an internal fuse.

Originally I used a McMaster-Carr case #7593K32 (Compact ABS Electronics Enclosure, 6.9" Height X 4.9" Width X 2.5" Depth, Black) to hold everything, this cost $11. Precise drilling, filing, etc. was required to make it look nice. For my newer OnStep Mini PCB builds I used a 3D printer to make the cases (and the EM10 controller's face-plate.) The STL files are available in this Group's File section.

McMaster-Carr and SparkFun carry a variety of standoffs, screws, jumper wires/connectors (0.1" centers), etc. to mount everything just right. I used jumper wires between all components in the enclosure, the Arduino can be unplugged and replaced in ten minutes, ditto for the BED's, should a motor go it's not too difficult to replace either.