Building a laser trigger for your camera

Forgive the rubbish picture - I was prototyping, so it's less than clear what's going on here. The important bits are in the schematic above. Honest, it's piss easy.

There are loads of reasons for why you could want to trigger your camera remotely – to avoid camera shake, for example, or to be able to take a photograph of yourself without having to rely on a timer. If you want to build more ambitious projects, however, you may have to consider getting more exotic.

I recently built a little device which triggers my camera whenever a laser beam is broken. It is about as simple an electronics project as you can pull off, but it’s going to form the base of a couple of other cool projects I’ll be working on going forward (stay tuned…), so I figured I’d do a quick post explaining how I did this.  


Talking to the camera

This looks a lot like a headphone jack, but it is not - headphone jacks are 3.5mm, this is 2.5mm.

Even though it isn’t strictly necessary, I decided to use my Arduino (check out as the base for this project.

I say ‘not necessary’ because you can build this project using just electronic components, which makes it all a lot simpler – however, what I really wanted to do is to build a base on which I can build further in the future. If you want to get more advanced, it becomes a lot easier to use a programmable micro-controller like the Arduino, so I figured I may as well start where I mean to continue.

I stripped the wires from the remote lead. Connecting green and red triggers the camera.

To interface with the camera, I decided to keep things as simple as possible, and I used the 2.5mm jack port on the side of my Canon EOS 450D. If your camera has a different remote control port, you should still be able to use the tips described in this post, but you’ll have to source the actual plug yourself.

Using the remote control port has several advantages, the biggest of which is that it’s really easy to trigger the camera this way. All you need to do is to make a connection between two wires! I bought a couple of cheap remote controls from China and used one of ‘em to interface with my camera, but you can go into your local electronics store to pick up a 2.5mm jack for next to no money…

Triggering the camera with the Arduino

This is the most important part of this mini-project: As soon as you can trigger the camera with the Arduino, only your imagination will stop you from coming up with ways of using this. Because the Arduino will accept input from any number of sources, you can program it to take photos in just about any circumstance imaginable. Just a few ideas:

  • Motion sensor (trigger the camera when it senses movement)
  • Heat sensor (take a picture when the)
  • Sound sensor (take a picture when the dog barks or the phone rings)
  • Telephone trigger (Hook up the arduino to a mobile phone. Call or SMS the mobile phone to take a picture)
  • Timelapse photography (Program the Arduino to take a photo every minute)

There are a few different ways you can use the Arduino to trigger the camera – I considered using a relay, but the problem is that even very fast relays are quite slow, so I decided to use a transistor instead:

You! At the back! no sniggering at my atroceous schematic drawing skills!

The Arduino sends a signal to the transistor, which connects the two leads leading to the camera, which triggers the camera.

Forgive the rubbish picture - I was prototyping, so it's less than clear what's going on here. The important bits are in the schematic above. Honest, it's piss easy.

Getting the laser trigger to work

I hooked up a LDR (Light-dependent resistor) with a pull-down resistor to ensure that it wouldn’t trigger randomly to the analog sensor pin 0 on the Arduino. The programme uploaded to the Arduino is as follows:

 int sensorPin = 0;  int sensorValue = 0;  int cameraTrigger =  13;    void setup() {    pinMode (cameraTrigger, OUTPUT); }   void loop() {    sensorValue = analogRead(sensorPin);    if (sensorValue > 700) { // trigger is quite low, might need to be higher in daylight      digitalWrite (cameraTrigger, LOW);    }    else    {      digitalWrite (cameraTrigger, HIGH);      delay(10);      digitalWrite (cameraTrigger, LOW); 	 delay(1000); // Take max 1 pic per second    }  } 


Pull-down resistor to ensure true readings, and a LDR to do the actual light measuring.

With the arduino all programmed, I just had to add the LDR.

Now, I rigged up a laser module aimed at the LDR, and I checked what the common sensor values were – turns out that it drops to about 200 when the laser beam wasn’t hitting the sensor, and goes up to about 900 or so when it is hitting the sensor. I set the sensor trigger to about 700 to give me some leeway.

In the above snippet of code, the interesting stuff happens in the loop: Basically, it checks if the sensor has gone ‘dark’. If it hasn’t, it simply checks again.

The bright pink bit in the photo here is the laser beam hitting the LDR.

If the Arduino detects that the sensor has gone ‘dark’, it triggers the camera for 10 milliseconds, then untriggers it. This is to ensure that the camera doesn’t continue taking photos for the duration of the beam being broken – I have my camera set to ‘one shot’ anyway, but by adding this line of code, it should still work if the camera is set to continuous shooting when the shutter button is held down.

When the Arduino detects a broken beam, it takes a photo, then waits for a second, before checking for a broken beam again. If it’s still broken, it’ll take another photo and then waits another second.

Does it even work?

Yup. But a video says more than a thousand words so check ‘er out:

(forgive the crummy video quality, but you get the idea)

So, er, what the hell can you use this for?

It’s all a little bit theoretical at this point, because I haven’t actually used the trigger for anything useful yet. For one thing, it’s not very portable yet, but I’m planning to take a version of this and solder it all together so it’s a bit more sturdy. At least I know it works, which was the purpose of the exercise.

I have a couple of fantastic ideas for how I can create some pretty cool projects where the camera can just stand there and take photos automatically. Think birds on a bird-feeder, people walking through a doorway, balls in flight, etc.

If you plan to use the kit to take people by surprise, you may have to hide the lasers away a bit better. In a cleanish room, the red laser is pretty much invisible anyway (although it shows up in specs of dust etc), but if you want the sensor to be completely invisible, you can just use an IR laser instead – it’ll make it invisible to the naked eye.


I haven’t broken my own camera equipment doing any of this, but if you balls things up, there’s a good chance you might. Be careful, know what you’re doing, and don’t come running to me if you blow up your camera, please!

Do you enjoy a smattering of random photography links? Well, squire, I welcome thee to join me on Twitter -

© Kamps Consulting Ltd. This article is licenced for use on Pixiq only. Please do not reproduce wholly or in part without a license. More info.