I have an old Canon powershot S410 compact camera, which I want to use for a time-lapse project. For the project I will need to build an intervalometer to automatically shot photos (probably Arduino based).

CHDK is an obvious approach, but this camera is too old (pre digic II)

This camera does not have a normal remote shutter socket, but it does have a USB interface, and I have used Canon software to open the shutter via a windows PC. So I know the camera hardware can activate the shutter via the USB socket.

My question is what is the communication protocol the software used to activate the shutter?

  • \$\begingroup\$ You're probably going to have to sniff the commands yourself. \$\endgroup\$ Commented May 20, 2013 at 22:12
  • \$\begingroup\$ @ChinmayKanchi any tools i should be looking at to do that? \$\endgroup\$
    – Ken
    Commented May 21, 2013 at 13:27
  • 3
    \$\begingroup\$ Search Google for a USB sniffer. If you run into problems, I'd suggest that this is a better fit for Stackoverflow rather than this site. \$\endgroup\$ Commented May 21, 2013 at 16:09

1 Answer 1


Usually Cannon uses Picture Transfer Protocol (PTP) and Media Transfer Protocol (MTP) but I'm not sure you can control your powershot with them. Have a look to Gphoto maybe someone has already done the work. The simplest way with your Arduino is to "push" the shot button with an external device a "meccanic finger" or if you don't care about your camera opening it and find the way to hack the "shot button" circuit.

P.S. You can build a simple intervalometer with some resistors, and a relay/capacitor circuit or with a PUT/capacitor circuit maybe you can integrate it with your camera to make the system more portable.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.