IoT Developer's Studio: Stargazing

IoT Developer's Studio: Stargazing

Automating My Observatory

I have an observatory that is primarily used for imaging ( The entire observatory is automated with Particle. There are 5 photons used for the automation. One monitoring weather conditions (rain, too many clouds, sky quality through FWHM measurements etc.), two controlling power and two controlling the dome (one for dome rotation and the other for dome slit automation and azimuth measurement).


Power Control

As you can see in the image below there are a lot of wires and equipment. The red light and Photon in the photo above is a master power controller through 30 amp relays. These high-amperage relays control the cameras in the observatory. The cameras are very high amperage because the cameras are scientific (unlike commercial) with multistage cooling to image at -20 or-25°c and control thermal noise. The photon controls power to equipment groups like dome, mount, scopes, the weather station and an AC unit that is sitting inside so that it doesn’t get too hot in the summer.


Climate Control

The observatory contains sensitive, expensive equipment, and if you have 100+ (like you do here in California) degree days, you don’t want them to get to hot or the grease to run. To address this, I’ve put in a climate control system. A simple temp probe is used by the photon to control the AC through a relay.

In addition, I am currently working on a staged temperature control inside the observatory, where if the temperature is moderately high the dome is vented by partially opening the upper shutter, and if it gets too high, the venting is stopped (upper shutter is closed) and AC turned on.

There are extra controls so the vent is only opened if the weather station (another photon with a weather shield and various other sensors like MLX90614 and TSL237) reports that is is indeed safe to open. This is controlled by the ShutterController Photon. This uses a motor shield to operate a brushed DC motor on the upper shutter and linear actuators on the lower shutter. It also controls the sequence of how the shutters are opened and closed and uses limit switches to determine when the shutters are open or closed.

Imaging Control

There is a second photon on the mount controlling a second set of 30amp relays that control power to the equipment on the scope used for imaging (Cameras, Angle Rotators, Focusers, Filter wheels, Flat fielders etc). The sequencing of how the equipment comes on is also controlled.


My rig carries multiple imaging trains on it. On any night I am only using one of them. The photon allows me to automate which train is turned on, with the piece of mind that it will be turned on in the right sequence.

Weather station

Along with a weather shield (which allows temp, humidity, pressure, rain and wind measurements), I also use MLX90614 and Hydreon RG-11 sensor. The goal is to detect ambient conditions (for tabulation and later analysis) and also unsafe conditions, triggering an automatic shutdown and closure of the observatory.

The RG11 is used to detect rain. But the way the clouds are measured is more interesting and this is where something like a Photon really comes into play.

There are two temperature sensors on the Photon; the first one is the one on the weather shield. The second one is the MLX90614, which is a contactless IR temp probe.

When we measure the temperature of the sky (point MLX90614 straight up) and the ambient, the difference between the two (after some calibration) will give you a really good idea of what the cloud coverage is. I am using a 50 degree FOV version of the MLX so I measure against a big patch of the sky. Triggers are fired by the photon for various cloud coverage percentages, so appropriate actions can be taken by the imaging software (similar triggers exist for rain, wind speeds, temperature, lux levels etc.)

All of this interaction between Photons and the astronomy software happens through standard interface called ASCOM. The drivers needed for this are the hardest part of the project. The ASCOM driver presents a standard interface to connect to astronomy software and to the Photons to either read data (like “is it raining?”) or take action (“Close up the observatory”, “Shutdown equipment”, “Park everything to predetermined positions).

Dome control (Work in Progress):

The two photons controlling the dome are primarily motor drivers driving brushed DC motors or linear actuators (to rotate the dome, or open the dome slit). But positioning the dome so the scope can see out of the slit is important, and this is controlled by the two photons. One stationary, mounted on the wall, controlling the rotation of the dome. Another mobile is attached to the dome roof controlling the slit operation and also measuring the dome position (Power to this one is supplied through a solar panel attached to the dome). The Shutter controller photon uses a 6DOF sensor (LSM303DLHC) to get a tilt compensated compass heading. This is then offset with the magnetic declination to get the true azimuth of the dome slit.

Now, you have a fully automated system. I can fire off some scripts to start a full night of imaging with automatic protections in place if things go south weather wise. Let’s say you want to image the Orion Nebula. You fire off a script which turns on all the right equipment moves the dome and the scope and starts imaging. Once the session is done, it powers everything down and moves/sets them to safe states/positions. It includes safety controls so that if at 3 o’clock in the morning some clouds roll in or there’s some rain it will shut automatically. It’s unattended automation. It’s unattended equipment.

If I want, it can also send me a notification on my phone, saying, “Hey something went wrong.” Because the photon has an IFTTT integration, I can monitor for variables that I publish. Some of the code can be found at

Manoj Koushik's Picture

About Manoj Koushik

Wide ranging experience in the systems, web services and SAAS spaces, both as an individual contributor and as a leader.

Palo Alto, CA tw33tingmanoj