Telescope Controller

Stellaris (Tiva-c) based embedded controller for Newtonian/Dobsonian motorized telescope mount

Similar projects worth following
Initial goal of telescope controller was to facilitate unskilled amateur astronomer in tedious job of calculating necessary numbers to point telescope in an interesting object in the night sky. I myself tried initially to calculate necessary figures myself using guidelines found in books, but found it time consuming. It was spoiling joy of stargazing. What I needed was a software controlling my motorized telescope. Telescope mount was equipped with two stepper motors, one turning the entire assembly in azimuth, the other turning tube assembly in altitude. Fixing motors to the turn table, allows avoiding running cables across pivoting points, and powering with small rechargeable battery pack, located next to the stepper motor drivers avoids using rails, sliders and pick up construction to supply power on moving platform. Wireless communication (Bluetooth) with a PC in the field completes the free, unobstructed experience with cables turning and twisting between moving parts.

The role of motorized telescope mount is to provide automated motion control of optical tube assembly around. Regardless of the mount type it needs two axis control, either:

  • equatorial, with one motor running in right ascension plane, and other in declination
  • or alt-azimuth mount, with one motor for altitude (up and down) and azimuth (right and left).

Former are preferred for observational astronomy and astrophotography, but the latter is more common among amateur astronomers due their simplicity and price, and popularized by John Dobson. The GoTo technology (automation of tracking and tracing process) is identical in both cases with an addition of necessary recalculation of astronomical coordinates both systems operates in. Equatorial mount drives the mount directly in equatorial coordinates, while alt-azimuth (Newtonian/Dobsonian) mount still needs to recalculate into appropriate coordinates. When astrophotography is involved, a further motor has to be used to rotate the camera to match the field of view for long exposure photographs (

I decided to build my own controller to fit my needs and to reach my goal of $100 total component price tag:

  • Tiva-c $13
  • GPS $11 (pcb footprint U-blox NEO-6m)
  • 2 * motor 28BYJ-48: 2 * $1.5
  • 2 * DRV8825: 2 * $2
  • Bluetooth module HC-05 Master: $5
  • graphic LCD Nokia 5110: $2.5 (virtually all modules with white back-light)
  • digital joystick
  • battery: several Ah capacity $20
  • DC/DC converter KIM-055l
  • misc (resistors, caps, transistors, buzzer)
  • time ;)

In total it would make up approx $60 (for accountable items).

Hardware components

Controller comprises of the following modules:

  • MPU
  • stepper motor drivers (TI's DRV8825, Allegro's A4988, or any other drop-in replacement used among 3D printer community:
  • sensors (inputs) and actuators (outputs)
    • position (homing)
    • temperature (CPU and I2C sensors)
    • DSTH01 humidity sensor
    • PWM output for main mirror fan (PWM frequency set to 25kHz to avoid fan buzzing)
    • PWM output for LCD back-light
  • GPS (NMEA)
  • communication (Bluetooth HC-05 and USB in Tiva-C for debugging)
  • user interface
    • display (SPI)
    • buttons (digital joystick)
    • buzzer
  • RTC with NV-RAM (battery backed)

The role of MPU is to take care of controlling everything from start, to step both stepper motors smooth enough, communicate with Stellarium software via Bluetooth link, and to allow user control via button interface. The main "brain" is provided by 80MHz 32-bit ARM Cortex-M4F CPU with 256KB of FLASH ROM and 32KB of RAM and 2KB of EEPROM (not used at the time of writing this document).


PCB Bottom

Software modules

  • time reference
  • location
  • LX200 protocol support - Bluetooth communication
  • non-volatile configuration storage
  • stepper control
  • homing
  • star alignment and coordinates conversion
  • star and object library
  • Time reference

    Sidereal clock gives the earth-bound location independent clock, that is calculated as relative to the fixed stars rather than to the Sun, as traditional (sundial) clock. It allows easy recalculation of right ascension for any given location on earth, as the virtually all star maps uses declination and right ascension as coordinates. Very fast fixed-point arithmetic routine was used in A Low Cost Sidereal Clock, but due to a FPU, the floating point math is just as fast.


    GPS module provides longitude and latitude of observer location with NMEA protocol and is parsed with help of TinyGPS++/GIT library. The accuracy and resolution is slightly improved by means of averaging series of acquired positions. As fall-back option an RTC chip with NV-RAM was added to provide time and location reference in case of GPS cold start, or problems with long acquisition - which should be actually impossible for an open field operation.

    LX200 protocol

    Today's GoTo telescopes support either of two most popular serial communication protocols:

    • Meade LX200, or
    • NexStar of Celestron.

    I implemented most of the LX200 commands necessary to operate with Stellarium software:...

    Read more »

    View all 10 components

    • 1
      Step 1

      I have couple of PCB's to share.

    • 2
      Step 2

      solder all header pins to stepper motor driver PCB but four to the motor

    • 3
      Step 3

      solder extra 1x3 pin connectors (next to SW1 and SW2) to Tiva-C board to provide VBUS and +3.3V connectivity, or even better replace them with stackable connectors - just like the other ones (2x10)

    View all 3 instructions

    Enjoy this project?



    sq7bti wrote 08/05/2018 at 19:49 point

    I appreciate your comment. It would be great if you could recreate it yourself, and as far as I can I will provide assistance to get it up and running. If you face any problems while reproducing design, I would be grateful to hear your comments so I can improve and enhance it. As of burning the firmware, the controller is based on Energia project ( - it is pretty easy to develop, debug and modify embedded software once you get familiar with basic C programming. "Burning the firmware" is just a matter of pressing one button.

      Are you sure? yes | no

    sunny wrote 07/30/2018 at 06:50 point

    I have made a  4.5in Dobsonian telescope. But I didn't make a base. Your project is very good, but I have only a little bit of circuit knowledge and ordinary welding level. Can I finish your project by myself? And what I'm most worried about is the problem of burning the firmware.

      Are you sure? yes | no

    Similar Projects

    Does this project spark your interest?

    Become a member to follow this project and never miss any updates