Eclipse Computer Prototype

I’m going to see the upcoming total solar eclipse on August 21, 2017 somewhere north of Nashville. I’d like to get some good photographs of the event, which makes anticipating when certain eclipse events will occur very helpful. For this purpose, I put together a custom computer system to provide me with some information about the eclipse based on my location.

The prototype eclipse computer

The prototype eclipse computer

The computer is based around a Raspberry Pi Zero running Gentoo Linux. I used a GPS receiver from Adafruit along with GPSD to query the location, and NTPD to synchronize the system’s clock with the atomic clocks of GPS. I also used a 16×2 LCD that is readable in bright light, and with the help of its backlight, is readable in the dark. To power it, I’m using Adafruit’s Verter product; it takes 3 to 12 volts in, and produces 5.2 volts to run everything. It makes for a flexible power supply that doesn’t require me to buy a special battery that I might not use much in the future. I plan to use 8 AA batteries.

The software figures out when totality, the part of the eclipse when the moon’s umbra blocks the sun from view, begins and ends using some data published by NASA. The data shows the irregular shape of the moon’s umbra projected onto the irregular shape of the Earth at one second intervals. Using this, I made the program search for which of the umbra shapes contains the location provided by GPSD. The resulting totality time information, plus the current time and location, cycle across the LCD. Its results don’t exactly match many of the interactive maps available online, but I think they may be using a simplified, maybe circular, umbra shape and may not account for the Earth’s terrain.

At present, the program doesn’t take any user input. I’m considering changing that, but I want it to be useful without input. I’m going to put it inside a sturdy case that is water resistant enough that it should survive a strong downpour, just in case I have to deal with less than ideal weather. The top of the case is transparent, so the current version of the system can be useful without opening the case.

What it doesn’t do right now is show when the very beginning and ending of the eclipse occurs. I’m having some trouble figuring out how to do this. I’d also like it to show the azimuth and elevation of the sun for the current time, the beginning and ending of the eclipse, and mid-totality. I hope to make a time-lapse video of the event, and want to keep the sun in the frame, but do not want to disturb the camera once it starts. I did make an attempt at computing the values based on an algorithm published by NOAA, but what I made doesn’t produce correct azimuth values. Unfortunately, that is the more important value of the two for this eclipse.

I have published my source code as two repositories on Github. The first is a library I wrote intended to provide a C++ happy high-level style interface to using low-level hardware. I called it DUDS, for Distributed Update of Data from Something. I’m not very good at names. The name shows what I’d like to do with the library in the future, but I’ve got to build up other functionality first. It is already useful for this eclipse computer, so I hurried a bit to publish the code.

The second repository is for the eclipse computer program. It also includes a program to test finding totality times that does not use DUDS, and takes longitude and latitude values from standard input.

I’ll be doing more development and testing for at least a couple weeks.


Tags: , , ,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: