dropController Circuit

Circuit 3.6 – Updated 01-09-2019



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.

Download a hires image of the above circuit.

For anybody who prefers a more professional diagram.
PDF here.

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

Parts List

1 x Arduino Nano V3
1 x LM2596s DC to DC step down buck converter (or similar)
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 / Terminal contacts
4 x 3.5mm stereo socket – PJ-307 3.5mm stereo connector
5 x 4N25 optocoupler (or similar)
6 x IRL540N mosfet (or similar. I also use the IRLZ44N).
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

Many of the components (if not all) can be swapped with alternatives. This includes the mosfets, the optocouplers, the sockets, and even the Arduino and the Bluetooth module.

The circuit allows the use of 12v and 24v power input. This means the same circuit can be used with either 12v valves or 24v valves. I do not recommend mixing valves of different voltages on the same circuit. Match the valves to the power supply; 12v power with 12v valves, and 24v power with 24v valves.


Valve Control & Mosfets

The solenoid valves recieve power from the VCC in (either 12v or 24v) and are controlled using a mosfet which in turn is controlled from the Arduino. In this way the mosfets are used as digital switches turning the valve on and off.
I am using IRL540N mosfets but there are many alternatives. The mosfet needs to be logic level with a low RDSon at 5V/4.5V and more than able to handle the voltage used to drive the valves (drain-to-Source Breakdown Voltage). Always add a bit more, so if you are using 24v power supply use a mosfet able to handle 30+ volts (this would be my very minimum for 24v). The IRL540n has a drain-to-Source Breakdown Voltage of 100v so plenty of safety margin.

You can think of the mosfet as a digital switch (very simplified overview), when there is a voltage on the Gate pin current is allowed to flow between the Source and the Drain pins.

Mosfets are voltage driven rather than current driven devices and you may get away without the 200ohm gate resistor. I like to error on the side of caution though. Although mosfest a voltage driven, when a voltage is first applied to the gate pin, the mosfet can act like a capacitor and for a very short time draw quite a lot of current. The 200ohm resistor slows this down a bit and keeps the Arduino from destroying itself.

The 10K resistor pulls the pin to ground when it is not used and should be included. For one, it prevents the pin floating and causing ghost activity and for two, it stops the mosfet from going in to an undefined state which is basically a resistor and has the potential to burn up.


Triggers & 4N25s

The circuit has 4 triggers; one camera (focus and shutter) and 3 flash. In almost all cases only one flash trigger is used for water drop photography and the additional 2 can be left out if desired.
To isolate the camera and flash guns from the main dropController circuit 4N25 optocouplers are used. These offer some basic protection but are not 100% fool proof. When used with low voltages such as the dropController and modern digital cameras and flash guns they work well but if a large enough voltage is applied to the optocopler is can short and cause damage.
As with the mosfets the 4N25s are used as digital switches. When a current is applied between pins 1 and 2, current is allowed to flow between pins 5 and 4. The main difference between the 4N25 and the mosfet is that with the 4N25 the 2 sides of the circuit do not touch (with the mosfet the ground is common). The 4N25 controls a separate circuit without having contact with it.

There are many alternative optocouplers that can be used, including others in the 4N2x range (4N26, 4N27) and the 4N3x range. All are cheap and readily available.

Note: I have started using 4N35s.



The dropController circuit has three voltages; 24v, 8 or 9v, and 5v. The 24v powers the valves, the 8/9v powers the Arduino, and the 5v powers the Bluetooth module, the mosfets, and the optocouplers.
– 24v is the main power in
– 8/9v is the output voltage from the buck converter
– 5v is the output from the Arduino

The on/off switch is optional.


DC-DC Step Down Buck Converter

To drop the 24v to 8/9v to power the Arduino I have settled on small DC-DC step down buck converters. I use specific models but any converter that accepts 24v+ (ideally 30v+, most are 36v to 48v) input and allows 8v or 9v out will be OK. Output from the buck converter goes to the Arduino.

The vcc out from the buck converter goes to the Arduino vin pin. The vin pin can safely accept anywhere from 7v to 12v so although I suggest to set the buck converter to 8v or 9v it is not critical to get it exact. The vin pin on the Arduino connects to an onboard voltage regulator which, to work correctly requires at least 6v and this is the lowest you should aim for. A little hight is better.
Don’t forget the diode. This has a voltage drop of around 0.7v so you should have a minimum of 6.7v coming out of the buck converter. I rounded up to 8v and later found nice fixed 9v output buck converters so went up to 9v.



When I first started developing the dropController I used LM7805s and then later LM7808s. My early devices were 12v and used 12v valves and for 12v power LM7805/8 work fine, however, when used with 24v they get very hot, hotter than I was happy with so I stopped using them. 12v to 8v is fine. 24v to 8v requires a lot of extra work and all that extra work turns to heat. Besides, the cost between a pre-made buck converter and a circuit using a LM7805/LM7808 is almost the same and buck converters are far more efficient and do not create any where near the same amount of heat.

The voltages are within spec of the LM7808 but they get hot when used with 24v and some kind of heat sink is required. I found they became hotter than I was comfortable with and so I do not recommend using them. With an ambient temperature of 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.


1N4007 Diode

The 1N4007 diode is used for polarity protection for when the Arduino is connected to a computer via USB and an external power supply at the same time.

I experienced issues with one of my computers. When the Arduino was connected to the PC by usb and also had an external power source, the PC crashed with a BSOD when I disconnected the Arduino from the usb.
The computer worked fine while the Arduino was connected and only crashed when I pulled the usb out. The diode solved the issue.


Bluetooth Module

Although the circuit and parts list shows a HC-06 a HC-05 in slave mode can also be used, however, I recommend only the HC-06 because it is a lot easier to set up and work with and many modules do not need to be changed from the default settings. If you want to set up one all you really need to do is change the name.

There are many different versions on the HC-06 and I believe all will work with the dropController, as will any Bluetooth Classic (BT 2.1) module that interfaces using UART 8-N-1 at 9600 baud rate.

Until recently most HC-06 module breakout boards had 3.3v receive (RX) and transmit (TX) pins which are not fully compatible with a 5v Arduino, therefore, I used a voltage divider (the 1K and 2K resistors) to lower the Arduino’s 5v TX pin to the BT modules 3.3v RX pin. Some of the newer module breakout boards (such as the HC01/Wavesen modules) are 5v tolerant and if you have one of these modules there is no need for the voltage divider. If you are not sure leave it in. It will not effect the circuit.

The Bluetooth RX pin is not normally 5v tolerant and so I use a voltage divider to reduce the Arduino’s 5v TX pin to 3.3v. We do not need a voltage converter on the other pin as the Arduino will read 3.3v as HIGH (the same as 5v) and so the Bluetooth TX pin can be connected directly to the Arduino RX pin.

NOTE: The actual Bluetooth module, the small daughter board is always a 3.3v device. There are many different breakout boards (the larger mother board and most do not change the voltage on the RX and TX pins, some do however.

These are the Wavesen/HC01 HC-06 modules I use which come on HC breakout boards that are are 5v tolerant on the RX and TX pins. This means you do not need to use the voltage divider. However, if you have already built the circuit with a voltage divider in place then you can leave it.

Here is the Wavesen/HC01 Bluetooth module on the very popular zs-040 breakout board. The RX and TX pins are 3.3v and should be used with a voltage divider.

Here is a noname Bluetooth module using the same zs-040 breakout board. The RX and TX pins on the zs-040 boards are 3.3v only.

If you plan to use the dropController with a PC only (no Android) then the buck converter and the Bluetooth module are not required.