Shutter Bracketing Take a set of images at different exposures.


Introduction

The purpose is to create a High Dynamic Range (HDR) image from a set of images taken at different exposures. The script takes a number of images around the selected shutter speed. So if you take 3 pictures, with shutter speed set to 1/250" and Step Size=3 (=1EV), it will take the first picture at 1/500", the second at 1/250" and the third at 1/125". You can later stitch the images together with a program like Photomatix.

ps. There seems to be a minor bug in the CHDK set_tv command. After the script has finished, the display does not show the actual shutter speed value. You can check this by half-pressing the shoot button. This will update the display to the correct internal shutter speed value.

Written for: Canon A640
Also works on: Other Canon AXXX (Not tested), A620 (tested - works fine)


Parameters (Save as "ShutterBracket.txt" file to your /CHDK/SCRIPTS/ folder)

Select M mode on your Canon A640 and manually select your desired center shutter speed.

  • Number of Pics (Default=3)
  • Shutter Step Size (1/3 EV) (Default=3)
  • Initial Delay (Sec) (Default=1)

Script Code (save as "ShutterBracket.bas" to your /CHDK/SCRIPTS/ folder)

rem Johan Van Barel 30-03-2008
rem Shutter-Bracketing for Canon A640

@title Shutter Bracket (Select M Mode)
@param a Number of Pics
@default a 3
@param b Shutter Step Size (1/3 EV)
@default b 3
@param c Initial Delay (Sec)
@default c 1

if a<2 then let a=2
if b<1 then let b=1
if c<0 then let c=0

print "Pics:"; a, "Step:"; b

sleep c*1000

get_user_tv_id x

set_tv_rel (a-1)*b/2

for s=1 to a
    get_user_tv_id t
    gosub "showshutter"
    shoot
    set_tv_rel -b
next s

set_tv x

end

:showshutter

if t=-13 then print "Pic", s, "of", a, "T=15s"
if t=-12 then print "Pic", s, "of", a, "T=13s"
if t=-11 then print "Pic", s, "of", a, "T=10s"
if t=-10 then print "Pic", s, "of", a, "T=..s"
if t=-9  then print "Pic", s, "of", a, "T=8s"
if t=-8  then print "Pic", s, "of", a, "T=6s"
if t=-7  then print "Pic", s, "of", a, "T=5s"
if t=-6  then print "Pic", s, "of", a, "T=4s"
if t=-5  then print "Pic", s, "of", a, "T=3.2s"
if t=-4  then print "Pic", s, "of", a, "T=2.5s"
if t=-3  then print "Pic", s, "of", a, "T=2s"
if t=-2  then print "Pic", s, "of", a, "T=1.6s"
if t=-1  then print "Pic", s, "of", a, "T=1.3s"
if t=0   then print "Pic", s, "of", a, "T=1s"
if t=1   then print "Pic", s, "of", a, "T=0.8s"
if t=2   then print "Pic", s, "of", a, "T=0.6s"
if t=3   then print "Pic", s, "of", a, "T=0.5s"
if t=4   then print "Pic", s, "of", a, "T=0.4s"
if t=5   then print "Pic", s, "of", a, "T=0.3s"
if t=6   then print "Pic", s, "of", a, "T=1/4s"
if t=7   then print "Pic", s, "of", a, "T=1/5s"
if t=8   then print "Pic", s, "of", a, "T=1/6s"
if t=9   then print "Pic", s, "of", a, "T=1/8s"
if t=10  then print "Pic", s, "of", a, "T=1/10s"
if t=11  then print "Pic", s, "of", a, "T=1/13s"
if t=12  then print "Pic", s, "of", a, "T=1/15s"
if t=13  then print "Pic", s, "of", a, "T=1/20s"
if t=14  then print "Pic", s, "of", a, "T=1/25s"
if t=15  then print "Pic", s, "of", a, "T=1/30s"
if t=16  then print "Pic", s, "of", a, "T=1/40s"
if t=17  then print "Pic", s, "of", a, "T=1/50s"
if t=18  then print "Pic", s, "of", a, "T=1/60s"
if t=19  then print "Pic", s, "of", a, "T=1/80s"
if t=20  then print "Pic", s, "of", a, "T=1/100s"
if t=21  then print "Pic", s, "of", a, "T=1/125s"
if t=22  then print "Pic", s, "of", a, "T=1/160s"
if t=23  then print "Pic", s, "of", a, "T=1/200s"
if t=24  then print "Pic", s, "of", a, "T=1/250s"
if t=25  then print "Pic", s, "of", a, "T=1/320s"
if t=26  then print "Pic", s, "of", a, "T=1/400s"
if t=27  then print "Pic", s, "of", a, "T=1/500s"
if t=28  then print "Pic", s, "of", a, "T=1/640s"
if t=29  then print "Pic", s, "of", a, "T=..s"
if t=30  then print "Pic", s, "of", a, "T=1/800s"
if t=31  then print "Pic", s, "of", a, "T=1/1000s"
if t=32  then print "Pic", s, "of", a, "T=1/1250s"
if t=33  then print "Pic", s, "of", a, "T=1/1600s"
if t=34  then print "Pic", s, "of", a, "T=1/2000s"
if t=35  then print "Pic", s, "of", a, "T=1/2500s"

return

Download and Installation

This script is freeware. Before you can install it, you need to download and install the CHDK Firmware Extension for your specific Canon camera. CHDK is freeware and can be downloaded for a broad range of Canon PowerShot and Digital Ixus cameras here. If you own a Canon A640, you can download a specific build here, which already contains all the CHDK scripts from this site, including the one mentioned above. Copy all the files in this archive to the root of your SD card. If you have problems installing CHDK, please refer to the CHDK Wiki Pages.


Disclaimer

This software and the accompanying files are supplied "as is", without any express or implied warranty. In no event shall the author be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages from the use of this software. By using this software you agree with these conditions.

Copyright © 2008 by Johan Van Barel. All Rights Reserved