Sony DSLR cameras have a 3-pin remote port for use with a wired remote. Today, I’ll explore how we can use it to control the camera using our Arduino.
The Remote Connector
On the back of the camera is a 3-pin port, with pins on 2mm centers. From left to right, the pins are: Focus, Common, and Shutter.
We need a cable to connect this port to a breadboard. You’ll need to find a 2mm plug and crimp some pins on. I’ve not yet found a good source for a connector that fits nicely. The one I’m using is from my local electronics store, shaved down a little with an small blade. On the other end of the cable, just strip some extra wire and connect it to some screw terminals on a breadboard.
Even without fancy electronics, we can test out the port. On the breadboard, connect a button between Focus and Common, and another between Shutter and Common. Power on the camera, press and hold the Focus button on your breadboard. You’ll hear the camera coming to life and focusing, then the tell-tale click that it’s ready to shoot. Keep holding it down, and press the Shutter button. Bang! Now you have a photo.
Now our mission is to have the Arduino press these buttons. We cannot simply connect the Arduino pins directly to the camera, they have to be isolated. I’m sure there’s a really good reason for this, I just don’t know what it is 🙂 For this example, I’ve used a pair of 4N25 optocouplers, one for each line. There are myriad alternatives available, including some dual-channel units.
This is how we hook it up:
Note that the Common line is connected to pin 5 on the Focus circuit, and pin 4 on the Shutter circuit.
Once this circuit is set up, the code is dirt simple. Set pin 13 high to focus. Keep 13 high, and then set 12 high to shoot. Set them both to low when done.
The code for this is on gist as SonyA100.ino.
Like anything else, the path forward is up to your imagination! You can make a sensor-based or timer-based intervalometer that waits for the right moment and takes as many pictures as you need. For The Last Shuttle Project, we used this philosophy to consider the scheduled time of shuttle launches AND the sound of the launch to know it’s time to shoot. (See Skycam Controller for The Last Shuttle Project.