Sunday, January 18, 2009

Running CHDK on the Canon SD1100IS

Last year I got a Canon SD1100IS camera. In Europe this is the IXUS 80 IS. I really like this camera. It is small, it starts up quickly and there isn’t much lag between when you press the button and when it takes a photograph. The main limiting factor is power, on holiday in France and England last summer I went through two batteries.

The designers of the software for the camera have been careful not to overload the camera with features. If you keep it in automatic mode then only some features are available; when you are in manual mode there are more options. There aren’t however many of the complex options you get on one of those expensive DSLR cameras. It isn’t that the hardware can’t do these things, Canon just doesn’t want to confuse us poor customers who just want to just point and shoot.

The actual CPU inside the SD1100IS is Canon‘s proprietary DIGIC. This is an ASIC which does signal processing and includes an embedded ARM core. There is an open source software project called CHDK (Canon Hackers Development Kit) which adds additional features to Canon cameras that use the DIGIC chips. Hackers write C code which is cross-compiled for the ARM and loaded onto the camera. Then the extra software runs as an addition to the Canon software.

So what does all this get you? There is a good list of features here. Of course it is cool to show people that you can play reversi on your camera. But how many of these features will you actually use? Amy keeps pointing out to me that I should learn to use all the existing features before I start adding new ones. The main thing I have turned on at the moment is for the camera to save raw images alongside the jpegs that it normally uses. When you zoom in on an image to the pixel level you can see some jpeg artifacts which are absent in the raw image. There is more information in the raw image. So it is nice to know that if I ever take a perfect photo I will have every possible bit. But actually most of the time I am viewing photos on the computer and never need to see this much detail. In addition working with the raw CRW images is a pain as not every piece of software can read it.

But CHDK is free, and once you have it loaded onto your flash card(s) you don’t have to use it unless you want to. The SDHC cards have a little locking tag on the side. If you set the card to locked then the CHDK software will be loaded: you see the CHDK splash screen. If you set the card to unlocked (this is how it was when you got it) then CHDK doesn’t load. In either case you still have the usual Canon menus available.

To access the CHDK features you press the alt button. Which button this is depends on your camera. On the SD1100IS it is the otherwise useless (to me) printer button. This is a toggle, that is to press alt-menu (which access the CHDK menu) you press and release alt, then you press and release menu.

The hardest thing about CHD is installing it. There’s nothing complex, it is just fiddly, and the online descriptions are confusing, especially when thy are trying to be general and talk about all the different Canon models at once. Here’s what I did to install CHDK on the SD1100IS. Note that this is the distilled version which makes it sound like I am clever.

First I had to get my flash card reader to work. It turned out that my 2.5 year old computer can’t read 4GB SDHC cards so I had to buy a 2GB card. These are slightly hard to get now but I got one for $7.

Second the card has to use the FAT16 filesystem, so I used the camera to format the card. It is possible this step was unnecessary.

I determined the version of the firmware in the camera as described here. I have 1.01A. I downloaded the correct version of CHDK from here. I unzipped CHDK. In the distribution is a Windows program called bootable.exe. I ran this against my SDHC card

$ ./bootable.exe g:
Are you sure ?: y

I copied the DISKBOOT.BIN file to the card. I set the read lock on the card to 'locked' and put it in the camera and tuned the camera on. And for that I got lots of possibly useless extra features.

No comments:

Post a Comment