Saturday, May 13, 2023

QDFS Field Testing

In this short post I'll discuss the latest tweaks I've made to my Canon M3 Quasi Depth of Field Script (QDFS) and show a few snaps from a recent field trip to the National Trust's Stourhead property.

When it first opened in the 1740s, the garden at Stourhead was described as 'a living work of art'. Its designer, Henry Hoare II – or 'Henry the Magnificent' – was one of a small group of 'gentleman gardeners' who used their large estates to create a personal landscape. Henry was inspired by his travels around Europe and, while Stourhead's garden has developed over the centuries, those original inspirations can still be seen today.

All the images captured at Stourhead were taken hand held with the help of the QDF Script, ie optimising focus and exposure bracketing.

The latest version of the script, downloadable from the right, now includes a wind bracketing option, which gives you your base bracket and an additional bracket at the same exposure, but at a higher ISO, and thus at a faster shutter speed. This use case covers wide angle capture, where the forground objects may be more visibly impacted by wind than the background. Typically you would use 3-4 Ev as the wind bracketing offset.

 I've also changed the UI and its functionality a little, as shown below:

The UP button now toggles between Canon shutter speed and ISO adjustment modes.With the DOWN button toggling the console on and off, with the console's position set in the script's menu.

Finally, the script now checks to see if the camera is in manual focus mode, and, if not, sets it to MF. It also checks and ensures the wheel is always set to shutter speed adjustment, irrespective of the camera being in ISO or Tv adjustment mode at start up. Noting, of course, you can switch between Tv and ISO adjustment modes with the UP button.

As usual I welcome any comments on this post or any of my posts.

Sunday, April 30, 2023

QDFS: A few handheld enhancements

In this post I'll discuss the latest version of my Canon M3 Quasi Depth of Field Script. 

In addition to some UI changes, eg focus distance is now stated in cm, I've added some bracketing enhancements. The latest version may be downloaded from the link on the right.

The new menu options look like this:

#coc = 15 "CoC (um)" [5 30]
#brak = 0 "X bracket mode?" {ISO Tv HandH Auto->H}
#b_val = 0 "X Bracketing Value" {Canon 1Ev 2Ev 3Ev 4Ev 5Ev}
#sleep_time = 0 "Delay (s)" [0 10]
#dis = 1 "Display" {#Bracks Focus}
#lensmag = 0 "Get Mag" {Off On Dynamic}
#reg = 1 "H/x Reg Dis" [1 3]
#offset = 1 "Console offset" [1 12]
#title = 1 "Title Line" {Off Full Exit}
#ettr_zero = 3 "ETTR zero count" [0 20]
#hhmin = 30 "HH Min Tv (1/x s)" [10 100]

Here we see the two new exposure bracketing options. One for when hand holding (HandH) and one for auto bracketing (handholding or not), from an exposure set for the shadows, with the script auto bracketing until the ETTR exposure is reached. The bracketing steps may be set at 1, 2, 3, 4 or 5 Ev (b_val).

The ETTR 'zero' count may be set from 0 to 20, ie how many counts are allowed in the top 1/10 Ev of the histogram. In addition, when using the HandH option, you can set the slowest acceptable handheld shutter value, with the script adjusting if the 1/focal_length criteron is not met.

The handheld (HandH) option, which works well in high dynamic range environments like churches, is best used in the following way:

  • Set the Ev value to 4 or 5 Ev
  • Set the ISO to 100 (note you can use a higher ISO if necessary)
  • Set focus
  • Use the script (RIGHT button) to set an ETTR exposure. The script will check it meets the handheld criterion
  • Trigger the bracket set and the script will take the following three brackets
    • Image 1 at the ETTR ISO 100 setting
    • Image 2 at the handheld shutter value at ISO 100
    • Image 3 at the handheld shutter value and at an ISO of the set Ev value, eg 4Ev = 1600

The Auto->H (where H = hightlights) can also be used for handheld bracketing, ie where shadow noise is likely to be an issue in a single image capture. Of course, the Auto->H option can be used to take non-handheld bracket sets as well, ie at any ISO.

  • Set the Ev value between brackets, eg 2Ev
  • Set focus
  • Set the shutter to the handheld value for the focal length you are using, eg on a WA lens 1/30s, or slower if you haven't been drinking a lot of coffee
  • Adjust the ISO, up to, say, 3200, until the histogram (Canon or CHDK) indicates a suitable ETTL state. Adjust aperture and refocus as required
  • Trigger the bracket set and the script will take the following brackets
    • Image 1 at the manually set ETTL and ISO setting
    • Image 2 to n, at the ISO setting and by adjusting the Tv value until the ETTR condition is met

As an example of using the auto option, here is a handheld test image I just took from inside my dark garage, looking out. The focal length was 11mm and the base shutter was set to 1/30s. The ISO was set to 3200.

The script then took the following additional ISO 3200 images until the ETTR criterion was met: 1/125s and 1/500s.

The resultant test image, after processing with PureRaw 2 and Lightroom, looks like this:

As usual I welcome any comments on this post or any of my posts.


Saturday, April 15, 2023

QDFS: update

This post is to record the latest tweaks to my Quasi Depth of Field Script (QDFS). 

I wrote the M3 (only) QDFS to complement my Landscape Bracketing Script, that is optimised for auto focus and exposure bracketing. QDFS being targeted at more manual shooting.

Exposure bracketing in QDFS is restricted to either carrying out a Canon set AEB capture or a two bracket QDFS capture from a base ETTR, either with a Tv or ISO shot.

In the latest version (downloadable from the right), I've added the ability to dynamically reset the following menu items:

#coc = 15 "CoC (um)" [5 30]
#brak = 0 "X bracket mode?" {ISO Tv}
#isoval = 0 "X Bracketing Value" {Canon ETR+1Ev ETR+2Ev ETR+3Ev ETR+4Ev ETR+5Ev}
#sleep_time = 0 "Delay (s)" [0 10]

Enabling edit mode is simply achieved by focusing 'beyond' infinity, ie where there is no useful Canon lens info, but the lens count is still being indexed or has maxed out. This location is a place where you don't want to be, as you have no way of knowing the focus state. Because of QDFS’s edit mode, you will never focus ‘beyond’ infinity. If QDFS reports 0 micron infinity blur, then you are at the Canon reported infinity.

The updated button controls look like this:

Note that you can press Left or Right buttons to set an ETTL or ETTR exposures. The ETTR auto setting is based on the top 1/10 Ev and the ETTL exposure is set at about -7.4Ev down from fully saturated, ie the first 25 bins of the histogram. Also by pressing the Info button you can toggle through the various Canon screens, where you can change Canon settings such as the AEB and display the Canon histogram etc, according to how you have set up the Canon display options.

These are the release notes embedded in the script


* This Quasi Depth of Field Scale script only runs on the M3 with the XIMR version of CHDK, ie CHDK 1.7

* The script provides visual feedback for manual deep focus bracketing, ie not for macro focus bracketing

* It also provides two exposure bracket options from an ETTR exposure (ISO or Tv) and one from whatever Canon AEB is set

* The script first tests to see if a Canon AEB is set. If not the script then looks at the ISO/Tv ETTR bracketing options. Canon meaning whatever AEB is set on the Canon side, or not

* Repeatedly pressing the INFO button will cycle through the Canon screens, including the Canon histogram: which will be active via touch.

* Here you can change the AEB for example

* The script was mainly written for wide angle lenses and specifically the EF-M 11-22mm ;-)

* Although mainly EF-M lenses can be used, you can add other lenses, eg TS-E 24mm II

* An estimate of the front principal location can be found from subtracting the QDFS MFD (displayed in the console) from the Canon reported MFD

* Changing focal length will reset the DoF scale

* Switching out of ALT mode will exit the script

* Switching the console on in the script's menu will provide additional feedback, eg the lens stepper count and the Canon lower and upper focus bounds

* You can reposition the console, including switching it off, by pressing the UP button

* If you are focused beyond the hyperfocal, the DoF Scale will display the infinity blur in microms (on the right of the DoF scale)

* The infinity blur info will disappear if you focus beyond the Canon 'data infinity', when you enter edit mode: using the LEFT, UP, RIGHT & DOWN buttons

* If selected, the number of brackets to the hyperfocal is also shown on the right, as you focus short of H/3

* If Focus is selected in the Display menu, then an ESTIMATE of the focus distance from the sensor is displayed: this can be compared to the Canon reported distance and the mag tuned as required

* Pressing the MENU button will toggle the bar on and off, eg as an aid to composing

* Pressing the INFO button will toggle through the various Canon displays

* Pressing the ZOOM-IN button will reset the realtive Ev feedback and show the current DoF on the top on the DoF scale

* A long press of the ZOOM-IN button will toggle between showing focus info on the right or % of the histogram in the top 1/10 stop

* Pressing the RIGHT button will ETTR, and pushing the LEFT button will ETTL. ETTR and ETTL thresholds can be changed in the code.

* If things don't look right either do a HS press, or change focal length to reset things or restart the script or the camera ;-)

* Further info on the script may be found on my blog, including dynamic focus calibration when the script is running

Release 1.34

April 2023

The following are a few M3 screen captures illustrating the latest version of the script.

In the above we see the QDFS menu, where you can set your defaults, some of which can be dynamically edited.

In the above we see one way to set up QDFS. The top screen capture shows that the focus distance is being reported on the right, as we are less that the hyperfocal, the red bar. This reporting can be reconfigured in the menu to show the near depth of field and infinity blur.

Where as on the bottom screen we see that once we are focused passed the hyperfocal, the display changes to show the infinity blur.

In the above we see that the AF Frame button has been pressed to register the current focus (white bar) and set the current exposure as the 0Ev (shown in the console area, along with the current lens position count and the total (max) count, the Canon upper and lower reported distances, the focus relative to the hyperfocal, and the exposure relative to the exposure on start up or the registered exposure.

In the above we see that focus has changed and that the current DoF, relative to the registered (or last image captured) focus is green, indicating a positive overlap at the set CoC (which is dynamically adjustable).

In the above we see that the current focus has a focus gap (red) relative to the last registered/captured image.

In the above we see that the CHDK histogram has been toggled on, via the AE Lock button. Note that as we can display both the Canon and CHDK histograms, it is best to set the CHDK histogram to log mode. We also see the right hand side info has changed to a %, which shows the ETTR state in the top 1/10 Ev. This ETTR info is realised by doing a long press of the AE Lock. To display the focus info again, simply do another long press. There are three regions that get reported. A 0% means just that, ie the top 1/10 of a stop has zero histogram data. If the top 1/10 of a stop contains less than 1% of the histogram, then the actual count is shown. Finally, if the top 1/10 of a stop has greater than 1% of the histogram, then the % is shown.

In the above we see the console area has been repositioned by pressing the UP button, which moves the console up until it is not shown. Pressing further repositions the console at the bottom. A long press of the UP button will switch off the console and another long press will show it in the bottom position.

In the above we see that we have focused 'beyond' infinity and thus entered the edit mode. Here we can change exposure bracketing options by pressing the Left, Up, Right or Down buttons, to adjust the CoC value, set ISO or Tv bracketing, and change the start delay when capturing images.

Finally in the above we see the impact of changing aperture, here to F/22. Changing focal length, aperture or CoC will dynamically reconfigure the depth of field bar.

As usual I welcome any feedback/comments on the above or any of my posts.

Friday, April 7, 2023

ETTR Exposure Meter Update

This post comes with a little twinge of sadness, as it will be the last post I will flag on the DPReview forum, as Amazon, in its infinite wisdom, has decided to shut DPReview down.

Like many photographers, I have got a lot of support from DPReview forums and, in my humble way, I've tried to contribute.

Back to the main purpose of the this post, that is to announce an update to the ETTR meter in my Landscape Bracketing Script, that runs on the M3 and M10 (LBS-M, which is downloadable on the right).

The ETTR meter interface has been simplified and shows the top three (highlight) 1/3 stops, including the % of the histogram in each stop.

For those that are interested, here are the histogram bins that I’ve used, to account for the fact that the CHDK 8-bit liveview histogram data is not a linear representation but a 2.2 gamma one.

for i = 230,255,1 do stop3 = stop3 + histo[i] end
for i = 207,229,1 do stop2 = stop2 + histo[i] end
for i = 186,206,1 do stop1 = stop1 + histo[i] end  

The top 1/3 stops are shown as long as there is no histogram data in the top three histogram bins, ie 253+254+255, implying 100% highlight saturation is occurring. But note, all this is not based on RAW data, so you will have little exposure insurance in hand. In addition, the 8-bit CHDK gamma histogram will not be an exact representation of the scene.

The following screen grabs show the new ETTR meter arrangement in action:

In the above we see an underexposed scene, illustrated by the top three 1/3 stops all showing 0%.

In the above we see the exposure has been slightly adjusted and the Canon histogram switched on, by toggling through the INFO button.

In the above we see the CHDK, log, histogram has been toggled on as well. Both histograms can be on or off independently.

In the above we see that the exposure has been adjusted further and that the highlights are now just saturating. We see this transition is clearly visible, as we now only get feedback on the level of highlight saturation that is occurring.

Finally, in the image below, we see the exposure has been increased even more and we are seeing an indication that about 0.3% of the histogram is saturated.

Clearly, all this information is there to help you set the best ETTR exposure, noting that it is based on non RAW data.

As usual I welcome any comments on this post or any of my posts. 

Sunday, April 2, 2023

Latest tweaks to M3/M10 Landscape Bracketing Script

As readers of my blog know, from a travel perspective, I think the CHDK enabled M3 and M10 are an incredible pair of cameras, especially as you can pick them up relatively cheaply on the second hand market.

When travelling light, ie not wishing to carry my EOS R and all its heavy lenses, I carry both the M3 and M10, as I have the M3 running in its native sensor mode, covering the visible part of the spectrum, and the M10 converted with to IR, at a 720nm cut.

Both cameras run my LBS-M script which gives full control of complex focus and exposure bracketing.

In the latest version of LBS-M, which can be downloaded from the right, I've added a dynamic adjustment feature, that allows you to change both focus and exposure options without exiting the script and going back to the script’s CHDK menu. In addition, you can dynamically switch the bookend feature on or off, change the shutter delay time and select various sky bracketing options.

The adjustment state can be accessed by doing a half shutter long press, which will take the script into a new mode that allows you to use the UP, DOWN, RIGHT and LEFT keys to move/toggle through various options:

    • UP will toggle the bookend feature on and off
    • RIGHT will move through the various exposure bracketing options
    • LEFT will move through the various focus options
    • DOWN will adjust the time delay (0 to 10s)
    • SET will move through the sky bracketing options

The following M3 screen captures illustrate the above in action:

The above shows a typical LBS-M start up state, showing focus, in this case, is at infinity, the near DoF (161cn) and an infinity blur of 0 microns. This focus state is not ideal as there is no reported Canon focus data to use: thus I would normally back off infinity focus until I see some focus data appear, eg and infinity blur of greater than 0 microns. We also see the exposure (middle top bars) is indicating an overexposed scene.

In the above I auto ETTRed using the script and adjusted the exposure do the over exposed indicator is not showing red or white. For this illustration we won't adjust focus but enter the adjustment mode by doing a long half shutter press (about 2 seconds), when we see the following appear:

In the above we see a reminder that we can use the Left, Right, Up, Down and Set buttons:

In the above we see that I've set the focus mode to Manual, that ISO bracketing has been set (as the ISO bracket value was set to ISO 1600 in the script's menu, this means a second image, at ISO 1600, will be taken), that bookends has been turned on, that a delay of 5s has been set, and that ETTR sky bracketing has been enabled..

In the above I've returned to the shooting state by doing a half shutter press. I can re-enter the dynamic adjustment mode at any time the script is running, by doing a long half shutter press; and change any of the settings.

As this is a rather boring post, I'll finish up with a test shot I just took on the IR converted M10. I took the shot through a window and it is not meant to be a prize winning image;-)

As usual I welcome any feedback on this post or any of my posts.

Saturday, March 25, 2023

Infra Red Pano Test

In this short post I thought I would simply talk about a pano (test) image I just grabbed.

It was shot with my IR converted (720nm) Canon M10.

BTW I get all my conversions, and I have few, from Alan Burch at

The camera was running my Landscape Bracketing Script, which gives me feedback on infinity blur setting and the log-mode CHDK histogram I find is better at ETTRing than the linear Canon one.

I used the LBS script to set a base (handheld) auto-ETTR and adjusted the final exposure using the CHDK log histogram. The aperture was set to f/5.6.

I used my 617 CHDK aspect ratio (grid) to help me with my composition setting, which adds a black top and bottom bar.

In post I only used Lightroom, having first applied an IR profile, then adding a linear grad across the entire image and colour inverting this to achieve a blue sky. I then desaturated the foliage a little and toned the image to my liking.

I must say, with its tilting screen, the converted M10 is a great IR travel camera.

As usual I welcome any comments on this post or any of my posts.

XPan Simulator Update

In the last post I introduced my in-camera (G5X and G7X) Xpan simulator, which I wrote to help hone/train my panoramic image capture, especially my composition eye.

The simulator restricts the field of view to the 45mm and 90mm Xpan lenses (35mm is too wide to simulate), but I've added an additional lens preset at 150mm.

It is a simple matter to add other lenses in the script.

In this update (downloaded from the right) I've added the following:

  • The script now handles HDMI out and EVF, ie on the G5X, although CHDK has a quirk and the EVF display will have a gap on the right of the top and bottom black bars.
  • The zoom is now enabled and using the zoom will take the simulator out of the XPan mode and allow you to explore other focal length. The script will, in this case, display the native focal length and the 35mm equivalent.

The following HDMI screen grabs illustrate the various functions/states.

In the above, we see the usual aspect view of the camera (3:2).

After switching on CHDK Alt mode we see the above, telling us CPAN is ready to rune, which we do by pressing the Canon shutter button.

In the above we see the script's start up view, simulating a 45mm XPan field of view, ie based on the XPan's 65x24 negative size.

In the above we see I've switch to transparent mode, by pushing the UP button. I can toggle back and forth between dark and transparent modes by pressing the UPO button.

Pressing the RIGHT button toggles through the XPan lens presets, ie 90mm above.

By using the Canon zoom you will take CPAN out of XPan mode and put it into a mode that gives you feedback on the native focal length you are at and the 35mm equivalent.

Pressing the RIGHT button will take the camera back into XPan mode.

At any time you can grab an image, at the native 3:2 ratio, by pressing the SET button.

Finally, if you don't have access to a CHDK enabled camera, then using a 6x4 grid, sometimes called a G24 grid, will give you a 3:1 pano grid, by using two adjacent rows. Plus, of course, you can use the G24 grid to aid your rule of thirds compositioning.

As usual I welcome any comments on this post or any of my posts.