Is this circuit safe? Canon 40D remote shutter

Thread Starter

dsharlet

Joined Oct 15, 2013
6
I'm trying to build a controller for my Canon 40D camera. I studied EE in school, but now I do only DSP work, so my circuit design/analysis skills are very, very rusty/non-existent.

I have a PCF8574 controller that I want to have two of the pins drive the two circuits in the remote shutter. For more information about the camera circuit, see here: http://www.doc-diy.net/photo/eos_wired_remote/

I've built a circuit to control it:shutter.jpg

The PCF8574 outputs 0V or 5V on D0-D7. I use D0 and D1 to control the two functions.
The transistors are 2N3904.
The resistors are 6.8M.
The black box poorly wired to the breadboard is a 2.5mm stereo phone jack that I connect the camera to.

The motivation for selecting these components was that I wanted the current through CE to be 68 uA (per the short circuit current from the camera circuit), so BE should be ~.68 uA, which gives roughly 6.8 MOhm for a 5V (-0.7V for the transistor)

I checked it out pretty thoroughly with a multi-meter and batteries before connecting it to my devices, and it all looked good. It also does actually work (despite the minor annoyance that the initial state of the pins is 5V, not 0V), and when I plug it into the device I'm controlling it with, it reports no increased power consumption.

Despite all that, I'm still paranoid that it might be putting my devices in danger. What do you think?
 

MikeML

Joined Oct 2, 2009
5,444
The base resistors are way too high in value. 2.2K to 10K would be more like it... If the camera is designed to be switched with a dead short (switch), then you want the Collector-to-Emitter to be as close to a dead short as possible, so the transistor needs to be saturated, hence the Base current needs to be enough to accomplish that...
 

Thread Starter

dsharlet

Joined Oct 15, 2013
6
If I use a 10k resistor, isn't the current going to be ~500e-6 A? According to the data sheet of the PCF8574, the max current of the outputs is 300e-6 A. edit: Also, it says the min current is 30e-6 A. Why would the min be something other than 0? Is there something wrong with having it output less than the maximum current? If so, I think I need to change my resistor to a 100k so I land between 30e-6 and 300e-6 A.

The camera has a threshold voltage of 1.8V, and IIRC, the resistor I'm using now gave me ~0.3V across collector-emitter, which is plenty to trigger the camera (and it does work). The problem with this design seems like if the supply voltage drops below ~2V, I will not hit the threshold voltage of the camera anymore. But, it isn't unsafe, is it?

I'm not trying to reject your advice, I am just trying to not fix it if it isn't broken... unless its unsafe :)
 
Last edited:

kubeek

Joined Sep 20, 2005
5,795
You shuld use a pullup on the output of the PCF8574 to get you better base current. Since the io expander is mainly an open drain switch, then I suggest you drop the 6.8Meg resistors in series with the base and use just a 10K pullup to vcc. With the current you have now the operation will likely be marginal at best and might fail in high/low temperature.
 

MikeML

Joined Oct 2, 2009
5,444
What is the open-circuit voltage on the camera pinput(s) measured at the tip and ring with respect to sleeve on the stereo cable?
You are sure that the short-circuit current through the switch (when using the milliampmeter to trigger the camera) is 68uA?
 

Thread Starter

dsharlet

Joined Oct 15, 2013
6
You shuld use a pullup on the output of the PCF8574 to get you better base current. Since the io expander is mainly an open drain switch, then I suggest you drop the 6.8Meg resistors in series with the base and use just a 10K pullup to vcc. With the current you have now the operation will likely be marginal at best and might fail in high/low temperature.
After Googling pullup resistor... this makes perfect sense, thanks. I am going to rebuild using a pullup resistor.

What is the open-circuit voltage on the camera pinput(s) measured at the tip and ring with respect to sleeve on the stereo cable?
You are sure that the short-circuit current through the switch (when using the milliampmeter to trigger the camera) is 68uA?
I just measured both again: 3.13 V, and 67 uA.
 

MikeML

Joined Oct 2, 2009
5,444
...
I just measured both again: 3.13 V, and 67 uA.
Here is a sim of what is going on. The box on the right is a Thevinin Equiv. of the camera. The box on the left is simplistic model of port pin on the controller. The independent variable is the voltage on the port pin (x-axis of the plot). The dependent variables are the port pin current [save as the base current, same as I(R2)] and the collector voltage V(c). I ran the sim at two values of R2; 10K and 6.8meg.

Note that the voltage at the camera input V(c) is much better behaved with the 10K resistor. Also note that with R2=10K, the port pin voltage (x-axis) is about 3.8V when the port pin current is 300uA, so the port pin has no problem driving the 10K resistor.

110.gif


After thinking about it some more, it occurs to me that you could simplify your circuit. Here is a different approach. Since your port pin can sink 300uA, and it only takes 67uA to trigger the camera, but the open-circuit voltage of the camera pin floats to 3.2V, but the logic-high voltage of the port pin pulls up to 5V, why not just use a diode between the two. You will have to rewrite the code to make the port pin active-low instead of active-high. I would use a small Schottky (lower forward drop).
See here:

110a.gif
 

Thread Starter

dsharlet

Joined Oct 15, 2013
6
The sim looks like what I was intending when I chose the parts, so at least I didn't mess that part up :) But I do realize that that design is not very good. The 10k sim does look better, but I was worried about pulling too much current from the 8574. I've implemented the pull up resistor circuit now and that is working.

Also, your diode circuit is really nice because it solves a really annoying problem: the 8574 is active low, so it is triggering the camera immediately upon power on, until my program changes the state of the pin. I basically can't plug in the camera until after I've initialized the pins with my program. Thanks for taking the time to make that.
 
Top