Many small form factor cameras such as the IXUS/SD series only have one real aperture setting, which is commonly f/2.8 at wide-angle (i.e. when the camera is not zoomed in at all).

The lens in all point-and-shoot cameras (and some D/SLR zoom lenses) has a variable maximum aperture value (lowest f number), which means Canon will list the camera with zoom specs 6.2 - 18.6mm and aperture f/2.8 - 4.9. In this case, the maximum aperture will be f/2.8 when the camera is at its widest focal length (6.2mm) and increases as you zoom in until the telephoto setting (of 18.6mm) is reached with an f-stop maximum value of f/4.9. That is, when zoomed in at 18.6mm the camera is at f/4.9 and cannot go any lower (i.e. to f/2.8).

This is why there are different aperture values when zooming in, despite these cameras having a single fixed aperture.

How the ND filter in these cameras work[]

When your camera detects a really bright scene, it will swing the ND filter in. This in effect makes the scene look darker and will effect the exposure (but not depth of field as a real aperture would).

With the ND filter in, the camera can select a slower shutter speed without overexposing the entire scene. Also, with the ND filter swung in, the camera will capture an image with an aperture of f/8 - This is a fake aperture value caused by the ND filter swinging in.

With CHDK the ND filter out can be kept out, but a faster shutter speed to compensate as to be selected. In the CHDK menu this operation can be found at:

Extra Photo Operations -> ND filter state

Just select one of the options from there: Off/In/Out

  • 'Off' means the camera is in control of the ND filter state.
  • 'In' means the ND filter is swung in.
  • 'Out' means the ND filter is not in.


  • Setting the ND position in a script takes effect just before the actual shot is taken and after the exposure is set;
  • Not all cameras have an ND filter; all cameras of the Ixus series have a ND Filter instead of a real aperture, also some other ones, e.g. the A450, A460, A530, A550, A560, A1000, TX1.
  • Some higher end cameras have both an ND filter and a real aperture, e.g the cameras of the G series.

ND Filter Scripting Functions[]

get_nd_present() - return status indicates whether camera has an ND filter and/or a diaphragm

set_nd_filter() - 0=auto, 1=in, 2=out

An example HDR script using the ND filter:

List of cameras with ND filter[]

Camera model Notes, reference
A series A410*, A420*, A430, A450, A460*, A470*, A480*, A490*, A495*, A530, A550*, A560*, A580*, A710, A800*, A810*, A1000*, A1100*, A1200, A1300, A2000, A2100*, A2200*, A2300*, A3000*, A3100*, A3200*, A3300*, A3400
D series D10*
G series G7*, G9*, G10, G11*, G12*, G15*, G16, G1X*, G7X
Ixus series The cameras in the Ixus line-up lack a physical aperture and use an ND filter instead.
Powershot N N, N Facebook
SD series See also: Ixus. Look up equivalent model in P-ID (Table)
SX series** SX40 HS*, SX50 HS*, SX220 HS*, S230 HS*, SX240 HSSX260 HS
TX series TX1*

(* Per platform/(model)/platform_camera.h - CAM_HAS_ND_FILTER)

(** These cameras almost certainly do not actually have an ND filter, but in current CHDK releases have CAM_HAS_ND_FILTER and respond to the set_ND_filter function by changing the aperture, see


A disassembled IXUS800 (SD700) with photos of lens and ND Filter -,548.0.html

External Resources[]