SDM uBasic Commands

SDM uBasic Commands
SDM uBasic Commands
Based on Adam Dunkel's uBasic , SDM has numerous powerful commands that advanced users may find
useful.
Dave Mitchell has written a debugger for SDM uBasic scripts, you can download it here .
If you include 'set_config_value 125 666' near the top of the script, this 'hack' will restart your script in
the event of an error and write time,script name and line number to file ubasic_errors.txt. If you do not
want a restart, use 'set_config_value 125 777' and the line number will be saved in file ubasic_log.txt.
This feature is used by kite aerial photographers who are using complex scripts and wish to avoid reeling
- in the kite after a script error or are not able to remotely view the normal script-error message.
If writing your own scripts, use a simple text editor (such as Notepad or Wordpad) and save in plain ANSI
format (not unicode).
Make sure that the first line of your script is not blank but there is a blank line at the end of the script.
Any lines above '@title' should start with 'rem'.
For nicely formatted,coloured and/or enlarged text use the 'line x' command with a scrolling or nonscrolling console.
With a scrolling console, text will be single height.
You can insert large blocks of comments between pairs of '#' or use the pairs to comment-out parts of
your script when testing.
For example :
#--------------------------------------------------** Set camera to Single shot mode for this script **
aperture
auto_focus_bracketing
continuous_shooting
cs_off
hdr_bracket_1/3_ev_steps
manual_focus_off
number_of_images_to_capture_is
save_stack
set_config_value
set_focus_to
set_zoom_to_step
shutter_speed
Ver.20170116 DAS
Page 1/45
start_continuous_sequence
wait_until_done
#--------------------------------------------------If a script in SCRIPTS3 folder is named Startup.txt and 'autostart' is enabled in the Script
menu, your normal default script will still be resident on completion.
The commands are as like normal English as possible.
For example:
shutter_speed 1/125
aperture 3.5
shoot_movie_for 10
Parameter Sets
Scripts that are named A_.txt to Z_.txt can have up to 25 associated parameter sets (named A_1 to A_25,
B_1 to B_25, for example).
The scripts should be in SCRIPTS2 folder and the parameter sets in PARAMS folder.
The scripts can be accessed from the 'SDM Scripts' menu.
Some of the potential script names have already been used by SDM.
Study the parameter sets to see how you can include detailed information in the six @desc fields.
CHDK commands
The following commands are also available with CHDK and are documented there (some are also
documented below):
Script header and remarks
@default
@param
@range
@title
@values
rem
Logic commands
<>
<=
>=
<
><
and
not
or
Control and branching
Ver.20170116 DAS
Page 2/45
do
else
end
endif
for
gosub
goto
if
let
next
return
step
then
to
until
wend
while
Mini-console messages
cls
console_redraw
print
print_screen
Camera Operation
click
wait_click
press
release
shoot
shut_down
sleep
is_key
is_pressed
wheel_left
wheel_right
get_autostart
get_day_seconds
get_flash_mode
get_focus
get_free_disk_space
get_mode
get_movie_status
get_prop
get_quality
get_real_iso
get_resolution
get_shooting
get_tick_count
get_usb_power
get_user_tv_id
get_video_button
Ver.20170116 DAS
Page 3/45
get_zoom
get_zoom_steps
playsound
set_aflock
set_av_rel
set_autostart
set_av
set_backlight
set_focus
set_iso
set_led
set_nd_filter
set_prop
set_quality
set_resolution
set_raw
set_sv96
set_tv
set_tv_rel
set_tv96_direct
set_zoom
set_zoom_speed
set_zoom_rel
md_detect_motion
md_get_cell_diff
exit_alt (exit &lt;ALT&gt; mode)
Ver.20170116 DAS
Page 4/45
SDM Commands
//
This allows comments to be added at the end of a line.
It does not work when after some types of command.
line 1 " This is a comment"
//
and so is this.
#
Start and end of comment block,as described above.
aeb_canon_off/aeb_canon_on
Turns Canon autoexposure bracketing on/off.
af_assist_off
Turns off the autofocus-assist LED if camera has that option.
af_led_off/af_led_on
The autofocus LED is bright and visible from some distance.
This makes it useful for kite aerial photography (KAP) scripts to indicate completion of operations.
The AF LED is normally flashed so it is not advisable to turn it on for too long.
altitude
If camera supports GPS, the current altitude is available in a form ready for displaying:
line 1 " Altitude is "altitude
Otherwise, "GPS not supported" will be displayed.
aperture
A user-friendly way of entering override aperture-values on cameras that have a physical aperture:
aperture 3.5
@title Aperture
@param a numerator
@default a 2
@param b denominator
@default b 8
aperture a . b
shoot
end
Ver.20170116 DAS
Page 5/45
autofocus
Half-press shutter and wait until auto-focus completed.
This command even works in Manual focus mode but will disable manual focus if in that mode.
auto_focus
Synonym for 'autofocus'.
auto_focus_all
Use before the 'time_lapse' command to force autofocusing on every shot.
Not to be used if camera set to manual focusing.
auto_focus_first
Use before the 'time_lapse' command to autofocus the first shot. When 'time_lapse' command is executed,
autofocus lock (AFL) is applied and 'AFL' displayed at top left of screen.
Not to be used if camera set to manual focusing.
auto_focus_bracketing
Used in continuous-shooting mode to capture images from focused distance to infinity.
The camera must be in a mode that allows focus-override and in continuous-shooting mode (if using
custom timer mode, the sequence will end after the set number of exposures).
It is preferable to use EasyMode STACK or for close-ups User Script RAYNOX.
Focus may or may not reach infinity).
For the example below, set camera to continuous shooting.
At the wide-angle setting, infinity will be reached in only two or three steps from 1000mm.
The example zooms the lens to get more steps (on non 'S' series cameras).
The focused distance is displayed at the top of the screen for each step.
'DBA' is displayed to indicate 'distance-bracketing automatic' and 'CONT' for continuous-shooting mode.
Press your USB switch to start, the camera will beep when infinity-focus is reached.
Example:
set_zoom_to_step 7
set_focus_to 1000
auto_focus_bracketing
" Autofocus bracketing"
" Press switch"
wait_for_switch_press
start_continuous_sequence
wait_until_done
av_value
Current aperture setting preformatted for display.
line_1 " Current aperture is "av_value
beep
Makes a single 'beep' sound. Same as 'playsound 4'.
Ver.20170116 DAS
Page 6/45
big_zoom_display_off/big_zoom-display_on
Enable or disable the display of zoom in large characters.
Useful for customising display information, eg for kite aerial photography when using a video transmitter.
big_zoom_display_pos x,y
Sets the horizontal and vertical position (in pixels) for the display of zoom value in the size selected in
menu OSD Parameters/Zoom font size.
The comma is optional.
big_zoom_display_on
big_zoom_display_pos 180,240
blink_af_led_for
Blink the autofocus LED for defined number of seconds.
burst_sequence n
Use 'sdm_burst_mode' to put camera into continuous-shooting burst mode and then 'burst_sequence n' to
capture 'n' shots as quickly as possible. Can also be stopped at any time by USB switch or pulse.
cam_has_av_mode
Camera supports user-set aperture.
'N = cam_has_av_mode' returns zero for No or '1' for Yes.
cam_has_nd_filter
'N = cam_has_nd_filter' returns zero for No or '1' for Yes.
cam_has_tv_mode
Camera supports user-set shutter speed.
'N = cam_has_tv_mode' returns zero for No or '1' for Yes.
canon_timer_active
'A = canon_timer_active'returns '1' if that is the current drive mode. This is a useful check as some scripts
can display a warning if they do not work in that mode. See KAP,UAV and BALLOON scripts in
SCRIPTS3.
capture_mode
Set a capture mode from list below if supported by your camera 'capture_mode 9' sets camera to standard
video mode, for example.
1
2
3
4
5
AUTO
P
TV
AV
M
Ver.20170116 DAS
Page 7/45
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
PORTRAIT
NIGHT
LANDSCAPE
VIDEO_STD
VIDEO_SPEED
VIDEO_COMPACT
VIDEO_MY_COLORS
VIDEO_COLOR_ACCENT
VIDEO_COLOR_SWAP
STITCH
MY_COLORS
SCN_UNDERWATER
SCN_NIGHT_SNAPSHOT
LONG_SHUTTER
SCN_LANDSCAPE
COLOR_SWAP
SCN_SNOW
SCN_BEACH
SCN_FIREWORK
SCN_COLOR_ACCENT
SCN_COLOR_SWAP
VIDEO_HIRES
SCN_AQUARIUM
COLOR_ACCENT
SCN_NIGHT_SCENE
SCN_ISO_3200
SCN_SPORT
SCN_KIDS_PETS
INDOOR
KIDS_PETS
NIGHT_SNAPSHOT
DIGITAL_MACRO
SCN_FOLIAGE
VIDEO_TIME_LAPSE
SCN_INDOOR
SCN_PORTRAIT
SUPER_MACRO
VIDEO_PORTRAIT
VIDEO_NIGHT
VIDEO_INDOOR
VIDEO_FOLIAGE
VIDEO_SNOW
VIDEO_BEACH
VIDEO_AQUARIUM
VIDEO_SUPER_MACRO
VIDEO_STITCH
VIDEO_MANUAL
SPORTS
QUICK
SCN_SUNSET
SCN_CREATIVE_EFFECT
EASY
SCN_DIGITAL_MACRO
SCN_STITCH
SCN_LONG_SHUTTER
Ver.20170116 DAS
Page 8/45
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
LOWLIGHT
SCN_NOSTALGIC
SCN_SMART_SHUTTER
SCN_LOWLIGHT
SCN_SUPER_VIVID
SCN_POSTER_EFFECT
SCN_FISHEYE
SCN_MINIATURE
SCN_HDR
VIDEO_MINIATURE
VIDEO_IFRAME_MOVIE
VIDEO_MOVIE_DIGEST
SCN_HIGHSPEED_BURST
SCN_BEST_IMAGE
SCN_TOY_CAMERA
SCN_MONOCHROME
SCN_WINK_SELF_TIMER
SCN_FACE_SELF_TIMER
VIDEO_SUPER_SLOW
SUPER_VIVID
POSTER_EFFECT
BEACH
FOLIAGE
SNOW
FIREWORK
LIVE
DISCREET
BLUR_REDUCTION
SCN_SOFTFOCUS
SCN_SMOOTH_SKIN
DIGITAL_IS
MODE_VIDEO_STD_RECORDING
BACKGROUND_DEFOCUS
STAR_PORTRAIT
STAR_NIGHTSCAPE
STAR_TRAILS
HYBRID_AUTO
VIDEO_M
VIDEO_STAR_TIME_LAPSE
ISO_3200
change_ev_by
Changes current exposure value by the required number of 1/3 EV steps. Negative numbers increase
exposure.
console_position
The top-left x,y position of the script console in pixels. The screen is either 360 pixels wide or 480 for
widescreen. In Record (live screen) mode screen is normally 240 pixels high. Use in conjunction with
'sdm_console_line_length'
A screen character is 16 pixels high by 8 pixels wide. That allows a maximum of 45 normal-size character
per line on a 360 pixel display and 15 lines. A double-height character 'consumes' two screen lines of
height and two characters of width.
Ver.20170116 DAS
Page 9/45
continuous_shooting
Switches camera to continuous-shooting mode.
(If SDM uses 'software-pressing' of camera keys to do this on your camera, please contact us and request
the faster method.)
cover_lens n
This specialised command is for HAB (high-altitude balloon flights). See User Script 'BALLOON.txt' in
SCRIPTS3 folder. You cover the payload spy-hole with a cap and start the script. The script will pause
and after your defined delay, SDM checks every 'n' seconds to see if lens cap has been removed (if
parameter 'n' is absent, the interval is set to five seconds). The camera beeps at a regular interval and
when cap is removed the AF LED flashes five times,the script continues and the balloon is released.
Movies and still shots can then captured of the lift-off.
cs
Synonym for continuous_shooting.
cs_off
Switch camera to single-shot mode.
cs_on
Synonym for continuous_shooting.
custom_timer
r = custom_timer x
If supported by SDM on the particular camera, turns Canon custom-timer mode off (0) or on (1) and
returns value '1'. Otherwise, produces warning sound and returns value '0'. Most EasyMode scripts in
SCRIPTS folder make use of this command to automatically turn custom timer on or off if possible,
otherwise to display a warning. You can request support for this function if necessary.
date n
A date text string that may be displayed in seven different formats. If no command parameter, format is
YYYY:MM:DD (2030:04:01).
1 - YY:MM:DD
2 - DD:MM:YYYY
3 - DD:MM:YY
4 - MM:DD:YYYY
5 - MM:DD:YY
6 - YYYY Weekday MM Month (such as 2030 Monday 01 April)
data_received
When using the 'send_data' command to send three bytes of data to an external device (such as a Picaxe
microcontroller), A returned value of '1' indicates that the data was received without error and the device
replied within 100 msec. e.g data_received a ('a' = 1 if data received).
Ver.20170116 DAS
Page 10/45
debug_led_off/debug_led_on
Turn the debug LED (the blue PRINT LED on older cameras) on/off.
On some recent cameras the LED used is normally on, so debug_led_on turns it off !
Example
sleep_for 1000
beep
debug_led_on
sleep_for 2000
beep
debug_led_off
end
disable_big_zoom/enable_big_zoom
Legacy commands for old scripts, use big_zoom_display_off/big_zoom_display_on instead.
disable_focus_override
If the camera uses manual focus for focus override,autofocus is turned on.
If camera uses autofocus-lock for focus override, the shutter button is half-pressed and focus unlocked.
disable_logging
(for SDM's internal use, frees-up file 'handle')
each_photo_alternating/each_photo_darker/each_photo_lighter
Used before starting a Tv (shutter-speed) bracketing sequence with custom-timer shooting mode
(continuous-shooting mode bracketing is alternating only). It is equivalent to setting 'bracketing type' in
menu Advanced/Creative/Multi-shot bracketing. For the example below, set number of exposures in
custom-timer 'Shots' and delay to zero.
Example
hdr_bracket_1/3_ev_steps 2
each_photo_lighter
" Press switch"
wait_for_switch_press
" Each image lighter"
start_custom_timer_sequence
wait_until_done
elapsed_time n
Time that has elapsed since the 'start_clock' command was executed. If no parameter, format is
HH:MM:SS.
With any numeric parameter , format is DDD:HH:MM:SS
Ver.20170116 DAS
Page 11/45
enable_focus_override
E = enable_focus_override
If the camera supports continuous autofocus or servo autofocus and either is enabled, a warning sound is
produced and the command returns a value of zero.
If the camera uses manual focus for focus override and that mode or autofocus-lock cannot be set, a
warning sound is produced and the command returns a value of six.
Otherwise, it returns a value of three.
If the camera uses autofocus-lock for focus override and that mode cannot be set, a warning sound is
produced and the command returns a value of seven.
Otherwise, it returns a value of two.
If the camera focus-overrides in autofocus mode, a value of one is returned.
In that case, your script needs to half-press before applying the override value.
If,for some reason,rather than letting SDM choose the focus-override method you wish to use manualfocus mode, see manual_focus_on and manual_focus_off and their synonyms.
enable_logging n
Open a new file on the memory card that subsequent 'log' commands can write to. If no command
parameter or parameter is zero, file named "LOGFILE_nnnn.txt" is created in SDM/LOGS folder, where
'nnnn' is number of next image.
If command parameter is '1',file named "KAP_nnnn.txt" is created in SDM/LOGS folder, where 'nnnn' is
number of next image, and a preformatted header is written that includes the date, focus-override method
and whether autofocus or focus locked at infinity is used. In both cases, full exposure data is
automatically written for each image as well as the users own log commands.
IMG_2745.JPG Canon values Tv:1/40
Av:
SDM values Tv:1/9
Av:
APEX96 Tv:308
Av:
ND:OUT Focus:
3.19 ISO:411 Bv: 26
3.19 ISO:398
322 Sv: 603 Bv: 27
1691 MechaPos: 810
Ec: 0
22:01:05
There are a maximum of 128 characters per line.
Older cameras that use the VxWorks operating system are not able to add new data to an existing but
closed file. The file is kept open until script exit and in the event of a crash all data could be lost. It is
good practice to include 'disable_logging' when logging is no longer required.
End_hour/end_hour
Restrict shooting to defined period using 24-hour time values.
Useful in simple time-lapse scripts.
End_minutes/end_minutes
Restrict shooting to defined period using 24-hour time values.
Useful in simple time-lapse scripts.
end_time
This is a synonym for 'finish_time' and is used in conjunction with 'sleep_until' or 'start_time'.
'end_time/finish_time' MUST come before 'sleep_until/start_time' in your script.
Ver.20170116 DAS
Page 12/45
It indicates the time in hours and minutes that an operation should end.
At present, only 'time_lapse' command supports this feature.
See the examples in SCRIPTS2 folder.
Shooting continues for about 15 seconds after the end-time minutes.
The following script will blank the display until start time (default is 12:30) .
It will then take a photo every minute until end time.
End time is four minutes after start time
The time-lapse setting for this feature must be 'endless'.
@title Real time
@param a hours
@default a 12
@param b minutes
@default b 30
" Going to sleep"
sleep_for_seconds 3
rem finish after four minutes
finish_time a:b + 4
start_time a:b
rem ten second delay then photo every one minute
time_lapse 0, 10 ,1 , 0, 3, 1, 0, 3, 3, 0, 2, 3, 0,50,500,0,0,0,0,0
end
End_hour/end_hour/Start_hour/start_hour
Restrict shooting to defined period using 24-hour time values.
Useful in simple time-lapse scripts.
#
Time-lapse of apple tree from bare branches to fruit.
Interval may change duration season.
Shooting each day only between start and finish times
Screen powered-off using DISPLAY button.
Set clock before using.
Image size 1600x1200.
#
@param i interval in minutes
@default i 5
@param t start hours
@default t 8
@param f finish hours
@default f 16
Start_hour t
End_hour f
time_lapse 0, 30, i, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,0,0,0
:restore
line_1 " Script has finished"
sleep_for_seconds 5
cls
exit_alt
end
ev_correction
A formatted ready-to-print string of the exposure-correction in EV (exposure value) units.
Ver.20170116 DAS
Page 13/45
Line 5 " Exposure correction is "ev_correction
finish_time
Synonym for 'end_time', you can use either.
flash_off
Disable flash for following shot. In some situations, such as changing mode, the flash may turn back on.
flash_on
The flash will be enabled for the next shot (or maybe subsequent shot on some cameras). It will not popup
a flash.
focus_at_nearpoint
Focuses at the nearpoint previously computed by set_focus_range.
focus_in
Change focus to current nearpoint.
focus_mode
Get focus mode.
'F = focus_mode' returns 0 (Auto) or '1' (Manual).
focus_out
Change focus to current farpoint.
get_autostart
'A = get-autostart' returns '1' if script autostarted on booting, otherwise zero.
get_av96
'A = get_av96' returns APEX96 value of current aperture setting.
get_brightness
Get scene brightness in Canon Apex96 units. Updated on every half-press. Maximum value for a very
bright sunny day would be approximately 900 to 1100.
get_bv96
'A = get_av96' returns APEX96 value of scene brightness (same as 'get_brightness' command). Updated
on every half-press or shoot operation. Maximum value for a very bright sunny day would be
approximately 900 to 1100.
Ver.20170116 DAS
Page 14/45
get_capture_mode
'C = get_capture_mode' returns a number indicating the position of the mode dial:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
AUTO
P
TV
AV
M
PORTRAIT
NIGHT
LANDSCAPE
VIDEO_STD
VIDEO_SPEED
VIDEO_COMPACT
VIDEO_MY_COLORS
VIDEO_COLOR_ACCENT
VIDEO_COLOR_SWAP
STITCH
MY_COLORS
SCN_UNDERWATER
SCN_NIGHT_SNAPSHOT
LONG_SHUTTER
SCN_LANDSCAPE
COLOR_SWAP
SCN_SNOW
SCN_BEACH
SCN_FIREWORK
SCN_COLOR_ACCENT
SCN_COLOR_SWAP
VIDEO_HIRES
SCN_AQUARIUM
COLOR_ACCENT
SCN_NIGHT_SCENE
SCN_ISO_3200
SCN_SPORT
SCN_KIDS_PETS
INDOOR
KIDS_PETS
NIGHT_SNAPSHOT
DIGITAL_MACRO
SCN_FOLIAGE
VIDEO_TIME_LAPSE
SCN_INDOOR
SCN_PORTRAIT
SUPER_MACRO
VIDEO_PORTRAIT
VIDEO_NIGHT
VIDEO_INDOOR
VIDEO_FOLIAGE
VIDEO_SNOW
VIDEO_BEACH
VIDEO_AQUARIUM
VIDEO_SUPER_MACRO
VIDEO_STITCH
Ver.20170116 DAS
Page 15/45
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
VIDEO_MANUAL
SPORTS
QUICK
SCN_SUNSET
SCN_CREATIVE_EFFECT
EASY
SCN_DIGITAL_MACRO
SCN_STITCH
SCN_LONG_SHUTTER
LOWLIGHT
SCN_NOSTALGIC
SCN_SMART_SHUTTER
SCN_LOWLIGHT
SCN_SUPER_VIVID
SCN_POSTER_EFFECT
SCN_FISHEYE
SCN_MINIATURE
SCN_HDR
VIDEO_MINIATURE
VIDEO_IFRAME_MOVIE
VIDEO_MOVIE_DIGEST
SCN_HIGHSPEED_BURST
SCN_BEST_IMAGE
SCN_TOY_CAMERA
SCN_MONOCHROME
SCN_WINK_SELF_TIMER
SCN_FACE_SELF_TIMER
VIDEO_SUPER_SLOW
SUPER_VIVID
POSTER_EFFECT
BEACH
FOLIAGE
SNOW
FIREWORK
LIVE
DISCREET
BLUR_REDUCTION
SCN_SOFTFOCUS
SCN_SMOOTH_SKIN
DIGITAL_IS
MODE_VIDEO_STD_RECORDING
BACKGROUND_DEFOCUS
STAR_PORTRAIT
STAR_NIGHTSCAPE
STAR_TRAILS
HYBRID_AUTO
VIDEO_M
VIDEO_STAR_TIME_LAPSE
ISO_3200
get_config_value
See 'set_config_value' below.
C = get_config_value 300 999
Value is returned in first parameter if successful, otherwise second parameter is assigned.
Ver.20170116 DAS
Page 16/45
get_day_seconds
'D = get_day_seconds' returns the number of seconds since midnight.
get_drive_mode
'D = get_drive_mode' returns 0 (single-shot),1 (continuous shooting) or 3 (custom timer).
get_equivalent_focal_length/get_efl
'E = get_equivalent_focal_length' returns the 35mm-equivalent focal length of current zoom setting.
In folder SDM/TEXTS you will find the file "focal.txt" that lists all the real and equivalent focal-lengths
for your camera.
get_ev_correction
'E = get_ev_correction' returns the current exposure-value-correction setting in APEX96 units, usually
192 to +192.
96 units are equivalent to 1 EV (a halving or doubling of shutter speed, for example).
get_exposure_count/get_exp_count
'E = get_exposure_count' returns number of images the camera has shot since last reset of file numbering.
This assumes there is at least one image on the card. Increments after each photo or movie is captured.
Also see 'shot_count'.
get_farpoint
'F = get_farpoint' returns the calculated depth-of-field farpoint based on current focus, aperture and zoom
setting.
A half-press updates the value.
get_flash_mode
'F = get_flash_mode' returns 0 (AUTO),1 (MANUAL) or 2 (OFF).
get_focal_length/get_fl
'F = get_focal_length' returns the lens real focal length times 10.
For example, '78' represents 7.8mm.
In folder SDM/TEXTS you will find the file "focal.txt" that lists all the real and equivalent focal-lengths
for your camera.
get_focused_distance/get_focus
After a half-press(or any shoot action), 'F = get_focused_distance' returns the distance in mm. that the
Canon firmware estimates the camera is focused at.
Note that the Canon firmware does not make a specific measurement of distance, it only knows the focus
position for maximum image contrast
Ver.20170116 DAS
Page 17/45
It is more accurate at very close distances and after about one metre quickly reaches infinity, especially at
wide-angle setting.
At telephoto settings, especially with super-zooms, the focus steps will be more gradual.
get_fov
'F = get_fov' returns the horizontal field-of-view at current zoom setting (in degrees).
get_iso
'I = get_iso' returns the value of the 'Market' ISO setting as displayed by Canon. Auto ISO = 0.
get_free_disk_space
'F = get_free_disk_space' returns the size (in Kb) of the free clusters on the card.
get_lens_mecha_position
This is a fault-finding command for recording the mechanical focus position of the lens.
The units have unknown meaning, they become smaller as the lens retracts and focuses towards infinity.
'L = get_lens_mecha_position' returns the value.
get_mode
'M = get_mode' returns 0 (Record),1 (Play) or 2 (Video).
get_movie_status
'M = get_movie_status' returns the following:
0 VIDEO recording has never started
1 VIDEO recording has stopped
4 VIDEO recording is in progress
5 VIDEO recording is stopping
6 VIDEO not recording but dial in Video position
get_nearpoint
'F = get_nearpoint' returns the calculated depth-of-field nearpoint based on current focus, aperture and
zoom setting. A half-press updates the value.
get_orientation
'O = get_orientation' returns 0,90 or 270 depending on camera orientation.
Older cameras may also return 180.
get_override_tv96
'O = get_override_tv96' returns the APEX96 value of any shutter-speed override that has been set.
get_prop
Ver.20170116 DAS
Page 18/45
Property cases are values in camera RAM that can be read and sometimes written to by the script.
'P = get_prop 145' returns the 'property case' representing the image-stabilisation mode on cameras that
use 'Property Set4'. For this to be useful, you need to know the property set number your camera uses.
It can be found in the file 'platform_camera.h' for your camera here
https://www.assembla.com/spaces/chdk/subversion/source/4153/trunk/platform
in the CAM_PROPSET entry. The appropriate propset file can then be found here
https://www.assembla.com/spaces/chdk/subversion/source/4153/trunk/include
in the corresponding propsetX.h file.
Use the Advanced\Debug menu to display pages of property cases.
get_quality
'Q = get_quality' returns the property-set number for JPEG image-quality setting.
Check the propsetX.h file for further information.
get_real_focal_length_for_step
'R = get_real_focal_length_for_step n' returns the focal length at 'n' steps out from wide angle position.
The value is multiplied by x1000 (for precision).
get_real_iso
'R = get_real_iso' returns the value of property-case PROPCASE_SV.
Real_iso is actual value used for iso setting and can be different from the "market" iso used by canon UI
get_resolution
'R = get_real_resolution' returns the value of property-case PROPCASE_RESOLUTION.
get_shooting
'S = get_shooting' returns value of property-case PROPCASE_SHOOTING.
When half-pressing the shutter, the value is zero until the camera has finished trying to focus.
It is typically used like this:
press "shutter_half"
do
sleep 50
until (get_shooting = 1)
get_shoot_fast_param n
Gets value of one of the parameters that can be used with 'shoot_fast_at' or 'prepare_for_shot_at'.
'n' is one of the following :
0 - exposure compensation
1 - preferred aperture
2 - minimum aperture
3 - bracketing exposure value.
P = get_shoot_fast_param 0
returns exposure compensation value.
Ver.20170116 DAS
Page 19/45
get_tick_count
'T = get_tick_count' returns the number of msec the camera has been powered-up for, with a resolution of
10 msec.
get_min_av96
'A = get_av96' returns APEX96 value of minimum aperture available at current zoom setting.
get_sdm_display_mode
'D = get_sdm_display_mode' returns a number corresponding to current SDM EasyMode or Canon mode
The Canon modes are the result of EasyModes being reset so that none are active.
1 to 4 HDR_AUTO
5 BURST
6 3d_Mode
7 2d_Mode
8 STACK
9 to 12 HDR_3D
13 3dSPORTS
14 3dTLapse
16 to 18 HDR_TIME
19 to 22 HDR_USER
23 Canon mode, single shot
24 Canon mode,continuous shooting
25 Canon mode Custom Timer
27 Digiscope
31 to 33 HDR_TIME 3D
get_sv96
'S = get_shooting' returns value of property-case PROPCASE_SV, the ISO APEX96 value.
get_tv96
Shutter speed expressed as a Canon APEX value (96 units equals one exposure value).
get_usb_power
(retained for compatability, use 'get_usb_pulse_width' instead).
'P = get_usb_power' returns duration of last USB pulse in msec with a resolution of 10 msec if precision
timer not being used.
Otherwise, the sample-rate used with the 'precision_sample_usb_at_msec n ' command.
get_usb_pulse_width
'P = get_usb_pulse_width' returns duration of last USB pulse in msec with a resolution of 10 msec if
precision timer not being used.
Otherwise, the sample-rate used with the 'precision_sample_usb_at_msec n ' command.
Ver.20170116 DAS
Page 20/45
get_video_button
'V = get_video_button' returns '1' if camera has video button, otherwise zero.
get_zoom_steps
'Z = get_zoom_steps' returns the number of distinct focal lengths the camera has.
It can be more than one hundred or as few as seven.
get_current_zoom_position/get_zoom
'Z = get_current_zoom_position'returns the number of steps the lens has zoomed from the wide-angle
position.
hdr_bracket_1/3_ev_steps
Used in Tv bracketing to specify the exposure-step in units of 1/3EV. 3 EV is equivalent to one stop. It is
equivalent to setting 'Tv bracketing value' in menu Advanced/Creative/Multi-shot bracketing.
hours
Your local time in hours. 'H = hours' returns local time in hours.
See also 'minutes' and 'seconds'.
image_number
'I = image_number' returns number of next image.
interval_shots [n],[d],[i]
Switch to single-shot if necessary and shoot images at an interval, maybe after a delay:
interval_shots - after no delay, shoot continuously with interval of five seconds
interval_shots d - after delay of 'd' seconds, shoot continuously with interval of five seconds
interval_shots d,n - after delay of 'd' seconds, capture 'n' shots at interval of five seconds
interval_shots d,n,i - after delay of 'd' seconds, capture 'n' shots at interval of 'i' seconds
is_capture_mode_valid n
Parameter 'n' is the number of a Canon capture mode (listed above for command 'capture_mode').
'C = is_capture_mode_valid n'.
Returns '1' if camera supports that mode.
is_continuous_af_on
'C = is_continuous-af_on' returns '1' if true or zero if false or camera does not have a continuous
autofocus mode.
See usage in User Scripts KAP,UAV and BALLOON.
is_servo_af_on
'S = is_servo_af_on' returns '1' if true or zero if false or camera does not have a servo autofocus mode.
See usage in User Scripts KAP,UAV and BALLOON.
Ver.20170116 DAS
Page 21/45
is_on
'is_on' turns ON image stabilisation if supported by the camera.
See usage in User Scripts KAP,UAV and BALLOON.
is_off
'is_off' turns OFF image stabilisation if supported by the camera. See usage in User Scripts KAP,UAV and
BALLOON.
is_this_right_camera
'R = is_this_right_camera'
In a stereo-rig setup, returns '1' if true.
is_usb_high
'H = is_usb_high' returns '1' if USB voltage is high at that instant.
If you wish to measure duration of USB pulse, use 'get_usb_power'.
line_1/line_2/line_3
These commands are still supported but have been replaced by the 'line x' command below.
line x
Print script output directly to one of the script-console lines without scrolling. You can specify the text
size and foreground and background colour. A leading '~n', where n is 1 to 9, specifies text size for that
line. That can be followed by the specifier for the background colour
A space for BLUE if no text foreground colour specified (otherwise use '^'), '!' for RED,'#' for GREEN,'$'
for WHITE and '@' for TRANSPARENT. If no colour formatting, background will be transparent grey.
If a background colour has been specified, it may be followed by a foreground colour specifier, the same
as used for background.
If no foreground colour specifier, the text is white
The console is 15 single-height lines, less if one or more lines is multiple-height.
Position the top-left of the script console with pixel precision using 'console_position x y' command.
The screen is normally 360x240 pixels in Record mode or 480 for widescreen lcd's.
line 5 "~2$!This line is red on a white background with double-size text"
load_grid
'load_grid 5' loads file A/SDM/GRIDS/5.grd.
To display or hide grid use 'set_config_value 68 1' or 'set_config_value 68 0'.
lock_autofocus/unlock_autofocus
After half-pressing shutter and giving camera sufficient time to focus, the auto-focus may be locked.
'AFL' will be displayed on the screen.
You may unlock autofocus using the script command or half-press shutter button and press right button
until 'AFL'not displayed.
Ver.20170116 DAS
Page 22/45
Example
sleep_for 1000
press "shoot_half"
sleep_for 1000
lock_autofocus
"! locked"
"! 'AFL' top left"
lock_auto_exposure/lock_ae
'lock_auto_exposure' disables the camera's automatic-exposure feature.
lock_focus_at x
Will switch to manual focus mode if camera cannot focus-override in other modes and set focus at x mm.
'R = lock_focus_at x' returns '1' if successfull. Note that some cameras have problems with focus
override, others seem to have poorly-calibrated focus.
lock_focus_at_infinity
Will switch to manual focus mode if camera cannot focus-override in other modes and set focus at
maximum distance specified for the camera.
'R = lock_focus_at_infinity' returns '1' if successful.
Some cameras have problems with focus override, others seem to have poorly-calibrated focus.
log
Output will be printed to text file only, not to the script console.
'enable_logging' should have been called previously to open a log file. Up to 128 characters per line.
log_brightness
Save the raw and sorted brightness readings produced by 'meter_brightness' command to files rawBv.txt
and sortedBv.txt.
This is used on high-altitude balloon flights to use a more reliable brightness reading than the
instantaneous value, that can be influenced by large areas of the blackness of space or the direct sun.
See User Script BALLOON in SCRIPTS3 folder.
manual_focus_on
Switch to manual-focus mode if not already enabled.
The user-interface may not be identical to the normal Canon one.
manual_focus_off
Turn-off manual focus mode if currently set.
meter_brightness N [f]
This command can be used for stratospheric balloon flights to compute a weighted-average of scene
brightness.
The first parameter is the number of readings (10 to 100) and the optional second parameter indicates a
Ver.20170116 DAS
Page 23/45
new batch of readings should beobtained. If no second parameter, brightness will be calculated using
existing contents of buffer.
Based on a suggestion of F.Bonomi,the readings are arranged in order of increasing brightness and the
average of the readings from 50% to 80% calculated.
This attempts to reduce errors caused by large areas of black space or when the sun is in the field-of-view.
For testing, you can use command 'log_brightness' to save the raw and sorted readings to files rawBv.txt
and sortedBv.txt.
See User Script BALLOON in SCRIPTS3 folder.
mf_on
Synonym for manual_focus_on/mf_on
mf_off/mf_off
Synonym for manual_focus_off
md_detect_motion
See the SDM Scripts in folders SCRIPTS2 with the many preset parameter sets for various motiondetection applications. They are far easier than scripting this command yourself.
md_get_cell_diff
D = md_get_cell_diff c r
c: column of the cell to be checked ( 1st column = 1 )
r : row of the cell to be checked ( 1st row = 1 )
This is a legacy command from CHDK, it is intended to be called immediately after returning from
md_detect_motion command.
It returns the absolute value of the cell brightness change from previous value.
Although not everything applies to SDM, see http://chdk.wikia.com/wiki/Motion_Detection for detailed
information about motion-detection.
For most uses it is far easier to use the provided SDM System Scripts.
message
'message' is a string of up to 40 characters that some SDM internal functions can use to send formatted
data to your script.
For example,the 'shooting_fast_at'command returns the calculated shutter speed in 'message' string.
See User Script KAP for example:
'line 11 "~3@"message" "(N-T)/1000' displays calculated shutter speed in 3x magnified text on a
transparent background (together with countdown seconds).
minutes
Your local time minutes. M = minutes returns your local time in minutes.
See also 'Hours' and 'seconds'.
Ver.20170116 DAS
Page 24/45
nd_filter_off/nd_filter_in/nd_filter_out
These perform same functions as 'set_nd_filter' but are easier to remember and make your script more
readable.
number_of_images_to_capture_is
Used to specify the number of images in a bracketing mode.
For Tv bracketing and digiscope bracketing this is usually an odd number.
Example:
number_of_images_to_capture_is 5
start_continuous_sequence
playback_mode
Camera switches to playback mode. Use 'record_mode' to return.
precision_sample_usb_at_msec n
P = precision_sample_usb_at_msec n returns '1' if successful, '0' if fail.
or simply
precision_sample_usb_at_msec n
Normally SDM uses a high-priority task to sample the USB voltage every 10 msec.
This is generally reliable but if you want to sample USB pulse-widths less than this you can use this
command. It uses Canon's precision timer to sample continuously at the defined interval 'n' msec or one
msec if no parameter given. USB pulses can be measured with a resolution of one msec.
'n' parameter range is '1' to '500'.
Command 'get_usb_power' will return the USB pulse-width in the number of units you have chosen.
So, if 'n' is set to 10 and 'get_usb_power' returns 5, the pulse-width is 50 msec.
Use command 'precision_sample_usb_off' when script completes.
(If you have a Ricoh CA-1 switch or clone, a half-press generates a nominal 30 msec pulse and a fullpress generates a nominal 150 msec pulse.
You can use 'precision_sample_usb_at_msec 1' to check this.)
When you have finished sampling, call 'precision_sample_usb_off'.
For compatability with CHDK scripts, see 'set_remote_timing'.
precision_sample_usb_off
P = precision_sample_usb_off
returns '1' if successful, '0' if fail.
or simply
precision_sample_usb_off
Turn off precision sampling and use the default, nominal 10 msec interval.
Default sampling interval may vary due to interruptions by Canon firmware.
Ver.20170116 DAS
Page 25/45
prepare_for_shot_at
Prepare camera for taking shot at a fast shutter speed, increasing ISO up to value previously set by
command 'set_max_iso' if necessary.
Also use ND filter and/or aperture to enable fastest shutter-speed.
Implements the algorithm described here
http://chdk.wikia.com/wiki/KAP_UAV_Exposure_Control_Script.
e.g. prepare_for_shot_at 1/1000,1
First variable must be a '1' followed by a '/'.
The optional third variable can have any value and indicates that a weighted-average brightness value
computed by 'meter_brightness' should be used rather than the camera's own metered value.
This is used for stratospheric balloon flights (see 'meter_brightness').
The command sets the appropriate aperture,shutter-speed,iso and ND filter override values, it does not
press the shutter button.
It should be used after 'press "shoot_half"'.
You can provide additional information for this command using 'set_shoot_fast_param' .
If you choose not to, exposure-compensation and bracketing step will be zero, preferred aperture will be
f4.0 and minimum aperture will be f5.9.
select apertures from this:
@param p Preferred f-stop
@default p 7
@values p 1.8 2.0 2.2 2.6 2.8 3.2 3.5 4.0 4.5 5.0 5.6 5.9 6.3 7.1 8.0
@range p 1 to 15
@param s Smallest f-stop
@default s 12
@values s 1.8 2.0 2.2 2.6 2.8 3.2 3.5 4.0 4.5 5.0 5.6 5.9 6.3 7.1 8.0
@range s 1 to 15
set_config_value 309 p
set_config_value 310 s
If you want to shoot at a higher speed than the camera's native maximum, request a special SDM compile.
See User Scripts KAP,UAV and BALLOON for examples of use.
playsound n
Play following sound depending on value of 'n':
0 - startup sound
1 - shutter sound
2 - button press sound
3 - self-timer sound
4 - short beep (same as 'beep' command)
5 - AF confirmation
6 - error beep (same as 'warning' command)
readYUV
Reads the luminance and UV chroma values from a 24 x 16 pixel area at the centre of the screen.
To test the accuracy of this, observe the 'Y' value when scanning image Centre_spot.JPG.
No parameters are required, the values are returned in 'a', 'b' and 'c' (so be careful how you use them in the
Ver.20170116 DAS
Page 26/45
rest of your script). To use as a spotmeter, zoom to telephoto setting.
The values are read from the live-image buffer and the correlation with the real scene values is not
known. Use with image TV Colorbars1.JPG. The grey bars should have almost equal R, G and B values,
depending on your white-balance setting.
The following script displays the YUV and calculated RGB values in non-scrolling format on the console:
@title Spot meter
:loop
readYUV
r = (a*4096 + c*5743 + 2048)/4096
if r < 0 then r = 0
if r >255 then r = 255
g = (a*4096 - b*1411 - c*2925 + 2048)/4096
if g < 0 then g = 0
if g > 255 then g = 255
u = (a*4096 + b*7258 + 2048)/4096
if u < 0 then u = 0
if u > 255 then u = 255
line_1 "# YUV ", a," ",b," ", c
line_2 "! RGB ", r," ",g," ", u
goto "loop"
record_mode
Returns to record mode from playback mode.
remove
Delete named file. Obviously, to be used with caution. Full pathname required.
e.g. remove "A/DCIM/100CANON/STR_0001.CRW"
restore_focus [n]
Restores the camera focus to the value previously saved with 'save_focus'.
An optional parameter 'n' will contain the restored-focus value.
n = 1 for parameter 'a', 2 for parameter 'b',etc.
Useful for long time-lapse sequences (especially with Eye-fi cards)
that use hardware or software methods to reset the camera at intervals.
restore_zoom
Restores the lens zoom position to the value previously saved with 'save_zoom'. Useful for long timelapse sequences (especially with Eye-fi cards) that use hardware or software methods to reset the camera
at intervals.
save_focus [n]
Without a parameter, saves the current focus setting as measured from the front of the lens. Optionally,
provide a numeric value 'n' for the required focus setting to be saved. Useful for long time-lapse
sequences (especially with Eye-fi cards) that use hardware or software methods to reset the camera at
intervals.
Ver.20170116 DAS
Page 27/45
save_stack n
0 = disable saving, 1 = enable saving.
In bracketing modes, this command enables the saving of log files with the focus or Tv values recorded.
The command should come before any command that starts the bracketing sequence. The log files are in
folder 'A/SDM/STACKS'.
save_zoom
Saves the zoom step of the current lens position. Useful for long time-lapse sequences (especially with
Eye-fi cards) that use hardware or software methods to reset the camera at intervals.
scroll_console n
'scrolling_console 1' enables scrolling, 'scrolling_console 0' disables. Both print and line commands can
be used with scrolling console but text will be normal size.
sdm_2D_mode
Puts camera in exactly the same state as when EasyMode '2d_Mode' is selected.
sdm_3d_event_mode
Puts camera in exactly the same state as when EasyMode '3d_EVENT' is selected.
sdm_3D_mode
Puts camera in exactly the same state as when EasyMode '3d_Mode' is selected.
sdm_3D_SPORTS_mode
Puts camera in exactly the same state as when EasyMode '3dSPORTS' is selected.
sdm_auto_hdr_mode
Puts camera in exactly the same state as when EasyMode 'HDR_AUTO' is selected.
sdm_burst_mode
Puts camera in exactly the same state as when EasyMode 'BURST' is selected. Number of shots, current
shot number and frames-per-second shooting-speed displayed. Use 'burst_sequence s' command to
capture 's' shots.
@param b max number of shots
@default b 10
sdm_burst_mode
:loop
burst_sequence b
sleep_for_seconds 30
goto "loop"
Ver.20170116 DAS
Page 28/45
sdm_console_off/sdm_console_on
Turn scrolling-console mode off/on. When this mode is off, the console is three lines, non-scrolling with
coloured background.
sdm_console_lines
Number of lines for scrolling console.
sdm_console_line_length
Scrolling console line length.
seconds
Your local time seconds. S = seconds returns your local time in seconds.
Also see 'hours' and 'minutes'.
send_data
This command sends two or three bytes of data to an external device by flashing the debug (Print on
many cameras) or autofocus LED's. It is used commercially by clickPan
http://www.gentles.ltd.uk/clickpan/sdm.htm
If only two bytes are used, the data is sent once, otherwise it is sent twice to enable error checking.
The commands 'use_debug_led' and 'use_af_led' allow you to choose either LED.
The autofocus LED is far brighter and may be easier to attach an opto-sensor to, especially if the camera
accomodates an accessory-lens adapter.
In addition, on the more recent cameras the debug LED is multicoloured and multi-purpose and the
Canon tasks can interfere. The protocol is very simple and is described in the section Serial
Communication with an external device.
The following script sets parameter 'a' to 128 as a parameter identifier, you can choose any value you
wish from -128 to +255. It zooms the lens in and out and sends the zoom position to the external device
(third byte not used):
@title Tx data
@param a command
@param b low byte
@param c high byte
@default a 128
@default b 0
@default c 67
sleep_for_seconds 1
:loop
set_zoom_to_step b
" Sending data"
sleep_for_seconds 1
get_zoom d
send_data a, d, c
sleep_for_seconds 4
b = b + 1
if b <> 7 then goto "loop"
:loop2
Ver.20170116 DAS
Page 29/45
set_zoom_to_step b
" Sending data"
sleep_for_seconds 1
get_zoom d
send_data a, d, c
sleep_for_seconds 4
b = b - 1
if b >= 0 then goto "loop2"
end
set_aflock n
n = 0 unlocks autofocus, n = 1 locks autofocus. Does not work in PLAYBACK mode. Sets
PROPCASE_AF_LOCK.
set_af_assist n
n = 0 turns off af-assist beam, n = 1 turns it on (if supported by camera).
set_autostart n
Mark script as having been autostarted (n = 1) or not (n = 0).
set_av96_direct n
Override aperture with 'n' APEX96 value immediately if shutter button half-pressed, otherwise later when
it is.
set_av_rel n
If camera has an aperture diaphragm, change its current setting to value defined 'n' steps away in its
aperture table.
set_av n
If camera has an aperture diaphragm,set aperture to value 'n' in its table of apertures by setting propertycase PROPCASE_AV.
set_canon_jpg_raw_state n
Set state to one of following:
0 - RAW
1 - JPG
2 - RAW + JPG
set_config_value
Set various modes and features of SDM by writing directly to configuration values.
Most of these are the various menu options. e.g. set_config_value 79 1 enables recording of shooting data
in XML files.
Here are the most useful values:
Ver.20170116 DAS
Page 30/45
1 show_osd
2 save_raw
3 script_shoot_delay
4 show_histo
5 ubasic_vars
6 script_file
7 shortcut_lang
8 batt_volts_max
9 batt_volts_min
10 batt_step_25
11 batt_perc_show
12 batt_volts_show
13 batt_icon_show
14 show_state
15 show_values
16 show_overexp
17 histo_mode
18 histo_auto_ajust
19 histo_ignore_boundary
20 histo_layout
21 histo_pos
22 dof_pos
23 batt_icon_pos
24 batt_txt_pos
25 mode_state_pos
26 values_pos
27 histo_color
28 osd_color
29 batt_icon_color
30 menu_color
31 reader_color
34 ns_enable_memdump
38 reader_file
39 reader_pos
41 show_clock
42 clock_pos
43 reader_autoscroll
44 reader_autoscroll_delay
45 reader_rbf_file
46 reader_codepage
47 splash_show
48 histo_color2
49 zebra_draw
50 zebra_mode
51 rangefinder_near
52 rangefinder_far
53 zebra_over
54 zebra_under
55 zebra_color
56 zebra_draw_osd
58 zoom_value
59 use_zoom_mf
60 raw_save_first_only
61 reader_wrap_by_words
63 alt_mode_button
Ver.20170116 DAS
Page 31/45
64 lang_file
65 font_cp
66 menu_rbf_file
67 alt_prevent_shutdown
68 show_grid_lines
69 grid_lines_file
70 raw_nr
71 grid_force_color
72 grid_color
73 heading18
74 frames_pos
75 stereo_spacing
76 stereo_deviation
77 minimum_dist_factor
78 strip_offset
79 save_xml_file
80 heading19
81 user_range_set
82 distance_setting
83 save_same_dir
84 focus_mode
85 burst_shutdown
86 layout_mode
87 camera_position
88 camera_orientation
89 camera_rotation
94 tv_override
95 click_time
96 video_bitrate
97 video_mode
98 video_quality
99 script_startup
100 remote_enable
101 synch_enable
102 synch_delay_enable
103 synch_flash_delay
104 synch_delay_range
105 ptp_reboot
106 no_focus
107 raw_strip_mode
108 av_override_value
109 tv_bracket_value
110 subj_dist_bracket_value
111 bracket_type
112 dist_step_size
114 synch_coarse_delay
115 stereo_osd_pos
116 synch_pos
117 on_release
118 strip_images
119 flash_dim_value
120 synch_fine_delay
121 nd_filter_state
122 unlock_optical_zoom_for_video
123 ricoh_ca1_mode
Ver.20170116 DAS
Page 32/45
124 zebra_multichannel
125 outline_mode
126 stereo_mode
127 save_viewport
128 edge_overlay_thresh
129 mute_on_zoom
131 wait_forever
132 osd_page_index
133 custom_timer_synch
134 tv_override_enable
135 add_synch_delays
136 remote_zoom_enable
137 zoom_timeout
138 disable_deviation_guideline
139 nd_constant_exposure
155 extend_lens
156 disable_overrides
157 overrides_pos
158 heading16
159 digi_obj_diam
160 digi_scope_fl
161 digi_ep_fl
162 digi_zoom_setting
163 rotation_distance
164 digi_ref_dist
165 save_auto
166 digi_step
167 dist_mode
168 compact
169 cs
170 sdm_console
171 num_lines
172 line_length
173 strip_width
174 edge_overlay_color
175 edge_overlay_play
176 edge_overlay_lock
177 edge_overlay_zoom
178 sunrise
179 sunrise_tv96
180 sunrise_repeats
181 sunrise_shots
182 srb
183 sunrise_kf_1
184 sunrise_kf_2
185 sunrise_kf_3
186 sunrise_tv96_2
187 sunrise_tv96_3
188 blank_jpg
189 script_param_set
190 edge_and_osd
192 bw
193 md
194 invert_playback
195 dc
Ver.20170116 DAS
Page 33/45
196 enable_yaw_guideline
197 yaw
198 use_af_led
199 zf_size
200 zoom_pos
201 increment_pos
202 lockout_time
203 slave_flash
204 focus_pos
205 zoom_point
206 fpd
207 bright_screen
208 script_set
209 nearGuideX
210 farGuideX
211 video_frame_count
212 PulseOption
213 platformid
214 FastLapseDelay
215 FastLapseFineTune
216 CountForOneMsec
217 fastlapse
218 MovieFineTune
219 zf_big_permanent
220 zf_and_depth
221 precision_synch_flash_delay
222 (not used)
223 bracket_intershot_delay
224 user_script_file
225 ubasic_vars3
226 ubasic_vars2
227 easy_script_file
228 iso_override
229 anaglyph_button
300 user_1
301 user_2
302 user_3
303 user_4
304 flag_1
308 user_5
309 user_6
310 user_7
311 user_8
312 flag_5
313 flag_6
314 flag_7
315 flag_8
986 burst_frame_count
300 to 303 are saved in the XML file (if any) as conf.user_1,conf.user_2,conf.user_3 and conf.user_4.
308 to 311 are saved in the XML file (if any) as conf.user_5,conf.user_6,conf.user_7 and conf.user_8.
If required, request an up-to-date list of values.
Ver.20170116 DAS
Page 34/45
set_focus_step_to f
Set focus-step in mm. for equal-step focus-bracketing, range 1 to 5000.
set_focus/set_focus_to f
If necessary, tries to put camera into a suitable mode for focus override. Focus is then set to values from
camera's minimum to maximum setting.
set_focus_range
Note: uses parameter 'z' for a return value. Used for manually setting the near and far distances for an
extended depth-of-field focus-stack. Use left/right keys or touch wheel to focus on nearest point and press
SET. Focus on farpoint and press SET again or simply press SET without refocusing to set farpoint to
infinity. The near and far point distances,current focus and required camera-shift for a stereo pair will be
displayed. The required shift will be returned in uBasic variable 'z'. Alternatively, just use the STACK
EasyMode or RAYNOX User Script.
set_hdr_tv96 t
Overrides shutter-speed to APEX96 value 't', limiting range from 1/2000 to 64 seconds. Property-cases
updated so that on many camera the EXIF value will be correct.
set_iso i
Sets ISO to APEX96 value 'i'.
set_led a b
Set LED number 'a' to ON (b = 1) or OFF (b = 0) at fixed brightness.
Recent cameras have very few LEDs, older cameras had more and 'a' corresponded to:
4 GREEN
5 YELLOW
7 ORANGE
8 BLUE
9 Focus Assist / Auto-Focus Lamp / AF Lamp
10 Timer lamp
set_max_iso to
Sets the maximum real (not Market)ISO allowed when using the shooting_fast_at command.
e.g. set_max_iso_to 400
See KAP,UAV and BALLOON User Scripts in folder SCRIPTS3.
set_nd_filter n
An old command that sets filter state to 'n' immediately if shutter half-pressed, otherwise when it is.
0 = no override
1 = filter IN
2 = filter OUT
Ver.20170116 DAS
Page 35/45
set_prop a b
Set property-case 'a' to value 'b'. See 'get_prop' for details of how to find property-case number.
set_quality n
Set image quality to value represented by PROPCASE_QUALITY. Use the Advanced\Debug menu to
display pages of property cases.
set_raw n
'n' = 1 enables saving of raw sensor data together with a separate DNG header file.
These may be converted to DNG on the PC using dave Mitchell's sdmDNG programme
(http://www.zenoshrdlu.com/sdmdng)
Note that this is not acting on the Canon RAW setting.
set_remote_timing n
P = set_remote_timing n
returns '1' if successful, '0' if not.
Starts precision timer with an interval of 'n' msec, or one msec if no parameter given.
A parameter value of zero stops the timer.
To aid script readability, use 'precision_sample_usb_at_msec/precision_sample_usb_off' instead.
set_resolution n
Sets image resolution to setting represented by PROPCASE_RESOLUTION value of 'n'.
Use the Advanced\Debug menu to display pages of property cases.
set_script_speed n
Instead of executing one uBasic statement every 'tick' (1/100 sec), you can set script-speed up to five
statements per tick. At the start of the script, the speed is set to one statement per tick. This will speed-up
many operations, but not all. The statement-execution loop will be exited for statements that return
control to the camera (such as'press', 'shoot' and 'motion detect'
set_shoot_fast_param p n
For setting parameters (if any) to be used with the 'shoot_fast_at' or 'prepare_for_shot_at' commands.
'p' specifies the following values:
0 - exposure compensation
1 - preferred aperture
2 - minimum aperture
3 - bracketing exposure value.
set_sv96 n
Set ISO 'n' using theAPEX96 value, immediately if half pressed or later when half-pressed.
Ver.20170116 DAS
Page 36/45
set_tv96_direct n
Set shutter-speed 'n' using the APEX96 value, immediately if half pressed or later when half-pressed.
set_tv_rel n
If the camera has Tv mode on dial,alter selected shutter speed by APEX96 amount 'n' (96 units per EV).
set_tv n
Set shutter speed to that defined by entry 'n' in camera's shutter-speed table.
Set property-cases PROPCASE_USER_TV and PROPCASE_CAMERA_TV to appropriate value.
set_zoom_rel n
Change zoom position in or out by 'n' steps.
set_zoom_to_equiv_focal_length n
Set zoom to step that is nearest to 35mm-equivalent focal-length 'n'. You can find a list of equivalent
focal-lengths in file SDM/TEXTS?focal.txt.
set_zoom_to_focal_length n
For legacy scripts, same as 'set_zoom_to_equiv_focal_length n'
set_zoom_to_real_focal_length n
Zoom to step that is nearest to real focal length n/1000. You can find a list of the real focal-lengths in file
SDM/TEXTS?focal.txt. Warning sound if invalid value.
set_zoom_to_step/set_zoom_to n
Synonyms for CHDK 'set_zoom'. Sets zoom to step 'n', starting from step '0'.
shoot
This old command half-presses shutter button, pauses for 70 msec and then fully presses shutter button.
The camera may not have been able to focus in such a short time, the preferred alternative is:
press "shoot_half"
do
sleep 50
until get_shooting = 1
press "shoot_full"
sleep 100
release "shoot_full"
shoot_fast_at
Shoot at fast shutter speed, increasing ISO up to value set by command 'set_max_iso' if necessary.
e.g. shoot_fast_at 1/1000,b,1
First variable must be a '1' followed by a '/'.
In above example, actual (not Market) ISO value used returned in 'b'.
Ver.20170116 DAS
Page 37/45
The optional fourth variable can have any value and indicates that an average brightness value computed
by 'meter_brightness' should be used rather than the camera's own metered value.
This is used for stratospheric balloon flights (see 'meter_brightness').
If you want to shoot at a higher speed than the camera's native maximum, request a special SDM compile.
This command uses the same exposure-calculation strategy as the 'prepare_for_shot_at' command.
The difference is, it includes the half and full-press operations.
You can provide additional information for this command.
If you choose not to, exposure-compensation and bracketing step will be zero, preferred aperture will be
f4.0 and minimum aperture will be f5.9.
Otherwise,the values are in user_5,user_6,user_7 and user_8.
You cannot use those values for any other purpose in your script.
user_5 (308) - exposure compensation in EV/3 units.
user_6 (309) - preferred aperture
user_7 (310) - minimum aperture
user_8 (311) - bracketing step in EV/3 units.
select apertures from this:
@param p Preferred f-stop
@default p 7
@values p 1.8 2.0 2.2 2.6 2.8 3.2 3.5 4.0 4.5 5.0 5.6 5.9 6.3 7.1 8.0
@range p 1 to 15
@param s Smallest f-stop
@default s 12
@values s 1.8 2.0 2.2 2.6 2.8 3.2 3.5 4.0 4.5 5.0 5.6 5.9 6.3 7.1 8.0
@range s 1 to 15
set_config_value 309 p
set_config_value 310 s
shoot_movie_for n
Switches to movie mode,records a movie for 'n' seconds and then returns to record mode and the previous
capture mode.
'n' should be ten or greater.
shoot_when_camera_steady
This is an aid for detecting camera-shake when shooting in dim-light conditions or at the telephoto
setting. The photo is only taken when there has been less than a user-defined amount of movement.
The location of the monitored points is shown with an overlay of small rectangles and these aid sighting a
reference object and keeping it steady. See the SDM Scripts in folders SCRIPTS2 with the many preset
parameter sets for various motion-detection applications.
shoot_when_camera_steady a, b
'a' is the sensitivity (1 to 255) and 'b' (1 to 26) defines the variable/parameter that will contain the returned
value ('a' = 1).
The larger the value of 'a', the more sensitive is the shake detection.
The command times-out after ten seconds if camera not steady enough.
Ver.20170116 DAS
Page 38/45
A return value of '1' indicates success, no shake detected.
@title Camera shake
@param a sensitivity
@default a 128
sync_off
:md_loop
b=0
print "About to shoot"
shoot_when_camera_steady a, b
print N," ", b
N = N + 1
sleep_for_seconds 5
goto "md_loop"
end
shoot_when_no_movement_for
This is intended for longer time-scales than the 'shoot_when_camera_steady' command and takes a photo
when there has been no subject movement for a defined amount of time.
Possible applications include kite aerial photography and microscopy.
See the SDM Scripts in folders SCRIPTS2 with the many preset parameter sets for varios motiondetection applications.
shoot_when_no_movement_for a, b, c, d
a = required duration of no movement in seconds, a minimum of '1'.
b = return value, '1' is no movement detected.
c = movement sensitivity (optional), range 1 to 255. Set to 128 if not specified.
d = time-out (optional) in seconds, set to 10 if not specified.
@title No-motion
@param a time still
@default a 5
@param c sensitivity
@default c 128
@param d timeout
@default d 10
sync_off
:md_loop
b=0
print "About to shoot"
shoot_when_no_movement_for a, b, c, d
print N," ", b
N = N + 1
sleep_for_seconds 5
goto "md_loop"
end
shot_count
S = shot_count
returns total of shots ever taken by camera. The count is updated when you reboot the camera. This value
is also displayed if MENU is pressed while half-pressing shutter button. It is useful for checking secondVer.20170116 DAS
Page 39/45
hand cameras that are claimed to be 'lightly used', especially those with a mechanical shutter such as the
EOS M3. Also see get_exp_count.
shutdown/shut_down
Shut down camera. Turns off camera by pressing the Power button. After this command add a command
that idles for about two seconds, such as 'sleep_for_seconds 2'.
shutter_speed
A user-friendly way to enter override shutter-speeds over the range 64 to 1/32,000 sec (it is not suggested
that high shutter-speeds beyond the camera's native maximum are 'real').
shutter_speed 1/125
@title Shutter speed
@param a numerator
@default a 1
@param b denominator
@default b 125
shutter_speed a / b
shoot
end
sleep_for
Synonym for CHDK 'sleep'
Script pauses for defined number of milliseconds (with a resolution of 10 msec).
Example:
sleep_for 1000
sleep_for_minutes
Script pauses for defined number of minutes (with a resolution of 10 msec).
If repetitive 'beep' command previously executed, the beeps will continue during the sleep.
sleep_for_msecs
Pseudonym for 'sleep' statement.
sleep_for_seconds
Script pauses for defined number of seconds (with a resolution of 10 msec).
sleep_until/start_time
The camera blanks the screen and waits until the previously set hours and minutes before continuing.
The debug LED is flashed every thirty seconds.
With the following script, the camera sleeps until 12:30, shoots a fifteen second movie and then beeps to
indicate completion.
Ver.20170116 DAS
Page 40/45
@title Wake-up
@param a hours
@default a 12
@param b minutes
@default b 30
" Waiting"
sleep_for_seconds 3
sleep_until a:b
sleep_for_seconds 3
shoot_movie_for 15
beep
end
start_clock
Used to set the starting time that will be used by command 'elapsed_time'.
Start_hour/start_hour
Restrict shooting to defined period using 24-hour time values. Useful in simple time-lapse scripts.
Start_minutes/start_minutes
Restrict shooting to defined period using 24-hour time values. Useful in simple time-lapse scripts.
start_movie/start_video
If necessary, switches to Movie mode and clicks the shutter or video button to start the movie.
start_time
Same as 'sleep_until'
stitch_mode_supported
'S = stitch_mode_supported' returns '1' if Canon stitch mode supported, otherwise zero.
stop_movie/stop_video
Clicks the shutter or video button to stop the movie and then returns to previous Canon mode.
switch_start_movie/switch_start_video
Switch to movie mode on USB switch press and start recording on release.
switch_stop_movie/switch_stop_video
Stop movie recording on USB switch press and return to normal Record mode.
Ver.20170116 DAS
Page 41/45
sync_on/sync_off or synch_on/synch_off
Enables or disables SDM sync mode. When enabled, a USB switch is used to capture synchronised
multiple images.
sync_ticks
'S = sync_ticks'
This command synchronises the camera's seconds counter with its msecs counter. At the instant the
seconds counter changes, the command returns the msecs value and it is also saved in config value 309.
This allows time-stamping log files with a resolution of 0.01 seconds. In User Scripts (SCRIPTS3 folder)
see UAV script.
time
A text string that may be displayed.
Format is HH:MM:SS.
line 5 " Time now is "time
time_lapse
A very versatile command for time-lapse with bracketing,focus-lock, screen blanking, auto-shutdown and
USB stop/start.
This is the built-in default script.
For examples of usage, see scripts and parameter sets in SDM Scripts (SCRIPTS2 folder).
tune_unit_pulse
This command allows you to 'tweak' the value of the pulses used by the 'send_data'command.
The receiving device (such as a clickPAN-SDM) should have a mode that
measures this pulse-width and indicates if it is within the required
range.
The default value is '22'.
An alternative way of determining the value is as follows:
In menu Stereo\Synchronisation, set coarse delay to 100 and check 'Add User and flash delays'.
Disable 'Focus cancel' mode.
In single shot mode, enable flash.
Plug USB into camera and PC.
Display this webpage http://www.online-stopwatch.com/full-screen-stopwatch/
Enter 10 and Set.
At the instant you click Start, remove USB plug from PC.
Does the flash fire before or after ten seconds ?
Either way, in menu Advanced\Serial Comms, change the 'Tune msec value' until you get exactly ten
seconds delay.
turn_lcd_power_off/turn_lcd_power_on
This command replaces an earlier one that only turned off the lcd backlight.
This saves a lot more power than simply turming the backlight off.
Ver.20170116 DAS
Page 42/45
Tv_bracket_1/3_ev_steps n
Sets exposure-value bracketing step to 'n*32' APEX96 units,where 96 units equals one EV (halving or
doubling of shutter speed).
tv_value
A formatted string for printing of the current shutter speed.
line 3 "#Shutter speed is "tv_value
unit_burst
http://www.gentles.ltd.uk/clickpan/sdm.htm
unit_pulse
The 'send_data' command blinks the Print LED for unit-pulse time or multiples thereof.
In order to set the time as accurately as possible, use this command to
generate a single pulse (when SDM briefly half-presses the shutter button) that the connected, external
device can then measure. In the Serial Comms menu, you set the time in increments of ten msecs and can
apply a tuning factor to vary the pulse-width. The variation in pulse-width will be greater for short pulses
and you should choose a value that gives reliable results. The latest version of SDM uses Canon's
precision timer to time the pulse-widths and they should have a resolution of one msec.
http://www.gentles.ltd.uk/clickpan/sdm.htm
unlock_auto_exposure/unlock_ae
Unlocks Canon's auto-exposure feature.
unlock_focus
Unlocks focus that has been locked by auto-focus-lock or manual focus.
usb_pulse_action n
This command returns a numeric value that identifies a USB pulse-width that is within a certain range.
'n' = 0 is for gentwire support and returns the following 'r' values for stated pulse-width ranges (in tens of
msec)
use_af_led
Use the autofocus LED to communicate with an external device (using the 'send_data' command).
use_debug_led
Use the debug LED to communicate with an external device (using the 'send_data' command).
On older cameras this may be the PRINT LED. On the more recent cameras the debug LED is
multicoloured and multi-purpose and the Canon tasks can interfere.
Ver.20170116 DAS
Page 43/45
valid_modes
The Canon capture modes supported by the camera expressed as a string of hexadecimal characters.
For use with PTP client applications. (PTP is not 'officially' supported in the public release of SDM but
can be supplied on request).
video_zoom_in_out
If camera allows zooming in Video mode, this command zooms in and out using the USB remote switch.
Normally changes direction on each press unless two quick presses made.
A 'trees' icon indicates if the direction will be telephoto or wide-angle.
It is used by the UserScript VideoZoom.
#--------------------------------------------While USB switch pressed, zoom in out
Changes direction after each press unless a
quick press followed by a normal press
Stops at optical limits
Press SET to exit and start time-lapse.
Press SET to end time-lapse.
#--------------------------------------------@title VID TLAPSE
sleep_for_seconds 2
press "video"
sleep_for_seconds 1
release "video"
line_1 " Video recording"
video_zoom_in_out
line_1 "!Video stopped !"
sleep_for_seconds 2
press "video"
sleep_for_seconds 1
release "video"
sleep_for_seconds 1
rem Programme AE (P) mode
capture_mode 2
rem 1600x1200
set_resolution 3
manual_focus_on
set_focus_to 64000
do
press "shoot_half"
sleep 500
press "shoot_full"
sleep 500
release "shoot_full"
sleep_for_seconds 5
P = is_pressed "set"
until P = 1
end
wait_for_switch_press
Script pauses until voltage signal present on USB V+ pin. See the various examples above. Signal can be
from a switch, IR or wireless receiver, microcontroller, etc.
Ver.20170116 DAS
Page 44/45
wait_for_usb [n]
Script pauses until voltage signal present on USB V+ pin. Signal can be from a switch, IR or wireless
receiver, microcontroller, etc. If no parameter, waits forever, otherwise for 'n' seconds.
wait_until_done
Releases shutter full-press after the required number of images in a custom-timer or continuous-shooting
mode sequence have been taken.
warning
Makes a warning sound, same as 'playsound 6'.
wheel_left
On some cameras, turns jogdial to left.
wheel_right
On some cameras, turns jogdial to right.
Ver.20170116 DAS
Page 45/45
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising