All-sky Camera

Project Goals::
  • Cloud detection
  • Automated wide-field astrophotography
  • Transient (plane, satellite, meteor) detection
Device: A Raspberry Pi-based, wifi-connected, solar-powered, all-sky camera.
Parts List:
  • Raspberry Pi, Model A
  • Raspberry Pi Camera Board
  • Edimax EW-7811Un 150 Mbps Wireless 11n Nano-size USB Adapter
  • 6600mAh battery
  • Large 6V 3.7W Solar Panel
  • USB/DC/Solar Lithium Ion/Polymer charger
  • Basic photocell
  • Fisheye lens, likely from a door
Status: Waiting on RPi Camera developers to support multi-second exposures.

April 10, 2013

I'm going with the Model A Raspberry Pi due to its lower power requirements. The difference between the Model A and the Model B is that the Model B has two USB ports, one Ethernet port, and 512 MB of memory where the Model A has one USB port, no Ethernet, and 256 MB of memory. The Model A reportedly draws some 300 mA where Model B draws 700 or so mA. Since power is going to be an issue if we're running this off a solar-backed battery, the lower draw probably necessitates the Model A.

I discovered last night that I was having trouble connecting to my wifi network because the SSID was hidden. Once I unhid the SSID, I had no problem connecting. In Apple terminology, this is the difference between whether the network is "closed".

I learned the following about my current USB cam by plugging it into my other Linux box. I could not find v4l2-ctl for Raspbian. This could be a problem, since I want to do multi-second exposures. I wonder if the RPi camera board will allow full shutter control... For that matter, I wonder if there's a drop-in replacement for the camera on the RPi camera board that would be monochrome rather than color...

# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
	Index       : 0
	Type        : Video Capture
	Pixel Format: 'MJPG' (compressed)
	Name        : MJPEG
		Size: Discrete 640x480
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 160x120
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 176x144
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 320x240
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 352x288
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 800x456
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 800x504
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 800x600
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 960x720
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1600x904
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1600x1000
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1600x1200
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)

	Index       : 1
	Type        : Video Capture
	Pixel Format: 'YUYV'
	Name        : YUV 4:2:2 (YUYV)
		Size: Discrete 640x480
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 160x120
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 176x144
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 320x240
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 352x288
			Interval: Discrete 0.033 s (30.000 fps)
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 800x456
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 800x504
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 800x600
			Interval: Discrete 0.040 s (25.000 fps)
			Interval: Discrete 0.050 s (20.000 fps)
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 960x720
			Interval: Discrete 0.067 s (15.000 fps)
			Interval: Discrete 0.100 s (10.000 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.133 s (7.500 fps)
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1600x904
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1600x1000
			Interval: Discrete 0.200 s (5.000 fps)
		Size: Discrete 1600x1200
			Interval: Discrete 0.200 s (5.000 fps)

April 10, 2013

It should be possible to adjust exposure time with the Raspberry Pi camera board. It seems like there are two modes with the camera board: video mode and camera mode. JamesH confirmed on February 8 that, when in "camera mode", it is possible to adjust the shutter speed. There is an upper limit on what it can be, and it's not certain what that is, but there is a "bulb mode" sort of setting. The camera board looks to be about the size of an SD card.


April 12, 2013

I know I shouldn't even look at things I want to do in the second version of this project until I have the first version done, but I can't resist saving a few things for later.


May 5, 2013

I have ordered my Raspberry Pi Model A. Latest I've heard on the Raspberry Pi Camera board is that it may ship by May 14. The camera will not do audio, which removes one concern.


May 13, 2013

My Raspberry Pi Camera Board is on its way. I think I'm going to include a photoresistor in version one of this project, for a few reasons: it's simple, it's cheap, it's extremely low power, and it gives me a way to detect whether the Sun is up so I can adjust the camera's exposure time accordingly.

I should keep an eye out for info on the redesign of the Adafruit USB/DC/Solar Lithium Ion/Polymer charger. It looks like it'll let you connect a solar panel, a battery, and a USB port, such that you can charge the battery from solar, run the USB port from solar, or run the USB port from the battery. That's just what I want for this project - assuming I can get a sufficient battery.


May 15, 2013

I found a very useful article. The Raspberry Pi Model A may only draw 117 mA when idle, and 286 mA when the camera is active! Combine this with a 6600 mAh battery, and I could be looking at a good 23 hours of battery time between charges.


May 16, 2013

My Raspberry Pi Camera Board just arrived. I have not even taken it out of the box yet.


July 13, 2013

I am awaiting advancements in the Raspberry Pi camera control software, such that I can take multi-second exposures. In the meantime, I have found one more part to save for later: Adjustable Pi Camera Mount. The mount has a 1/4" hole, which is a rather convenient size given that most tripods, etc, use a 1/4"-20 post.


September 10, 2013

Someone else has come up with a waterproof Raspberry Pi rig. Worth keeping an eye on for ideas. Link.


December 24, 2013

It looks like there's been some progress in adding long exposure support to the Raspberry Pi. I believe the limit is 2s at present. More details here.


February 8, 2013

I just spotted a 10,000 mAh battery with 2 USB ports over at Adafruit. This opens up some possibilities, including that I could use a different camera.


March 9, 2015

It seems progress has been made with the Raspberry Pi Camera in the last couple years. I have successfully taken a multisecond exposure without crashing the Pi. I've also learned that for images under a certain size, the Pi automatically does 2x2 binning.


November 30, 2015

The Raspberry Pi Foundation has introduced a new model, the Raspberry Pi Zero. Apparently, with a few little modifications, power consumption on the Zero can be dropped to as little as 30 mA! I still need to do some experiments with the NoIR camera, for which parts should be arriving today.


October 12, 2017

Looks like someone else has done some work on this. Details here.


March 2, 2020

And another person.