How To: Extending the Capabilities of the Canon PowerShot SD800IS

A year or two ago, I read about a new software project that essentially replaced the firmware (temporarily) for some kinds of Canon cameras.  It looked like an interesting path, but I hadn’t carved out the time to try it out.  Our SD800IS was a “pocket camera” for Becky, and was regularly getting used quite a bit, so I never really investigated this any further.  However, Becky recently bought a new PowerShot, yielding the SD800IS to me for experimentation.

This code is called CHDK (Canon Hacker Development Kit), and is an open source firmware that is loaded from the SD card inserted into the camera.  With that firmware replacement comes many new features — scripting, bracketing, RAW images (albeit in a format my Adobe applications and Macs can’t read directly), live histograms.  Those are pretty cool, but I’ll leave investigating those to the reader as an exercise.  There’s just too much there to cover, although I will get to the real purpose of why I’m trying this a bit a later.

Loading the code was a little challenging, at least on my Mac.  Through the wiki site, I found the code for my camera and downloaded it.  There are versions for many, many small Canon cameras, and wiki will help you find the right one for your camera.  There are instructions on the wiki for loading the software on the SD card manually (and special instructions for doing this from a Mac), but I chose to use a Mac-based tool called CHDK Mac Installer for doing that which is linked to from the Mac CHDK FAQ.  Unfortunately, it didn’t exactly work as advertised, but it did take care of some of the more complex pieces of the work — formatting the card, and making it bootable.

The script complained about not being able to find the CHDK version I downloaded, but did handle the formatting.  With that out of the way, I then performed the steps from the manual installation that took care of moving the CHDK code to the SD card.  After finishing that, I was left with an SD card that would boot up my SD800IS with this new code.

So why did I do this?  One reason:  time lapse photography.  I downloaded a script for doing timelapse to my SD card, and booted up my camera with the CHDK code.  Activating the script was easy, and I was left with an SD800IS that acted like it had an intervalometer attached to it!  This opens up some opportunities for time lapse videos of trips, flower growth, and many other interesting applications.

Hope this helps someone out there!