Basic DIY Controller Examples
Here are a few examples that serve to demonstrate how to setup the hardware for a very basic working OnStep system:
- Just plugging it together.
- Here's a simple Arduino Mega2560 with a Spark Fun Big Easy Driver (A4988) and Bluetooth module. That's most of a working telescope mount controller (just need to add the Declination or Alt axis) and can be used with my Android App and/or a PC for control.
- Getting fancier.
- You could instead just use a commercially available solderless breadboard to plug everything in. This is a more complete and capable design based on the Teensy3.2 processor.
- One of my early builds.
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.
These cost $2 to $40 ea. The Mega2560, Teensy, ESP32, and STM32 and are all supported and well proven in the field now. 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.)
Most micro-controllers have a USB port which can be used for uploading firmware and also for connecting to OnStep once it's uploaded.
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.
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 www.current-logic.com 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.