Skip to content

Even in the Southwest there are times that dew can form on exposed optics.  Of course, once dew forms the image quality turns awful quickly.  That applies to the dome of the Allsky Camera as well.

The Oculus Allsky Camera actually comes with a 12 VDC heater system that can be used to combat dew.  It presented a problem though.  The heater’s power supply can be plugged in or not.  No control, not even an on/off switch.  Full power or none.  The problem with that is that astronomical cameras don’t like heat.  As the heat goes up, the image quality goes down.  What’s needed is a way to provide just enough heat to prevent dew and no more.

That was the start of the Allsky Camera Heater Controller project.  After a few iterations that proved less than optimum, I settled on a design that is working out quite effectively.  Essentially, the heater controller reads the current humidity and varies the amount of power sent to the heater to prevent dew.  If the potential for dew goes up, the heater’s power percentage is increased.  Conversely, if the potential for dew goes down, the heater’s power percentage is reduced or even turned off.

Since an Acurite 5-in-1 weather system was already installed at the observatory that was a natural source for the weather data.  I chose a Raspberry Pi 3 as the system controller because of its computational capability, data storage capability, expandability and low power consumption.

The Acurite display has an USB output that is connected to the Pi.  To collect the weather data I installed the WeeWx weather program on the Pi.  WeeWx is a very nice program that collects the data, stores it in a database and produces a variety of reports to summarize and display the data.  I used one of those reports to have it store a .csv snapshot of the current conditions on a flash drive every five minutes.

A Python program I wrote checks for new data in the .csv file and looks at the humidity.  I’ve found that dewing of the camera dome starts at about 80% humidity.  So the Python program will start to apply power to the camera’s heater at 70%.  As the humidity rises the program will scale up the amount of power to the heater, reaching 100% power at 90% humidity.

The power applied to the camera’s heater is varied by pulse width modulating (PWM) the output of the 12 VDC heater power supply.  An Adafruit PWM module is installed in the Pi and it’s controlled by the Python program.  The signal from the PWM module goes to a MOSFET circuit that has the capacity to modulate the heater’s voltage and current.  This arrangement allows the heater’s power to be varied anywhere between 0% and 100% as required.

The Python program provides monitoring of the heater’s performance by using the PyGal Charting Library to create the chart at the bottom of the Weather page.  A quick check of the chart reveals not only the weather conditions, but also how the heater controller is responding to them to keep dew off the Allsky Camera’s dome.

The latest addition to the Weather page is a chart that shows the real-time weather conditions at the observatory.  How cold is it right now?  Is the humidity less than 10% (where did I put that bottle of moisturizing cream?).  Well, just take a look to see. 

The chart shows the last 24 hours of the weather conditions.  That makes it easy to see highs, lows and trends.  New data scrolls in from the right side and the oldest data drops off the at the left.

An Acurite 5-In-1 weather station is the source of the data.  The Acurite display feeds a Raspberry Pi computer, which then generates the chart and uploads it to the web page.