High Speed Photography


My two primary interests are photography and electronics. This project allowed me to combine two of my loves and capture some stellar images. I used a PIC microcontroller to sync my shutter and some off-camera strobes with the collision of a water/milk droplet and a bowl of liquid. This technique captures durations in the order of microseconds.

[svgallery name=””]

When I first became interested in high speed photography I discovered the site Hiviz.com. This extremely useful site is where I learned about using flash strobes to capture fast-moving objects. Using the circuit diagrams provided here I built a 555 timer-based delay and trigger circuit for my camera flashes.


The idea in a delayed trigger is to sense the droplet outside of the view of the camera then take the picture when the droplet falls inside of the frame. When I take these pictures I hold a dropper about a foot and a half above a bowl. I place an infrared emitter/receiver below my hand to sense the droplet when it first leaves the dropper. Then, after a specified amount of time (depending on the sensor’s height above the bowl) the flashes fire. By calibrating this time correctly I make the flashes fire directly after the drop hits the water.


Using the same delay yields almost identical images. These are six consecutive pictures taken using my controller.

The shutter is usually left open for this entire process. These pictures are taken in a darkened room so that the ambient light had little or no effect on the exposure. When the flashes fire they are much brighter than the ambient light and they freeze that moment onto the film/sensor. This makes the flash duration the effective “shutter speed” for the picture.


The 555-based circuit from hiviz.com worked well and I got some great pictures. I am very grateful for all the detailed information about high speed photography they provide. But after I used their circuit a few times I started to get frustrated. Using a potentiometer to control the timing was imprecise and cumbersome. It was easy to bump a knob and lose my work “calibrating” the system. I also found myself swapping out components when I needed to drastically alter the delay time.


As a solution to these problems I designed my own “High Speed Controller” using a microcontroller. This controller is programmed on a 18F series PIC microcontroller. You can adjust the input characteristics, flash timings (down to the millisecond), and shutter duration using a rotary encoder and an LCD screen. It supports up to four flashes and two cameras — although more can easily be added. Each flash can be individually timed. And since you can adjust the characteristics of the sensor you can use a variety of trigger devices (I have tested it using both a photogate and a computer microphone)

The following menu items are used to adjust the behavior of the controller. You use the rotary encoder to scroll through the menu items, then use the button to select a particular item.

Sensor Threshold – Each sensor plugs into an analog/digital converter on the PIC. The sensor threshold is the value at which the sensor is triggered. For convenience, the current value of the sensor is displayed as you adjust the threshold. The above picture was taken as I was adjusting the sensor threshold.

Sensor High/Low – This tells the controller if it should trigger when the sensor is higher or lower than the threshold value.

Shutter Delay – If enabled, this delay waits a specified amount of time after the trigger event before opening the shutter.

Shutter Duration – This is pretty self-explanatory. The nice thing about having the controller open/close the shutter is that you can take pictures in a moderately light room. With shutter durations in the 100-200ms range the ambient light of the room becomes less impactful on the final image.

Flash Delay 1, 2, 3, 4 – Each flash can be individually timed. I usually have them go off simultaneously but I like having the option of having them go off in sequence.

Execute – This causes the PIC to enter a delay loop waiting for the sensor conditions to be met.

Shutter Control –  This menu items was necessary due to some limitations in my camera. The Canon 20D I use to take these pictures has a delay of ~70ms from the moment it recieves a signal to the moment the shutter opens. This often isn’t an issue since the delay for water droplets is often greater than 200ms. However, in case I need to capture less than 70ms from the time the sensor is triggered I needed an alternate way to control the shutter. This menu option has two options:

Normal: The shutter opens after the sensor is trigger.

Fast Object: The shutter opens as soon as you hit “execute”. It still turns off based on the “shutter duration” value after the sensor is triggered.


If you are interested in building a controller for yourself I have created a board and released the source code.

Unfortunately, neither are well documented for now — so you may have to work a little to understand how to use them. After I catchup with my website I will update these files with well documented code. For now, please feel free to email me if you have any specific questions.

The source is available here. I compiled it using the C18 compiler provided by microchip. I controlled LCD using a library I found on piclist. It was written for the Hitech compiler and had quite a few errors in C18 so I had to rewrite some sections of it.

The board/circuit diagram can be downloaded here. I included inputs/outputs for a few more buttons and a few LEDs in case you want to implement some extra controls. Use eagle to open the files. If you want to etch the board you can do so using my etching howto.

You’ll need the following parts:

(1) PIC18F4685 (available as a free sample for students)

(4) EC103D SCRs

(4) 2N2222 transistors (or any small npn transistors)

(1) 4mhz crystal (optional– the current source actually uses the internal oscillator)

(1) LM7805 (optional — depending on your power source)


The technical details are important to capture water droplets, but your captures won’t look like art unless you spend some time controlling the light. You can experiment with using gels over the flash, hard vs soft light, and different backgrounds or floor coverings to achieve different effects.

Although my setup may seem complicated, most of these components can be found for pretty cheap.

Cameras – I used a Canon 20D and my friend used his Canon 40D to take the pictures. Any camera that you can externally trigger with a “bulb” setting should work for droplet photography.

Flashes – Old, manual, strobes are perfect for this kind of photography. I use two Nikon strobes from the 90’s that I found locally for cheap.

Umbrellas – You can get these for $10-15 a piece. But if you don’t want to buy umbrellas and stands you can use sheets of white paper to soften the light.

Dropper – I used a dropper meant to dispense chemicals in a fish bowl. Straws work.. but only as a last resort.

Paper/Backgrounds – I bought paper at Craft Warehouse.

Here are some pictures of the setup I used for most of the images on this page:




Leave a Reply