CHDK is a firmware enhancement that operates on a number of Canon Cameras. CHDK gets loaded into your camera's memory upon bootup (either manually or automatically). It provides additional functionality beyond that currently provided by the native camera firmware.
CHDK is not a permanent firmware upgrade: you decide how it is loaded (manually or automatically) and you can always easily remove it.
Please see the FAQ, CHDK for Dummies, Firmware Usage page and the One Page Ultra-Quick Users Guide, as well as other pages on this wiki, for more specifics on supported cameras, details of features, scripting, downloading, etc.
1. What is CHDK?
- CHDK is free software for some (not all) Canon PowerShot compact digital cameras. CHDK can give your camera new enhanced features by loading it onto the camera's memory card.
2. Is CHDK safe to use?
- Probably. See the following FAQ entries for more information
3. What else should I know?
- Developers around the world are continuing to add new features to CHDK. Because the idea of using the camera's microprocessor is so flexible, various developers have made different versions of CHDK, and new features continue to be developed - for example, one version of CHDK has features assist in taking stereo photographs, and even allows two cameras to be synchronized to take pictures at the same time (with an accuracy of better than 0.1 milliseconds, providing they are the same camera model).
4. How do I get started with CHDK?
- See below, and read the FAQ, CHDK for Dummies and the Firmware Usage page !!!
Step 1. See if there is a CHDK for your camera and firmware
You need to know your camera model and its firmware version. (Note: non-US models sometimes have different model designations, and sometimes references to the camera models here do not cross reference to these. You may have to seek out this information.)
If Downloads does not give you the desired information, visit For Developers for a list of all models (including US and European names). Color codes for each model indicate the state of the porting process for that camera.
Step 2. If CHDK is available for your camera and firmware, download it
You can find the links at the DOWNLOADS page as well.
Step 3. Transfer the CHDK program files to your memory card
See the FAQ for how to do this. (Key point: there are two files, each about 110 kBytes, that must be placed on the memory card in its root directory)
Step 4. Get CHDK to 'boot' (or load) into the camera after you turn it on
Your camera is a computer, and just because you load a program onto its hard disk does not mean that program will run every time you turn on your computer. You really must read the FAQ to learn how to get CHDK running. In brief, you have two options: either manually (you take steps to load it each time you turn on your camera) or automatically (it loads each time the camera turns on, without any additional steps by you).
There is active development work on a number of cameras and/or firmware versions that currently are not supported. Check out the For Developers page for the listing of ongoing projects (and consider helping out).
In brief, these are the key steps in the porting process:
- get the camera to somehow respond to something on the card.
- use the Canon BASIC dumper to export the camera's firmware image
- analyze the firmware, find out where key routines are
- create the necessary source C files.
- compile the software, debug it, and you've got it!
- Flip out like a ninja! (this step is optional, but truly deserved! :)
The table at the begining of the For Developers page shows known status of different cameras.