Jump to content

Newtonian/Dobsonian telescope controller

Recommended Posts

Hello everyone,


There is a couple of similar projects available on the internet. Some of them base on Arduino and PIC performs very basic mount control without math intensive computation implemented in embedded controller. I decided to build my own with the following goals:

  • ease of use by an inexperienced amateur astronomer (full automatic operation)
  • precision and resolution of position 
  • last but not least: the price

Final, or better say at the moment, design comprises of the following components:

  • Stellaris LM4F launchpad central control unit,
  • two ULN2003 unipolar stepper motor driver chips,
  • two 28byj-48 stepper motors one moving in azimuth, and in elevation via gear train,post-1536-14264605375046_thumb.png
  • communication module: Bluetooth serial module. It allows sending a coordinate set-point and provides position feedback to Stellarium,
  • GPS module providing position and precise time reference - PPS gives 1us accuracy,
  • Nokia 5110 display unit and joystick for standalone operation,
  • now obsolete mouse (PS/2) modified to provide independent (incremental) position information

Resolution that was reached is a single step of approx. 5". Given the size of Jupiter to range from 30" to 50", this positioning resolution makes the view comfortably stable in standard 60° FOV eyepiece at reasonably high magnification, without the need to adjust AZ/ALT continuously.


During the development I made use of several opensource and projects available online, namely:

Upon power-up the mount is performing:

  • homing
  • acquisition of current location (longitude/latitude) and time via NMEA stream
  • moves to 3 brightest (most convenient) stars in succession to perform 3 star alignment procedure - they are selected from the list of over 500 stars in built-in catalog (the  brightest are used for the alignment, tough),
  • once aligned the mount is in tracking mode: it tracks the view to counter the apparent movement of objects in the sky,
  • waiting, either for the user to move to particular object - selected from the library of stars and Messier objects, or
  • awaits connection via Bluetooth from a PC running Stellarium with a plugin and slews to selected object.
  • search for the object that should be visible in the eyepiece and display important information on LCD - I compiled in 500 brightest stars from HYGXYZ and full Messier catalog

I have very little experience as amateur astronomer so far, so some of the objectives might have been not very obvious for me in the beginning. This project was also a good way to make use of my free time and gain experience in embedded system design.


With kind regards,



Link to post
Share on other sites

That is awesome. Does the telescope require special setup or alignment at the beginning?



When powered on, the mount moves to the first alignment star. Then, a user provides the correction vector: star just needs to be positioned in the middle of view in eyepiece. First star roughly corrects the misalignment in telescope orientation w.r.t. the north. Second star helps to correct also the leveling error. Third star would improve alignment even further. I did not (yet) implement any periodic error correction. The whole alignment procedure takes couple of minutes, and requires a user to center stars in an eyepiece with an attached joystick, and confirm with fire button. GPS resolves the time/date and location issue during start-up in unknown location.


with kind regards,


Link to post
Share on other sites

Hello again,


The hardware can be easily described with pin assignment, as most of the connections are straight forward:


Software on the other hand comprises of the following modules:

  • GPS - NMEA stream is parsed by TinyGPS++
  • LCD facilitated by SPI
  • Sidereal time calculation - header file holds the Sidereal time for midnight each day precalculated to optimize execution
  • AxesLib with help of AccelStepper provides interface to drive the mount around in azimuth and altitude coordinates, but also during start-up performs homing and calibration of mount (play estimation),
  • CoordsLib performs transformation from and to equatorial coordinates using Taki matrix transformation
  • PS - interrupt driven ps/2 handler - configures mouse hardware to provide incremental position information - unfortunately does not provide high resolution when compared to stepper motor movement,
  • stars is using brightest stars from hygxyz.h for the three star alignment procedure during start-up. After that star library and messier object library is used to identify interesting object in view,
  • LX200 implements communication protocol with all commands utilized by Stellarium, and most of the commands of Autostar protocol (Meade)



With kind regards,



Link to post
Share on other sites
  • 6 months later...



A summary of changes:

  • instead of unipolar motor drivers, now I used a bipolar drivers very popular in RepRap projects, here A4988 (or DRV8825)
  • 28byj-48 modified for bipolar
  • cheap HC-05 for bluetooth SPP
  • GPS module U-blox NEO-6m
  • added RTC DS1307 to provide date/time reference even in the first seconds after power-on and 56 of NVRAM bytes
  • added (optional) humidity and temperature sensor DSTH01
  • added a I2C socket to connect external temperature sensors to provide information about motors temperatures
  • added PCF8574 for microstepping configuration of A4988 drivers
  • added buzzer for audible indication
  • added output for 12Vdc fan of main mirror - PWM controlled
  • Nokia 5110 display replaced with a red back-light



As the software is concerned, there were several improvements as well. The most important is that the motors are now driven by an interrupt driven AccelStepper




With kind regards,


Link to post
Share on other sites
  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...