dropController V3

dropController V3.

dropControllerV3 perfboard version in a project box.

  • 6 valve connections
  • camera; focus and shutter connections
  • 3 flash triggers
  • Controlled via an Android app or a Windows program

A previous version of the dropController has experimental high speed photography triggers. These are no longer being developed, however, if you are interested the details can be found here.

I decided to finalize the circuit and concentrate on other things like a proper PCB and a user manual.

Download links for the Arduino sketch, the apps and the source files are on the download page.

The user guide can be downloaded here (PDF 2.4MB)



Updated 01-09-2019
Circuit 3.6
I tried to keep the circuit as simple as possible and have used multiple components instead combined components. For example, I have used 5 separate 4N25 optocouplers. These can be condensed in to 1 or 2 chips. I use stereo sockets even when the connection is single channel. The only socket that needs to be stereo is the camera connector.

The camera and flash GNDs are not common and should not be connected to the main circuit GND.


Download a hires image of the circuit


Parts List

1 x Arduino Nano V3
2 x 15 pin single row female headers for the Arduino
1 x LM2596s Buck converter. DC to DC step down power supply
1 x HC-06 Bluetooth module
1 x Yellow LED
1 x Green LED
1 x Barrel jack power socket

6 x RCA/phone socket – RCA-RCJ-04x
4 x 3.5mm stereo socket – PJ-307 3.5mm stereo connector
5 x 4N25 (or similar) optocoupler
5 x 6 pin DIL sockets for the optocouplers
6 x IRL540N mosfet (or similar)

7 x 1N4007 diode
7 x 330 Ohm resister
6 x 220 Ohm resister
6 x 10K Ohm resister
1 x 1K Ohm resistor
1 x 2K Ohm resister


Arduino Nano. I tend to buy ones that do not have the pins pre-soldered. This allows me to not connect the programming pins that stand up on the top of the board.

HC-06 – Try to get the official HC/Waven module. These have the HC logo at the top and the newer modules have a blue LED at the top left.

Mosfet. There are many alternative mosfets that can be used. Just need to be logic level with a low RDSon at 5V/4.5V.

Download a pdf of the parts list.

Technically a LM7808 can be used instead of the buck converter (the voltages are within spec of the LM7808) but in trials I found they became hotter than I was comfortable with and so I do not recommend using them.

Ambient temperature was about 27°C and using a 24V power source:
– no heat sink, the temperature went to around 115°C.
– small heat sink, temp was around 80°C
– large heat sink, I managed to get the temperature down to around 60°C. The large heat sink was too big to be practical though.


Breadboard Prototype

I built the prototype using 3 breadboards to give myself plenty of space. With a bit of work you could reduce it to 2 boards.

The RCA sockets and power barrel jack socket I used are not breadboard friendly For the first few RCA sockets I added pins and then for the other 3 I built a small prototype module that plugs in to the breadboard.


Terminal blocks/connectors make a good alternative to the phono RCA sockets. If you are using a breadboard make sure you get the correct size. Breadboards are 0.1″ / .25mm spacing.

The dropController V3 can use either 12V or 24V power. This allows you to use either 12V or 24V valves. Take care to match the valve with the voltage you are using and do not mix different voltage valves. I used to use multi-voltage power supplies but these proved to be unreliable and when the last one died I settled on a 24V fixed voltage supply. At the same time I changed the coils on my favourite 12v valves to make them 24v.


Power is directly connected to the valves and also a DC-DC step down buck converter that is set to step down the input voltage to 8V. The 8v is then connected to a 1N4007 diode and then to the Arduino VIN pin. The diode adds reverse voltage protection for when the Arduino is connected to a USB power supply (like a computer) and also powered from an separate power adapter). The Arduino VIN pin is connected to the Arduino onboard voltage regulator which converts the voltage to 5V.


The voltage regulator on the Arduino can safely accept voltages from 7-12V so it is not critical to get exactly 8V out from the buck convertor. The 1N4008 diode has a 0.7/0.8 voltage drop. This means although there is 8V coming from the buck converter the diode uses 0.8 volts and so passes 7.2v to the Arduino. This is around as low as you should go.

On the breadboard I am using a buck converter that has a display that shows the voltage out. This allows me to easily set the output voltage without using a multimeter or an Arduino voltmeter.

For non breadboard I use one of the smaller LMLM2596 Buck Converters without a display. The output voltage on these is changed by adjusting a small potentiometer.


Remember to set the out voltage before connecting to the circuit.
If you do not have a multimeter you can use an Arduino. See Arduino voltmeter.

I have now also started using a 9v fixed output converter. These have the advantage that you do not need to set the ouput voltage and they are smaller.

These are available with various output voltages preset so make sure you buy the right one.


  • D14/A0: Yellow LED
  • D15/A1: Green LED


The 2 LEDs show the device status:

  • The yellow LED shows the connected status; slow blink means not connected. Solid on means connected to an app.
  • The green LED shows when the device is active (making drops).

When drops are being produced the yellow LED turns off and the green LED turns on. When the drop sequence is finished they go back to Yellow on, green off.

If both LEDs flash together rapidly it means there is an error in the drop data. This is just for debugging purposes.


The circuit shows 330 ohm resistors and with 330 ohm the LEDS are quite bright. To make the LEDs less bright you can use larger value resistors.

Camera and flash triggers
Optocouplers are used as digital switches to trigger the camera and flash guns. To help keep the circuit as simply as possible I use separate optocouplers. I also use stereo sockets throughout.

Shutter and focus triggers always fire together and is required by some cameras to trigger bulb mode. For example, on my Canon 40D, Bulb mode does not start when triggering the shutter only.

The circuit shows 4N25s (these are very common and very cheap) and similar chips (such s 4N26s) can be used. An optocoupler isolates one circuit from another. Using the 4N25 means the circuit on the dropController side is not electrically connected to the camera circuit and offers the camera a fair amount of protection. It is not 100% fool proof though, check the data sheets for the optocoupler you use for full details.

Connect the camera and flashes to the optocouplers only. The GNDs are not common so do not connect the camera and flash GNDs to the main circuit.

Solenoid valve triggers
The valves use a higher voltage than the camera and flashes and optocouplers like the 4N25 are not suitable, instead, mosfets are used. Like the optocouplers the mosfets are used as digital switches.


To switch the solenoid valves I am using IRL540N mosfets and any similar logic level mosfet can be used. You need a 5V logic level mosfet with a low RDS(on) value at 5v (ideally 4.5v or lower). The IRLZ44N is also suitable. I have a list I can publish if anybody wants it.

Flyback Diode
A solenoid is a electromagnet device and works by using a magnetic force to move a small piston (they are inductive). When the current is removed the magnetic fields collapses and the piston moves back. When the magnetic field collapses it also generates a voltage. This can be very high and if allowed to feed back to the main circuit could cause damage. To stop the feed back a flyback diode is used. The diode directs the current back to the solenoid until it dissipates.

Bluetooth Module
Either a HC-06 or HC-05 (in slave mode) can be used but I recommend the HC-06 because it it easier to set up. I also recommend getting the official HC-06 from hc-01/Waven. These have HC01 screen printed on the board and have an extra blue LED at top left. The module in the photos is not an official HC-06 though.

The Bluetooth module connects to the Arduino using software serial on pins A4 & A5 which are used as digital pins (D18 & D19). Power is delivered from the Arduino 5V pin.



Proto-board Version

If you want to build a more permanent device then proto-board is a good option. The one below was built before I removed the 2 sensors trigger connectors and the manual drain switches. If you are interested in the high speed photography trigger see the sensor mode page but bare in mind I am no longer developing this.

I tried to lay out the board in a logical fashion which I used as a stepping stone to creating a proper PCB.

Board with manual drain switches

And here is the board without the switches
dropController_2019-07-15 - perf_front_1600

Please note I am no longer developing the sensor trigger connections and these are no longer included in the circuit.

dropController_2019-07-15 - perf_back_1600
Excuse the messy soldering, I had to move a few things around.

Here is the perf board with connections.


Like the breadboard version, the RCA sockets and power jack is not perf board freindly and I had to drill larger holes to accomodate their pins.

Image taken from dropController V2.

If you want to build your own controller and don’t want to mess around with breadboards or perfboard you can buy a PCB.


Setting up a Bluetooth HC-06 module

I have a mini guide that explains how to set up the Bluetooth module.