kShutter: Simple remote shutter for Nikon Coolpixes

Cable releaseWhen using a slow shutter speed, the camera should be as steady as possible, in order to not blur the picture. The common rule states that if you are using a focal length of, say, 125 mm, the shutter speed should be 1/125 or faster if you hand-held the camera. For slower shutter speeds, your camera should be on a tripod. But in many cases this is not enough, because the vibration you cause when pressing the shutter may suffice to blur the picture. To avoid this in a classic, film SLR, you would use a (mechanical) shutter cable release.

But in modern digital cameras, the situation is not that simple. In particular, the Nikon Coolpix line requires a device intelligent enough to "speak" with the camera, just to do the same job that the old-fashioned cable release (crazy!). I developed kShutter, an electronic circuit based on a microcontroller (a simple but full computer in a single chip) and programmed it to send the appropriate messages to the camera to take a shot whenever a button is pressed.

The main component is a PIC16F628A microcontroller, which reads the button state and speaks with the camera through a serial RS-232 port. In order to adapt PIC voltage levels to those of RS-232, a MAX3323 is used. You will need a serial Nikon SC-EW3 cable (or equivalent) to connect this circuit to the camera. One end of the SC-EW3 is a DB9 connector (that goes to CON1, see the schematic) the other is the proprietary design used for the camera. As the SC-EW3 only has 3 wires, for my implementation I cut the DB9 end and replaced it by a stereo jack, which is less bulky that the DB9 (accordingly, I used a stereo female jack instead of CON1 on my kShutter). As 3V power supply, you can use a CR2032-type button cell battery which is very compact in size.

kShutter schematic

The PIC should be programmed with the firmware file kShutter.hex. Source code is also available, kShutter.asm. This software is licensed under the GPL.

If you want to know more about the communications protocol used by the camera, have a look at Vladimir Vyskocil's (unofficial) specification.

If you want intervalometer functionality, try kShutter2.

File: