Cameras

20 December 2011 ~ 0 Comments

NewImage

One of the main components of the computer probe is the digital camera it carries. The camera is fixed to the bottom of the payload box and will record every single frame of the 2 hour trip up to 30.000m and down back.

There are several challenges with the camera component:

  • It has be to solid robust. Low quality materials are not a good idea. It will be a rough trip with lots of turbulence and temperatures than can reach -50ºC (-58ºF).
  • We must be able to control it through software. We want to take high-res photos and alternate with HD filming.
  • We should be able to externally power it.
  • It should be compact and cheap, we don’t want to spend thousands of € on a camera, as lots of things can go wrong with the first flight.

Our first option was a Kodak Zi8 camera. It’s very cheap, compact, has been getting good reviews, and does HD. We bought one, teared it apart, built an Arduino controller for it and reassembled everything back. Looked great.

But at the last minute something went wrong. The SD card controller stopped working properly and went very unstable to the point we couldn’t trust it anymore. We tried everything to fix it but it just wasn’t possible. During the whole process we must have damaged some sensible electronics, so we had to let the Zi8 go.

We ended up choosing the great Canon IXUS 100 (SD780 for the US). It’s not very cheap, we got one for 190€ at FNAC, but it does a good job, read ahead.

To control the camera we used CHDK. CHDK is a “firmware enhancement that operates on a number of Canon Cameras. CHDK gets loaded into your camera’s memory upon bootup (either manually or automatically). It provides additional functionality beyond that currently provided by the native camera firmware.”. In other words, with CHDK we got full programatic control over the IXUS 100, very geekish and useful stuff.

One of the great things about CHDK is that it allows you to code small scripts in uBasic or LUA that run on the camera and perform pretty much any function supported (and some unsupported) by the hardware.

This IXUS 100 is supported by CHDK. We used a 16G SD card with it. Using a big SD card is tricky due to a software limitation on boot, you have to create two partitions on the card, one for booting and the other one for data. CHDK will swap them after loading. But getting it ready is out of scope here, just read the install page.

We decided to use LUA scripting for our camera flightplan (see our scripts at our SVN repository). After fiddling with the supported camera modes for a few hours we managed to programmatically switch from video to photo mode and vice-versa. This was a big win because we weren’t sure it was possible. On the original firmware you can only do this mechanically with a mode switch.

 

This was our first work done with CHDK and the IXUS 100, a Timelapse of our second group meeting, at around 4AM.

UPDATE: We actually ended up using not one, but two cameras on-board. One IXUS 100 headed down and one IXUS 80 headed to horizon.

You can check out the LUA scripts in our source repository here.

You can also check the photos and the video from the Spacebits 1 flight, done with these two cameras.