CHDK User Manual Banner 1.png


What is CHDK?

Canon Hack Development Kit

CHDK is a unique software application developed by enthusiasts that enables extra features for ported Canon™ "Point&Shoot" cameras. (Note: it will not run on DSLR cameras.)

What can it do?

CHDK enhances the capabilities of your camera in a non-destructive, non-permanent way.

After loading CHDK, your camera will have the following extra functionality:

  • Shutter-priority (Tv) exposure - via shutter value override feature
  • Aperture-priority (Av) exposure - via aperture value override feature
  • Shooting in RAW, with RAW Average, RAW Sum, and RAW Develop features
  • DNG (Digital Negative) in camera conversion, and USB download options
  • Bracketing -Tv, Av, ISO, and Focus bracketing, using scripts, or in continuous or custom timer modes
  • Live histogram (RGB, blended, luminance and for each RGB channel)
  • Zebra mode (a live view of over and under-exposed areas of your picture) for many cameras
  • Depth-of-field (DOF)-calculator, Hyperfocal-calculator with instant Hyperfocal and Infinity focus-set, and more
  • Battery indicator
  • RAW and Video space-remaining gauges with custom low-limit alerts
  • USB cable remote shutter release
  • Motion-detection trigger - automatically fires camera on motion detection. - Ability to capture lightning strikes.
  • Adjust Video quality and size (compression) adjustable while recording
  • Elimination of 1 Gig video-size limit (for most DIGIC II cameras)
  • Zoom during video function - for cameras without this feature
  • Shutter, Aperture, and ISO Overrides
  • Ultra-long shutter speeds - at least up to 64 seconds - and longer for supported cameras
  • Ultra-fast shutter speeds - up to 1/10,000" and higher
  • High-speed Flash Sync at all speeds up to 1/64,000"
  • Custom, user-editable visible grids for framing, cropping, and alignment (not all cameras)
  • File browser
  • Text reader
  • Text editor
  • Calendar
  • Games
  • Fully customizable CHDK display, info placement, user colors, fonts in menus, etc.
  • Multi-language Interface - CHDK supports many languages
  • Custom CHDK User Menu - for instant recall of up to 10 favorite functions
  • Scripts execution - including intervalometer, motion detection, etc
  • And many others.

These new features are accessed through CHDK-specific menus, rather than the default camera menus. As CHDK is continually evolving, new features are added as they are developed. Updating occasionally will ensure you have all the latest features for your camera.

How is all this possible?

Firstly, by the skill, persistence, and generosity of the developers, and other contributors to the CHDK project.

Secondly, in the same way that your computer hardware runs an operating system, such as Windows, Mac OS, or Linux, your Canon camera also has an operating system in it. And in the same way that the OS runs Photoshop™ or Zoombrowser on your computer, the OS in your camera is also able to run programs such as CHDK.

Does CHDK permanently alter the camera?

No. CHDK is simply software. Just like a computer, when the camera is turned off all the software disappears from memory until it is turned on again and CHDK is reloaded. Also like some software, there is an option to automatically start CHDK when the camera starts ("booting").

How does CHDK get on the camera?

In the same way that you install Photoshop™ or Zoombrowser onto a computer (by copying the software onto your hard drive from, say, a CD) CHDK is installed by copying the CHDK software onto one of the camera’s "drives" - the SD flash memory card.

How does CHDK software get copied to the flash card?

CHDK can be copied to your SD flash card using a file manager such as Windows Explorer. A card reader is used to connect the SD flash card to your computer. Once connected, the SD flash card appears like any other hard drive on the computer. Your printer may contain a usable card reader. Card readers are fairly inexpensive, and can simplify transferring of files, and thus files can be transferred via USB. See also: Raw Parameters, and DNG visible via USB.

Where can CHDK software be downloaded?

Visit this Wiki: Prepare your SD card to learn how do to find the correct CHDK version for your camera and how to prepare your SD card to use it. If this is your first time using CHDK, it is strongly recommended that you use the STICK Utility to download CHDK and setup your SD card.

Thanks to the Authors
Many thanks go to all the contributing writers over the years.
Please see Acknowledgements at bottom of this page

Important Disclaimer


This CHDK User Manual is FOR INFORMATIONAL PURPOSES ONLY, and offered WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The information offered is for experimental application.

CHDK is experimental! CHDK comes with no warranty for any use - use it at your own risk.

Before downloading and using the CHDK software, careful consideration should be given to the following:

Usually the first question is: Can CHDK damage your camera?

The short answer: It is unlikely, but theoretically possible. CHDK is created by reverse engineering an undocumented system that directly controls the hardware. Because of this, it is impossible to be certain that it is completely safe.

The long answer: It is very unlikely that CHDK will permanently harm your camera. There have been no confirmed reports of CHDK damaging a camera, and both the original firmware and the CHDK developers use safeguards to prevent situations where this could happen. There is a wiki page where suspected issues with CHDK can be documented: Camera failures suspected to be caused by CHDK

There are at least two ways in which CHDK could theoretically do damage:

1) By commanding physical hardware to do something it was not designed to do. For example, it is possible to command the lens hardware to move when the lens is closed. It is also possible to move lens hardware beyond limits allowed by Canon's firmware, using scripts, or overrides. For an example of this, see Tele-Super-Macro Mode Comments.

2) By overwriting the internal flash ROM where the Canon firmware is kept, rendering the camera un-bootable. Since CHDK is never intended to write directly to the internal flash ROM, it would take an extremely unlikely sequence of events for this to happen.

It is worth noting that neither of these cases has resulted in actual damage, and both would require direct input from the user. If you are concerned about this, the risk can be minimized by avoiding untested developmental builds (such as test builds posted on the forum) and being selective about what scripts you run.

One more thing: There are tens of thousands of satisfied users all around the world enjoying the benefits of CHDK.

See also GPL license information below.

Using CHDK


If you want to install CHDK before Reading This Manual, download the STICK utility and use CHDK without RTFM.

Once CHDK is installed on the camera's SD memory card, you will need to start CHDK on your camera. As explained earlier, CHDK does not actually change your firmware which is stored in the camera's internal flash ROM, so it must be loaded into the camera's RAM each time the camera is started.

Loading CHDK

There are two methods of loading CHDK: the Firmware Update Method and the Bootable SD Card Method. Both methods are fully described on the Prepare your SD card wiki page.

Firmware Update Method

Use this method to MANUALLY load CHDK into the camera's RAM every time you start your camera.

If this method is used, CHDK will be unloaded when the camera is powered off. You will need to repeat the following steps each time you want to use it. This is a good method if you just want to try CHDK out, or only use CHDK occasionally.

Despite utilizing the camera's firmware update option, this method does not actually "update" the firmware in the camera's internal flash ROM. Instead, CHDK tricks the camera into loading the CHDK software into the camera's RAM, thus leaving the firmware stored in the camera's ROM untouched.

1. Start the camera in Playback mode. On cameras that have a PLAY button (usually a blue triangle), use that button to power the camera on, instead of the power button. On cameras with a "Shooting/Playback" mode switch, ensure the switch is in the "Playback" mode position and then press the On/Off button to power the camera on.

2. Press MENU button, then press UP once.

3. An option to update the firmware appears at the bottom of the screen (see Fig. 1). Select that option by pressing the FUNC.SET button.

4. Confirm the selection by pressing RIGHT once to highlight "OK" (see Fig. 2), then press the FUNC.SET button to load CHDK.

Fig. 1   FirmUpdate-adj.jpg          Fig. 2   ConfirmUpdate 2.jpeg

If the firmware update option does not appear as seen in Fig. 1, there are a few common causes:

  • The camera was started in Shooting mode. Turn off the camera and follow steps 1. through 4. above.
  • The CHDK port for the specific firmware of the camera you are using does not support this method. Check the wiki page for your camera model. If this method is not supported, you can use the "Bootable SD Card Method".
  • The CHDK files were not correctly installed on to the root of the SD memory card. If you installed from a Mac, be sure to check this section: Still Having Trouble?

Bootable SD Card Method

Use this method to AUTOMATICALLY load CHDK into the camera's RAM every time you start your camera.

The steps needed to use this method depends on the specific firmware of the camera you are using, the size of the SD memory card, and the OS of the computer used to install CHDK on to the SD memory card. See Prepare your SD card for details. After the SD memory card is prepared, CHDK will load automatically when the camera starts if the SD card is LOCKED. To disable CHDK temporarily, just unlock the SD card.

Has CHDK been loaded?


When CHDK starts, this splash screen appears on the LCD for about 2 seconds, showing that CHDK is loading in to the camera’s RAM. (The splash screen can be disabled in Main Menu > CHDK Settings).

It’s running! What's next?

After the splash screen shows, CHDK is running in the background. Some features are enabled by default, for example, the battery and memory indicators. However, most features are inactive by default.

To make changes to how CHDK operates, you start by entering <ALT> mode.

Note: With CHDK installed, many cameras start in Playback (picture review mode, with the lens retracted) when the On / Off button is pressed, unlike the standard Canon firmware. On most of these cameras (the cameras without a "Shooting/Playback" mode switch), holding the On / Off button for one second starts directly in Shooting mode. Also, pressing the shutter button halfway or fully after the camera has started will also switch the camera to Shooting mode.

<ALT> Mode

CHDK setup and configuration is done in the <ALT> mode.  You can also run scripts (custom programs) while in <ALT> mode.  Once CHDK is configured to your satisfaction, exit <ALT> mode to shoot or use other normal camera functions with the CHDK settings applied.

Note: When <ALT> mode is enabled, the function of certain buttons on the camera will change, allowing you to start accessing CHDK features. For example, pressing the FUNC.SET button when <ALT> mode is enabled will display the CHDK Script menu.

The button that is used to enter the <ALT> mode varies between cameras. If you are not sure which button enables <ALT> mode for your camera, try one of these buttons.

  • For most cameras – press the PRINT, SHORTCUT, or PLAY button with a "momentary" short press. (Don't hold the button down for more than 1 second.) The specific <ALT> button to use should be listed in the README.TXT included with the appropriate CHDK build for your camera.
Below are some cameras which use exceptions to the above options.
  • A480 – Press the MODE button;
  • A3000, SX120, SX130 – Press the FACE button;
  • Ixus220/elph300hs, Ixus1000/SD4500 – Press the VIDEO button.

For convenience, CHDK will ignore a press on the <ALT> mode button and allow the Canon firmware to use that button in the normal manner if the <ALT> mode button is pressed and held for longer than a half-second.

Note: Check the CHDK Wiki page for your specific camera's CHDK features. The button to enter <ALT> mode will probably be listed there. If it is not, please feel free to update the information on that CHDK wiki page.

When you enter <ALT> mode, the indicator --ALT--.jpg will appear at the bottom middle of the on-screen display (OSD). In <ALT> mode, you can use CHDK scripts and also enter the CHDK's Main Menu. When you have finished customizing how CHDK operates using the Main Menu and/or using scripts, press the <ALT> mode button to exit <ALT> mode. You can now use the camera to take photos or video, and the camera's operation will be changed by the options you have set in CHDK.

Remember - unless you are running a script, you must exit <ALT> mode to actually take photos. Also, any overrides you have selected in CHDK will be active even after you have left the <ALT> mode.

This point should be emphasized -- When not running a script, you must exit the <ALT> mode.

And one final point -- You must also switch the camera from Playback mode to Shooting mode.

Camera Key Usage with CHDK

Common To All Cameras in <ALT> mode –

MENU – Displays the main CHDK menu
FUNC.SET – Display the Script menu
DISP. – Return to previous menu
Full Shutter – Executes the selected Script, or ends a script that is running

RAW/DNG toggle (active in <ALT> when camera is in Shooting mode) –

  • A Series, SX100, SX130 [+/-]
  • G Series AF Frame Selector/Erase
  • S Series FUNC.SET
  • SD/IXUS Series DISP.
  • SX20 to SX60 AF Frame Selector/Erase
  • SX200 DISP.

Shortcuts: available any time CHDK is loaded (on most cameras) –

Half Shutter
+ Left – Toggle Zebra on/off
+ Right – Toggle OSD on/off
+ Up – Toggle Histogram on/off
+ Down - Toggle Overrides on/off
Note 1: Key assignments when using Half Shutter may vary on some cameras
Note 2: Half Shutter shortcut functions can be disabled in the CHDK Settings menu

CHDK manual focus enabled (with <ALT>) –

Up – Set MF to infinity
Down – to set MF distance to hyperfocal distance (based on f/stop and zoom focal-length)
Left – Decrease Value Factor
Right – Increase Value Factor
Note: On the SD/IXUS series the DISP. button is used to instantly set MF (manual focus) distance to infinity.
See: Override Subject Distance

In OSD layout editor –

DISP. – Changes the number of pixels the OSD (on-screen display) elements are moved by.

In File Browser –

RIGHT – make selection
LEFT – Open context menu
Zoom-in / Zoom-out – Scroll-By-Page in File Browser and File Reader modes
Half-shoot – Scroll one page forward in the File Reader mode.

Fast EV Switch –

When enabled, allows changes to exposure compensation by using either the Up Down buttons or the rotary jog dial (this depends on the camera model). See Enable Fast EV Switch?

Video Modes –

The following keyboard options are used when recording video. Descriptions of the key assignments can be found in each associated section.
Fast Video Control
Video Quality Control
AF key
In addition, some cameras allow exposure compensation adjustment while recording. Depending on the camera model, this is enabled while recording with either the ERASE, DISP., or MENU button. Once enabled, pressing the Up Down buttons adjust exposure compensation.

Menu numerical units –

Zoom-in / Zoom-out - To enter numerical values in menus, the zoom lever/switch is used to change the unit value, ie: 1, 10, 100.
The unit value is indicated in the top left-hand corner of the OSD. When doing this, first select the menu item to be changed, then change the unit value with the zoom lever/switch, then change the selected menu item.

Note: The key that is used to enable <ALT> mode can usually be configured in the CHDK's "Miscellaneous Stuff" menu. Also pressing the <ALT> button with a short momentary press starts <ALT>, while pressing and holding slightly longer activates the original Canon functionality.

CHDK Main Menu

Manual-1.2.0-main menu.png

The Main Menu is the top-level menu from which all CHDK functions are enabled and customized. To access the Main Menu, set the camera to <ALT> mode and press the MENU button. Use the Directional buttons Directional buttons.jpg to navigate the Menus.

Info -ToggleSw.jpg

Like Canon’s menus, pressing the FUNC.SET button will select the highlighted menu option. Pressing the DISP. button will move back one menu level. Pressing the MENU button will exit the current operation.


When entering numeric values in menu item fields, your camera's zoom lever can be used to move between input digits. It is not necessary to press the right arrow button 200 times to set a value of 200. Simply press the zoom lever to the left twice and then the right arrow button once. For cameras without a zoom lever, the DISP button can be used instead.

Enhanced Photo Operations

Enhanced menu v2.png

The Enhanced Photo Operations menu is used to configure the CHDK functions most directly related to actually taking a photograph. These are specifically those functions related to exposure and focus settings.

Warning: Some settings in the Canon menus may interfere with CHDK's ability to override focus and exposure settings. For many cameras, having the camera configured with Servo AF enabled can cause overrides to be ignored. Also, if your camera has a hot shoe for an external flash unit, anything in that hot shoe bracket (like a cover, bubble level, or external flash unit) can cause CHDK overrides to be ignored.

Disable Overrides

[No, Yes]
This feature allows the disabling of all overrides, regardless of the settings in other menu entries.
No - Overrides are individually enabled and disabled via individual menu items (below).
Yes - All overrides are disabled, regardless of the state of the individual menu items (below).
  • Include AutoISO & Bracketing
Enable [●] / Disable [ ]
Includes AutoISO and Bracketing settings in the "Disable Override" setting. If not enabled then the AutoISO and Bracketing settings will not be affected by the "Disable Override" setting.

NOTE: You must exit <ALT> mode to shoot pictures with override adjustments applied. Also don't forget to uncheck the "Disable Overrides on Startup" menu item, the last menu item in the "Enhanced Photo Operations" section of CHDK's Main Menu, if you want to retain your override settings after a restart.

Override Tv

This feature allows you to override the camera’s shutter speed in all auto and manual modes with the speed you select. Shutter speeds can be longer than 60 seconds or as short as 1/100,000th of a second (0.00001 sec). Please note that the actual speeds available are dependent on the camera used and other conditions such as the aperture setting.

There are three ways to enter a Tv override, selected by the Override Tv type -> menu item.

Ev Step – The override shutter speed is set in fractional units using standard values from the days of film cameras.
Enter the desired shutter speed from the Ev Step Value menu item that appears below when you select this option.
ShrtExp – The override shutter speed is set in decimal seconds.
Enter the desired shutter speed from the Short Exp. Value menu item that appears below when you select this option.
LongExp – The override shutter speed is set in hours:minutes:seconds.
Enter the desired shutter speed from the Long Exp. Value menu item that appears below when you select this option. Use the zoom lever to move between the different hh:mm:ss fields

Note that Tv override is enabled when the selector box beside the Value field is enabled. Use the Func/Set button to toggle it on & off.

Override Aperture

Note: Only available on cameras with an actual aperture/iris mechanism.

[●] [ 1.8 – 32.00]

This feature allows you to override the camera’s aperture settings using standard f-stop values. Simply select the desired setting and the camera will use that setting in all auto and manual modes. Please note that the actual aperture values available may depend on the camera's construction and zoom position.

The [●] field is used to enable or disable the override.

Override ISO value

[●] [ 0 - 10000]

This feature allows you to override the camera’s ISO setting.
Select the desired ISO setting and the camera will use that setting in all auto and manual modes.

The [●] field is used to enable or disable the override.

  • The values entered in the ISO override may not be exactly equivalent to the values displayed in the Canon UI and EXIF image data. Internally, the camera uses a different ISO value for exposure calculations ("real" ISO) and for display ("market" ISO). As of release 1.2.0, CHDK ISO overrides use "market" values, but the "real" value used internally is usually a little lower. The result is that the displayed value will sometimes not exactly match the reported value in the Canon UI or image EXIF.
  • CHDK allows you to enter values far beyond those available in the Canon firmware, but the minimum and maximum ISO actually achieved usually fall very close to the limits in the Canon firmware. ISO override gives full control of ISO settings, but does not usually extend the range of available values.

Override Subject Distance

For cameras without manual focus capability, the Override Subject Distance setting can be used to manage the camera's focus setting.

[Off/On/Inf] [ 0 - 65535]

Enter the focus distance in mm from the lens. Use the DISP / SET button to toggle between the following choices:

  • Off: override disabled
  • On: override enabled
  • Inf: override enabled and set to infinity

Depending on the camera, you may need to activate the AF lock for the subject distance override to work. You may also need to disable any camera function that tries to alter the focus, such as "Servo AF" or "Continuous AF".

Note: Manual focus adjustments can also be achieved with CHDK shortcut keys. In <ALT> mode, use the LEFT / RIGHT keys to adjust the Value Factor and the Zoom lever to adjust the Subject Distance, (or on cameras without a zoom lever use the DISP. button. Infinity is immediately selected by pressing the UP key. For Hyperfocal adjustment based on current F-stop and zoom focal length, press the DOWN key.

Enable Fast EV Switch?

[●] [1/6Ev - 4Ev]

Enables simple and fast adjustment of exposure compensation (EV). This bypasses the need to use the Canon menus or CHDK menus to adjust EV settings while shooting.

For cameras with a rotary jog dial, rotating the jog dial while holding the Shutter button in the half-press position will cause the EV to increase or decrease (depending on the jog dial direction).

For cameras without a rotary job dial, pressing the UP or DOWN buttons while holding the Shutter button in the half-press position increases or decreases the EV setting by the amount specified in the CHDK menu.

When this feature is enabled, the CHDK OSD screen display shows the EV-compensation settings. You may wish to move the OSD EV override display to block the camera's own EV display to prevent confusion.

Note 1: This feature may not work properly on all cameras.
Note 2: Using UP or DOWN buttons during a half-press, this will toggle the "Disable Overrides" setting if that feature is enabled. A work-around for this is to set the EV step-size to 1/2 what you normally would use, then the "Disable Overrides" shortcut will always toggle back to the original ON (or OFF) on every 2nd EV +/- press, effectively resetting it to where you wanted it in the first place.
Note 3: EV changes are not saved between camera power-downs. If you would always like to start out with a small negative preset EV value to avoid blown highlights, then use Canon's own EV compensation setting for your startup EV value. This Fast EV Switch will reflect that value on startup.
Note 4: Also see 720IS Fast EV switch problem & Fast EV switch on sd870/ixus860

Auto Flash + Exp. Comp.

[●][-3 to +3]

When selected, enables automatic flash exposure control when the camera is set in manual mode (for Tv, Sv, Av). Also allows manual compensation of flash exposure. Useful for using electronic "through the lens" (eTTL) exposure control when using external or internal flash while other setting are locked manually.

Manual Flash + Power

[●][Min/Med/Max] ( Note: use Max setting with caution as it will cause a very strong bright flash.)

This feature is used for optional control over camera flash output, allowing 3 separate levels in flash output power.

This feature will override the flash power setting when the camera exposure control decides to fire the flash - especially if the camera is setup to force the flash to fire. Because there is no preflash with manual flash, force manual flash can be used to advantage when using slave flash equipment.


Pics thanks to Walqas

ManFlash 1.jpg

ManFlash 2.jpg
ManFlash Camera.jpg

Hotshoe override

(For cameras with a hot shoe for an external flash - SX & G series for example)

[Off/Empty/In use]

Cameras with a hot shot for use with an external flash can detect the presence of any device attached to the hot shoe. If there is something in the hot shoe, it can interfere with CHDK override operations. This menu item allows the camera to either ignore the hot shoe (Empty option) or assume there is always something in the hot shoe ("In use" option).

ND filter state

Enhanced menu v2-2.png

Note: For cameras with a ND Filter


When the camera detects a really bright scene, it will swing the Neutral Density (ND) filter in between the lens and sensor. This is primarily used to allow the camera to shoot at a lower shutter speed -- useful in a bright light shooting situation where some motion blur may be desirable (fireworks) or where the scene is so bright that the camera would have to shoot outside of its normal operating range.

With the ND filter inline, the camera can select a slower shutter speed without over-exposing the entire scene. With CHDK, you have the choice of intentionally keeping the ND filter out from between the lens and sensor and then you can manually select a faster shutter speed to compensate.

Select one of the options: Off means the camera will automatically control the ND filter state. In means the ND filter is swung in between the lens and sensor. Out means the ND filter is kept out from between the lens and sensor.

Dark Frame Subtraction

Controls the application of the Dark Frame Subtraction (DFS) feature of your camera.

Dark Frame Subtraction (DFS) is a function used to reduce the effects of sensor noise - especially useful when exposure times are 1.3 seconds or longer. When dark frame subtraction is enabled, the camera essentially takes two pictures with the same exposure time - once with the shutter open and then again with the shutter closed. By subtracting the second frame's pixel values from the first frame's, the camera automatically removes most sensor thermal noise from the image.

Select one of the options: Auto – Performs a DFS on exposures 1.3 seconds or longer.
Off – Never performs a DFS.
On – Always performs a DFS.

By always performing a dark frame subtraction the noise caused by the hot-pixels will be removed from any image. There will be an increase in processing time equal to twice the shutter open time.

Override JPEG Quality

[ Off, Superfine, Fine, Normal ]

Allows you to override the JPG quality setting selected in the Canon menus. Some cameras do not allow a "Superfine" setting in the Canon menus so this menu item allows you to select "Superfine". Actual quality changes in Superfine mode are camera dependent.

Bracketing in Continuous Mode

Bracketing features are enabled when the camera drive mode is set to continuous or with the custom timer on some models. For newer cameras, you can also use the high-speed burst mode.

Bracketing in Continuous Mode.png

Bracketing is the practice of making several exposures of a scene, with each exposure differing from the next by predetermined steps in exposure or focus settings. Bracketing is used to easily capture a range of exposures so that the best exposure can be selected at a later time. Bracketing is also used to create a series of exposures which will be combined using methods such as HDR processing. In order for bracketing to work, the camera must be in continuous mode, or the custom timer is set to take more than one shot. The sequence stops when the shutter is released in continuous mode, or the number of shots set for the custom timer is reached.


Usage Tip: If you wish to shoot individual frames and still have bracketing for each one, then after the first shot, lightly let up on the shutter button to a half-press position. The next full-press will give you another bracketed shot. This process may be repeated for as many bracketing steps as you need, thereby giving you finer control over the number of bracketed exposures you may require.

Set the camera's Custom Timer in the Canon Menu


  • TV bracketing value
[Off, 1/3 – 4 Ev]
Set this value to bracket via exposure time. A value of 1 will double or halve the exposure time for the following exposures.
  • AV bracketing value
[Off, 1/3 – 4 Ev]
Set this value to bracket via aperture. A value of 1 will open or close the aperture by 1 stop for the following exposures. (only available for cameras with an adjustable aperture)
  • Subj. Dist. Bracket Value
[ ] [0 – 30000]
Set this value to enable focus bracketing. This feature is only enabled during manual focus mode. This feature allows you to specify the manual focus distance in millimeters.
  • ISO bracketing value
[ ] [0 – 10000]
Set this value to bracket via ISO.
  • Bracketing type
[ +/-, -, + ]
BRACKET in the OSD. With all bracketing types, the first exposure uses the current exposure settings of the camera. The exposure settings are adjusted as follows:
+/- This bracketing type will alternatively apply the bracketing value by first increasing then decreasing the exposure value like this: 0 Ev, +1Ev, -1Ev, +2Ev, -2Ev, etc. Bracketing will continue until the shutter is released, or the number of shots set for the custom timer is reached. For example, if TV bracketing is set to “1 Ev”, and, when the shutter is half pressed, an exposure time of 1 s is registered. When the shutter is fully pressed the exposures will be at these shutter speeds: 1 s, 1/2 s, 2 s, 1/4 s, 4 s, etc.
+ This bracketing type works as above but will only increase the exposure value. Using the above example, the exposure times would be 1 s, 2 s, 4 s, etc. Once the camera’s limit is reached, subsequent exposures will occur at the maximum setting.
- This bracketing type works as above but will only decrease the exposure value. Using the above example, the exposure times would be 1 s, 1/2 s, 1/4 s, etc. Once the camera’s limit is reached, subsequent exposures will occur at the minimum setting.
  • Disable Bracket Values on Startup
Enable [●] / Disable [ ]
Enable this option to turn off bracketing when the camera is turned off.
  • Add raw-suffix
Enable [●] / Disable [ ]
In bracketing mode, add a suffix to the raw filename so that later you can easily identify the RAWs that were created during bracketing.

Custom Auto ISO


Canon P&S cameras typically allows ISO values to be either a fixed number (eg ISO 80) or an "Auto" value. There are no user defined setup options in Auto mode, the algorithm used is fixed and not configurable.

CHDK Custom Auto ISO overrides Canon's "Auto ISO" mode. It gives the ability to define the permissible range of ISO values to be used, the minimum allowable shutter speed, and some fine tuning of exposure compensation.

Custom Auto ISO trades off ISO for shutter speed based on settings in the Custom Auto ISO menu. It tries to set the camera's ISO setting as close as possible to a Min ISO setting. This is to minimize noise in the photograph. However, as it lower the ISO value, the shutter speed must also be lowered to compensate and maintain the correct exposure. Typically, there is a minimum acceptable shutter speed needed to avoid blur due to camera shake or subject movement. This minimum can be set to a fixed value or calculated automatically based on the current lens focal length setting and user defined factors related to camera steadiness and camera image stabilization ability.

For example, if the camera set ISO 100 at 1/8s, and AutoISO is configured to allow ISO50-400 with a 1/15s minimum shutter speed, then Custom Auto ISO will shift the ISO setting to ISO200 to maintain a 1/15s shutter speed.

This feature is available in all camera shooting modes except for Manual (M), Shutter priority (Tv) and Stitch Assist (to prevent using different settings for each panorama part).

Enable Custom Auto ISO

Enable [●] / Disable [ ]

This is the master switch for this feature.

Minimum Shutter Speed

[Auto, 1/8 - 1/1000s]
  1. Auto - This is for use when photographing still-life, landscapes, etc. It will use the factors below to prevent camera shake, but will assume the subject holds still.
  1. Numerical setting - hint to the camera what the optimal shutter speed is for the subject you are photographing.
The camera will try to use this value or as much as possible a faster one to prevent blur, for example:
  • 1/8s - 1/30s - Slow moving subjects
  • 1/60s - 1/125s - Kids, Pets, general movement
  • 1/250s - 1/1000s - Sports, Fast action

User Factor (1/FL/factor)

This setting is only used if Mimimum Shutter Speed is set to Auto mode. It accounts for the user’s ability to hold the camera steady. It is based on the old rule that the shutter speed should be no less than 1/focal-length. Start by dividing the effective focal length of the lens by the actual focal length. The answer is generally somewhere around 6. Then increase or reduce this amount by a self-assessed value of your steadiness. If you think your hands are steadier than average, then decrease by 20%. If you think you’re shaky, then increase by 20%.

IS Factor (Tv*factor)

This setting is only used if Mimimum Shutter Speed is set to Auto mode. In determining the ISO setting, the effectiveness of the IS system will be taken into account. Use a setting of 4 if the IS is effective enough to give you a two-stop reduction in shutter speed. Use a setting of 2 if the IS isn’t very effective, or 8 if the IS is very effective.


Sets the minimum “Auto” ISO that the camera can select.

Max ISO Auto

Sets the maximum ISO that the camera can select when operating in "Auto" ISO mode.


Sets the maximum ISO that the camera can select when operating in "HI" ISO mode.

Fallback Min. Shutter Speed

[Off, 1/4 s to 1/1000 s]
If the shutter speed & ISO cannot be held within the range specified above, this setting will be used as an alternate minimum shutter speed setting.
Setting this value to Off will disable the use of the alternative values.

Fallback Max ISO

[100 - 3200]
If the shutter speed & ISO cannot be held within the range specified above, this setting will be used as an alternate maximum ISO setting.

Overexp Compensation

[Off, -1/3 Ev, -2/3 Ev, -1 Ev, -1 1/3 Ev, -1 2/3 Ev, -2 Ev ]
A fixed value exposure adjustment applied when the overexposure threshold is exceeded for more than a defined percentage of pixels (see below). Set to Off to disable this functionality.

OverExposure Threshold

The threshold value above which a pixel is considered to be over exposed. Units unknown.

OverExposure Pixel Percentage

The percentage of pixels that can exceed the overexposure threshold before the Overexposure compensation value is applied.

Custom Curves

Custom Curves.png

Note : This CHDK menu item will only appear on cameras with 10 bit sensors. Newer cameras with 12 bit sensors are not supported.

This function enables the use of custom "curve" profiles to adjust the exposure of the RAW and JPG images. Two types of curve profiles can be used - CV & CVF. CV curves are the standard RGB curves. CVF curves are special version curves intended to avoid the color shift side effect of the RGB curves. They are an approximation of the luminance curves.

Except the SYSCURVES.CVF file it is recommended that curves files be stored in the \CHDK\curves directory on your SD card..

See >,932.0.html

Enable Curve

  • Enable Curve [ None, Custom, +1EV, +2Ev, Auto DR]
  • None - No curve profile is applied. 
  • Custom - Your custom curve profile is applied as-is.

The following three options require that you have a SYSCURVES.CVF file in your /CHDK folder on the SD card. This file is included in the "full" CHDK packages and can also be obtained from this link: (which also contains a curve editor).

  • +1EV - Increases shadow detail by 1EV step.
  • +2EV - Increases shadow detail by 2EV steps.
  • Auto DR (auto dynamic range):

Auto DR with Zebra is intended to be used for the direct application of the curves to the shot - not for post processing (the feature is a mimic of the Fuji S100 +200, +400 Dynamic Range). The workflow is:

1) Activate Zebra display
2) Activate Auto DR
3) Use the camera EV negative compensation to reduce the Zebra overblown highlights shown on screen. You can use the (+/-) button on the back of the camera.
4) Take the shot. You will directly get the JPG without post processing. The luminance of the darker areas will be raised while the highlight is compressed. During the RAW develop process, you need to set the EV comp. to the value that you used to reduce the highlight blown out when you took the RAW. Care should be taken with in camera develop since it is a tricky art there (for White Balance issues in particular). If the scene does not require you to reduce exposure to avoid blown highlights, the Auto DR feature does not do anything.

Load Curve Profile Load your desired curve profile from the \CHDK\CURVES folder. All curve profile files except for SYSCURVES.CVF should be in that folder.

Disable Overrides on Startup

Enable[●] / Disable[ ]

If enabled, CHDK override settings will be automatically cleared the next time the camera is started.

Video Parameters

The Video Parameters menu is used to configure all aspects of recording video using CHDK overrides.

Video Parameters.png

Video Mode

[ Bitrate or Quality ]
Bitrate – Dictates a constant data rate. Video compression (and hence, video quality) expands or contracts as necessary to maintain the data rate constant.
Quality – Sets a constant compression level, ensuring a defined level of quality regardless of how much data that level requires.

Note 1: From owners' reports of testing Quality overrides, it is evident that settings above the standard Canon settings gain little if any higher quality. However file sizes will increase significantly. Lower settings will lose little in quality but will reduce file size. Note 2: Bitrate control is not available on all cameras. If not available, the options will be Quality and Default. Bitrate and Quality settings that are set too high can cause memory buffer overload, and stop recording, a red ! will show on the OSD. Also - a low quality setting, or near to full/fragmented SD cards, can have an effect on these settings.

Video Bitrate

[ 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3 ]

The compression factor for Bitrate compression. 0.25 is the most compressed/least quality and 3 is the least compressed/best quality.

Video Quality

[ 1 - 99 ]

The compression factor for Quality compression. The most compressed/lowest quality is 1 and 99 is the least compressed/best quality (roughly 70-80 is the Canon default).

Video without time limit

If available for your camera, enables bypassing of the built-in time limits on video recording. Note that this will not bypass the 4G video file size limit.

Clear Video Params on Start?

Enable [●] / Disable [ ]

When enabled this will clear all custom video compression settings back to the camera's own defaults on startup.

Fast Video Control

Enable [●] / Disable [ ]

Only a few cameras are supported. Pause and unpause video by pressing LEFT / RIGHT while recording. Note: When using this function the remaining video-record time calculation is reset, so the change is shown immediately in the OSD.

Video Quality Control ?

Enable [●] / Disable [ ]

When enabled, using the UP / DOWN button will increase or decrease video quality or bit-rate (depends on which one is enabled in the Video Mode override) while recording is in progress.

Enable Optical Zoom

Enable [●] / Disable [ ]

This feature allows the camera’s optical zoom to be used during video recording.

Mute During Zooming

Enable [●] / Disable [ ]

To eliminate focus mechanism noise. Please note that the zoom mechanism sound is very loud in video, which is probably why it was disabled by the manufacturer.

AF key

[ <none> , Shutter , Set ]

During video recording - camera makes a single autofocus scan when the selected key is pressed. Not enabled on every camera.

Show Remaining Videotime

[ Don’t, hh:mm:ss, KB/s, both ]

Displays a positionable OSD element to show the video bit-rate, and the remaining video recording-time, on the SD card,…

Don't - No display of remaining recording time and/or video data-rate.

hh:mm:ss - Display a clock of remaining video-recording time left. KB/s - Display video recording bandwidth (data-rate) in Kilobytes per Second. Both - Display remaining video-recording time in both hours/mins/secs, and video data-rate in Kilobytes per Second.

Refresh Rate (~sec)

Due to the nature of video's variable bit-rate and compression methods, subject dependent, the "Show Remaining Videotime" has to be updated regularly by re-polling the card-space and the bit-rate to calculate a fairly accurate time-remaining estimate. Choose in seconds, how often this Video-Recording time-remaining is to be updated. Shorter periods of time are less accurate from each on-screen update to the next.

RAW (digital negative)

The RAW menu is used to configure all the CHDK settings necessary to enable the recording of a RAW image each time the camera records a JPG image. Details about using CHDK RAW can be found here : RAW

Raw menu1.png

Save Raw

Enable [●] / Disable [ ]

Enables the saving of CHDK RAW files. Enabling RAW does not disable JPEG, both are saved.


Raw exception menu.png
  • Disable @ Video Record? Enable [●] / Disable [ ]
Some cameras, the S-Series in particular, have a dedicated "Video Record" button where you can engage that and also shoot individual still-frames during video recording. It was found that RAW file-saving can interfere in this process. Turning this option on will ensure that you don't miss a shot or your video.
  • Disable RAW @ Sports Enable [●] / Disable [ ]
Disable RAW saving when the Mode-Dial is turned to Sports Mode. This ensures that fast action sequences won't be missed due to RAW file-saving time, when forgetting to disengage the RAW feature. Not implemented on every CHDK supported camera.
  • Disable RAW @ Burst Enable [●] / Disable [ ]
Disable RAW file-saving when using burst mode. Again, a handy override for when RAW is not needed during fast burst-sequence shots (RAW enabled would certainly increase time between shots)
  • Disable RAW @ Timer Enable [●] / Disable [ ]
Disable RAW file-saving when using the camera's Custom Timer mode (similar to the safety feature for the burst mode).
  • Disable RAW @ EV Bracketing Enable [●] / Disable [ ]
Disable RAW file-saving when you are using any of the high-speed bracketing features.
  • Disable RAW @ Edgeoverlay Enable [●] / Disable [ ]
Disable RAW saving while using Edgeoverlay.
  • Disable RAW @ Auto Enable [●] / Disable [ ]
Disable RAW saving while using Auto shoot mode.
  • Warn when Exception? Enable [●] / Disable [ ]
Displays a "RAW Disabled" OSD warning in a selectable color when any of the RAW File-Saving Exceptions are enabled and RAW file-saving is turned on.

Only First RAW in Series

Enable [● ] / Disable [ ]

When shooting in continuous mode, this will only create a RAW capture for the first image. Subsequent images will not have RAW captures. This allows rapid continuous shooting.

RAW File Folder

[   withJPG   A/DCIM   A/RAW  ]

Specifies where RAW & DNG files are to be saved on the SD card.

  1. withJPG  store the RAW / DNG image in the same folder as the associated JPG (default choice)
  2. A/DCIM  stores all RAW / DNG images in one common folder - either A/DCIM/101___01 or A/DCIM/100CANON depending on the folder naming convention used by the camera.
  3. A/RAW stores the RAW / DNG images in sub-folders under a main folder called A/RAW using the same subfolder naming convention as the A/DCIM folders used for JPG storage.

RAW File Prefix

[CRW_, SND_, IMG_]

CHDK lets you name the raw files with any combination of the standard prefixes IMG_, CRW_, SND. If you are going to process the RAW files with DNG4PS-2 then setting a prefix of IMG_ will allow DNG4PS-2 to retrieve EXIF data from the accompanying JPEG.

RAW File Extension

[.CRW, .CR2, .THM, .WAV, .JPG]

Set the extension to be used on RAW files. so the files are visible when you connect the camera via USB.

RAW subtract extension

[.CRW, .CR2, .THM, .WAV, .JPG]

Using more than one extension with the same prefix can cause a problem with USB listing.

RAW develop

This feature is used to process a CHDK RAW file and create a JPEG from it. When selected, a file browser window is displayed, Select a RAW file and press FUNC/SET, then the message 'Switch Camera to Record Mode and take one shot' displays, Press FUNC/SET again to back out of this menu, then use the <ALT> button to exit <ALT> mode. Press the shutter button, instead of taking an image, it will process that selected RAW file and make a JPEG file from it, that will be named according to whatever last JPEG filename is in that folder and increment it by one (1). Remember that the EXIF data on this new JPEG file will not reflect the original RAW file. It will use whatever camera settings were available at the time that you take the RAW Developing shot for the resulting EXIF data.

  • This feature only works with CHDK raw or DNG, not Canon native raw.
  • If the Canon "I-Contrast" feature is on when using raw develop, you may see "ghost image" artifacts in the resulting jpeg.
  • White balance and image processing for the jpeg will occur with the camera’s current settings. So, for example, you can use the MyColors settings to create Vivid and Sepia versions of the same image, or simply tweak the sharpness or contrast, and other settings. Normally, you would have to set MyColors before the image is taken, and you would get only one image. In effect, RAW files can be kept as 'Masters' to develop from as desired, and to experiment with settings.
See also > File browser for RAW Merge.

Manual bad pixel removal

[ Off, Average, RAWconv ]

The CHDK Manual bad pixel removal tool allows the removal of defective pixels from each image as it is taken. While Canon firmware will automatically fix bad pixels that were found when the camera was manufactured, this CHDK feature will also remove "hot" or "defective" pixels which are not known to the Canon firmware (e.g. pixels that became defective during the camera lifetime). This feature affects both the JPG image and RAW image.

The first step in enabling bad pixel removal is to create a badpixel file. (Note: this is not the badpixel.bin file used for DNG file creation). This text file should contain a list of the coordinates of all bad pixels to be fixed. To create this file, you will need to capture a "dark frame" image by shooting an image with the lens completely capped. For shutter speeds longer than 2 seconds, you may want to keep a collection of "dark frame" image on hand for each exposure length that you will be using in the future, as more warm and hot-pixels appear with extended shutter speeds. Convert your dark frame images to a list of the bad / defective pixels using the show_bad tool from here:

NOTE this tool only supports raw files from a few old cameras. If your camera is not supported, you will need to modify the source or find another way to generate the file.

Read more about this program & how to use it here: Hot/bad pixel removal

Once you have generated a file with  the list of  all the "bad" pixels for your camera, CHDK can remove them automatically with the [Average] or [RAWConv] option selected.  CHDK looks for the files badpixel and badpixel.txt in the /CHDK folder; this is a plain text file with coordinates of the bad pixels in the raw image, with one x,y pair per line. If both files are present, pixels listed in each file will be patched. Only the first 8kb of each file will be used.

[Off] with this setting no Bad pixel removal processing takes place. [Average] with this setting CHDK calculates the color for the bad pixel based on its four neighbor pixels with a simple average calculation and then interpolates - bad neighbor pixels will be ignored in this calculation. [RawConv] setting means - intended for use with post processing raw converter software to remove the bad pixels later in the workflow. With this setting CHDK just sets the bad pixel to the value 0 (zero), without any other calculation or modification. Most RAW-capable apps. will detect this and apply their own algorithms. This option is ignored in DNG mode (in DNG mode bad pixels are always averaged by CHDK). Quotefrom senior developer ewavr - ‘You can compare bad pixel removal quality in both modes, IMO, 'RAWConv' mode is preferred, because CHDK interpolation is very unsophisticated’. Note: With DNG 1.1 format enabled, bad pixels identified by badpixel.bin are always removed - (interpolated / averaged) by CHDK. This does not affect the 'Bad pixel removal' option, which also fixes user specified pixels.

Forum discussion: re: 'Average' and 'RAWconv

RAW buffer cached

Enable [●] / Disable [ ]

When enabled, CPU cache is used while processing raw data for DNG. This is faster, but could theoretically lead to a small amount of data being incorrect. In practice, there seems to be no negative effect and should always be enabled except for debugging.

Show raw saving time

Enable [●] / Disable [ ]

When enabled, CHDK onscreen console will display a message showing the time taken to save the most recent RAW/DNG image.

Info -RAW.jpg

DNG format

Enable [●] / Disable [ ]
Raw menu 2.png

Save RAW in DNG format directly in the camera. This format can be read by many image editing programs. Also includes meta-data like EXIF and whitebalance / color matrix information. The DNG files created have the same file extension as described in RAW, and can be reset manually to DNG. There is also an automatic function to rename for most cameras in the CHDK RAW menu. DNG format is now the preferred method of CHDK RAW capture.

Two version of the DNG format are supported, described under DNG Version below. To use DNG version 1.1, a special file badpixel.bin must be generated and stored on the memory card once. This camera specific binary file contains information about the sensor pixels which were marked as defective by the manufacturer.

DNG version 1.3 does not require or use badpixel.bin, but many common raw processing programs will not correctly fix bad pixels in this format.

  • Note: With DNG format version 1.1 enabled, bad pixels in badpixel.bin are always removed (interpolated / averaged) by CHDK. This does not affect the "Bad pixel removal" option, which fixes user specified pixels.

See "Create badpixel.bin" below for information on creating the badpixel.bin file badpixel.bin

DNG file extension

Enable [●] / Disable [ ]

To distinguish DNG from other RAW files. The DNG RAW image files will be stored as "<filename>.DNG" with this option enabled, otherwise the extension from the "RAW file extension" menu entry is used.

Note that you will not be able to transfer files with the .DNG extension over USB, unless your camera has the "DNG visible via USB" option is enabled in the misc menu. "DNG visible via USB" is not available on some cameras.

DNG version

[1.1 , 1.3]

CHDK supports two different versions of the Adobe DNG file format. The principal difference from a CHDK point of view is that when you use DNG 1.1, CHDK will use the badpixel.bin file (see below) to remove bad pixels from the image. DNG 1.3 relies on the raw processing software to remove bad pixels.

DNG 1.1 is recommended for maximum compatibility. DNG 1.3 is recommended if your raw software supports it, or if your camera has very little free RAM.

Note: When you use DNG 1.3, bad pixels will only be removed automatically by raw software that supports the DNG 1.3 bad pixel opcode feature. Adobe software should fully support DNG 1.3, but many common programs do not, and so will not automatically fix bad pixels in DNG 1.3 files. If the software has an option to fix "dead" or 0 valued pixels, this may be a good alternative.

DNG Crop Size

[Full, Active, JPEG]

CHDK supports three different crop settings when saving RAW in the DNG file format. The setting chosen determines what information is stored in the image EXIF header - it does not change the file size or actual data stored in the image file. The "Full" setting saves crop information for all of the sensor data, including masked areas, the "Active" setting saves the crop area for only the pixels that are exposed to light from the lens, and the "JPEG" setting saves the crop area used by the associated Canon JPG image.

Create badpixel.bin

Select 'Create badpixel.bin' in the RAW menu, press FUNC./SET, and the operation commences, taking approx. 20 to 40 seconds. You will notice the camera takes 2 shot and that the blue Print LED may come on briefly during each shot. Wait for the process to complete and you will see a display of the number of bad pixels.  That number can be disturbing to some but a figure such as 18,000 or more is not uncommon. You can check that the file was created successfully using with the CHDK File Browser.

Note 1: prior to using this function and before you enter CHDK <ALT> mode, switch the camera into "Record" mode (also known as "Shooting" mode - where the lens is extended and the camera is ready to take a picture). There is a reminder dialog if you fail to do so. Note 2: If the Canon setting for 'review' is set to 'hold' it can stop the create badpixel script from completing.

Edge Overlay (panorama tool)

Edge overlay creates and overlays a high-contrast outline of the edges in an image. It can be used to assist in stitching together panorama images by allowing you to see the outline of the previous image while taking a new image.

Enable Edge Overlay

Edge overlay menu.png
Enable [●] / Disable [ ]

With the default CHDK settings the Edge overlay will be visible while the shutter button is half-pressed. Once a picture is taken, the overlay will be frozen and it will not update until a second picture is taken, allowing you to align image features in the new shot to the previous one. During that time you can use the the Directional buttons Directional buttons.jpg on the camera in ALT-mode to move the overlay of the previous picture Up, Down, Left,or Right.

Zebra mode should be disabled when using the Edge overlay and disable Edge overlay when using Canon Stitch Assist mode.

Filter Edges

This option applies noise filtering to the edge overlay. It makes the overlay redraw slower but cleans the overlay of noise that appears in low-light scenes. To reduce overhead of Edge overlay, use Filter edges only when required.

Panorama Mode

[ Off, Right, Down, Left, Up, Free ]

When this option is not set to Off, the edge overlay will not update continuously, but only when images are taken. Except for the very first image, you will always see the overlay of the previous image in frozen mode. "FROZEN" is shown in the top left corner of the OSD.

Note: Panorama mode returns to Off on each camera startup.
Off - Does not lock the overlay and it will keep updating.
When set to either Right, Down, Left or Up, the camera will automatically move the overlay in the opposite direction by the amount corresponding to the "Pano overlap (%)" setting. This is useful so that you can align the next image of a panorama series in the corresponding directions.
Free - The overlay will not update continuously, and it will not be moved automatically in any direction, (it will be centered), however, you can use the the Directional buttons in ALT-mode to move it manually.

Pano overlap (%)

[ 0 - 100]

Set the overlay offset for Panorama mode, affects each of the options in Panorama mode except "Free".

Always show

Enable [●] / Disable [ ]

When enabled, the Edge overlay will be visible even without half-pressing the shutter button.

Edge overlay threshold

[ 0 - 255 ]

This setting adjusts the sensitivity of the Edge Overlay. Lower values result in edges along lower contrast/brightness edges, but can potentially cause more noise. Higher values create edges only on the highest contrast/brightness boundaries, and therefore fewer, finer, and more well defined lines. The downside of using higher values is that some edges will not be registered. In general, lower values are more useful in low-light scenes, while higher values are more useful in bright scenes. If there is too much noise, try the Filter Edges option.

Enable in Play

Enable [●] / Disable [ ]

  When enabled, the Edge Overlay is visible during camera playback mode.

Save Edge Overlay

Saving an Edge overlay allows it to be reloaded at a later time even if the camera was switched off. Note that an overlay can only be saved when it is frozen. After creating an overlay, navigate to this Menu item and press FUNC.SET to save.

Load+Set Zoom

Enable [●] / Disable [ ]

This option will cause the zoom to move to the same position used when the overlay was stored when an edge overlay file is loaded.

Load Edge Overlay

Opens a file browser menu to let you select a previously stored edge overlay file.

Notes :To move an overlay - with a loaded overlay first switch to <ALT> mode, then press a Directional button Directional buttons.jpg to move the overlay continuously until release of the button, or click the button to move in steps. It is advisable to make a log of the saved edge overlays, keeping a description together with the file number and date of the file, to keep track of them over time, perhaps adding GPS information as well.

Histogram (exposure graph)

Histogram menu.png

Enables and customizes the CHDK Live Histogram feature.

Histogram Anatomy

The horizontal component of a histogram runs from 0 to 255. What is important to understand is the “0” and “255” are not values…they are labels representing a color value. When you see a line in the middle of the histogram (label “127”) it’s saying “this is how many ‘127’s there are in the image.”

The vertical component of a histogram is the count of pixels at a given level. The bottom is zero and the top represents the largest count of values for a label. So if you have a 7MP image and every color is “127”, then the top of the histogram represents 7 million pixels.

RGB Histogram

RGB histograms simply count pixels at each level. The RGB histogram of an image of three boxes (red, green, and blue) where every color has a value of 127 would be a single line in the middle of the histogram (at label “127”.)

Luminance (Y) Histogram

Luminance histograms attempt to factor in the perceived brightness of colors. A luminance histogram of an image of three boxes (red, green, and blue) where every color has a value of 127 will show three lines at labels “38” (red- x 0.3), “75” (green x 0.59), and “14” (blue x .11).

Show live histogram

[Don’t, Always, Shoot]
Don’t – Don’t show histogram on LCD.
Always – Always show the histogram on the LCD.

Rec – Only show the histogram when camera is in record mode (stills).

Shoot – Only show the histogram when shutter is half-pressed.

Histogram Layout

[RGB, Y, RGB Y, R G B, RGB all, Y all, Blend, Blend Y]

RGB – Displays the RGB histogram only.
Y – Displays the luminance histogram only.
RGB Y – Displays RGB above luminance.
R G B – Displays three histograms, one for each color.
RGB all – Displays all 5 variations of histograms with RGB on top.
Y all – Displays all 5 variations of histograms with luminance on top.
Blend – Combines the three histogram of the R G B display into one.
Blend Y – Same as Blend but with the addition of luminance below.

Histogram Mode

[Linear, Log]
Determines how the Y-axis (vertical) of the histogram will be scaled. Log mode is useful for scenes with a large amount of a single color, such as an overcast sky (lots of gray.)

Show histogram over/under EXP

Enable [●] / Disable [ ]
EXP in on-screen display. If parts of a scene are over or under exposed, then this setting will display “EXP” above the histogram, and a red dot at the end that indicates exceeding exposure limits.
GSCHDKGuide 26.jpg
In this example the red dots show the image is both over and under exposed (the scene has a very wide dynamic range).

Ignore boundary peaks

[0 – 32]
Another tool for controlling the scaling of the histogram. If you know that the scene will contain large amounts of black or white (e.g a moon shot) you can set how many levels from the left or right edges of the histogram to ignore, if those levels peak in the histogram. This will increase the visibility of the smaller portion of the histogram.

Auto Magnify

Enable [●] / Disable [ ]
N.NNx in on-screen display. Another tool for controlling the scaling of the histogram. This option will magnify the Y-axis (vertical) if less than 20% of the histogram area is filled. The purpose of this function is to make the histogram easier to read when there are very tall peaks. This function lies somewhere between the Linear and Log options above. A red dot over a peak indicates that it’s been clipped due to the magnification. The amount of magnification applied is displayed over the histogram.

Show Histo Ev Grid

Enable [●] / Disable [ ]
Adds 4 or 5 vertical lines to the histogram dividing the histogram by full stops.
EV Grid Enabled
EV Grid Enabled

Zebra (show over & under exposure)

Zebra menu.png

Zebra is a feature that indicates over and under exposed areas of the scene. When the shutter is half-pressed, the areas of the scene that are under or over exposed will turn red. The zebra effect can also be applied to existing images by half-pressing the shutter during playback mode.

Draw Zebra

Enable [●] / Disable [ ]

Enables the drawing of over/under exposure indicators.

Zebra mode

[Blink 1, Blink 2, Blink 3, Solid, Zebra 1, Zebra 2]
Determines how the over/under exposed areas will be indicated.
  • Blink 1 – Solid coverage, blinks every ½ second.
  • Blink 2 – Solid coverage, blinks every second.
  • Blink 3 – Solid coverage, blinks every two seconds.
  • Solid – Solid coverage, no blinking.
  • Zebra 1 – Striped coverage, thin diagonal lines.
  • Zebra 2 – Striped coverage, thick diagonal lines.

UnderExposure Threshold

[0 – 32]
Controls the sensitivity of exposure indication. 0 is less sensitive and 32 is very sensitive.

OverExposure threshold

[0 – 32]
Controls the sensitivity of exposure indication. 0 is less sensitive and 32 is very sensitive.

Restore Original Screen

Enable [●] / Disable [ ]
This option only applies to Zebra Blink modes. When exposure indicators are visible, all of the original Canon indicators are erased. When this option is enabled, the original Canon screen items (such as exposure) are redrawn between blinks.

Restore OSD

Enable [●] / Disable [ ]
This option only applies to Zebra Blink modes. When exposure indicators are visible, all of the CHDK half-shutter indicators are erased. When this option is enabled, the CHDK half-shutter indicators (such as DOF calculator) are redrawn between blinks.

Draw Over Zebra

[Histo, OSD, Nothing]
This option applies to all Zebra modes. When exposure indicators are visible, nothing else is displayed on the screen. This option specifies which additional indicators will be drawn.
  • Histo – Only the live histogram is drawn with the exposure indicators.
  • OSD – The entire CHDK OSD is drawn with the exposure indicators.
  • Nothing – Nothing else is drawn with the exposure indicators.

RGB zebra (overexp. only)

"Enable [●] / Disable [ ]

Overexposed areas are indicated by the color of the channel that is overexposed. Underexposed areas are ignored.
  • Black – All channels are overexposed.
  • Red – Red channel is overexposed.
  • Green – Green channel is overexposed.
  • Blue – Blue channel is overexposed.
  • Cyan – Green and blue channels are overexposed.
  • Magenta – Red and blue channels are overexposed.
  • Yellow – Red and green channels are overexposed.

Scripting (program your camera)

Script menu.png

CHDK supports two scripting languages (Lua & uBASIC) that allow you to customize how your camera works. Scripts can control exposure, shoot based on use defined conditions, detect motion, and interact with the user via either a text console or graphical UI.

To use a script :

  • enter <ALT> mode by pressing your camera's ALT key
  • press FUNC.SET to go directly to the Script menu (or navigate there from the main menu)
  • select a script using the "Load Script from File" menu item
  • set any required parameters to suit your needs - see the script’s documentation
  • press MENU to finish loading & configuring the script
  • stay in <ALT> mode and press your camera's shutter button to actually run the script

To interrupt a running script press the Shutter button.

To return to normal shooting, exit <ALT> mode.

CHDK saves the last user-selected script parameters from one session to the next.

There is a Default Script that loads when CHDK is first installed. It does not do anything.

New scripts can be added to the SCRIPTS folder as they become available.

Note: Whenever a script is loaded there is extra demand for memory, using the default script when no other is needed may help some camera's performance when using CHDK. Refer to : Memory Usage

Load Script from File...

Used to activate a file selection window that lets you pick which script to run. Scroll through the available files and press the FUNC.SET to select one.

Script shoot delay (.1s)

After an image is captured, indicates how long to delay the execution of the next script command. A value of 0 executes immediately. A value of 10 executes the next script command one second after capture.


[Off, On, Once, ALT]

When enabled, the script listed under “current script” will either execute immediately when the camera is turned on or when the ALT button is pressed.  

  • Setting to On causes this to happen every time the camera starts.
  • Setting to Once will cause the script to only run once - at the next camera restart.  
  • Setting to ALT causes the script to run when you press the ALT button (rather than entering CHDK ALT mode). The camera will return to <ALT> mode when the script exits.

(Hint : remember these setting if you see your camera operating by itself after it is turned on.)

Restart Lua on error

The Lua programming language contains more advanced error checking than the uBASIC language. If it detects an error condition while running, setting this value will cause the script to restart rather than halt. Generally, its not a good idea to leave this feature enabled.

Load default param values

Each script may have as many as (at least) 52 user changeable parameters that can be set from the Script menu (down at the bottom). Scripts written in uBASIC are limited to 52 parameters (corresponding to the variables A-Z, a-z) while Lua scripts can have many more (only limited to a large number determined by an internal file header size). Selecting this menu item causes those values to reset to the default values specified in the script header.

Parameter set

[Default, 0-9]

To accommodate different shooting scenarios, CHDK allows up to 10 different sets of user parameters to be stored and reused each time the script is loaded. Setting this value to Default will cause the default values specified in the script header to be when the script is loaded.

Save params

When set to "On", the current values of the script parameters (perhaps adjusted by the user) will be stored in the parameter set specified above. When set to "Off", parameter values are "locked" and will not change.

More information about scripting can be found here : Scripting Cross Reference Page

CHDK Settings

CHDK setting menu.png

The CHDK Settings menu is used to configure the look, feel and operation of CHDK. This menu allows you to configure the CHDK On Screen Display (OSD) through the selection and positioning of on-screen information and icons showing the current state of camera operations. Other operating display functions can also be configured with this menu and the menu allow access to the setup of the CHDK USB remote control.

OSD Settings

OSD menu.png
Show OSD
Enable [●] / Disable [ ]

Control the visibility of the CHDK On Screen Display (OSD) Hide in ?

[ Don’t , In Play , On Display , Both ]
  • Don't - always shows the OSD icons/elements
  • In Play - hides them in playback mode
  • On Display - hides them when you toggle the CANON icons on/off with the display button (does not work for the EVF)
  • Both - hides OSD in both playback and by "display button cycling", Helpful to those who don't need the battery and other indicators in their playback screens.

Show State Displays
Enable [●] / Disable [ ]

Displays the Override, Bracketing, and Override Disabled settings in their own positionable information area.

Show Temperature
[ Off, Optical, CCD, Battery, all ]
  • Off - No display of camera component temperatures.
  • Optical - Displays the temperature of the optical elements (most assume this is used for the IS mechanism and Zoom/Focus motors). When the camera is first turned on this will most accurately reflect the environmental temperature.
  • CCD - Displays the temperature of the CCD. Lets you know when it might be getting too warm. Or when it's cold enough to take lower-noise images.
  • Battery - Displays the temperature of the battery compartment.
NOTE: 3rd party LI-ION battery packs may always report a constant temperature, e.g. 25°C or 28°C.
  • all - Displays all 3 values.

Note: Not all models have a separate temperature sensor for each component, and due to differences in design, values reported by different models may not be directly comparable.

in Fahrenheit
Enable [●] / Disable [ ]
Default is Celsius, check this for Fahrenheit.
Show USB info
[Off. Icon, Text ]

Displays either a colored icon or a text string when the USB Remote is enabled.

NOTE : when USB remote is enable, PTP connections (i.e USB connection camera/PC) are disabled.

Miscellaneous Values

Show Misc Values

[Don’t, Always, Shoot]
  • Don’t – Don’t show misc values on LCD.
  • Always – Always show the misc values on the LCD.
  • Shoot – Only show the misc values when shutter is half-pressed.

Show values in video

Enable [●] / Disable [ ]
Displays the Miscellaneous values when the camera is in video mode.

Show Zoom

Enable [●] / Disable [ ]
Z:n/n.nx in Micscellaneous Values. Displays the current Zoom position of the lens.
Z:n = zoom position, from 1 to 14

Zoom value

[X, FL, EFL]
Method of displaying the Zoom position of the lens
X – as a multiple of the shortest focal length, as in 6X.
FL – as the actual focal length of the lens, as in 34.8mm.
EFL – as the effective focal length, (35mm Equivalent, as in 210mm).

Adaptor Lens Scale, 100=1x

[0 – 1000]
Adjusts the zoom value above by a multiplier, which is based on the converter lens that is installed on the camera. For a 0.7x wide converter use 70. For a 1.75x tele converter use 175.

Show ‘Real’ Aperture

Enable [●] / Disable [ ]
Av in Miscellaneous Values. This is the actual aperture setting after any override aperture adjustments have been applied.

Show ‘Real’ ISO

Enable [●] / Disable [ ]
I-R in Miscellaneous Values. Displays the actual ISO value after overrides or bracketing have been applied.

Show ‘Market’ ISO

Enable [●] / Disable [ ]
I-M in Miscellaneous Values. Displays Canon’s ISO value, which is not always the same as the actual ISO value.

Show ISO only in AutoISO Mode

Enable [●] / Disable [ ]
Display the ISO value only when the camera is in Auto ISO mode.

Show Set Exposure Ev (Tv+Av)

Enable [●] / Disable [ ]
Evs in Miscellaneous Values. Show camera exposure value based on the values of shutter speed and aperture.

Show Measured Ev (Bv+Sv)

Enable [●] / Disable [ ]
(brightness value + scene sensitivity set in a camera)

Show Set Bv (Brightness Value)

Enable [●] / Disable [ ]
Bvs in Miscellaneous Values. Internal-brightness scenes through recalculation of the parameters established in the camera. Just Av-Sv + Tv.

Show Measured Bv

Enable [●] / Disable [ ]
Displays the measured brightness value, as written in the Exif data.

Show Overexp. Value (No Flash!)

Enable [●] / Disable [ ]
Indicates a calculated overexposure value. Av-Bv-Sv + Tv

Show Canon Overexp. Value

Enable [●] / Disable [ ]
Indicates the overexposure value calculated by the camera.

Show Scene Luminance

Enable [●] / Disable [ ]
B in Miscellaneous Values. Run average in standard illumination scenes candelas per square meter… calculated from a ratio to Bv = 12.5
DOF Calculator

The Depth Of Field Calculator displays 5 distances in meters…

  • SD – Distance to the subject (Near Limit + DOF*0.33). Also called the Focal Plane.
  • NL – Near Limit. The distance where acceptable sharpness begins.
  • FL – Far Limit. The distance where acceptable sharpness ends.
  • DOF – the Distance between the Near Limit and the Far Limit.
  • HYP - Hyperfocal distance
Depending on the aperture and zoom settings, the hyperfocal distance reflects the optimal distance for an object to be photographed, i.e. the sharpness of that object will be the sharpest at this specific distance.

Show DOF calculator

[Don't, Separat, In Misc]
  • Don’t – Disables display of the DOF calculator
  • Separate – Displays the DOF values apart from the Misc values.
  • In Misc – Displays the DOF values with the Misc values.

Canon Subj. Dist. as Near Limit

Enable [●] / Disable [ ]
Enabling this value affects the way the subject distance is calculated.

Use EXIF subj. Dist. (Propcase #65) Enable [●] / Disable [ ]

Enabling this value affects the way the subject distance is calculated.
Note : Experimentation may be required to clarify these 2 preceding settings, they will affect script commands that establish focus and some other camera behavior, such as focus bracketing.

The following 5 settings determine which DOF values will appear. When the “Show DOF calculator” is set to “Separate”, all 5 values are always displayed. When it is set to “In Misc” then only the enabled values below are displayed as part of the Miscellaneous Values.

Show Subj. Dist. in Misc.

Enable [●] / Disable [ ]
Enable to show in Miscellaneous values on OSD.

Show Near Limit in Misc.

Enable [●] / Disable [ ]
Enable to show in Miscellaneous values on OSD.

Show Far Limit in Misc.

Enable [●] / Disable [ ]
Enable to show in Miscellaneous values on OSD.

Show Depth of Field in Misc.

Enable [●] / Disable [ ]
Enable to show in Miscellaneous values on OSD.

Show Hyperfocal Dist. in Misc.

Enable [●] / Disable [ ]
Enable to show in Miscellaneous values on OSD.

Subject distance from lens

Enable [●] / Disable [ ]
When enabled, distances displayed are measured from the front of the lens rather than the sensor. This is useful for macro photography.

Show RAW state

Enable [●] / Disable [ ]
Enables the display of the RAW indicator.

Show RAW shoot remain

Enable [●] / Disable [ ]
Calculates how many RAW captures will fit in the current free memory and displays that number next to the RAW indicator.

Warning threshold

[0 – 200]
Turns the RAW indicator red when the number of RAW shots remaining drops below the threshold value.

Controls the display of the battery indicators on the LCD

Set the maximum and minimum voltages to match fully charged and discharged battery reading. The battery icon fill color will reduce as voltage lowers and will change to red color close to minimum voltage.

Show Battery Percent

Enable [●] / Disable [ ]
Displays text status of battery in units of 0-100%

Show Battery Voltage

Enable [●] / Disable [ ]
Displays text status of battery in units of volts

Show Battery Icon

Enable [●] / Disable [ ]
Displays a battery icon that changes color (or fill) with battery state.

Show Filespace Icon

Enable [●] / Disable [ ]
Displays a small SD card shaped icon on the screen to show how much filespace is left on the SD card. Opaque means remaining free space. Transparent means that space has been used. Use the OSD Layout Editor to position the icon anywhere on the screen.

Show Space Bar

[ Don’t, Horizon, Vertical ]
Displays a thin SD capacity remaining "fuel-gauge" icon on the screen. Location is positionable in the OSD Layout Editor.
  • Don't - Turn off this feature.
  • Horizon - Displays the bar-graph gauge in a horizontal orientation.
  • Vertical - Displays the bar-graph gauge in a vertical orientation.

Size on Screen

Changes the display size of the "Space Bar" SD-capacity gauge.
  • 1/4 - the bar-graph only goes 1/4th the width or height of the EVF/LCD display.
  • 1/2 - the bar-graph goes 1/2 the width or height of the EVF/LCD display.
  • 1 - the bar-graph goes the full width or height of the EVF/LCD display.


Change the width (for vertical space-bar) or height (for horizontal space-bar) in 1-pixel increments.

Show Filespace in Percent

Enable [●] / Disable [ ]
Display the SD card space left in percentage of its total capacity. (Toggles between this and the MB option.) OSD display element positionable in the OSD Layout Editor.

Show Filespace in MB

Enable [●] / Disable [ ]
Displays the SD-card space-remaining in Megabytes. Toggles between this and the percentage option. (see above).

Warning Unit

  • Don't - Don't display a warning when the free SD-card space is getting low.
  • Percent - Change the space remaining display to the warning color when the percentage reaches or goes below your selected "% Threshold" (see below).
  • MB - Change the space remaining display to the warning color when the Megabytes reaches or goes below your selected "MB Threshold (see below).

% Threshold

Setting used in conjunction with above "Warning Unit" feature. Set the amount of SD-card space percentage remaining when you want that OSD element to turn to your chosen warning color.

MB Threshold

Setting used in conjunction with the above "Warning Unit" feature. Set this to how many megabytes when the space remaining feature turns to your chosen warning color. Note:- may be used in conjunction with a handy script if you need to ration the amount of photos you take on a long vacation.

Show Clock

Displays an OSD real-time clock.

  • Don't - No clock display.
  • Normal - Displays HH:MM
  • Seconds - Displays HH:MM:SS

Clock Format

12-hour or 24-hour format toggle. When 12-hour format is used then the chosen 12-Hour Clock AM/PM indicators are enabled. Also influences the temperature format. 12h - Fahrenheit.

12h Clock Indicator

PM- Displays AM or PM suffix on the OSD Clock
P - Shorthand version of A or P for AM and PM on the OSD Clock (to save real-estate space). Ultra-shorthand version of AM or PM. Displays a simple "." after the time to indicate PM, no character is displayed for AM. Examples: 10:30 = 10:30 AM, 11:15. = 11:15 PM (note the small period after the 15).

@ Shutter Half-press Show

Shows the OSD clock during a half-press of the shutter button.....
  • Don't - No clock display on a half-press.
  • Full - Shows full clock time during half-press.
  • Seconds - Only counts off the seconds in the clock display during a half-press. Helpful when doing manual timings between consecutive shots without having to quickly call up some intervalometer script.
Show OSD in Review Mode

Displays the OSD when in REVIEW mode. Do not confuse this with Playback mode. Review mode is when the last taken photo is temporarily being displayed as you hold down the shutter-button (and press SET to lock it into Review Mode) or when you have the Canon's Menu "Review" options turned on. This allows you to keep the on-screen grid and other settings visible when reviewing the photo to see if you got the framing or other settings as you had intended.

OSD Layout Editor

ISO Layout Editor.png

The on-screen position of OSD items can be rearranged to suit personal preferences and to avoid the Canon items on the display. All OSD items are available in the Layout Editor although they will not actually appear on the OSD unless they are enabled individually in the OSD Settings menu.

When a feature is selected you use the Set button to move between icon outlines and the rocker switch to move the selected icon around. A red highlight display at the top or bottom of the screen gives the name of the icon being moved and its screen position in X, Y format. You can change the resolution of movement of the icons between course and fine using the DISP key. You can also change the font size of the selected item with either the zoom keys or the shutter "half press" button.

  • FUNC.SET - switch between display features.
  • < ^ v > - 4 direction switch/rocker – moves the selected feature.
  • DISP. - toggles between 1 pixel per move or 10 pixels per move.
  • HALF_PRESS - changes the font size of the currently selected item
  • ZOOM.IN - increases the font size of the currently selected item
  • ZOOM.OUT - decreases the font size of the currently selected item

Color Settings


Change any of the display colors for all the text and icons. If you don't change them they will remain as their defaults. There are opaque colors and transparent colors, and also some "special effect" colors. Note that record mode and playback mode use different color tables. So it may happen that you pick a nice color in playback mode, and in record mode it will look totally different. But there are also colors which will stay the same in both modes. Some examples for A-series cameras > 0x11(white), 0xFF(black), 0x22(red), 0x55(green), 0x44 (transparent light grey).

Draw Palette

ColorPallet-Yellow brt.jpg

Shows the current color space in the current shooting mode. Use the cursor keys to scroll around to any color - the hex value of that color is displayed at the top of the display.

VisualSettings Menu-comb 2.jpg

Menu Settings

Menu Settings.png

CHDK offers the ability to define a customized menu of the things you use the most. This menu can contain menu entries from other menus, the name of favorite scripts to load and even loadable code modules. This custom menu is called the User Menu and it can be configured to appear as soon as you press the <ALT> key or as the first menu displayed when the MENU key is pressed.

See also > CHDK User Menu Wiki Page

User Menu Enable
[ Off, On, On Direct ]
Add frequently used menu items to make a custom, easy access menu.
  • Off - Disables use of the User Menu
  • On - Enables the User Menu when in <ALT> mode and pressing [HALF-PRESS] + MENU.
  • On Direct - When entering <ALT> mode the User Menu will be automatically displayed without having to press the MENU button. The main menu can be reached by scrolling to the top or using a HALF-PRESS + MENU shortcut keys.
User Menu as Root
Enable [●] / Disable [ ]
Toggles the behavior of the Menus when the User Menu is turned ON. When this option is set then the User Menu will be the first one to be seen, and the main menu may be reached by using the HALF-PRESS + MENU shortcut keys, or just selecting the top entry “Main Menu”.
User Menu Edit
Provides a full screen editor for the User Menu. When selected it opens the current user menu. Use the UP and DOWN keys to select a current menu item. Use the RIGHT and LEFT keys to change the position in the menu of the current menu item. Press the Set./Disp button to bring up a pop-up box that will allow you at add or delete items from the User Menu.
When in adding/removing menu items from the User Menu, RIGHT adds, LEFT removes, and MENU exits item selection. Items currently in the user menu are shown in green.
Customizing hint/reminder: Some CHDK features require 2 or more options that work together. An example, "Override Shutter Speed" might also need the associated "Value Factor" selection and the "Shutter Speed Enum Type" if that is frequently changed that too. Be sure to copy any related menu items together so they are still available where they are needed them in the custom menu.
Center Menu
Enable [●] / Disable [ ]
Selecting this option causes each CHDK menu to automatically center vertically and horizontally in the display region.
Auto select 1st entry @ menu
Enable [●] / Disable [ ]
Quickly position the menu-selection cursor on the first entry in any CHDK menu. Instead of having to press once to enter the menu options it will now start out already on the first menu option.
Show <ALT> Help Screen
Help screen.png
Enable [●] / Disable [ ]
Enables a pop user help menu.
Help Screen Delay
[0 - 10]
Sets the delay in seconds after the last key press before the user help menu appears.
Language & Fonts
Lets you choose another language if you have the appropriate .lng-file in the CHDK/LANG/ folder of the SD card.
OSD codepage
Choose the Codepage [ Win1250 - 1257 ]
(Win1250 – East European Latin , Win1251 – Cyrillic, Win1252 – West European Latin, Win1254 – Turkish , Win1257 – Baltic)
Menu RBF font
Choose another font RBF format for the CHDK menus. If you have chosen a RBF font but want to switch back to the original built-in font, just choose an "illegal" RBF font (Try to load a uBASIC script as a RBF font, for example).
Enable Symbols
Enable [●] / Disable [ ]
Enables the display of menu symbols
Symbol Font
Lets you choose the font used to display symbols on the menus.
Select textbox charmap
Changes the character set used to display menu text boxes.
Reset menu fonts
Reset to default fonts (useful if you accidentally select a font that makes the menus unreadable).



This menu allows you to select and display a custom defined grid.

Show grid lines

Enable [●] / Disable [ ]
Enables the display of custom grids.

Load grid from file…

Displays the file selection screen. Use the directional controls to select a grid file and press Set to select it.

Override Grid Colors

Enable [●] / Disable [ ]
replace default colors from grid file with Line and Fill color selected below

Line Color

select the color for grid lines

Fill Color

select the color for grid background

See the Grids Tutorial in the CHDK Wiki.

GPS Settings

(for GPS equipped cameras only)

Several Canon P&S cameras have built-in GPS (global positioning satellite) functionality. Currently, these cameras including the D20, D30, S100, SX230, and SX260. When enabled, the GPS functionality provided with these camera allows tagging of location information into image EXIF information but little else. CHDK adds additional features to allow navigation using the camera, including a visual compass and the ability to navigate to a "home" location or a location tagged in an image. CHDK also adds a trip logging function and the ability to tag photo information at a later time if current GPS data is not available when an image is captured.

Remote Parameters

CHDK supports the use of an inexpensive shutter remote, allowing the camera to shoot when a remote switch is pressed. This has many applications, but is expecially useful with a tripod mounted camera to minimize vibration, or for syncing two cameras to shoot at exactly the same time for stereo photography.

  • Enable Remote Enable [●] / Disable [ ]
Toggles the remote USB cable detection state, both scripted and scriptless. When this is enabled you can use the camera normally without any script and still use the USB-Remote cable to trigger the shutter. Have the camera in normal record mode and not in <ALT> mode. This is the same as if you pressed the shutter manually in all normal camera operations.


Usage Tip: Detailed documentation on the use of USB Remote functionality can be found at this link : USB Remote V2

Enable Half-press Shortcut Keys

Enable [●] / Disable [ ]
Enables or disable the shortcut keys that are active in <ALT> mode when the shutter button is "half pressed". These keys are handy if you are comfortable using them but tend to cause unexpected actions if you are not aware they are enabled.

Show Splash Screen on Load

Enable [●] / Disable [ ]
Enables or disables the CHDK splash screen that appears each time CHDK loads.

Startup sound

Enable [●] / Disable [ ]
Enables or disables the startup sound when CHDK loads.

<ALT> Mode Button

Selects a different camera button to be used to activate <ALT> mode. This function is not available on every CHDK ported cameras.

Disable LCD Off

[Never , Alt, Script, Always]
Prevents the camera LCD from turning off when the camera is in the selected mode.

Reset Options to Default

Resets all CHDK option to the default values used when CHDK starts for the first time. This reset can also be accomplished by deleting any *.CFG files from the CHDK folder on the SD card (including CCHDK4.CFG, OSD__4.CFG, UMENU4.CFG, or GPS__4.CFG).

Miscellaneous Stuff


The Miscellaneous Stuff menu contains the various CHDK features and functions that don't really belong in any of the other menus. These functions are usually related to the mechanics of how the CHDK program loads and operates. Functions related to actually taking photographs can be found in the other CHDK menus.

File Browser

The file browser allows you to look at the files in the various CHDK folders. Use:

Function Toggle Sw 2.jpg
  • UP/DOWN key to highlight a file 
  • FUNC.SET to enter a folder or "launch" certain file types
  • > right arrow key to select file
  • < left arrow key to activate a pop up menu of file functions

Pressing FUNC.SET over certain type of files results in special action (only available when the file browser is started with the "File Browser" menu item):

  • Text files with .txt, .log and .csv extension
The file will open in the text file viewer.
  • CHDK module with .flt extension
The selected module will start (the module has to support standalone operation, a few examples: games, calendar, CPU info). Note that modules have to reside in the CHDK/MODULES folder in order to load.

The file pop-up menu functions can include Cut, Copy, Delete, Select Inverse, Make dir, Remove Dir, Rename, Purge RAW, RAW sum, RAW average, Purge RAW, Sub from marked, DNG -> CHDK RAW, RAW develop. The actual options available are context sensitive - they change based on the currently selected item in the pop-up file browser windows.

  • Cut, Copy, Delete, Rename
standard file functions that act on the currently selected filename
  • Select Inverse
inverts the current file selection - useful to automatically select all files in a directory
  • Make Dir, Remove Dir
adds or removes directories to the SD card at the current position
  • Sub from marked
Subtract the current file from the selected files
Create a CHDK framebuffer dump raw from a CHDK DNG
  • RAW develop
Create a jpeg file from an existing raw with new camera settings. After selecting this option, switch to record mode, set any desired Canon settings, and shoot. The raw data from the file is used instead of new data from the sensor. This can be used to apply color balance, "my colors", or to get different jpeg sizes form an existing raw.
  • RAW Merge
When selecting (highlighting) files in the file browser mode, by using the RIGHT navigational button, you now have 2 functions available on the LEFT navigational button menu. If after using either of these features and you would like to see the resulting image without having to load them into a computer and using RAW viewing software, use the "RAW Develop" feature on the "RAW Parameters" menu to create a JPG file for playback in the camera. When using either of these options the resulting new RAW file will use whatever last filename was selected for merging as the prefix to the new RAW filename, and a WAV suffix will be added to it so you know which last-of-a-sequence files were used for merging. This also circumvents any confusion later when using utilities like DNG4PS with trying to merge corresponding JPG EXIF data with the original RAW data, where filenames could get drastically out of order by creating new JPG filename numbers.
  • RAW Sum
Using the selected RAW files, this will combine them into one file. Working on an additive principle. Meaning, if you take five 65-second exposures, then RAW Sum them together, the resulting image will be equivalent to the brightness level of a 5 minute, 25 second exposure.
  • RAW Average
This RAW Merge feature will, as it says, average all the frames together. Very convenient if taking several identical frames at high ISOs at high shutter speeds. This will merge them together, effectively obliterating any noise, as the noise gets averaged out. The more frames used, the less noise visible.
  • Purge RAW
Purge Raw.jpg
Purge RAW Yes.jpg
This function allows RAW files to be deleted in 3 different ways...
1). Delete all RAW files in DCIM folder including subfolders
Useful when: You keep a separate folder for RAW files. You set up the camera to create a new folder everyday (several days trek, holidays etc). You want to erase the occasional mischievous RAW file stored in a different folder. Go to CHDK File Browser, select DCIM folder, push the LEFT to display the popup menu and select "Purge RAW" (See image 1). A warning will ask you to confirm (See image 2) and voila! You have regained some SD space. This feature will search through all the folders in DCIM looking for a RAW file (CRW/CR2 prefix or file extension) and if it finds one then will look for its JPG partner anywhere inside DCIM (comparing the 4 digit number assigned by the camera). If it is not found, the RAW file is erased.
2.) Delete all RAW files in a selected folder
Useful when you keep RAW files in the same folder as JPG files, You only want to get rid of some RAW files. (Very important shots in some other folder). You know which folder has a lot of out-takes. Go to CHDK File Browser and inside DCIM folder select the folder you want (E.g. "102CANON") and push the LEFT button to display the popup menu. Select "Purge RAW". A warning will ask you to confirm and all the RAW files in ONLY that folder will be erased. This option works like the previous one but only on the selected Canon folder, the rest are untouched.
3.) Delete some or all RAW files in a list.
Useful when You want to protect specific RAW files (to use them later for HDR) Go to CHDK File Browser, enter DCIM folder, enter a sub folder (E.g. "102CANON") push the LEFT to display the popup menu. Select "Purge RAW" . A warning will ask you to confirm and all the RAW files will be gone. Now the useful thing of this option is that you can mark the RAW files you DON'T want to erase (protect files). The Purge RAW function will erase the rest of the RAW files ignoring the marked ones.


CHDK modules are loadable binary files similar to Windows DLLs. To conserve memory, many CHDK features are implemented in modules.

Module Inspector
Display and manage currently loaded modules.
Enable Logging
Records the module name, time and load address in A/modules.log. If CHDK crashes, the module log may help developers debug the problem.
Delete Module log
When enabled, the module log grows continuously over time. Use this option to reset it.


Calendar brt.jpg

Yes, a calendar!

Select Year - UP/DOWN
Select Month - LEFT/RIGHT
Use MENU button to exit.

Text file reader

This utility can be used to read a text file stored on the SD card. (Very convenient!, you can keep onboard instructions.)

  • Open new file…
Displays a file browser window, opened to the CHDK/ BOOKS directory. You can select a txt file to view. Press FUNC.SET to open the file.
  • Open last opened file
Will display the most recent text file that was viewed.
  • Select RBF font
Open the file browser in the CHDK/FONTS directory. Allows you to select a different font for displaying text.
  • Codepage [Win1251, DOS]
Select the text file format.
As with other menus, fonts and colours can be changed to suit all preferences.
  • Wrap by words Enable [●] / Disable [ ]
Enables word-wrap.
  • Enable autoscroll Enable [●] / Disable [ ]
When enabled the text file will scroll automatically.
  • Autoscroll delay (sec) [ 0 – 60 ]
Determines how long the system waits before scrolling the text file.
Use MENU button to exit.


Yes, games! Choose your favourite!

Arrow buttons - move
FUNC.SET- choose level (Moves counter should be 0).
Erase / +/- – restart current level
DISP. - show 'about' info
Zoom rocker - undo / redo moves
Use MENU button to exit.

Games comb.jpg

If colours are not displayed properly, try entering and exiting Canon menus before entering <ALT> mode.


The CDHK console displays script output and some other CHDK messages.

Show console in
Control whether the console always displayed, or only displayed in alt mode.
Hide N secs after last change
Control how quickly the console is hidden.
Display last console
Display the most recent contents of the console. This can be used to view the output of scripts which have completed.
Reset console
Reset the console size and position. The console layout may be set from script.


For cameras with fold out LCD. Turns the LCD panel into a flashlight! When in Record Mode and the LCD panel is swiveled facing forward, the LCD display turns all-white so you can see your way around in the dark, or to illuminate some close object while setting up to take a photograph.

Show Build Info

Displays the current version of CHDK in use, ie:- 0.9.9 - 910, date May 07 2010.

Show Memory info

Displays free RAM available, also CHDK size and load address.

Enable Lua Native Calls'

Enable [●] / Disable [ ]
Enables Lua programs to make native calls to Canon functions. This is sometimes necessary for advance script functionality but also involves some risk as making the wrong native call could seriously corrupt / damage your camera.

SD Card

Functions for making your SD card bootable and for managing dual partition cards (for cameras released prior to 2011)
Create card with two partitions
Reformats SD card with a small FAT16 primary partition and a larger FAT32 parition that takes up the rest of the SD card. Warning : using this function will delete everything on your SD card - including all your photos. Be sure to backup first!
Caution 3.jpg

This option creates a 2 MB FAT partition on the SD card, that's fixed on the code for now. Copy the CHDK firmware extensions to this partition and load them, (The DISKBOOT.BIN and PS.FI2 files). Then select "Make card bootable" in "Main Menu > Miscellaneous stuff", so it does not complain when you write-protect the card. Next step is to select "Swap partitions" in "Main Menu > Miscellaneous stuff", this will hide this small partition and make the larger FAT32 one visible. We need to format it, and copy CHDK files DISKBOOT.BIN and PS.FI2 to it too, so we can perform "swap partitions" again. So format it in FAT32, copy CHDK, insert it on the camera and load CHDK using "Firmware Update", Select "Swap partitions" and "Make card bootable", write-protect the SD card, (lock with slider on side of SD card) and power- cycle the camera. It should now load CHDK from the small 2 MB partition, but have access to the larger FAT32 partition to store pictures, video and the CHDK folders.
The size of the 1st partition is fixed to 2MB in the code (not changeable in the CHDK menu), but you can change it there and compile your own build, if you know how, using whim’s CHDK Shell
Normally the creation of a partition deletes all data on the card, the swap command should not delete any data, but you should test this first!
The partitions can also be created manually with a card reader on a computer, the 1st partition must be less than 4GB and formatted with FAT16.
Make card bootable...
Option to enable auto load of CHDK at startup if there is a DISKBOOT.BIN executable file in the root of the SD card. For cameras released prior to January 2011, the memory card must have FAT12 or FAT16 format for the bootable partition. For cameras released after January 2011, memory cards can use FAT32 format on the bootable partition. Note that large cards formatted in camera will be FAT32 and so will not boot on cameras release prior to 2012. See [ Prepare your SD card ] for more information.
After selecting this option, turn the camera off, remove the SD card and write protect, or 'lock', the card. Reinstall the card and CHDK should automatically load.
Swap partitions
For cameras with multi partition support. To access each partition on a multi partition memory card, (necessary for computer OS's that will only show one partition at a time (i.e., Windows). You must swap partitions in order to see the DCIM folder on the computer. You then must switch back for CHDK to boot in the camera.


Various functionalities related to EyeFi cards. If the card in your camera is not of the Eyefi type you will see this menu but every action will result in some sort of error.


Usage Tip: Some cameras (e.g. G12 and G15) have built-in support for these cards. With these cameras you may experience conflicts when using these menu items. The recommended approach is to first disable the card's wifi in the Canon's firmware, then force it on using the CHDK. For a complete list see Eye-fi connected cameras

Available networks

Queries the card for wifi networks visible at the current location. Once the list is displayed you can press move though it with the UP and DOWN keys and press FUNC.SET to chose a network to register on. A textbox will allow you to enter the password. Use half-shoot to change the character set, MENU to switch input mode.

Configured networks

Shows the list of the networks currently configured in the card. you can move through the list with the UP and DOWN buttons. Pressing FUNC.SET you can delete a network. You will be prompted to confirm the deletion..

Force eyefi wlan off

Turns off the wlan of the card, regardless of Canon's firmware settings

Force eyefi wlan on

Turns on the wlan of the card, regardless of Canon's firmware settings



The Debug menu provides access to internal camera data related the functioning of CHDK, primarily for advanced users and CHDK developers.

Debug data display
[None, Props, Params, Tasks]
Shows debug data on the OSD,.
(PropertyCase or PropCase) are basically variables in the camera's RAM that we can read and write from CHDK by using uBasic commands get_prop and set_prop. "Under the hood" some other uBasic commands work by changing propcases, making it possible to use them in a portable way. Some propcases are read only. Often writing to a propcase will have a different effect than pressing the corresponding buttons on the camera's user interface. Typically this means that while you may change something like the shutter speed and your change will be effective in your photo, it may not be updated to the camera's on-screen display. To find out which Property case a function changes...
Param are camera variable that are stored in NVRAM, which means that unlike PropCase values, they are remembered even if the camera is turned off.
These values are generally shown unsigned - that's because the propcase viewer doesn't know whether a value is supposed to be signed or unsigned, and treats everything as unsigned. "65152" is just the same value as "-384" when considered as an unsigned short rather than a signed short. Shows the task list, only on VxWorks cameras.
PropCase / ParamsData page
[ 0 -128 ]
Sets the base address for the currently diplayed page
Task list start
(VXWORKS cameras only) First task to display If you set this to more than there are tasks running on the camera, it will show the last twelve, adjusting on the fly as tasks get created and then deleted.
Show Misc Values
Enable [●] / Disable [ ]
Displays various values for service and programming purposes.
Memory browser
Allows you to view memory location values.
Test write and read speed of the camera and SD cards. To compare memory cards. Since this function during the first pass provides inaccurate values a 2nd run should always be carried out, only the values of this 2nd run are meaningful.
ALT +/- debug action
Action for the [+/-] key. On some cameras like the SD/IXUS series the DISP key is used instead).
Values are ;
  • [None]
  • [Dmp RAM] : a complete memory (RAM) dump will be written to the SD card (see below)
  • [Page] : the page shown in the propcase viewer can be changed (double-press changes the paging direction (up/down))
RAM Dump
Allows you to configure a how a RAM dump selected but the ALT +/- debug [DmpRAM] action (above) will be written to the SD card.
Note : RAM dumps are written to the SD card in the DCIM/100CANON directory as JPG files. Each dump is numbered sequentially from CRW_0001.JPG forward. These are not actually JPG files - the use of this file naming convention is simply to allow the file(s) to be transferred to the PC via standard ptp based digital camera software.
Save ROM Crash Log
When the Canon firmware crashes, it usually stores a log of current state information at the time of the crash. Using this function lets you save that log as a file (ROMLOG.LOG) in the top level folder of your SD card . This can be very useful to CHDK developers when they try to debug the cause of a crash - posting this log while reporting a bug/crash to the CHDK forum can be very helpful.

CHDK to PC Interface via PTP

All recent Canon P&S cameras support connection to a PC via a USB cable. When connected, this cable allows transferring images from your camera directly to your PC. The protocol used to implement this capability is called Picture Transfer Protocol


With CHDK, you can greatly increase the capability of the PTP interface. Several PC programs have been created to allow access to this expanded capability as documented on this wiki page : PTP_Extension.

The most advanced of these program is probably CHDKPTP. It supports both a command line and GUI interface, and provides advanced scripting capability on the PC side via Lua. Complete camera control, file browsing, and "live view" in real time of the camera's LCD are all supported.

CHDK CFG Configuration Files

A note on the CHDK xxxxxx.CFG configuration files : CCHDK4.CFG, OSD__4.CFG, UMENU4.CFG, and GPS__4.CFG. These files are found in the CHDK folder on your SD card and are used to save the changes you have made to the CHDK configuration - including to CHDK Overrides.

If these file are corrupted for some reason, it can cause weird behavior with CHDK camera settings. To test for this, find and rename the files so that new ones will be created at the next start-up. If this eliminates the erratic behavior the old files should be deleted, even though all your personal settings will be gone. You might be able to just deleting the CCDHK4.CFG file in some cases - saving as result your OSD, User Menu, and GPS settings.


  • it is advisable to keep a copy of "known good" CFG files from your camera version to use as replacements for corrupted ones, or to add them to other CHDK enabled SD cards used with that camera, so that you have them loaded with your preferred settings.
  • earlier versions of CHDK used different configuration files with names like CCHDK.CFG, CCHDK1.CFG etc.

OSD Map (Diagram)

OSD Map.jpg
OSD MAP Table2.jpg


CHDK might be one of the most innovative improvements to any camera that has ever come along since the beginning of photography. Started out by some people who only wanted RAW out of their raw-crippled cameras, it has now grown into an adaptable, flexible, and full-featured operating system.

We are all extremely grateful for the work that everyone has put into this arena of discovery, implementation, coding, sharing, camera testing, (especially with the unknown, and possibly high risk), and those that provide all the information on the Wiki pages (and elsewhere in the world). Those who have contributed to this great stride in the world of photography deserve a huge vote of thanks.

Many thanks go to the original developers - vitalyb, and GrAnd, owenjm, Harvester, jeff666, [mr.anon], MX3, Fingalo, ewavr, Allbest, CHDKLover, BarneyFife, also to Jucifer and PhyrePhoX, and cosmograph for the excellent CHDK logo.

Other early contributors included acseven (for the forum), achurch, acid2000, ADamb, ArtDen, atalwar, Atnas, auj, awdark, barberofcivil, Basq, Bg~, bondo, bperrybap, brabl2, brake, cail, chdkj, chr, cormac, cppasm, cyril42e, danielmewes, Darkness, DataGhost, DavidB, diablo, Divalent, ehmu, elecktro255, ERR99, fantomas4o, fboesch, fbonomi, fe50, ?shpepper, f_m_b, fudgey, gajownik, Graystar, Grin, Hacki, HarpoMa, hiker_jon, h-v-n, iax, ihar, image13, Intrnst, Keoeeit, KevB, m2tk, ma_jk, MartinBudden, mattkime, Microfunguy, mkmenuts, mproko, mrblack51, mrowl, MrSpoon, msl, mweerden, nandoide, neszt, nimrod, nirschi, Novex, oldgit, pedropaislopes, peregrine, pev69, philmoz, pixeldoc2000, PlasmaHH, quietschi, RaduP, revivery, reyalp, Rorschach, rudi, sharky, shenty, Smartkiller, snc, stevetm2, stift, syahmixp, Thorwak, tillo, toinech, TPC, tr1stan, ultimA, uvvv, Velo, viulian, vit40, whim, whoever, wontolla, xiaofeng, Yarvieh, Yossar, zeno, zfeet,
and for the documentation of Canon Basic - Oren Isacson and Alfredo Ortega

More recently, the bulk of core CHDK development and support has been contributed by the hard work of acseven, fe50, hacki, rudi, lapser, msl, nafraf, philmoz, reylap, srsa_4c, tsvstar, whim, & zeno : supported by generous contributions by many others.

And to all rest of the camera porters, firmware dumpers, testers, forum posters, wiki contributors & editors, bug reporters and general fans - many thanks for your big part in keeping this project going.

GPL license information

This file is part of CHDK. Copyright © 2007 - 2017 The CHDK Team

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA, 02110-1301 USA


Registered in the U.S. and other countries.
  • Canon is a registered ® ™ Trademark of Canon Inc.
  • PowerShot is a registered ® ™ Trademark of Canon Inc.
  • Apple, Mac, Macintosh, and Mac logo are registered ® ™ Trademarks of Apple Computer Inc.
  • Photoshop is a registered ® ™ Trademark of Adobe Systems Incorporated,
  • Windows is a registered ® ™ Trademark of Microsoft Corp.