Introduction: OpenAstroTracker - a DSLR Tracking & GoTo Mount for Astrophotography

About: I'm a mechanical engineering student from Germany. I like everything space-related, astronomy, tinkering and making things

Astrophotography is an amazing hobby. The ability to capture the wonders of our cosmos from your backyard is truly addicting and perspective changing.

Anyone who has dabbled into the hobby (or tried to do so) knows that it is probably one of the most expensive hobbies one can get into. Surprisingly it is not the camera or lens/telescope that is the most important, it is the mount! Usually, even on proper telescope setups, the mount costs twice as much as the telescope. All of the pictures I link here are taken with sub 50€ vintage lenses and a old astromodified Canon 450d (~100€) (and the OpenAstroTracker of course).

Why is the mount so important? Because the earth is rotating, and it is rotating quite fast! Take a 200mm lens and everything will have drifted out of view in just 15 minutes. To add to this, most objects in the sky are very faint, so it is necessary to expose for a long time, up to several minutes. During an exposure the mount has to compensate earths rotation very precisely so nothing in the image will have moved, not even as far as a pixel.

The OpenAstroTracker does this very well, and more importantly, cheap. I have opted to use the cheapest possible components, so the overall cost of non-printed parts are around 50€. Because the mount acts as a giant gear itself, it is possible to use cheaper motors. Because the mount is fairly large, it was possible to add a second motorized axis to add a GoTo function. This means you can put "Right Ascension" (RA) and "Declination" (DEC) coordinates of an object into the Arduino and the mount will point the camera there automatically. This can save quite some annoyance searching for something that you cannot even see in the live view of your camera.

Some more things:

This is not a miracle device that will magically give you beautiful pictures. Just as every other piece of technology, be it 3D printers, cameras, or commercial trackers, this will take some time to get used to. So please dont expect perfect results on first try.

Also, Astrophotography is an incredibly complex thing, the learning curve is very steep. I will supply you with as many guides about the mount as i can, but you will have to be able to do some research about general astrophotography on your own. There are plenty great guides out there.

There is a autoguiding add-on, the OpenAstroGuider. This is optional and only necessary for high focal lengths or very long exposures.


  • 3D printer with a bed size of at least 200x200mm
  • please see the shopping list for non-printed parts. There are some links to shops supplied, but please do some research and deal-hunting on your own. All parts should cost around 50€, not more than 70.
  • around 500g filament, I recommend normal PLA because it flexes less than other materials

Step 1: Selecting the Right Parts to Print

THIS INSTRUCTABLE IS CURRENTLY OUT OF DATE! Please use the guides here and here

Uploading all files here would be too confusing, so please get them either from Thingiverse or GitHub.

NEW: See the printed parts chooser to make it a bit less confusing!

  1. If you have a printer with a bed size of 200 to 220mm x/y, get the "for 200x200 printers" .rar file and print those files instead of the normal ones. Be aware that the parts for all latitudes are contained in that .rar, so choose the right one! If your printer is larger just ignore those files.
  2. Find out what Latitude you live in. Useful site: . Southern latitudes work the same as northern ones!
  3. Within the files, you will find some archives called e.g. 30deg.rar, 50deg.rar etc.. Choose the one which is closest to the latitude you live at. So if you live at e.g. 38°N you choose 40deg.rar and print those parts. If you happen to live just between two "versions" i recommend rounding up, so if you live at 35° take the 40deg files. You might have to lift the backside of the mount a couple centimeters.
  4. The first file to print should be the "lens adapter". It is part 09, the .scad file. I will explain how to use it in the next step.
  5. I recommend printing part 15, the pulley, and see if your printer can handle it well. If not, buy pulleys as described in the shopping list.
  6. The numberation of the parts roughly follows the build order, but it doesnt really matter in which order you print the other parts.

What parts:

Latitude specific parts:

  • each part once
  • Note that 20deg has its own version of 01a

All latitudes:

  • part 05, twice
  • part 05.1 twice
  • part 12: twice
  • part 15, twice

If you have bought pulleys, take the parts 11 and 14 with the addendum _low.

If youre planning to use a lens that has a diameter larger than 75mm, use the parts 07 and 08 with the addendum _biglens. If youre planning to use the OpenAstroGuider, get those parts with _guidescope. If youre planning to use a big lens and the guider, just use _biglens, the mounting is included in the lens ring instead.

Update May 2020:There is a new camera mount as a alternative to the "lens ring" mount. It looks like this. It has several advantages over the lens ring mount, but needs more parts. Check the shopping list for that. The files for it are in the "universal_mount.rar" and replaces the parts 07, 08 and 09.

I highly recommend checking the remixes section of the OpenAstroTracker, as well as this collection. The community is actively making add-ons, fixes and gadgets for the OpenAstroTracker and this is how to find those.

Recommended print settings:

For all parts i recommend at least 4 walls or more. Use around 20% infill and take a strong pattern like grid, cubic, gyroid. 0.2 layer height.

Part 12 & 13: Use a low layer height, .1 or .12 to get the threads nice.

Part 15: this is the pulley, use 0.1 layer height and a very low speed. This has to be perfect. Buy them if you cant achieve that, they are a few bucks and cause major problems otherwise.

Step 2: How to Use the Lens Adapter Generator

Disregard this part if youre using the "aluminum extrusion mount"

I recommend printing this part at first. If you cant make it fit, the mount will not work. However, check the remix section of Thingiverse, there are some different solutions by other people.

There are currently 3 different lens adapters:

If your lens has a diameter smaller than 75mm, use the normal 09_lens_mount.scad.

If your lens is larger, use _biglens.

If you want to use a big lens and the guidescope use _biglens_guidescope.

You will need OpenSCAD

Take a look at an example for my lens.

  1. Start by roughly estimating the center of gravity of your lens with the camera attached.
  2. The coupler is going to be 30mm long, so you need measurements of 15mm in either direction from the center of gravity.
  3. Measure the first diameter. This is 67mm for me, so i put that into Diam1.
  4. The next diameter for my lens is the edge of the focus ring, so i put 65mm into Diam2.
  5. The distance between these points is High1; 9,5mm for me. First section done.
  6. The rest of my lens is flat, so i measure a diameter of 62mm and put it in Diam3 and Diam4.
  7. Because there are no more diameter change, I put High2 as the rest of the length of the coupler, which is 30mm - 9,5mm = 20,5. I leave the other values at 0.

All High values have to add up to 30mm. If your lens is flat, put its diameter into Diam1 & Diam2 and put High1 to 30. Leave the rest at 0. I recommend adding 0,5mm or more to the diameters as tolerance and definitely put some isolation tape (or similar) into the coupler to not scratch your lens. Also, dont screw this too tight! It will hold fine with loosely tightened screws.

If your lens has little mounting area, reduce "length" to accommodate for that.

Step 3: Assembly

For a rough assembly guide, please see this document.

Some more notes:

  • The belts should be tight, but not super tight. If they sound like a guitar, thats too tight! If they visibly sag, thats too loose.
  • If the screw holes are too tight, widen them with a knife or hex key or similar.
  • The bearings on the RA/DEC assembly should have a really tight fit. It is normal that you need brute force to get them on. They should under no circumstances move on their own or from the weight of the camera. If they do move, check your printers calibration or add some el. isolation tape around the pole they sit on.

Step 4: Wiring

StepperRA is the one that sits on the RA axis, so the big wheel.

I recommend making the wiring for DEC long and route it over the back and over one of the poles. Leave enough room so the wheel can rotate fully without any cables dragging.

Note: It is normal that the steppers get warm, but if they get too hot to touch you have to reduce the voltage on the buck converter! It has happened that the steppers caught fire because they got too much juice, so please have an eye on the temperature!

Step 5: Uploading the Code

Download the latest version of the Arduino IDE.

Download the latest firmware for the OpenAstroTracker from here. Check this page frequently, development is very active currently and theres new features and bugfixes almost weekly.

  1. Unzip the code somewhere.
  2. Find the "OpenAstroTracker.ino" and open it with the Arduino IDE. Note: The .ino files have to be in a folder called "OpenAstroTracker"
  3. Under Tools > Libraries, search for "accelstepper" and install the one by Mike McCauley
  4. Connect your Arduino to a USB port with a USB-B cable
  5. Under Tools, make sure the right board, port and programmer are selected. The Port will be different depending on your computer, however on windows it is almost never COM1
  6. Hit upload (ctrl+u)

Note: before uploading you will have to set some settings in the code. Don't worry its very easy. The first thing to do is to set which version of the RA-ring youre using. On the first tab of the code, find the lines that start with "// int RAStepsPerDegree". If youre using the v2 ring (the one with the belt grove instead of the ridge) remove the two slashes on the bottom one. Also, add two slashes infront of the "#error" line.

Now find the "Globals.h" tab. Here you can enable or disable various setting by simply uncommenting or commenting them. For example, if you want to use your computer as a remote control, you have to uncomment "#define SUPPORT_SERIAL_CONTROL". If you for example dont need the Points of Interest menu, simply add two slashes // infront of "#define SUPPORT_POINTS_OF_INTEREST". Note: the Arduino Uno has limited memory and enabling all functions will take too much storage.

Several cases for the Arduino can be found either here or here

See the LCD guide for how to use the Arduino.

Step 6: Using ASCOM

Now this is the thing where the OpenAstroTracker really shines. Theres lots of trackers out there, also the commercial ones, but they lack one thing the OpenAstroTracker has. Full fledged, two axis GoTo. This seems cool at first, but let me tell you what this means and why it is not only cool, but straight up amazing.

But first of all, what is ASCOM and what does it have to do with the OAT? ASCOM is a communication software that is used by pretty much EVERY astronomy software and hardware. If your hardware can communicate with ASCOM, it can also communicate with every software. So if you happened to make a cool little 3D printed mount, you dont have to teach it 50 different protocols by 30 different companies. You just need to teach it ASCOM and it will be compatible with everything, hardware and software.

A showcase what this means for the OAT: I put it outside, plug it to my laptop and start a astrophotography program like NINA or SGP (or literally any software that supports ASCOM). I tell that program to connect to the OAT and my camera (because yay, ASCOM is even compatible with most DSLRs) then choose some target. I tell SGP to move the mount to the coordinates, take a picture over the camera, plate solve that picture, see if the camera is pointing exactly where its supposed to, and if necessary send a correction to the mount and repeat until its <20px exact. Amazing. And i havent touched anything during that procedure, its fully automatic. I could also tell the software to do that at 2am while i'm asleep, take pictures until 5am and then park the mount and stop everything. Now thats something your average DSLR mount simply cannot do.

How to install and configure ASCOM: download the latest driver from the GitHub releases and install it. To bring up the configuration you need to open any ASCOM program first, Stellarium for example. Configure a ASCOM telescope and in the devices choose "OpenAstroTracker Telescope". Hit properties. Choose the right COM port here and enter your precise Latitude and Longitude. Click ok in both windows and thats it. You'll only have to do this once (except if your COM port changes), the next times you can connect to the mount straight without configuration. Easy.

I have to give a shoutout before the next step. This software has not been written by me, my coding skills are FAR too bad for something like this. All credit goes to the amazing community of r/OpenAstroTech and the people who have written this code.

Step 7: Calibration

Now that the mount is build and all cables connected is it time for calibration. This is sadly necessary because slight deviations from printing can have a big effect. Also some steppers seem to behave different than others.

A complete write-up for the calibration can be found here

Some more notes on that:

  • Additionally to the 47mm method, center the RA wheel and let it move 6h up or down. It should move exactly 90° and the outmost strut of the wheel should line up with the stepper.
  • You can use decimals on RAsteps and DECsteps.
  • If you change RAsteps your trackingspeed will be affected, so get this right first and then dont touch it anymore.
  • You can adjust the speed and acceleration values. If the speed is too high the motors will stop turning. Note that temperature affects this, just because you can use speed 500 inside doesnt mean it will work when its 0°C outside. From my experience speeds around 300-400 are good. If your steppers get stuck reduce the speed by 50 or 100.
  • You can use the limit values to create software boundaries to prevent the lens from colliding or the RA ring from falling off the end.
  • If youre in the southern hemisphere, change "boolean north = true;" to false and turn the wiring for the RA stepper around.

Step 8: Bring It Outside!

It is best to place the mount on a sturdy table. There is currently no tripod support.

Point it roughly north and follow the steps described in the setup guide

The current polar alignment works good, but isnt extremely precise. In a future update i will include assisted drift alignment which is more precise.

After Polar Alignment, point the camera as far south as you can (0-45° DEC) to calibrate the trackingspeed, as described in the previous step.

After that you can start taking pictures! Definitely use a remote shutter, i recommend using a laptop. For 200mm lenses (not factoring in the crop factor), 1 to 2 minute exposures should work well. 300mm lenses work too, but thats a bit borderline. Anything higher will need autoguiding.

If you want to know more about how the polar alignment works, read though the polar alignment paper. This is a little bit outdated, the "clips" dont exist in the current design. Centering is done by estimation currently, but that works good enough.

A full list of all guides can be found here

Step 9: Join the Community!

There is a small but steadily growing and very active community waiting for you! If youre building the mount and have questions or ideas of any kind, youre not alone anymore! Feel free to head over to r/openastrotech and join the fun

3D Printed Contest

Participated in the
3D Printed Contest