Low-cost startracker for long exposure astrophotography

What is a Startracker ?

A startracker is a device that slowly rotates a camera, allowing it to track the stars so it can take long exposure photographs of the night sky.

Why do I want a star tracker ?

When I take photos of the nightsky without a startracker I am restricted to shutter speeds around 5 to 30 seconds (depending of the focal length of my lens) before I start to get startrails in my photos.

This forces me to use the lens wide open and bump up my ISO high to achieve a proper exposure.

When using a startracker I can use shutter speeds of 5 minutes or more, depending on the accuracy of my tracker.

Longer shutter speeds mean that I can close my lens a few stops for sharper stars and less coma aberration. I can also use lower ISOs and therefore getting more dynamic range and less noise in my photos.

Bottom view of the tracker

Why bother build one ?

You can buy motorized “star trackers” for telescopes and cameras so why build one ?

For me it was way more satisfying and fun to build my own simple barn door tracking mount and see what it can perform.

The sturdiness and accuracy may be better with a commercially available mount if you tend to use lenses with focallength of 50mm and above, but if you only use wide angle lenses, a home built barn door tracker may serve all your needs.

It will also be much cheaper to build your own tracking mount.

Different designs

When surfing the net for “barn door trackers” you will find many different designs and solutions of gadgets that will track the stars. Some are driven by hand and others uses syncronmotors or steppermotors in combination with small microcomputers for the tracking movement.

There are trackers built of wood or metal. Others use nylon or a combination of materials. That is the beauty of DIY gadgets. You use whatever you have in your bargain boxes and do the best of it.



My design

When designing my tracker, I set the following requirements:

  1. Cheap
  2. Reliable
  3. Easy to use
  4. Low power consumption
  5. Clean design

After surfing the net and reading many pages of home built trackers I decided to stick with a classic design consisting of two wooden pieces joined by hinges, like a book. One of them is attached to the tripod, and a ballhead for the camera is mounted on the other one. I use a curved M5 threaded rod to manage separation between the wood pieces. The threaded rod is driven by a small steppermotor and two homebuilt gears made of wood. The steppermotor is controlled by a cheap Arduino Nano microcomputer and a driver board. A small powerbank is used to power up the tracker.


For my build I decided to use this and this tracker as a basis. Many thanks to the authors of these designs for their inspiration and information. There you will also find calculation methods for all the parameters.
I have built things with plywood in the past and like to work in wood so I decided to build the tracker in 10mm plywood with a size of 30 x 17 cm, it will be a good compromise between size and sturdiness.

The hinges are a critical feature of this design. If you want high reliability and to be able to use longer focal lengths with the tracker then the hinges must be completely free of backlash. I searched a number of stores before I found good hinges.

The only material I was missing now was the gears. Wooden gears maybe? I have previously found this site on the web where you can design your own gears and then print a template for manufacturing.

I designed gears from the free web application above, printed a drawing and glued it on a piece of 5mm plywood. Then i mounted my jigsaw upside down under a wooden table and sawed out the gears.

The big one has 20 teeth and the small one for the engine has 10 teeth. It gives me a 2: 1 ratio. The center hole of the large gear was drilled 8mm in diameter. (The outside diameter of the M5 nut is 9mm). I then screwed the M5 nut onto a 6cm long M5 bolt a few thread turns, centered the nut in the hole and knocked down the nut in the wooden gear with a hammer using the M5 bolt. Perfect fit! I also applied a small drop of superglue between the nut and the gear for safety.

A 3mm hole was drilled in the center of the small gear to the stepper motor shaft. Then I designed the hole with a small 3mm file to fit the shaft or the steppermotor.

Plywoodgear with M5 nut applied

The threaded rod

My barn door design requires a constant lifting speed, thanks to the curved threaded rod, I don’t have to worry about the tangent error.
The radius of the required curve in my design is 24.2 cm. I drew a curve with that radius on a piece of paper. The threaded M5 rod I bought in the hardware store was 100 cm long. I found that it was easiest to bend the entire bar gently and then cut out the pieces that best matched my drawn curve.

Here is a link to a good Barn Door Tracker Calculator that i have used in my design.

Bending the M5 rod

Arduino Nano

I am still overwhelmed that i can buy this little microcomputer for less than 2 EUR including shipping on the web. This makes the electronics for the tracker very cheap and simple. I have chosen a simple design with no displays or switches. Electronics should do just two things and do it really well: Run a stepper motor with really high precision and do it with a low power consumption.

Arduino Nano – The trackers brain

Sketch for Arduino

Since I have chosen a simple design for the electronics, the software code is also simple. Including the library “Accelstepper.h” makes the code even more simplified. By adjusting the value of “setSpeed (-180)” I can change the speed of the stepper motor until I have tuned it to exactly the right speed.
With my mechanical measurements on the tracker, I have calculated that the large gear must spin at approximately 1.32 turns per minute. The value has to be fine-tuned through trial and error with the camera while taking pictures of the stars.

Sketch to control a 28BYJ-48 stepper motor with ULN2003
driver board, AccelStepper and Arduino NANO for continuous rotation to drive a startracker.*/
#include <AccelStepper.h>

// Connections:
// Stepper 1
// IN1 to pin 8
// IN2 to pin 9
// IN3 to pin 10
// IN4 to pin 11

// Define the AccelStepper interface type; 4 wire motor in half step mode:
#define MotorInterfaceType 8
// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper library with 28BYJ-48 stepper motor:
AccelStepper stepper = AccelStepper(MotorInterfaceType, 8, 10, 9, 11);

 void setup() {
 // Set the maximum steps per second:

 void loop() {
 // Set the speed of the motor in steps per second:
 stepper.setSpeed(-180); /* (stepper.setSpeed(180); turns the motor the other way */

 // Step the motor with constant speed as set by setSpeed():


ULN2003 Stepper Motor Driver Board

This driver board is not large but I needed to reduce the height to fit the tracker. I removed the connector socket to the motor and pin strips so that I could solder the cables directly to the circuit board. I also removed the the socket for the IC ULN2003.

I could also have removed the 4 LEDs to reduce the power consumption a bit, but they give a nice soft red glow inside the tracker which makes it easier to see while using the tracker in the dark.

The driver board

28BYJ-48 stepper motor

This engine is often used to automatically adjust the habits of an air conditioner unit. It has a built-in gearbox, which gives it some extra torque and reduces the speed of the output shaft.

28BYJ-48 stepper motor

KY-033 Tracking sensor module

As long as the tracker is powered it continues to spin the stepper motor which means that if I forget to turn off the tracker before the tracker reaches its top position and the threaded rod reaches its end position, the gears can be damaged by the relatively strong stepper motor. To prevent this some type of security circuit was needed. I could have mounted a simple microswitch somewhere, but I had this sensor lying in a bargain box and wanted to see if I could use it.

This sensor uses IR light to detect if a light reflecting or absorbing area is in front of it. The sensitivity (minimum range) of the sensor can be adjusted by the trim potentiometer. The function of the sensor mounted in the tracker is this: When the top part of the tracker is low, the sensor’s IR light reflects in the wood surface and the output from the sensor connected to the Arduino reset pin is high. When the star tracker’s top part reaches a predetermined set height by the trim potentiometer on the KY-033, the output of the sensor connected to the Arduino reset pin goes low and stops the program in the Arduino Nano, which causes the stepper motor to stop .


IR-sensor used to control the endpoint of tracking

Calibrate the stepper motor

You usually program your Arduino using your desktop or laptop and use the open-source Arduino Software (IDE) to build and transmit the sketch, but ArduinoDroid is a smooth alternative way to do the same thing using your smartphone or tablet.

ArduinoDroid is an IDE for Android phones. An OTG cable is also needed to make it all work. I also realized that my star tracker can be powered by my phone instead of a battery. This makes it very easy to calibrate the stepper motor for the right speed using the phone while shooting the night sky.

OTG-cable used to program the tracker

ArduinoDroid – IDE for Android

The free version of ArduinoDroid has advertising but it all works really well. You can open / edit arduino sketches, compile sketches and upload sketches. It works offline and has Dropbox support. Here is the app blog:


Polar alignment

Before using the star tracker you must make an accurate polar alignment. It is the key to getting good tracking and long exposure times.

First I take sight along the hinge pin to aim the mount at Polaris. Then I use the compass to adjust the mount in azimuth, and one digital inclinometer to match my location’s latitude. This is sufficiently accurate for wide angle lens photography.

I bought a digital inclinometer on the web. It has magnets at the bottom edge and is easily placed over the two screws I mounted for the purpose on the top of the tracker next to the camera mount. See the picture below.

Polar alignment with mini digital inclinometer




Sturdy hinges

Circuit boards