For a land/city-scape photographer like myself, one of the power features in CHDK is ‘bracketing in continuous mode’; as it allows incredible bracketing control and interfaces seamlessly with the Canon-side, eg via the custom timer.

But, as we know, if you need to change things or switch a feature on or off in CHDK, you first need to enter Alt mode and then navigate through CHDK’s ‘rich’ menu set, which for me, with my (old) eyes and (fat) fingers, can be a challenge, especially in bright sunlight or wearing gloves.

My G5X, with its EVF, makes using CHDK in daylight a little easier. But what I wanted was a simpler approach, that worked on all my (non-EVF and EVF) cameras: my G1X, G5X, G7X, and, even, my S95!

Enter the exposure bracketing version of my Depth Of Field Info script for CHDK (DOFIC), which I’m calling DOFIZ; which allows you to quickly select the required exposure bracketing options, without entering the CHDK menus. The selection being made via a ‘toggler’ feature in DOFIZ.

BTW DOFIC was called that, as, over in Magic Lantern land, I have the ML version that I wrote first, ie Depth Of Field Information script. So, there are now three members of the DOFI family: The ML version, called DOFI; the CHDK version, called DOFIC; and now the CHDK version of DOFIC that also does exposure bracketing, called DOFIZ.

Personally, I have DOFIZ (auto-start-up) on all my cameras, as I prefer to manually focus, according to output needs, eg settle on the focus blur I’m willing to accept at infinity. Plus, I always want the option to take additional focus and exposure brackets.

For exposure bracketing, the main question is:  have I captured enough (‘post processable’ and non-saturated) photons for the dynamic range (DR) of the scene?

If I can’t capture the required DR with a single image, then I need, of course, to consider taking, additional, exposure brackets.

Because of the ‘single script’ limitation of CHDK, ie compared to Magic Lantern, where one can (with care) have multiple scripts running, I decided to augment DOFIC with exposure bracketing, to create this DOFIZ script.

Unless there is a specific need, eg tonal smoothness over a very large DR, I often find that a, so-called, ETTR-based, ‘Zero Noise’ (ZN) approach to exposure bracketing is enough. That is: choose an ETTR-biased (base ISO) exposure, informed by the CHDK histogram, to fix the exposure for the highlights, and then take a single, additional, Tv exposure at, say, +4Ev, to deal with the shadows.

These two exposures can then be used in post, eg: blending them through luminosity masks (LMs); using tone-mapping ‘HDR’ Apps; or using the Merge option in Camera-Raw, Lightroom or Photoshop.

I will be writing more about using LMs on my blog at, as this is a very powerful approach for the landscape photographer who is keen to ensure s/he has addressed the threat of having ‘blocked shadows’, with no post processing potential.

However, because you may not be able to use a Tv-based approach, say when handholding and/or in a location where you can’t use a tripod, or you are on a tripod, but you can’t tolerate motion blur from a longer (Tv) exposure bracket, you also need to have the option to capture a single, additional ‘exposure’ via an ISO-invariant bracket.

In this (release) version of DOFIZ, the exposure options you can select from are: (including your base exposure) take the number of (Tv) exposure brackets set in the Canon custom timer, at either +1Ev, +2Ev, +3Ev or +4Ev steps above the last image; or a single, additional (ISO) ‘exposure’ bracket at either the base_Tv@ISO400 or at the base_Tv@ISO800 or at the base_Tv@ISO1600.

Note that the ‘limitation’ with DOFIZ is that if you set the wrong number of brackets in the Canon custom timer, then it’s your fault! DOFIZ does know what you intended, nor will it check this for you.

Also, DOFIZ was written assuming your base exposure is always an ETTR one, ie bracketing is positive from the base exposure. 

When ISO bracketing, if your base ISO is higher than the selected ISO bracketing option, DOFIZ will capture two images at the base ISO, thus giving you two images, for example, to statistically average to slightly lower noise in post. Although DOFIZ will run in auto-ISO mode, you should only be using a fixed, base ISO.

You can capture more ‘noise brackets’ if you have not switched on the DOFIZ exposure option and (see below) you have selected n images in the Canon custom timer, say. Where n is 2 or more, ie giving a potential noise reduction ‘bracket set’ in post, say by using median blending in Photoshop, of sqrt(n).

CAVEAT EMPTOR: at the time of writing there is a ‘bug’ in the CHDK ISO bracketing in continuous mode, which will hopefully be fixed across all cameras in the near future. I have a partial fix on my G1X, G7X and G5X, thanks to @Reyalp. The bug means that after ISO bracketing in continuous mode, the screen brightness remains at the higher ISO value, despite the Canon side telling you the ISO is the base value. A simple, but clunky, work around is to go in and out of PLAY/review before you move to the next focus/exposure bracket, which resets things.

Before using DOFIZ I recommend you check/understand the ISO invariance characteristics of your camera. For example, my G7X and G5X are essentially the same camera from an ISO invariance perspective, and are fully ISO invariant from the base ISO. Whereas my G1X is only ISO invariant after about ISO 1600.

Knowing the ISO invariance characteristics of your camera is important, as increasing ISO beyond the start of the ISO invariant zone is only throwing away DR, ie photons!

For any camera, once you know where the ISO invariance starts, simply take an image at around that ISO and push the image’s exposure in post. Unless, of course, you need to ‘precisely’ control shutter speed or the single image shadows are going to be too ‘blocked’ to support post processing, ie in a very high DR scene.

On my G1X I would capture the additional, single ISO bracket at an ISO of around 1200-1600, eg if handholding. But on my G7X and G5X I may not even ISO bracket; and if I did, eg I thought the shadows may too blocked in a single image, eg in a very high DR scene, I would use the lowest ISO I thought would help me in post, ie as an insurance ISO shot  (hence the DOFIZ option of ISO bracketing at 400, in addition to 800 or 1600, where Canon ISO invariance tends to kick in on large sensor cameras, like my G1X).

As for post processing in, say, Lightroom; you could then duplicate your (single) ISO invariant capture, expose the base image for the highlights and the duplicate for the shadows and blend/merge as you see fit. This (real+virtual) dual image processing approach is often better than trying to post-process squeeze everything out of or into a single image. There is a limit to how much post-processing ‘abuse’ you can throw at a single (captured) image: irrespective of whether it is 12 or 14 bit ‘quality’.

Important Reminder: DOFIZ uses the Canon custom timer, ie to take n Tv brackets or two ISO brackets, with whatever time delay you wish. DOFIZ does not check this: you must set and check the Canon custom timer yourself!

If you are using DOFIC or DOFIZ, it is a good idea is to set the right Canon side setting/attributes, eg manual focus and customer timer, and register these Canon-side settings into a Custom (C) mode: assuming your camera has a custom mode setting. Then, with one turn of the mode dial everything is set on the Canon side, to allow you, with single (SET) button pushes in DOFIZ, to set up or change exposure bracketing.

To use DOFIZ place it into your script folder and load/run it like any other CHDK script. Personally, I have DOFIZ run automatically at camera start up.

When DOFIZ first starts it defaults into its non-Alt running mode, so you can dynamically see the blur information and the focus bracketing status, ie as you change camera settings. This is the same as in DOFIC.

BTW if the DOFIZ display ‘vanishes’, either change/get focus or do a (‘long’) half-shutter press.

To check or change exposure bracketing strategy, simply press your Alt button at any time. Once in Alt mode, the DOFIZ display will change to tell you the currently selected exposure bracketing option.

All you then need to do is to toggle through the bracketing options by repeatedly pressing the SET button; stopping when your choice is displayed.

Still in Alt mode, if you now press the Alt button, thus leaving Alt mode, the exposure option will have been set, and DOFIZ is now back into ‘normal’ focus blur mode, albeit having now set up your CHDK exposure bracketing in continuous mode option: without having to touch any CHDK menus :-)

You can repeat the above at any time, ie check/change the exposure bracketing strategy.

Note, if you have not set up the Canon-side custom timer, eg it is taking a single image, pressing the shutter will only capture your base image, irrespective of the DOFIZ bracketing strategy you have selected.

WARNING: if you have inadvertently set up the Canon-side for continuous bracketing and you hold down the shutter, or you have set the wrong number in the custom timer, you will/may get an interesting bracket sequence, according to your DOFIZ settings! So, if you see strangeness in your exposure captures, check the Canon custom (timer) settings!

Assuming you set up the Canon custom timer correctly for DOFIZ, then pressing the shutter will give you the required exposure brackets, which you can repeat at each, DOFIZ informed, focus bracket position.

If DOFIZ is interrupted, ie by pressing the shutter in Alt mode, simply reenable DOFIZ by taking an image in Alt mode.

As I said above, I have DOFIZ auto enabled at camera start-up, so I’m always able to: do tripod or handheld ZN (time or ISO) exposure bracketing; know my infinity blur condition; know how many focus brackets are needed from my current position to the hyperfocal; tune my infinity blur when infinity focusing; and know where to focus next, if I need a focus bracket.

As usual I welcome feedback on DOFIZ, especially things that could make it better or more stable.

The latest version of DOFIZ may always be downloaded from here: