I read this post of 7 years ago:DLSR Hotshoe wiring to Arduino

I built the exact circuit described in the answer, shown below, to detect when my canon DLSR hotshoe would send a "trigger" order to the flash. This trigger signal could then be dealt with by an Arduino.

Trigger detection circuit

This is the hotshoe of the Canon camera below:

Canon Hotshoe

My Arduino detects when I fire the flash (pull trigger to GND,) but the weird thing is that it also detects when I half-press the shooting button, and sometimes keeps detecting if I keep the button half pressed for some time.

When I do shoot it always detects normally, so it works, but something is false triggering when I half press the button - and it's random.

If the camera is on and I don't press the shooting button, it works normally as it should, never detects any false "triggering".

What could I do to fix it? Is the Canon hotshoe trigger different from others?

  • \$\begingroup\$ What does a half-press normally do? What's the point of a half press? \$\endgroup\$ Commented Apr 1, 2021 at 14:36
  • \$\begingroup\$ @user253751 When You half press the shotting button of a camera, the camera automatically focus on the subject, calculate the exposure, etc... When the camera is ready to shoot it makes a beep to tell you that you can full press the button. If the camera is still focusing, or calculating it's internal stuff, you can't press the button fully, it simply doesn't shoot a picture, and doesn't fire the flash also. \$\endgroup\$
    – Rodrigo
    Commented Apr 1, 2021 at 15:07
  • \$\begingroup\$ Without some scope measurements on the sigal pin, it's a bunch of guessing. Taking a guess, I'd say you should add some input debouncing in your Arduino code. \$\endgroup\$
    – Aaron
    Commented Apr 1, 2021 at 16:08
  • \$\begingroup\$ @Aaron I thought about debouncing. I’m actually doing it, but so far no difference. I’ll hook my mini scope to check the signal pin.. \$\endgroup\$
    – Rodrigo
    Commented Apr 1, 2021 at 16:19
  • \$\begingroup\$ Please post the results, one for normal trigger and one for false trigger. \$\endgroup\$
    – Aaron
    Commented Apr 1, 2021 at 16:20

1 Answer 1


After seeing with the scope that the camera keeps sending fast pulses from time to time while the button is half-pressed, and a longer pulse when the button is fully pressed, I implemented the debounce function to only allow pulses that are longer than 5ms. That seemed to have solved the problem and the false triggerings!


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.