There are 2 slightly different versions of the dropController. A breadboard version and a perf board version. The breadboard version has LEDs that show when the flash, camera and solenoids are active. Since the perf board version is designed to be put inside a project box it does not have the activity LEDs. Both work in the same way and use the same Arduino sketch.
Breadboard version of a 3 valve dropController
Perf Board Version of a 3 valve dropController
I now regret not keeping the valve drain switches and if I build another dropController I will include them.
Final Version of a 3 valve dropController
The dropController has been expanded to allow for up to 6 valves. The additional 3 valves connect to pins D4, D5, and D6 the same way as valves 1 to 3. See the circuit diagram for details.
Please note the build guides are for a 3 valve version. As of 15.05.2016 3 additional valves can now controlled. The additional valves connect to pins D4, D5, and D6.
D4 – valve number 4.
D5 – valve number 5.
D6 – valve number 6.
I don’t go in to the details on how to install/upload the sketch to the Arduino. This is covered by many many other sites and a Google search will get you started. The dropController sketch is developed in IDE version 1.6.3. If you have problems with later versions revert to 1.6.3.
Starting with version 009, the same sketch is used for USB and Bluetooth. To set which type of connection you are using, at about line 105 in the sketch, set the device type. The default is set for Bluetooth.
* _____ _ _ _ _ * / ____| | | | | | | (_) * | (___ ___ | | ___ ___ | |_ __| | ___ __ __ _ ___ ___ * \___ \ / _ \| | / _ \ / __|| __| / _` | / _ \\ \ / /| | / __|/ _ \ * ____) || __/| || __/| (__ | |_ | (_| || __/ \ V / | || (__| __/ * |_____/ \___||_| \___| \___| \__| \__,_| \___| \_/ |_| \___|\___| * * NOTES * The dropControllerPC app can now be used with the dropControllerBT device (as long as your PC has Bluetooth of course). * If using a usb connection - set DEVICE_TYPE = 1 * If using a Bluetooth connection - set DEVICE_TYPE = 2 */ const byte DEVICE_TYPE = 2;
If using USB connected to a computer, set DEVICE_TYPE = 1
If using Bluetooth (either with the Android app or a Windows PC), set DEVICE_TYPE = 2
I plan to add a hardware switch in a later version.
Almost any Bluetooth Classic (version 2/SSP) module that supports a serial connection can be used. The ones I have are HC-06s and HC-05s on the zs-040 breakout board.
Preparing the HC-05 or HC-06 Bluetooth module
The HC-05 or HC-06 Bluetooth module should be set to 9600 baud rate. Most new Bluetooth modules are 9600 but some may not be. If using an HC-05 then it should be used in slave mode.
If you are having problems take a look at www.martyncurrey.com. I have information on setting up and using various kinds of Bluetooth modules there.
I rename the Bluetooth modules to dropController (or sometimes dropControllerBT) so they are easy to identify when connecting.
Add a Bluetooth connection status LED
If you use a HC-05 that has a STATE pin you can add a blue LED that shows when Bluetooth is connected. The STATE pin goes HIGH when a connection is made so all you need is add a blue LED plus a suitable resistor to the Bluetooth STATE pin.
If your Bluetooth module does not have a STATE pin check to see if it has a MCU-INT pin on the small Bluetooth module (you will need to check the data sheet). This is usually the same as the STATE pin on the breakout board.
Additional Bluetooth Information
Before you can use the Android app you need to pair the dropController with the Android device you are using. The example below is from a Sony Z3 compact.
Bluetooth pairing the dropController
Turn on the dropController, the LED on the HC-06 should flash. The flashing means it is on but not connected.
On the Android device, turn on Bluetooth, go to the settings and select Bluetooth, then scan for devices.
Select the dropController, I have renamed the one I have to dropControllerBT, and enter the pass code. The default code for the HC-06 is 1234.
If the passcode is correct the dropController will be paired.
Start The App
To connect the app to the dropController device, click the Bluetooth button, this will bring up a list of the paired devices. Select the dropController from the list. Remember that the dropController has to be paired with the Android device before the app can connect to it.
After you have connected to the dropController device the Bluetooth button will change to show connected.
Clicking the Bluetooth button while connected allows you to disconnect.
Drop Data Edit Screen
This is the main screen for entering and changing the drop times.
To edit the drop data, click on the relevant drop data button.
The number of drops can be changed on the Settings screen. You can choose from 1 to 9 drops.
- SOL – the the solenoid valve number (1 to 6)
- START – the drop start time in milliseconds (0-9999). This is the time the valve opens.
- START INC – INC or DEC. Increase or decrease the start time every loop.
- START INC time – the amount of time (0-999) to increase or decrease the start time.
- SIZE – the drop size in milliseconds (0-9999). This is the amount of time the valve is open.
- SIZE INC – INC or DEC. Increase or decrease the size every loop.
- SIZE INC time – the amount of time (0-999) to increase or decrease the size.
- Flash Trigger – the flash trigger time in milliseconds (0-9999).
- Flash INC or DEC – increase or decrease the trigger time every loop.
- Flash INC time – the amount to increase or decrease the trigger time.
- Camera Trigger – the camera shutter trigger time in milliseconds (0-9999).
- Camera Trigger INC or DEC – increase or decrease the camera trigger time every loop
- Camera Trigger INC time – the amount to increase or decrease the trigger time.
When the camera shutter time is set to 0 bulb mode is activated. This will open the shutter at the start of the drop sequence and then close it after the flash has fired.
- Number of drops – from 1 to 9
- Number of valves – from 1 to 6 (not shown in the above image)
- Loop YES/NO – when YES is selected, the drop sequence will be repeated.
- Button or Timer – when in loop mode, you can select to wait for a button press or use a timer before the next sequence starts.
- Delay between loops – when using the timer, this is the time in milliseconds to wait before starting the next sequence of drops. There are 1000 milliseconds to a second. This mean 2000 = 2 seconds.
- Mirror lockup ON/OFF- Select YES if you want to use mirror lockup.
- Mirror lockup time – the time to wait after the mirror lockup command.
- Flash trigger pulse – this is the time in milliseconds the flash trigger signal will be active. 50ms is a good default value.
- Camera trigger pulse – the time in milliseconds the camera shutter trigger signal will be active. 50ms is a good default value.
- Sounds ON/OFF – turn annoying sounds on.
- RESET – reset all drop data to default values.
Mirror Lock Up
When mirror lock up is active, a pre-sequence shutter trigger will be issued. Your camera will need to be in mirror lock up mode. The mirror lock up time is the time to wait after the trigger signal. This allows time for the camera to raise the mirror and stop vibrating.
Automatically repeating / looping the drop sequence
When loop mode is active (Loop = YES) the drop sequence will automatically repeat. At the same time any INC or DEC values will be added or subtracted to the corresponding times.
Trouble shooting the Bluetooth Connection
If you are having problems getting the app to talk to the dropController you need to double check that the the Android device is connecting to the Bluetooth module and that the BT module is connected to the Arduino correctly.
When the Android device establishes a connection with the Bluetooth module the LED on the module will change. The change depends on the module you are using but on most HC-06s, for example, the LED will turn on (not flashing).
If you have a connection but still cannot get it to work the problem is likely to be the connections between the BT module and the Arduino or the baud rate. Firstly make sure the BT module is set to work at 9600 baud rate. If you are not sure about how to do this see the guides at www.martyncurrey.com.
There are 2 parts to the connection when using Bluetooth.
1. The Android device connecting to the Bluetooth module, and
2. the app connecting to the dropController/Arduino.
1. The Android device connects to the Bluetooth module. The LED on the BT module changes.
2. The app sends a HELLO message to the drop controller and waits for a reply.
3. The dropController gets the HELLO message and turns on the waiting LED (the yellow one)
4. The dropController sends back the HELLO message.
5. The app gets the reply and changes the BT button and the screen title to connected.
If the waiting LED on the dropController is not turning on then the dropController is not getting the HELLO message. Check the connection between the Arduino RX pin and BT TX pin.
If the LED is coming on but the BT button in the app is not changing then the app is not getting the reply. Check the connection between the Arduino TX pin and the Bluetooth modules RX pin. This is the one with the voltage divider.
Also check that the correct resistors have been used and that they are the right way around.
The Windows Program
The Windows program is written in Visual Basic Net and and you will need to have the net framework installed before you can run the program. The program is 32bit (runs on 64bit) and runs on Windows XP and up. Requires .NET framework 4.0 or above. The program does not need to be installed and is run from a folder. When it first runs it will create 2 text files; one for the settings and one for the drop data.
Select the COM port and click Connect. You need to know this before hand.
The program will attempt to connect to the dropController device
Once connected the Connect button becomes a Dis-connect button. The large START button becomes active.
Select the desired number of drops (max 9) and the number of valves (max 6).
The Loop Page. The Loop Page is only active when in Loop Mode.
The Loop Page showing 3 drops and the timer.
The Loop Page showing the timer waiting for the next sequence to start.
The Loop Page showing an active sequence.
For more information about the Windows app see the dropController Windows app help page
Getting Started Photographing Drops
Comments are now closed. Please use the forum to ask questions.