Very much a work in progress yet...

I've built an aurora cam using a 4K Spinel camera which is built around a Sony IMX415 sensor.

Spinel UC80MPD

I installed the camera itself in a halogen security light enclosure--plenty of room after removing the halogen light fixture.  That is mounted on an electrical junction box.

Inside the electrical junction box is an Odroid XU4 running Ubuntu 20.04 and a python3 script I wrote to capture images at roughly 3 per minute beginning at nautical twilight in the evening and ending at nautical twilight the next morning.

After image capture all the images (roughly 1200 jpgs per night) are put together into a timelapse movie using ffmpeg.

The mp4 movie is then uploaded to the StarHouse Observatory web site and is available for viewing below.

Currently the images are obtained using the Video4Linux software with additional processing by the OpenCV-python libraries.  v4l2-ctl is used to bump the gain to 175 and to set the exposure to manual and the maximum exposure time.  Instead of seconds exposed it is in units with the maximum to be 10000.  I believe this roughly translates to about 1/3 of a second--not really enough to capture very many stars in the North.   Casseopeia is readily recognizable in the early evening and the Big Dipper is well into the frame before the end of the run at dawn.

The main core of the python script is to capture as many frames as possible in just below the amount of time it takes to make the stars oblong streaks instead of points.  Experientally it seems that 15 captures in roughly 10 seconds is a good amount for this camera.  The script captures each "frame" into an array in memory so we don't wait for writing the frames to disk.

After capturing, we loop over the images, "adding" one array on top of the other.  Once all the frames have been added together cv.multiply is used to "boost" the values in the summed array.  This brings out the fainter stars.  Finally, and values less than 40 in the array are set to 0 to remove any artifacts and a lot of noise.

The final result captures enough stars to make the constellations around the pole distinctly visible.

Once we capture an actual aurora ;-) I'll add in logic to detect the distinctive green of our normal auroras and if that is found send an SMS message out to anyone who wants.  More on this as work progresses.

Here's the code for python afacinados ;-)


Daily Webcam as Movie
Pick Viewing Date