Laser Triggered High Speed Photography (for $5 +arduino) Version 2




Introduction: Laser Triggered High Speed Photography (for $5 +arduino) Version 2

About: A student electromechanical engineering from Belgium. Feedback always welcome!

Ever tried taking a picture like this? I did and failed miserably. I am not a great photographer but I like to mess around with the settings from the camera, lighting, etc.
The problem was that I didn’t find the time to play with them because I was too focussed on getting my timing right between throwing the apple, focussing and taking the picture. Frustrating was, that when 1 picture was “ok” it was nearly impossible to mimic the same timing again.
Solution: I designed a device with an Arduino, the general idea is: when the apple disrupts a laser beam, the Arduino counts several millisecond and then closes the shutter.

This the second version I built, the first one used wires to connect to the arduino which was a bit unhandy to set it up each time. And they had the tendensy to break a leave bits stuck in the arduino. I now made a shield-version to prevent this.
(version 1)

This is still my first instructable (second version though) so feedback always welcome.. Also English is not my native language so I apologize for my lack of vocabulary and/or wrong construction of sentences.


-PCB-board $1/€0,59 (

-Potentiometer $0,55 /€0,4(local store)

-2x 10k Ohm resistor $0,02/€0,01 (local store)

-2x 100 Ohm resistor$0,02/€0,01 (local store)

-2x 220 Ohm resistor$0,02/€0,01 (local store)

-2x LED (preferably other color) $0,35/€0,25 (local store)

-2x BC 547 (transistor) $0,2/€0,14 (local store)

-10k Ohm LDR $0,1/€0,07 (sensor, light dependent resistor)

-1x push button $1/€0,70 (local store)

-1x blue sugger (2 connections) $0,14/€0,1 (local store)

-1x PCB connector (3 connections) $0,14/€0,1 (local store)

-some wire (local store)

-Connection to camera $2,67/€1,92 (ebay)

-laser (

Step 1: Usage

Set up the laser so the beam hits the sensor. Connect the Arduino and the camera. When you give the Arduino power you’ll see that first led lights up. This means that the Arduino is started the initialising process. You’ll have to break the beam several time, the Arduino is taking a 1000 samples to calculate the outer boundries of the light intensity. It takes the average of the maximum level and the minimum level and sets it as the threshold for the camera shutter. After 5-10secondes the second led lights up to indicate that the calibration is complete.

To take a picture, push the button to focus (Led 1 will light up), and let something fall through the laser beam. If the picture is taken to early you can set an extra delay with the potentiometer. My set up was complete after 3 pictures. Now you can take a lot of pictures and play with the lighting without worrying about the right moment to push the button.
If you prefer to use manual focus: just use the lens’ slider to set it to manual focus. You’ll still need to push the focus button, just to prepare the Arduino to take the picture. It seems a bit elaborate but otherwise a broke the beam to much and had a lot of bad pictures. You'll see that in the solderd circuit I replaced the button with a switch so in manual mode I don't have to push it each time.

Step 2: Hack the Remote

2.1. Buy a remote you can hack. I bought my MC-DC2 for $2.6 on ebay, not to expensive for when it would go wrong. (compatible with Nikon D3100 but you can find a cheap remote for almost any camera).

2.2. Break it open
You’ll see 3 metal plates, the upper one is the focus, the middle one is the ground, and the last one is the shutter. The function (focussing, shutter) will be executed when you connect that plate with the ground. You will have to solder a wire to each plate, I used the same color-coding as the wires already used in the shutter (Red= shutter, yellow= focus, white: ground). I brought them out through small holes I drilled in the side, so I could still use the remote without controller.
It is essential you test your “hacked” system, connected it with the camera and push the focus against the ground en when connected push the third wire against both of them. If the camera does what it should, you can proceed to the next step.

Step 3: Electronics

Build the circuit under, you ‘ve got:

• LDR: needed to detected the laser beam, and when it is gone.
• 10k Potentiometer: used to choose the delay
• LED’s: used in the initialisation mode (see explanation above) and to see if your camera should do something (but maybe does not)
• Pushbutton/switch: to focus the camera.
• 2x Transistors BC547, used to connect the 3 wires from the camera remote.
• 2x 10k resistor as pull up resisitor
•2x 1k resistor: as current limiter
•2x 220 ohm resisitor as pull up resistor
• 1x blue sugar 2: 2 be able to change the length of the sensor wire
• 1x PCB-connector: to connect to the remote to make it easy to connect.
•7x pin to arduino: make sure that they are long enough when ou buy them (I used the ones from the arduino starter packet)

I used the diagram you find by the pictures to get it all on a the board. The goundwire on the scematic seems to disappear at the right of the board. I put it under the board so I could leave some place open to place there a connector to an LCD (in the future)

Problem with the pins is that the soldering from the pins will be on top of the board and the wire-endings of the rest of the components will be under the PCB. The trick is to give a the wire/resistor/... you want to connect to the pin some more space. A part of the unstriped wire will be on top and then you solder the wire on top to the pin and the rest can be done under the PCB.(see last picture)


The pins I used to get a balanced shield. I advice to put the pins in the arduino, place the PCB over it, and make markings where to solder.

A0: sensor
A1: potentiometer (time)

7: pushbutton

6: Focus


Step 4: Arduino Time!

Use following code:

int trigger=0;
unsigned long Time=0;
unsigned long VTime=0;
int focus=0;
int overD=0;
int thresHold=0;
int count=0;
int maxx=0;
int minn=1500;

void setup () {
pinMode(6, OUTPUT);

//initialisation: take 1000 times a sample to set your outer limits
//in the middle of the limits, arduino sets its threshold. If the light inensity falls
//below that value, the camera will be triggert.
while (count< 1000){
int test = analogRead(A0);

Serial.print("max= ");
Serial.print("min= ");
Serial.print("threshold= ");



void loop () {

VTime= analogRead(A1); //read the time
Serial.print("VTime= ");
Time=map(VTime,0,1023,0,1200); // map the the time so the range of the potentiometer is usefull, note: I didn't use millisecondes, because it makes the code more complicated then needed and slower.
focus= digitalRead(5); //see if you pushed the focus button yet

Serial.print("laservalue= ");
Serial.println (trigger);

while(focus== HIGH) { // if you've focussed, you can now wait till the laserbeam is interrupted
digitalWrite(5,HIGH); // Led will indicated that the camera is focussed
overD=1; // arduino will remember you(ve focussed
trigger = analogRead(A0);
if(trigger < thresHold && overD ==1){ //If you 've focussed and the intensity of the beam is below the treshold
//the camera will take a picture

delay(Time); //before taking a picture wait a periode of time
Serial.println("pic taken");
digitalWrite(6,HIGH); // take the picture for real
delay (500);
focus=LOW; //Ready for the next one but you will first have to focus again (optional)



Step 5:

Test 1: (blue) It worked very well, The pictures I took weren't great because of the bad lighting but they where certainly taken at the right moment.
It was the first time in which I encountered the speed limits of the microcontroller. Because the set up of the laser was just 20cm above the water, my first code was too slow to catch the right moment.

Test 2: (apple) A few days ago I did a second test (with the apple) and I think I became closer to what it should be. I'm now in the search for a bigger aquarium.

I plan to make cases for the electronics out of plexi, I now use a plastic butter dish to protect them from the splash.
Also a LCD screen with the use time may be handy. I didn't really need it but when you want to rebuild a set-up it can be handy.

Full Spectrum Laser Contest

Participated in the
Full Spectrum Laser Contest

Gadget Hacking and Accessories Contest

Participated in the
Gadget Hacking and Accessories Contest

Arduino Contest

Participated in the
Arduino Contest

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    4 Discussions


    3 years ago


    Can you please explain what a Blue Sugger is? Is the PCB connecteor to connect PCBs together or wires to the PCB?

    One I have these I can start building it :)


    6 years ago

    A lot of this photography is done by leaving the shutter open longer in a dark room and firing the flash to freeze the image. Flash is easier to control as the camera tries to focus. The idea of using a laser is a good trigger, the previous ones I've seen use sound, like the sound of a balloon bursting or the fruit hitting the water.
    Looking forward to seeing your results


    Reply 6 years ago on Introduction

    Hi Ejensen21!

    I bypassed the focussing of the camera by focussing in advance on something I held at the place where the apple would land. The lighting here was a flash (30 µs) which was quicker than the shutter (1/200s), I think it is basicly the same effect as if you would open the shutter for a long time. Or am I seeing it wrong?

    Because I'm not entirly sure I'm thinking of a making an addition to be able to control the flash so I can experiment with both options. Probably an extra output to the system I already have, when I push the button, the lights in my room go out, the shutter opens in bulb-mode (shutter stays open), and then I flash to freeze the image.

    Thankx for the input!