September 11, 2007

The Wonders of CHDK and My Canon Powershot A630

I've had my Canon Powershot A630 for almost a year now, and while mostly satisfied, there were a couple of minor annoyances: 1. the interface was sub-par in comparison to my previous camera, a Fuji Finepix 2. I could grab the raw graphics and had to trust the camera's conversion to 8-bit JPEG. The resulting JPEG's were mostly good, but there were definitely times where I wished I could do better constructing shots in less than optimal lighting. The ability to take raw graphics and tweak it was pretty enticing, but as a Linux user, I figured I'd just have to deal... until yesterday when I discovered CHDK in this article at linux.com!

Naturally, I had to try it out as soon as I got home, and it was pretty darn simple. The best news is that it won't wreak havoc with your camera if you get something wrong, because it leaves the manufacturer's firmware intact. The downside from that is that you have to load the CHDK firmware every time you turn on the camera - but it's not that hard. Basically, you follow the steps in the linux.com article and the CHDK wiki to load the firmware build onto your camera's SD card. Load the card in your camera, hit "menu" and select "update firmware" at the bottom of the menu list.

My biggest challenge was not having a card reader, but I improvised with my Epson printer. I just loaded the card in the printer, attached it via USB to my Ubuntu-enabled Thinkpad, and voila, I had a card reader. After loading the firmware, it didn't take long to figure out its usefulness. Not only can I capture images in Canon's raw format, but there are all sorts of things that can be scripted via CHDK's BASIC-like script interpreter. For example, there are scripts so that you can change the depth-of-field to put background objects in focus (requires some scripting and mashing up graphics). Another nice feature is the live histogram and the battery statistics. Also, push the shutter button down halfway and get a live reading of current depth-of-field/hyperfocal distance calculations.

After taking the raw photos, I had one slight problem: my version of dcraw, a "raw" image format processing application, was not compatible with my camera's format. But, a few minutes searching led me to the culprit: an older version of dcraw. I had 2 options: either get a newer version or use another piece of software. I chose rawstudio and it worked like a peach.

A note: I couldn't grab the raw files via my camera's standard USB interface. I had to load the card into my "reader" again and transfer files that way. A minor hassle.

Edit: this one's making it ALL OVER the interweb: engadget and wired's gadget lab, among many others.