CHDK Wiki
Register
Advertisement

CHDKplus is a script that adds M, Tv priority, Av priority and ISO+ manual exposure control functions to Canon P&S cameras through an onscreen GUI mode interface. CHDKplus exposure control script automatically controls shutter speed, aperture, ND filter, and ISO settings based on user settings.  It will run in one of five user selected modes :  Tv priority, Av priority,  ISO+,  Manual and Canon P mode. 

Download Links :   CHDKplus Download Link

Loader for low memory cameras :  loadCHDKplus.lua

Forum Thread :    CHDK Forum Thread for CHDKplus script

Major Releases :  

v1.3  -  March 8 2014 - initial release
v2.4 - August 2, 2014 :  adds various skins (cycle through with the DISP key to see them all),  an eV adjust control, and various fixes for ND filter handling
v2.7 - Oct 19, 2014 :  pressing the playback button not gives a playback mode, pressing the ALT button halts the script while CHDK is not in ALT mode
v2.9 - Jan 13, 2018 : updated display handling for larger screen cameras (e.g. Digic6 models)

Features[]

  • onscreen GUI operation
  • Tv priority, Av priority, M, ISO+ and Canon P modes
  • eV adjust for auto modes
  • integrated light meter for checking exposure settings
  • all settings displayed in "real" camera units rather than APEX96 values
  • adapts to cameras with or without adjustable iris and/or ND filters
  • selectable color themes
  • logging

Camera Usage[]

PowerShot4


Camera Key Usage[]

Camera Keyboard Assignment
KEY FUNCTION
MENU  exits the script
< > moves between valid user input field for current exposure mode
^ v  changes value in current user input field
Full Press take a pictures
Half Press takes an exposure reading with current settings and updates exposure meter reading
FUNC.SET  equivalent to a Half Press
DISP  changes current theme
PLAYBACK Switched to playback mode and allows scrolling left & right via arrow keys. DISP key works too.
Zoom In / Zoom out changes the current zoom setting
<ALT> key exits <ALT> mode and pauses script until <ALT> mode is entered again

Light Meter Usage[]

When you half-press the shutter button or press the FUNC.SET button, the script will check the current exposure using the selected Tv, Av, & SV values. The light meter gage on the right hand side of the OSD will then be updated.

CHDKplus 5

Very overexposed


CHDKplus 4

Slightly overexposed


CHDKplus 6

Correct exposure


CHDKplus 7

Slightly underexposed


Script Operating Modes[]

P Mode Operation[]

In P mode (program), the Tv (shutter speed), Av (aperture) & Sv (ISO sensitivity) settings are set by the Canon firmware.

M Mode Operation[]

In M (manual) mode operations, the Tv (shutter speed), Av (aperture) & Sv (ISO sensitivity) settings are set by the photographer. Correct exposure is not guaranteed.

Tv Priority Mode Operation[]

In Tv mode operations (shutter speed priority), the shutter speed setting can be changed from the Gui. Av (aperture) & Sv (ISO sensitivity) settings will be adjusted to maintain the correct exposure.

Av Priority Mode Operation[]

In Av mode operations (aperture priority), the lens aperture & ND filter setting can be changed from the Gui. Tv (shutter speed) & Sv (ISO sensitivity) settings will be adjusted to maintain the correct exposure.

ISO+ Operation[]

In ISO+ operations, the Tv (shutter speed), Av (aperture) & Sv (ISO sensitivity) settings will be adjusted to maintain the correct exposure using the highest acceptable shutter speed.  See below for details.

Application Notes[]

  1. For day to day shooting,  you might want to set CHDK to load & run the script at startup.  Instruction to do so are here : CHDK User Manual - Autostart
  2. With CHDK 1.3.0 or later,  you can also trigger the script to run when you press the <ALT> key.
  3. The script assumes the cameras ND filter effect is the equivalent of 3 f-stops.  Change the value of the variable nd96offset at the start of the script if this is not the case.
  4. While the script is running,  you can stop it "cleanly" by pressing the MENU key.  
  5. This script requires CHDK 1.3.0 (or higher) and build 3149 (or higher)
  6. As always,  CHDK is experimental and while very stable,  it is not perfect.  Use at your own risk.

ISO+ Calculation Algorithm[]

For a camera with no ND filter and no adjustable iris (the "Tv-only" case), the script works as follows :

  • the script meters the scene and determines if the picture can be properly exposed using your target Tv (1/1000 second) with ISO somewhere in the range of Min (100) to Max2 (800). If that's possible, it takes the picture at the appropriate ISO.
  • if the scene brightness is too low with ISO at Max2 (800), it slows the shutter speed from target, enough to get a good exposure.
  • if the scene brightness is too high with ISO at Min (100), it raises the shutter speed enough to get a good exposure, which may be above your maximum setting (1/2000).

For a camera with an ND filter but no adjustable iris :

  • the script performs the TV-only calculation described in above.
  • if the resulting shutter speed is above your Max setting (1/2000), it inserts the ND filter, lowers the meter reading by three stops, then does the Tv-only calculation again.

For a camera with an adjustable iris, but no ND filter, the script works as follows:

  • The script meters the scene, and determines if the picture can be properly exposed using your target Tv (1/1000 second) and your target Av (f/4.0), with ISO somewhere in the range of Min (100) to Max1 (400). If that's possible, it takes the picture at the appropriate ISO.
  • If scene brightness is too low with ISO at Max1 (400), it lowers the f-stop setting as needed, down to your Min setting (f/2.8).
- If still more exposure is needed, it raises the ISO, up to your Max2 setting (800).
- If still more exposure is needed, it slows the shutter speed below target to get a good exposure.
  • If the scene brightness is too high with ISO at Min (100), it raises the shutter speed, up to your Max setting (1/2000).
- If exposure is still too high, it raises the f-stop, up to your Max setting (f/8.0).
- If exposure is still too high, it raises shutter speed above your Max setting to get a good exposure.

For a camera with both an adjustable iris and an ND filter, the script works as follows:

  • The script withdraws the ND filter, then performs the iris-only calculation described in C above.
  • If the resulting shutter speed is above your Max setting (1/2000), it inserts the ND filter, lowers the meter reading by three stops, then does the iris-only calculation again.

Note that in very high scene brightness, the algorithm may yield a shutter speed higher than your Max setting, and even higher than your camera's highest nominal setting. Under CHDK such fast shutter speeds may indeed work, but may not be reflected in the EXIF data for the picture (which may only go up to about 1/2000 second). If that occurs, the log data will reflect the actual settings at which the picture was taken.

Also remember that for cameras with an iris, if you use the zoom settings to zoom in to any amount, your camera's minimum f-stop will go up. The script will automatically adjust your minimum and target Av settings if needed. This may be the explanation if your EXIF aperture data shows higher f-stops than your settings call for and you are using zoom.

Parameter Setup[]

Default Mode[]

M P Tv Av ISO+
  • select the desire exposure calculation mode

Exposure  Compensation[]

Works like the built-in Canon exposure compensation,  allowing the exposure reading to be offset by up to two f-stops.
  • values -2 to +2 f-stops ( in 1/3 f-stop increments)
  • default  0.0 

Tv Default[]

Defines the desired shutter speed - usually set to a fast shutter speed like 1/1000 sec
  • values 1/100 sec to 1/2000 sec
  • default  1/1000 sec

Tv Min[]

Defines the lowest shutter speed that will be used. Note that the algorithm will not try to go below this value to get the correct exposure, possibly resulting in underexposed images that will need to be fixed in post processing.  Used to prevent motion blurr when the illumination is poor.
  • values 1/60 to 1/640 sec
  • default  1/200 sec

Tv Max[]

Defines the maximum shutter speed that will be used before the ND filter (if present) is inserted. Note that the algorithm may try to go above this value to get the correct exposure as a last resort, depending on CHDK's ability to extend the shutter speed.
  • values 1/1000 to 1/10000
  • default  1/2000 sec

Av Default[]

Defines the desired Av setting (usually the lens sharpness "sweet spot")
  • values f1.8 to f8.0
  • default  f4.0

Lowest Av[]

Used to define the lowest aperture setting to be used 
  • values f1.8 to f8.0
  • default  f2.8

Highest Av[]

Defines the maximum usable Av setting
  • values f1.8 to f8.0
  • default  f8.0

ISO Default[]

Defines the desire ISO sensitivity value to use
  • values 80 100 200 400 800 1250 1600 3200
  • default  100

ISO Min[]

Defines the lowest ISO sensitivity value to use
  • values 80 100 200 400 800 1250 1600 3200
  • default  100

ISO Max1[]

Defines the maximum ISO to be used during "normal" shooting.
  • values 100 200 400 800 1250 1600 3200
  • default  400

ISO Max2[]

Defines the ISO value to be used when the ISO Max1 value cannot be used to achieve correct exposure
  • values 100 200 400 800 1250 1600
  • default  800

Color Theme[]

Specifies default color scheme (DISP button changes this). 
  • values  Clear Solid Reverse Psycho
  • default  Solid

Help Screen at Start[]

Enables / Disable popup help screen when script starts.

Logging[]

Specifies where log message go. 
  • values  Off   Screen   SDCard  Both
  • default  Both
Advertisement