Special CHDK Build with Mode Dial Support


The CHDK project is about firmware that dramatically enhances the power of many Canon cameras. For further information see the CHDK Wiki and the CHDK Forum. CHDK provides a scripting capability (using a Basic-like language) for Canon cameras that is very useful for Kite Aerial Photography, particularly AutoKAP, where there's no remote control of the camera once it's up in the air. A CHDK script lets you take shots every few seconds, varying the exposure time, aperture or zoom for each shot.

You can find sample scripts for James Gentles CHDK2 here.

Currently the standard CHDK builds do not support script access to the Mode Dial, so it's not possible for a script to switch from taking photos to taking a video for example. However, one CHDK expert, Jeff666, wrote some experimental code that added this capability, and I've undertaken to add it to current builds, for some cameras at least. The currently supported cameras are the Ixus70/SD1000 (see note below), A560, A570, A720 and G9.

The support adds a new set of 'buttons' that scripts can press:
dm_auto turns the dial to Auto mode
dm_movie turns the dial to movie mode
dm_m turns the dial to manual mode
dm_p turns the dial to program mode (A570, A720 and G9)
dm_av turns the dial to aperture value mode (A570, A720 and G9)
dm_tv turns the dial to time or shutter speed mode (A570, A720 and G9)

Note: on the Ixus70/SD1000 it is not possible to switch between Auto and Manual modes, only between whatever still mode the camera is in and Movie mode.

To change the mode, a script needs to press the appropriate button. It's very important that before the script ends, or turns the dial to another mode that the button is released, as in these two examples.

Shoot a picture in Auto Mode Shoot a 5-second Movie
// go into auto mode (and put a message on the LCD to say so)
print "Auto"                       
press "dm_auto"
sleep 1000
// take a picture
shoot
sleep 1000
// now go back to previous mode
release "dm_auto"
// go into movie mode (and put a message on the LCD to say so)
print "Movie"
press "dm_movie"
sleep 1000
press "shoot_full"
sleep 300
release "shoot_full"
rem start of video delay loop
sleep 5000
rem shoot again to turn video off
press "shoot_full"
sleep 300
release "shoot_full"
sleep 1000
release "dm_movie"

The following zip files contain firmware files with Mode Dial support based on build 701:

Note that the A560 version does not support Program, Av or Tv modes.

For those interested in the source - here is a zip file of the three source files I changed for these cameras.

See here for more CHDK-related pages.

Last update - February 2009 - for Build 701