Expanding Camera Capabilities
If you have a small digital camera, you may have found yourself wanting features that your camera doesn’t have. If you have a Canon camera, you just may be in luck. The Canon Hackers Development Kit (CHDK), available for many models, provides extra features without voiding a warranty.
The CHDK is a firmware program that runs from your memory card and expands the capabilities of your Canon camera. While it runs on most Canon models that use the DIGIC II and DIGIC III chips, there are a few models that it has not yet been ported to. A full list of supported models is maintained at the CHDK Wiki.
OK, What Does It Do?
CHDK expands your camera’s capabilities in the following areas:
- Recording Images - You can capture still images in RAW format. You can capture longer video images, with additional compression options.
- Data Displays - You can show additional data on the LCD screen, such as battery power, depth of field, and a histogram.
- Photo Settings - These options include longer exposure times, faster shutter speeds, and automatic exposure bracketing.
- Triggers - You can trigger the camera via the USB port.
- Programmability - The CHDK contains a programming language that allows you to run pre-written macros or create your own.
Why Would I Want This?
Several of the features fall under the category of eye candy. I find that I like having the battery level displayed continuously (as it does on other gadgets I own). I had always wondered why the histogram was only displayed when viewing existing pictures, rather than when you take a picture (and can really use the histogram). There is also a feature (called zebra mode) that can use blinking pixels to show you where your photo is under- or over-exposed.
For many photographers, the ability to obtain RAW photos is of major importance. Since I don’t have a DSLR, I have not used the RAW image files but I have heard they give you much more information than the standard JPEG image.
Many other features depend on the camera model you have. My camera is an SD700 IS, which is now several years old and is not sold any more. A previous camera I owned (SD450) had the ability to zoom in and out while recording video, but the SD700 does not have that ability. CHDK added that ability, which I actually use quite a bit.
A Programming Language
As a software engineer, the built-in programming language turned out to be the most useful feature of all. The programming language is a small variant of Basic, most similar to the TinyBasic some of us used at the dawn of the microcomputer age. It is a very minimal language, including the normal control structures (for/next, if/then/else, etc) and a maximum of 26 variables (named a-z).
One nice feature of the built-in Basic is the ability to trigger every user-interface control on the camera, allowing you to drive the camera as you would use it manually. One of the macros I use the most allows me to take a sequence of photos, both under- and over-exposed, which I then reassemble in software to obtain high dynamic range (HDR) photos. This type of photo brings out all details that would normally be in the shadows or washed out due to too much light.
There are several different versions of CHDK. The standard version works on most camera models. One version specializes in helping you make stereo photos, while another incorporates motion-detection features to let the camera trigger itself when its view changes.
As this is an open source project, the talents of software engineers and users help make this product better. If you are not a developer, you still may be able to contribute, especially if your camera is not yet supported.
The CHDK Wiki seems to have all the documentation you might ever need, including a programming guide, new user’s guide, and porting guide. If you can find a version for your camera model, you can be using the new features in just minutes. And, if you’re like me, you will always leave CHDK on your camera.
The CHDK Wiki mentions that the software should not void your warranty. Canon says the warranty would be voided if you modified the firmware, but since CHDK doesn’t modify your camera’s firmware in any way, there should not be a problem. Just make sure you pull the memory card with the CHDK on it if you ever need to take the camera in for service.