Thing-a-day, Day 27: Remote Trigger for Powershot S3

Canon did not include a remote trigger option in this camera, however there are many times when I have wanted one. Recently, though, the CHDK people figured out that you can use the USB port on the camera as a trigger. It’s a great hack- the camera already has hardware to detect when the camera connects to your PC, so they captured that event and made it scriptable. This works well for what I wanted to do, which is to take long exposure shots without disturbing the camera. A potential drawback to this method, however, is that the camera can take up to a second to respond to the trigger. This means it will not be useful for syncing captures to a fast event. There are two parts to this project, building the hardware and getting the CHDK program running on your camera. Some quick instructions are after the break.
The trigger, all put together

First, the hardware:

This is the schematic we want to achieve:
Schematic

You could build a box and put the components in it, however I found a light-up pen that has all the parts in it. It also occurs to me that something like a mintyboost would also work, if it has a switch to turn the power on and off. Here are the parts before disassembly:
Parts for the camera remote trigger

Once the hardware is done, the second part is to get the software set up. I first downloaded the ‘allbest’ build of CHDK from here. The files DISKBOOT.BIN and PS.FIR should be extracted and placed in the root directory of the camera’s SD card (you need a card reader for this). Next, put the card in the camera, and turn it on in play mode (it is important not to go into record mode first). There should be a menu option called ‘update firmware’, select that and agree to everything. This should cause CHDK to load and set up a directory structure on the card. Turn the camera off again, take the card out and put it back in the computer. There should be a CHDK directory on the card now. Copy the following uBasic script to a text file called remote.bas, and save it in the CHDK/scripts/ folder (which should have been created automatically):

The script came from here:

@title Remote button
:loop
wait_click 1
is_key k "remote"
if k=1 then shoot
goto "loop"
end

Now, put the card back in the camera again, and do the firmware load deal again to get the CHDK software running again. CHDK never installs itself on the camera, however there is a way to make it load automatically if you are interested. Get into ALT mode (which assigns different commands to the buttons) by pressing the ‘print’ button on the camera. Once in ALT mode (it should say at the bottom of the display, press the menu button to bring up the CHDK main menu, then select the ‘scripting parameters menu’:
Using the CHDK software

Then select ‘load script from file’, choose the remote.bas script created earlier, and make sure ‘enable remote’ is selected in the scripting menu.
Setting things up so the remote is enabled when the camera turns on

Close the menu and press the shutter button to start the script. If all went well, the screen should look something like mine below. Plug in the remote and press the button to take a picture!
Running the script

This entry was posted in tech, thingaday. Bookmark the permalink.

6 Responses to Thing-a-day, Day 27: Remote Trigger for Powershot S3

  1. Arman says:

    Thanks for posting this!

    I made my own pen/usb remote trigger based off of your design and posted about it on my blog:

    http://armanbohn.com/blog/2008/05/22/homemade-usb-camera-shutter-release/

    Thanks!

  2. Pingback: … homemade USB camera shutter release … @ Arman Bohn

  3. mahto says:

    Awesome! Glad you found some use for it! Your drawing looks really good, too.

  4. Arman says:

    Thanks,

    I’ll be shooting some stop motion in my next video thanks to you.

  5. mahto says:

    Cool, I”l keep a watch out for it!

  6. shastina says:

    One issue I ran into with my s3is camera was I had to do a manual boot, link attached. Also I could not do this on a mac I had to use a window/linux based computer so that was an issue :/

    But when I got it to work it was all in german!!!! then when I tested the volts on the connections of my remote it went to english all of the sudden… but it worked perfectly! Thank you for the wonderful explanation!!

    http://chdk.wikia.com/wiki/Prepare_your_SD_card#Bootable_SD_Card_Method

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>