Introduction: Web-based IOT System for Telescope Control

About: Computer Engineering student

We have designed and made web based IOT system to control any type of telescope over internet and get the view from the telescope with minimum cost

Our motivation behind this project was that, we had had three telescope in our engineering college astronomy club and we wanted them control anywhere from our campus. We needed it to be minimum cost as possible and it should work with any telescope

So this IOT system can control any type of telescope from website on any type device. also we can view the telescope live view from that website. for this it uses stellarium( an open source software ) which runs on a raspberry pi 3 (acts as Server) which is connected to Arduino mega in a master slave connection and RAMPS 1.4 board is connected as shield to Arduino mega which controls the stepper motors via motor drivers


Raspberry pi 3

Arduino MEGA 2560 R3

RAMPS 1.4 Shield

2 Stepper motors( 400 steps)

Motor divers( A4988 Driver )

An ATX power supply

A good Webcam

A decent internet connection

Step 1: Arduino Connections and Coding

we need to get the connections reedy and code loaded before we connect all the components together. so download and install Arduino IDE software on your computer. connect Arduino MEGA R3 to the computer via USB cable.

Here we use onstep telescope controlling software we made some changes to it. you can download our version at the following link

But the credit goes to the onstep creators. we just borrowed their code at made some changes to it according to our need. following are the links for original onstep creators

after downloading our modified onstep open the onstep.ino file in arduino ide. connect mega to the computer and load the onstep file in arduino mega

Step 2: RAMPS 1.4 and Motor Driver Connections and Settins

Ramps 1.4 board is mainly used to control 3d printer motors so it is very accurate, so we can use to control telescope precisely.

so you need to choose a appropriate motor driver according to your stepper motor and your worms and gears on the telescope mount for that we have made excel sheet which can give the desired values of the resistance and slew rate which has to adjusted in arduino code and link as follows

According to our research DRV 8825 and A4988 motor drivers can be used with most of the telescope and most of the mounts

connect motor drivers on given location as shown in the image on the ramps 1.4 board and use it as shield for arduino mega. ramps is powered separately by 12V ATX Power supply.

Step 3: Raspberry Pi Connections and Settings

Our Raspberry pi 3 was loaded with latest rasbian os and we installed Linux stellarium on it from following link

and then connect the Arudino mega to the raspberry pi via USB cable

also load arduino ide software on to raspberry pi

aslo webcam is connected to raspberry pi via usb cable and also install webcam-streamer-master software on raspberry pi. it can be easily found on github

Raspberry pi is powered separately of other components

Step 4: Stellarium Software Settings

Stellarium is software which gives you exact locations and positions of all the night sky objects from your location it also gives you Ra/Dec values of every night sky object

After downloading stellarium enter your exact location in that software

then enable telescope control and remote control plugins in the software by going in the plugins menu and selecting these two plugins and also select load at the start up option

After enabling Telescope control plugin go to configure telescope option and then select ADD to connect new telescope. then select telescope controlled by directly through serial port, then select your serial port which is the USB port no. on which arduino is connected. and then select your telescope model. if your model is not present you can directly select LX200 option. select OK and then press start. then you can view slew telescope to option,

where you can view Right accession and Declination( Ra/Dec )values of current object where the telescope is pointing.

Some telescope are unable to connect to Stellarium. so 1st you need to download StellariumScope software and then connect it to stellarium

Remote control is the plugin which controls all functionality of Stellarium via web interface. after enabling the plugin go to configure option and select port number and localhost IP address.

now you can access the web interface via localhost IP and selected port from any computer or smart phone which are connected to the same network as the raspberry pi.

In web interface you can select the night sky object where you want move your telescope from selection menu,

then go to telescope control option the select option move selected telescope to selected object.

you can also view current view from telescope via webcam-streamer-master

Step 5: Choosing Stepper Motor and It's Connections

Stepper motor selection depends on the type mount that your telescope is using


  • Altazimuth. Altazimuth
  • Dobsonian Mount
  • Equatorial
  • Fork Mount
  • German Equatorial Mount

Generally stepper motor with 400 step can be used for all type of telescopes

you need to connect stepper motors to the motor divers which are connected to RAMPS 1.4. motors power can be directly gained from RAMPS 1.4

Step 6: Webcam and It's Connections

Webcam is connected to the telescope at the eye view of telescope and it is connected to the Raspberry pi via USB connection and webcam-streamer-master should be installed on raspberry pi so you can view current view from telescope via web interface

Step 7: Power Supply

Arduino MEGA is powered by USB connection from raspberry pi directly so it did not need separate power supply

RAMPS 1.4 board is powered by ATX Power supply. it should connected by 12v power supply. the motor dirivers and stepper motors are powered by this ATX power supply

Raspberry pi is powered by Battery bank directly by power connection of raspberry pi

The webcam is connected to the raspberry pi via USB connection so the webcam is powered by USB connection

Step 8: Full Assembly

  1. connect the stepper motors to the altitude axis gear and azimuth axis worm by drilling and welding to the gear and worm
  2. connect the stepper motors wires to the motor drivers via soldering
  3. connect motor drivers to the Ramps 1.4 board by mounting
  4. connect Ramps 1.4 to Arduino as Shield
  5. connect ATX Power supply to Ramps via 12v power connection
  6. connect Arduino to Raspberry pi via USB Connection
  7. Webcam is connected to Raspberry pi via USB connection
  8. Raspberry pi should be connected with decent Ethernet internet connection

Step 9: Testing

After Fully assembling the electronics and connecting it to the telescope

select a night sky object from web interface and then you can trough the webcam view if the telescope is pointed to the correct object or not

we tested our IOT system with our 3d printed telescope which is called autoscope

Step 10: Result and Cost

Above are some of the images taken from telescope via web interface and cost of whole project

IoT Challenge

Participated in the
IoT Challenge