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