Abstract
This project was about automate an educational telescope at Geneva observatory to make it able to track orbital scrap through a command line interface (CLI). Basically, make it usable for a non-educational purpose.
Note that the full automation was not planned to be finished by me. It is very huge project. The previous student did a great diagnostic work to make a list of priority.
The beast
So the Telesto is F\3.8 600mm reflector telescope.
Basically it means that the ratio between the aperture and the focal distance. For a telescope it is a measure of the resolution and the quantity of light you get. 600 mm is the diameter of the instrument.

The environement
I worked essentially in the control room of the telescope in the cupola. It was freaking cold, I didn’t know that a room could be colder than outside. It must had a kind of thermodynamic anomally there. The computer was running windows seven and wasn’t updated since a while. I had to work with some old over specialized software like OSBus (a weird soft to control hardware component of the telescope) and Maestro a more generic one using ATCS standar and TheSkyX pro edition, a virtual planetarium able to communicate with Maestro and to track celestial object expect satellites and debris. Everything was a pain in the a**, the three soft had complicated and opaque interactions, the computer was slow as hell and someone decided to install 4 different version of python.
The work
I didn’t have neither the knowledge or the access to the hardware protocol of the telescope so developping something from scratch was not a option.m Hopefully, TheSkyX had a very usefull feature: It open a TCP port to which you can send command in JS. That was my chance I could just send TCP command to TheSkyX and not having to mamage all the weird interactions. I wanted something easy to set-up and easy for the next student in case he was not a computer science boy, so I decided to go for python (and uninstall all previous version) and use string to send JS code.
What I wanted to do:
- automate starting procedure
- take picture from CLI
- implement tracking
To achieve these epic mission I use 3 libraries:
cmd
That was a trivial part, there is a library called cmd. You have a template and you can create new command really easily.
PySkyX
Here come my second savior. Somecrazy astronomic nerd (I am one too okay, there is no judgment) decided to create a whole module smartly called PySkyX, it is a kinf of API to send JS command to TheSkyX using python.
Despite the fact that the this man clearly didn’t have great coding skills, that was the first time I saw functions returning string like “Sucess” or “Fail” instead of boolean, he save the time of learning JavaScript and TheSkyX API.
skyfield
Now come the hard part. To track objects I need to compute and anticipate their positions. Here come SKYFIELD !!! *rock riff in background*, a magical lib that just compute coordinates for me. I just had to use the pointing function of PySkyX again and again to make the Telesto follow the target. If you want to know more about coordinates computations check the report.
The mess
I break the Telescope…
.
.
.
.
Yeah that’s kind of huge.
.
.
.
.
Not physically of course. Basically, the Telesto have a pointing model, I don’t what it is, ask to physicist but appenrtly it point stuff. During the starting procedure that was done by hand I clicked on the wrong button that that erased the pointing model…
.
.
.
.
In my defence the button was called “Update Scope (including time)” and excuse me but that sound really like automating stuff.
So basically, the telescope did not point to correct coordinates when I wanted him to track some stuff. That was one of the reason of automating the starting procedure.
Anyway,everything came back in order at the last news.\
Next thing to do
Finally, I manage to implement eveything but the tracking wasn’t smooth, we cannot take picture from the CLI directly and the starting procedure is not fully automated. I let some directive for the next student:\
- Finishing imaging.
- Finishing the automation for the starting procedure.\
- Implement remote usage: it’s criminal to be able only to work in a freezing cupola during winter.
- Do more testing.