1------------------------------------------------------------------------
2| Multican v0.0.5 | USB remote control tool for Canon EOS class cameras
3------------------------------------------------------------------------
4Copyright (c) 2006 Jindrich Novy (jnovy@users.sourceforge.net)
5
6
7Contents
80. Introduction
91. Which Canon EOS cameras is multican able to handle?
102. How to use it?
113. Which functions are supported?
124. Script format
135. Example script
146. Known Bugs
15
16
170. Introduction
18
19The purpose of this utility is to give an user a possibility to control
20Canon EOS class cameras remotely. Multican uses its own implementation
21of Canon communication protocol, i.e. it doesn't use the Canon SDK
22(Software Development Kit) libraries, which are neither multiplatform
23nor open-source.
24
25
261. Which Canon EOS cameras is multican able to handle?
27
28Multican can handle Canon cameras that use class 4 communication
29protocol (300D, 10D) and newer ones that use class 6 communication
30such as 350D, 30D, 20D, 5D. Multican won't work with 1D Mark II since I
31had no luck to investigate the communication format properly. It also
32won't work with 400D because Canon introduced a significantly
33incompatible protocol with previous models. Currently 300D, 350D, 20D,
3410D, 5D cameras are tested.
35
36
372. How to use it?
38
39To keep multican focused on its functionality it doesn't use fancy
40GUIs, but a simple commandline interface.
41
42If multican is invoked without any argument, it detects all known
43attached Canon EOS cameras and reports their status, such as camera
44battery status, owner name and camera serial number. Then it starts a
45sample remote controlled shooting sequence, where there will be taken 3
46shots with various Av, Tv and ISO parameters, storing the results on the
47internal camera compact flash card.
48
49
503. Which functions are supported?
51
52Several remote control functions are available in scripts, they are:
53
54- setting image quality [quality=fine-l|fine-m|fine-s|raw-fine-l|...|coarse-l|...|raw-coarse-l|...|raw]
55- setting shot mode (single, multi, self-timer) [sequence=single|multi|self-timer]
56- setting beep [beep=off|on]
57- setting exposure measurement area [auto-exp-mode=spot|middle-spot|middle|integral]
58- setting white balance [white-balance=auto|sunny|cloudy|art-light|flour-light|flash|manual|shade|color-temp]
59- setting autofocus mode [auto-focus=af-one-shot|ai-servo|ai-focus|mf]
60- setting ISO sensitivity [iso]
61- setting aperture size [av]
62- setting shutter release speed [tv]
63- setting exposure correction [exp-corr=-2.0|-1.6|-1.5|-1.3|...|0.0|+0.3|...|+2.0]
64- releasing shutter (currently only allows to store the image on CF)
65
66
674. Script format
68
69The script format consists of list of commands, one per line. The
70general format is:
71
72<time> function=value
73
74if the function takes an argument or
75
76<time> function
77
78if it doesn't take any argument. The <time> is in a format of HH:MM:SS
79and is set relatively to the sequence start. The processing of any
80script starts when multican is launched, all cameras for which the
81script is written are detected and ENTER is pressed to start the
82sequence.
83
84Empty lines are ignored and '#' denotes that the rest of the line is to
85be ignored (comment).
86
87The problem of assigning a particular camera to a script is solved in
88the way that a serial number of the a camera is associated to the script
89in the way that the script file name contains a serial number (always
90consists of 10 numbers) of the particular camera at the end of the
91filename. So a sample name for such script could be:
92
93scr-5D-0460286741
94
95
965. Example script
97
98Here is one example script for EOS 5D, scr-5D-0460286741:
99
100#
101# test script for 5D
102#
103
104# time sequence begins:
10500:00:00.000	tv  = 125
10600:00:00.000	av  = 5.6
10700:00:00.000	iso = 100
10800:00:00.000	shot
10900:00:02.800	tv  = 60
11000:00:02.800	av  = 6.3
11100:00:02.800	iso = 200
11200:00:02.800	shot
11300:00:05.600	tv  = 30
11400:00:05.600	av  = 7.1
11500:00:05.600	iso = 400
11600:00:05.600	shot
11700:00:08.400	nop
118
119
1206. Known Bugs
121
122The timing in the script strongly depends on the camera type and CF card
123which is used to do shooting. This is to be tested by multican user
124himself. If too short times are described in the script, the
125communication may hang or may skip some commands. Thanks to camera image
126caching, the shooting rate could be set even under 1s if only several images
127are taken since the most of the EOS camera models contain an image
128cache, so that the images are stored into a queue and written to the CF
129lately.
130
131Note that the remote control won't work with all modes that are set on
132camera, because sometimes the camera refuses to perform several remote
133control commands because of its settings. The ideal mode for remote control
134is if the camera is in the full manual mode (M) and the objective auto-focus
135is switched off. Note that the Canon EOS cameras won't communicate at all
136if you set on mirror lockup.
137
138The known bug in this multican release is that cameras need to be
139switched off and on again when a scripted sequence is finished and a new
140one is to be done. This is likely caused by the fact that the communication
141is not correcly terminated in the actual multicam release.
142
143You may also want to run multican as root to have proper priviledges to
144access USB devices.
145