SDM - for Creative Photography with Canon compact cameras


Peter Murphy's Blog
Please Note !
If you have any comments or queries regarding SDM,
please ask on the Yahoo SDM Group and not via email.
Click on the 'StereoDataMaker' box to the left.

Daniel Reetz book scanner

Supported cameras Images of all the cameras supported by SDM
Downloads/Updates Downloads and updates for all supported cameras
(18/Feb/2011 update)
SDM Documentation Basic and advanced information on installing and using SDM
SDM Commercial Support USB switches,intervalometer,leads,connectors,Z-bars,complete rigs ready-to-run.

SDM is a development of the basic CHDK that aids 2D, stereo, multi-camera and kite-aerial photography (KAP) with certain Canon compact cameras.
. It also has a number of features that support digiscoping and can provide log files of the equipment setup and bracketing parameters employed.
It can synchronise multiple cameras up to 1/16,000sec and synch flash at shutter-speeds up to 1/1000 sec
Multiple-camera rigs with up to 52 cameras have been used for 'bullet' sequences and lenticular images.
It has been to the edge of space in a balloon and to the cold of the Antarctic.

"Fancy Jumps" courtesy of Duke Hunter. Click for larger images..

Enable JavaScript and click on above to see example images taken by Masuji SUTO.

I don't have time to read all of this .. what does it do?

As well as numerous features for 2D photography, SDM allows you take highly synchronised stereo photos using certain Canon compact cameras.
The cost of additional items that you will require for synchronised-shooting is negligible or you can buy a Ricoh CA-1 switch.
You can use the cameras internal flash, both preflashes determine white-balance but only one main flash fires on full-power to avoid double shadows.
You may use external flash and it is likely a commercial device will be available that triggers your existing flash-units.

Is it really suitable for general photography, KAP and digiscoping?

Absolutely, it has all the features that most people require for practical 2D photography.
That includes shutter-speed, ND filter, aperture and focus override, shutter-speed and focus-bracketing, support for the latest motion-detection scripts, RAW file saving, very comprehensive time-lapse feature with optional screen-blanking and start/stop via USB signal,experimental sunrise feature with three non-linear exposure phases followed by a constant exposure phase, manual-focusing,auto-focus lock,image-upload to PC at regular intervals, instant upload to PC without saving in camera at intervals as short as three seconds (using remote-capture software), etc.
The SDM header at the top of the screen (that shows stereo information) may be hidden for general photography or a 'compact' header substituted.
There are versatile uBasic commands for bracketing, time-lapse with bracketing, USB script stop-start,record/playback/movie mode-change,shooting a movie clip,script speed, auto-shutdown and screen blanking.
The uBasic commands are user-friendly plain English and also support numerous bracketing modes with just a few functions.
The script console has configurable size and the text background-colour is simply defined (uBasic 'print' command is not required).
A simple serial protocol allows you to communicate with a microcontroller (such as Picaxe) by flashing the camera's Print LED.
This is of use with robotic panorama rigs or servo-based systems, for example.
For KAP, the uBasic command 'get_usb_power' returns pulse-width (from a R/C receiver, for example) and the constant-exposure ND filter mode allows higher shutter speeds to be set.
Dave Mitchell's uBasic speed-up commands may make detection of receiver pulse-width more reliable.
You can record movies during your KAP flight with the simple command 'shoot_movie_for' (X seconds).
Bracketing scripts can be stop/started by a pulse from a radio receiver and on completion the camera can shutdown and retract the lens to minimise any damage on 'landing'.
On certain cameras, you can also choose whether to extend the lens on power-up.

For digiscoping, you focus the scope at an accurately repeatable camera-focus position, bracket focus each side of best visual position, use USB remote (including Ricoh) to avoid vibration, inhibit screen shutdown and immediately initiate capture-sequence on switch-press (not release).
Sample scripts are provided so that after power-up your digiscoping rig is correctly set-up and waiting for you to press the remote release.

The basic zebra, histogram and video features are supported together with battery voltage, languages, code page and grids.
The number of menu items has been minimised in order to provide a friendly interface to the user.
RAW files have their own naming convention to distinguish left/right cameras.
'WIA-Loader' provides support so that the JPG and RAW images may be uploaded directly to the PC via a card-reader or USB cable,images on the camera optionally deleted, thumbnails displayed (even for RAW files), renamed and an external programme (such as DNG4PS-2) automatically started.

It looks complicated .... how do I install it ?

From the links below, you download the ZIP file for your camera model.
You copy the downloaded files to a blank SD card using a card-reader, insert the card into the camera and turn-on the camera.
The procedure for preparing the cards is more complicated for the newer cameras but is fully described.
The camera can be made to automatically load SDM every time you turn-on the camera and it remembers your old settings.
WIA-Loader has special support for SDM to allow the uploading of images at regular intervals or continuously (from the time-lapse script for example).

There is more than one file for my camera ... which one do I use ?

Just download all of them and start with the highest numbered.
If your camera 'hangs-up' just remove the batteries and try another version .. no harm will be done.

Does USB-remote work on all supported cameras ?

Synchronised shooting is not supported on the s2is and s3is..
The ixus50/SD400 and ixus65/SD630 have not yet been tested. Ask via the Yahoo SDM Group if interested.

Which cameras have been synch-tested?

ixus70/SD1000,ixus800/SD700,ixus860/SD870, ixus960/SD950,A460,A560,A570,A620,A630,A640,A650,A720, TX1 and G7.

Why is my camera not supported ?

First, someone has to do the initial port to CHDK.
Then we have to get USB-remote working.
Ideally, someone then needs to test synch with two cameras.
Check here to see which cameras have been ported.

Do both cameras have to be the same model ?

That is obviously preferred as the zooms, colour-balance, synchronisation, etc will be more closely matched.
However, if you can measure the synch-difference using the CRT test you can 'dial-in' a compensating delay on the faster camera.
Users have reported a resulting synch-error of less than 1msec using this method.

OK what then ... there seem to be a lot of features.

There are and you will have to read the documentation for detailed information on the stereo aids.
To take synchronised photos, you plug your switch unit into the camera's USB sockets, turn-on the cameras and press the switch.
The Ricoh CA-1 focuses on half-press, pauses on full-press and takes highly-synchronised images on releasing the switch.
Ordinary switches are pressed on/off to focus.
You have up to ten seconds to release the button so you would follow action using the viewfinder and release the button at the required moment
Are you seriously saying that a switch and battery can replace expensive hardware or labour associated with current synchronisation methods ?

For still cameras ..... yes.

Remember ! You cannot guarantee that the firmware version of a camera you buy is already supported

Based on the 'Canon-hack development kit' (CHDK), the software is only loaded on power-up and does not alter the camera's own firmware in any way.
By selecting a particular menu option and write-protecting the SD card, the software can automatically load on power-up.

For further general information check the WIKI.

Many people have contributed to the development of CHDK.
In particular, we would like to thank VitalyB and GrAnd for the 'solid base' upon which others build.
We also thank Ewavr/Zosim, Fingalo, Rossig, MX3 and others who have contributed via their public CHDK builds and/or by personal communication.
Thanks to all those who tested the camera-synchronisation feature and those who have ported cameras to the basic CHDK.