The Canon Hacker Development Kit ( CHDK ) is an independent firmware attachment for compact digital cameras by Canon with DIGIC II, III, IV or V processor. CHDK is operated as an open source project, the source code and precompiled software available under the GNU GPL terms. The software enhances the capabilities of digital cameras considerably. The most important feature of CHDK is that the original firmware of the camera remains untouched; they will not be replaced or changed.

History of development

The history of CHDK began in the second half of 2006. VitalyB The programmer could an official file for Ixus firmware update ( "update" ) to the extent analyze that he understood the updating procedure. With this knowledge, he wrote a program to read the firmware. The data were sent to one of the camera LEDs and transmitted via optical coupling.

With the findings from the analysis of the data a program was written, 10 -bit RAW files could save the PowerShot A610. It was named RAW enabler.

In the next development step is the integration of an interpreter for the BASIC - dialect UBasic was. This simple scripts to control the camera were possible.

The camera models PowerShot A620, A630 and A710 were included in the project. As new functions, a histogram display, first opportunities for exposure bracketing, on-screen display and a layout editor were added to position of the OSD elements.

As of early 2007, the programmers Grand added the display of various camera values ​​, over-and under-exposure in the histogram, a DOF calculator, a battery indicator, a file browser, a text indicator, the organization of RAW storage, and a Startup added function and called the project CHDK.

In September 2007 the MX3 programmers developed a motion detection for the firmware essay. Another programmer Fingalo, extended UBasic substantially by a plurality of camera specific commands. The next eight camera models could use CHDK. Long exposure times and exposure bracketing in continuous mode followed as new features.

For the first time succeeded DIGIC III cameras to successfully adapt with VxWorks and DRYOS operating system. USB remote control options emerged.

Early 2008 were a variety of new features on the version Allbest. Mid-2008, the experimental version Juciphox developed a whole range of new features, including the Lua scripting language, today's standard. The final major change was the in-camera support for DNG files.

In the course of time, a large community began to emerge, which operates the development of CHDK together. More than 80 camera models of the IXUS and PowerShot Series phones are supported currently.


The necessary binary data would be copied to the used in the camera memory card. At the start of CHDK you call the firmware update feature on the Camera menu to load the data into the main memory of the camera. Now, an additional configuration menu will appear where all the settings are organized by CHDK Per camera button. If the update function not performed, the camera operates normally without CHDK.

If necessary, CHDK can also be started automatically when the camera is turned. To this end, one makes the memory card bootable and sets the write-protect switch to " write protected ".

Overview of functions

CHDK offers a lot of features. These may be summarized here only an overview.

  • Recording RAW / DNG images.
  • Fast bracketing with freely adjustable exposure values.
  • Manually adjustable shutter speed of one hundred thousandth s to 65 s ( in some cameras is the max. Exposure time unlimited)
  • Manually adjustable focus distance
  • Manually adjustable aperture value / ND filter position ( depending on the camera hardware )
  • Manual identifiable ISO values ​​(upper and lower limits are dependent on the hardware)
  • Adjustable Auto- ISO values ​​for different tasks
  • Advanced adjustable exposure compensation ( Ev)
  • Many additional information and settings for the ambitious photographer (eg depth of field calculator, setting the hyperfocal distance )
  • Multiple exposure and further processing to form an image on the camera
  • Advanced video features ( zoom and focus during recording)
  • Infinitely adjustable video quality for video recording
  • Tone curves can be included directly in the camera.
  • Contours overlays as a tool for trick shots
  • Remote tripping by means of a remote control ( DIY )
  • Advanced functions through scripts ( UBasic and Lua ) Bracketing for HDR
  • Time interval for time-lapse recordings
  • Automatic Focus stacking
  • Camera triggers when motion is detected in the image.
  • Time-controlled processes
  • Virtual camera modes and functions that are not supported by the camera at the factory (eg Tv mode for cameras without this mode ).
  • Remote - controlled processes ( DIY remote control for USB port on the camera )
  • Create file management, log files, write additional information to EXIF data

What can not CHDK?

There are, with the exception of raw data, no different from those offered by the camera image and video formats are possible. CHDK is not suitable as player for various multimedia formats such as MP3.


In addition to general international CHDK version, there are other variants.

Especially for the German-speaking countries a version has been developed which includes all settings for a German user interface as well as an expanded scope of script commands. The German CHDK user community has been particularly specializing in the use of scripts.

Another very popular variation called SDM, Stereo Data Maker. Here it is mainly about creating stereo images. SDM supports the synchronization of multiple cameras, but also includes the main CHDK functions.

There are several approaches to equip SLR Canon EOS digital camera series with additional functions. These developments differ significantly from the CHDK for digital compact cameras. Leading the project is here Magic Lantern.