Thursday, May 28, 2009

Programming with Canon without an SDK

I've been looking at a photobooth software called Photoboof upon the recommendation of a friend.  It sells for something like USD600 with a fully-functional trial version that just displays some watermark on the printout.  I've been thinking on-and-off of writing a photobooth software myself.  In fact, that was the main impetus why I looked into programming for my Canon EOS using the EOS Development Kit (EDK).

Photoboof claims it can work with Canon Powershots, EOS DSLR's, Nikon DSLR's, and even regular webcams.  I've been wondering how Photoboof can pull off supporting all these cameras.  Did it have to link the libraries specific to each camera model?  Well, as it turns out, it doesn't really talk directly to the camera's firmware.  Instead, it works with the camera's existing bundled software to handle the actual remote photo-shooting.  Then it just picks up the jpg files from some local folder.

I have to admit its an ingenious solution.  For Canon EOS DSLR's, it uses the bundled EOS Utility software to handle actual communication with the camera and the remote shooting part.  The EOS Utility even support "tethered" shooting, or shooting from the camera and having the image sent directly to the PC via USB, without saving a copy first on the CF Card inside the camera.

Photoboof uses the popular Irfanview image viewer software to handle the actual rendering of the image to the printer.  Again, very ingenious.  The author didn't have to do the dirty work of communicating with the printer.

1 comment:

Stuart said...

Thats a neat solution. I looked at using the EOS utility when I first started developing but found it to be very unreliable and an unecessary overhead. Also issues with the camera being plugged in and removed.

In the end, I have developed a solution which works with any camera supported by the the EOS Digital SDK (EDSDK)

"PhotoKiosk" - is used as the software component of

The system in this case is triggered by the cars on the ride passing a certain point on the track.

I also have in development a system for roaming photographers with a camera linked to a tablet PC, or wireless camera

Software licensing options available for anyone who is interested, contact me at