A couple of months ago I stumbled onto the CHDK project: the Canon Hackers Development Kit. Someone reverse-engineered a firmware upgrade for a Canon digital camera and figured out how to build enhanced firmware add-ons. The project has grown to encompass a large number of Canon models, and the code is GPL‘ed. The result is a camera you can script (in BASIC, no less).

I got interested in kite aerial photography last summer and bought a FlyCamOne2, which takes some fun pix (like this set from RIRI in Charlottetown) but with 0.3 megapixels, it leaves you wanting more. I’ve wanted to loft a decent camera and get shots worthy of inclusion in the KAP Pool on Flickr (where you’ll find some astounding images). The problem is to get the camera to shoot continuously at suitable intervals for a long period (so you don’t have spend big bucks on a remote control rig). The FlyCamOne2 will shoot every 4 seconds until it fills its SD card or the battery dies. With CHDK, you have control over all the parameters of the camera: as well as shooting at intervals you can zoom, change the aperture and exposure, and so on.

Where the plows leave the snow

I’ve tried it once, last weekend, in the snow of the schoolyard down the street. The results are miles ahead of anything I got with the FlyCamOne2. My current script is a simple adaptation of a couple of scripts on the wiki: an intervalometer coupled with a zoom control script. Every few seconds it takes a shot, zooms in half way, takes another shot, zooms in all the way, and takes a third shot, then zooms out and waits for the next iteration. The zoom shots mostly didn’t turn out well, but that was at least partly due to the wild winds which made the kite too unstable. A good steady wind would probably get better results, and a larger kite wouldn’t hurt. The next step will be to make it to bracket the exposure (i.e. take three rapid shots, with one a little over- and one a little under-exposed), since the camera’s guess at the right exposure when looking straight down at a field of sunlit snow may not be optimal.

Then, how about making an occasional video? The FlyCamOne2 does video, like this one from Access 2008 in Hamilton, but to switch from shooting to filming you have to haul the kite down and reset the camera, then send it up again. The CHDK script could have a longer loop and take a minute of video every five minutes or so; and maybe a longer video at the beginning to catch the ascent, which is always the most videogenic part of the flight (barring unplanned descents involving trees, helicopters, etc.).

What’s Canon’s response to all this? Well, using unauthorized firmware will void your warranty, so nyah, but it’s not clear that CHDK falls in that category, since it’s a firmware add-on and doesn’t actually overwrite the camera’s firmware (it’s loaded from the SD card at run time). It would be interesting for a journalist with the right access to investigate the response of manufacturers of consumer products that develop an unintended open-source community, like the Linksys NSLU2 NAS storage device or the WRT54G router. (Are there others out there?). Certainly, I’m going to be a loyal Canon customer as long as CHDK works and no other cameras have such a feature, and I’m going to be very bitter if Canon pulls the plug.

BTW the first reference to CHDK I ran across was on the XKCD blag. That explains the references to kite photography in a couple of the comics.