Posted on 19 Comments

A barn door tracker shield for Arduino

Interested in astrophotography? Do you want to first try this hobby before investing on expensive computerized EQ mounts? A barn door tracker can be a good starting point after trying fixed tripod astrophotography. A well built barn door tracker at a fraction of the cost of other commercial options can produce photos which can stun you. It will surprise you that a simple device like this can actually track the stars and other celestial objects.

The barn door tracker was created by George Haig. It is also called as the scotch mount or Haig mount. The plans for his tracker were first published by the Sky & Telescope magazine in their April 1975 issue. The original design was was improved upon by Dave Trott who introduced a second arm in the design. This improved tracking accuracy over time. His new design was published by the Sky & Telescope magazine in their February 1988 issue.  The original designs all involves manual actuation.

Today, a modern barn door tracker can be easily built with a stepper motor to automatically drive it.

The “smart” barn door tracker shield for Arduino

The features of the shield is listed below. The software for the shield is completely open source and you can modify it for your barn door. The software provided will work out of the box for the reference design provided here.

  • DRV8825 based stepper motor controller
  • Micro stepping of 1/32 steps, giving a single step granularity of 0.86 arc seconds for a 300mm arm / 8mm pitch.
  • Software
    • Open source
    • Tangent error correction
  • User controls
    • Track
    • Pause tracking
    • Fast forward
    • Rewind
  • A keypad with 4 keys is provided to get started. User can replace the keypad if required.
  • Automatic home detection through external limit switch or by manual overriding switch
  • One LED to provide status information
  • 12V 1A power input
  • Reverse polarity protection
  • Compatible with 12V NEMA 17 bipolar stepper motors
  • Provides power to the Arduino. No need to power the Arduino separately.

Gallery of images shot with this controller

Orion nebula and Horsehead nebula

Picture 1 of 5


Are you interested in ordering one?

If you are interested in ordering one, please fill in this form and I will get back to you with the details. Thanks!

Operation guide and steps

  1. For the operation of the tracker and tangent error correction, the controller needs to know the ‘home’ position (the lowermost, starting point). The operation of mount is suspended till the controller knows this home position. The controller will allow the use of the ‘rewind’ button to bring the tracker to the home position. Home position is detected through the external limit switch or manually by pressing the ‘home’ button on the controller. While waiting for home, the DX LED will be blinking. Every time the controller is switched on, this procedure must be done.
  2. After the barn door reaches home position, the ‘track’ button can be used to start tracking. Tracking can be stopped at any time by using the ‘stop’ button. ‘Forward’ and ‘Rewind’ buttons can be used to quickly move the camera arm up and down.
  3. The tracker will stop automatically when the predefined upper limit is reached. The tracker can be used again by using the ‘rewind’ button to bring it back to the home position.

Connecting the stepper motor

A NEMA 17 bipolar stepper motor is required for this controller. The stepper motor is connected to the controller through the screw terminals provided. Coil 1 is connected to A1,A2 terminals and Coil 2 is connected to the B1,B2 terminals. If the motor is rotating in the reverse direction, interchange the coils or swap the terminals.

Connecting the home limit switch

As mentioned earlier, the knowledge of the ‘home’ position is very important for the controller to perform the tangent error correction. There is a ‘home’ terminal in the controller which can be used to connect an external limit switch which will detect home position. If an external switch cannot be connected, an override button is provided on the controller itself to signal a home position.

Connecting the keypad

The controller has provision to connect four external switches/buttons for the play, stop, fast forward and rewind operations. The controller comes with a 4 button keypad which can be used for this purpose.

Power requirement

A 12V 1A external DC power supply is required for the controller. This power is internally routed to the Arduino and hence no separate power is required for the Arduino.

Detailed information on why do we need a tracker for photographing celestial objects and  what is long exposure is explained in this blog post here.


Electrical circuit diagram

Software source code

19 thoughts on “A barn door tracker shield for Arduino

  1. Fabulous effort Arun!
    Taking Astrophotography, Astronomy and DIY to a new level in India!

    1. Thanks Johann

  2. Wonderful work Arun! Fabulous!

    1. Thanks Gururag

  3. Nice, I’m going to try and do one with all the information that you provided. Thank you

    I hope I can contact you if I need help.

    1. Sure please reach out to me if you need any help!

  4. want to buy shield without arduino code installed
    shyam rathod
    maharashtra yavatmal

    the design and data here is simply what i have been searching for
    question:-the previous barndoor i made had a wedge corrector for tangent error is it that you can electronically cancel tanget error by varing speed of steeper motor gradually

    1. Hi Shyam,

      I’ve been looking for information on using a ‘wedge corrector’ to eliminate tangent error. Previous links on the web about this have, for the most part, been deleted.

      Do you have any information on how you calculated and built the wedge for your barn door tracker?

      Jamey Griesser

  5. Where is the ‘home’ position (the lowermost, starting point)
    Some small angle between arms? arms parallel?

    1. Yeah it is the lower most starting point. There will be a small angle between the arms. This is controlled by the lower limit switch.

  6. Hi from Italy, i m interested to the barn door tracker shield for Arduino, but without arduino code installed, can you make me know?

    1. I have sent a mail to you. Thanks!

  7. Hi. Thanks very much for sharing all the data.
    I am trying to build one of these, based on your schematic, but not successful. the motor ticks (sensible by touching motor body) , but doesn’t move. I don’t know what is wrong. Can you provide any help?

  8. Nice job!

  9. Hi Arun I sent you a message to purchase a Smart barn door controller shield and preprogrammed Arduino compatible board, you may have missed it.

    Alan,,,, Australia

  10. Arun looking to purchase a Smart barn door controller shield and preprogrammed Arduino compatible board if you could email me please.

  11. Hi, this project is fantastic!!
    I was trying to figure out the code and the circuit, and it’s really clear and straightforward, therefore (It might be a stupid question but I’m a novice) I can’t figure out the purpose of SW1 connected to D8 and D9 pins of the Arduino, I’d appreciate so much if you could clarify it to me!!

  12. Hi Arun,
    what is the function of the DIP-switches ON / OFF on D8 D9? Should they remain OFF?
    They are not declared in the code to be loaded on Arduino.

  13. Hi Arun,
    what is the function of the DIP-switches ON / OFF on D8 D9? Should they remain OFF? They are not declared in the code to be loaded on Arduino.


Comments are closed.