Utility menu Top

Water drop photography using digiCamControl

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in _menu_load_objects() (line 569 of /home/digicamc/public_html/oldsite/includes/menu.inc).

In the latest beta version we added a tool to control electronics for creating water drop collisions. You will find a lot of solutions for capturing water drops on the web. They can be controlled manually without using any devices, just a pipette or something similar, but it is very hard to capture any usable photos. It's much more efficient to use a water (air) valve for generating water drops, but for this you need some electronics to control the valve So I decided to make one using information found on the Internet and make some experiments. This project it is in an experimental stage, but I hope we can make a useful solution at a low price.

In this project several electronics are involved. The base components are a solenoid valve and a microcontroller. I tried to assemble a cheap solution. For the valve I used a Chinese version from eBay available for 6.95$, the delivery time it is high almost 30 days. For a microcontroller I used an MSP430, which cost 9.99$. It was delivered in 48 hours. The MSP430 can be used almost in same way as an Arduino Uno microcontroller.

Some of the electronic components can be replaced with other similar components. The electronic schematic (click for a larger version, or right click and download for full size):

The components:


R1: 6.8kΩ

R2: 68kΩ

Optocoupler: 4N35, 4N26, 4N25

Transistor: 2N3904 or any similar which supports the valve power


The code for MSP430/Arduino can be downloaded from here. To upload the code to the MSP430 device I used Energia energia.nu/ which uses the same coding style as the Arduino controller. The same code can be used in both devices with minor modifications.

The user interface can be activated from digiCamControl using Menu->Tools->Water Drop Control. With this interface the timing can be set in real time. The camera should be set to bulb mode and manual focus.

The results (these are just simple tests with water): 


In the near feature I plan to design a generic device to control multiple cameras, flashes, valves and get a light detector or a microphone as a trigger input device. Any suggestion about this are welcomed.

If somebody tries to develop the electronic part, I will glad to help in any way.


More about water drop photography:






Good evening,

I, just this evening, discovered DigiCameraControl and was very pleased to see that there is control for water drop photography. However, I have absolutely no electronic background but feel confident that with guidance I can construct equipment like you describe (or have someone do it for me). Other than the schematic, do you have other information available; such as a photo of how you have the components connected and a complete parts list. Or a simple step by step guide to construct your drop controller? Any assistance will be  greatly appreciated.



By flaminius

Hi, i just want to create a new prototype for water drop device in next weeks (which can be sold, if anybody is interested), then i will try to make some photos about new device and a step by step guide. But in mean time if you have any question just let me know.

By Duka Istvan

the information being published in the blog is very relevant and helpful.. it catches attention of the readers thats why keep on updating and posting your blog.. better check this out. -->

Purchase Twitter Retweets

By don123



I just started with trying to make photo's from waterdruplets.

First i did it by hand but i like to have more control over it.

i bought a arduino one board, some relays with optocouplers, IR board, laser module and sound module.

there are several solutions on the internet and my fist attempt was with a IR sensor but a have to be to close to the druplet to detect it properly. From there i tried a laser and that is working much better.

Sound i did not try yet but i like to have a universal module based on arduino one, controlled by my labtop to change parameters, where i can control a valve, camera and flash, trigger on a sound to control camera and flash, or trigger on a interuption of a laser to control flash and camera or trigger on motion to trigger flash and camera.


your  solution offers a lot so i started to try it out. because i do not have valves i did try to use the sound option in the waterdroplet option.

i changed your soundpin to analog input 0 because i do not know what pin A7 is on arduino.

i did set the software on the PC to sound detection but whatever i offer to the analog input there is nothinh happening on the board. No flash, no camera activity..


please help me out bacuse my knowledge of programming is not so much.

for me it looks like the PC is not setting the board to sound input.


I like you project very much and i hope you will extend it with more options.


Many thanks

By ninabeertje

Hi, pin A7 is present on Arduino Mega 2560, but I think with Arduino Uno can be set to any analog input.

By Muttillo


First thank you for DigiCamControll which I use some times with Nikond7100.

I'm also interested in ready build interface as I'm not familiar with microprocessors.

Just please let me know when will be available.

I've tryed building a controller using a programable relay from Array, SR22-MRDC, but I suspect that it will not function correctly as the clock is to slow and there is no consistency required as the relay has up to 50msec delay. Repetability is far from required, especially for two or more droplets.


Best regards

By Czes

Thank you for DigiCamControll, it's awesome.

Can you write the minor modifications in Arduino Uno?
I have problems with these three lines:
const int soundPin = A7;
const int ledPin = RED_LED;
const int buttonPin = PUSH2;

Thank You!

By shelby500

Hi i don't use arduino so somehow it is hard to make changes but maybe i should buy one for future testes.

By Duka Istvan


I made it with arduino uno with just test leds, because i don't have all the components yet and its work fine.

Thank you!

By shelby500

Hi shelby500,

What changes did you make to source code for arduino uno?


By Czes

const int valvePin = 1;
const int cameraPin = 2;
const int flashPin = 3;
const int soundPin = A7;
const int ledPin = 13;
const int buttonPin = 6; (i don't use button, i just wrote an unused pin number)

Hope it will wirk.

By shelby500

Here is a quick test picture:

By shelby500

Congratulation! Can you share your setup ? (a photo from it)

By Duka Istvan

I use a different setup.

I control just the camera and the valve with the arduino. I have a wireless trigger on the camera and i control the flash with it.

I use a wireless trigger to the camera so i can connect it to the computer with usb cable. (because the wired trigger use the USB socket of the camera) So i can control the valve and the camera with the digiCamControl and i see the pictures on the computer.

I don't use the camera pin. I connect the camera to the flash pin so i can set the camera timing with the flash slider.


I used this shematic to the camera andt the valve (just change the motor)


Here is my setup:


And my test picture:

(sorry for my english :)

By shelby500


I have already used Digicamcontrol a few times and planning on using it for a lit more macro work in the near future.

Currently looking at getting a water droplet set up and after a bit of googling discovered that you already have that option built into your software......brilliant!

However, the instructions above are fairly limited. Do you have any further instructions or photos of the setup that you could chare with us? As you already have the capability in your software I would like to have a go with what you have created rather than someone elses.


By smartecosse

Taking shots with a 4K/60fps Action Camera but having difficulty finding a software that can do this. Glad you came up with this. Thanks!

By stevebarret