Like with many other software development projects, while writing the application, many new features pop up. I decided to implement basic features first and based on the results and experience of the first photo sessions build new releases. Currently the application has the following features:
Version 0.19 – updated 6 august 2011
(download link at the end of this article)
- LCD Display Control
- 16 keys matrix keypad
- 1 x flash trigger output
- 1 x autofocus & 1 x shutter output
- 1 x water valve output
- 1 x analog input for sound & light detection sensor
- Basic waterdrop program
- Auto increment time between drop creation and taking photo
- Auto increment time between two drops
- Auto increment size of waterdrops
- Sound detection
- Lightning detection
- Store values in EEPROM
- Load values from EEPROM
- Erase EEPROM values
- Configuration Menu – save basic values
- Possibility to enter some values on 0.1 millisecond accurate.
In the basic program you enter the waterdrop size (time to open valve), time between creating waterdrop and taking a photo (trigger flash), number of waterdrops, time between drops, number of photocycles. You can also enter the index number of the last photo taken by the camera. This can be very useful to find the specific settings with a specific photo.
Within the three auto increment programs you also enter the increment value. i.e. Auto increment time with 5 milliseconds. The program will run the number of photo cycles and take a picture. It will increment the photo index number.
Using the store values in EEPROM menu you can save the settings used to create a specific photo. Just enter the number of the photo (your camera usually stores this in the filename) and save the settings. Every time a photo is taken, the used settings are stored within the EEPROM. Settings up to 39 photos can be stored. Users can flag any of those settings to skip them in an EEPROM erase cycle. This way you can keep succesful settings while you can still erase useless settings. In the future it might be nice to add external EEPROM memory.
(Storing information in EEPROM has its limits. The EEPROM can be written 100.000 times, after that it might become defective. This means in theory that after taking 100.000 photo’s (depending on the new program maybe 400.000 photo’s) you have to buy a new Atmel processor. They cost 5 euro’s and 100.000 photo’s is also the estimated lifetime of a regular dSLR mirror mechanism, so I would worry more about buying a new camera ;-)).
It’s now possible to enter values on 0,1 millisecond accurate. (Time between two drops and the time between releasing a drop and taking a shot). I expect that an effective accuracy of 0.5 millisecond is more realistic but it might be the difference between a nice picture and a great picture :-).
After one evening using my initial program, I found some possible improvements which have to be implemented.
- Possibility to use different dropsizes within one cycle (enter value for 2nd dropsize implemented since v0.18)
- When easily possible, make the increment programs also accept negative numbers, making it effectivly a decrease
- when memory size allows it, add control by using PC over Serial port
- Use EthernetShield and control from PC or webpage
- Think about making the valve movable (just like inkjet printer head) to create drops next to each other.
- optimize the questions asked in the menus. (i.e. when only creating 1 drop, don’t ask for time between drops = implemented in v0.19)
- Add possibility of Next/Prev within a program.
Please leave a ‘thank you’ comment when you download the source code. Just let me know what you are building, your progress, and so on. Enjoy building!
[…] Application […]
pls send copy of source code as offered in your blog.
Thanks for sharing your setup. I’m currently using the Hiviz.com kits for controlling my shutter and off camera flash, but would like to add in the use a solenoid valve to better control my drops. Would you mind sharing more info on the programming you used with the microcontoller, especially in relation to the valve? I have some basic knowledge of circuits, but really have no idea where to start here.
What exactly do you want to know? Did you look at all my pages on the waterdrop device? Schematics are displayed there.
Programming is easy. Connect the valve to your mictrocontroller using my circuit. In your program it is: make outputport 1, wait x milliseconds, set outputport 0. I’ll send you my sourcecode.
Hi, I found your article most interesting and have taken to building and using the Arduino for my photography. Please would you be kind enough to send me a copy of the source code etc. Many Thanks and I look forward to building your project and taking better quality High Speed photos. Kind Regards Robert.
Nice to hear you enjoyed the article. I’m sure you will do fine taking highspeed photos.
I’ll send you the sources by email tonight.
Hi Alexander, Nice idea and great article. I have decided to have a go at building one. Would you please let me have a copy of you code.
Source code is send to your email. let me know how you are doing building your device.
Ik ben een vergelijkbare setup aan het maken gebaseerd op een pic microcontroller. Kan ik een kopie van jouw sourcecode krijgen om wat inspiratie op te doen?
Source code komt per mail jou kant op.
Hi Again Alex,
Please would you be kind enough to send me a copy of the latest source code as I am about to complete the building of my unit.
I have v 0.18 but now see you have amended this with v 0.19
Many Thanks and Kind Regards Robert
I’ll send you new source code by email.
Thanks for your note on the wrong URL.
Hi Alex, Many thanks for your responce.
Hoi Alexander, dit is precies de setup die ik zelf ook wil bouwen. Ik ben nu zover dat ik een frame heb met lasers en een in de basis werkende Arduino eraan, maar verder ben ik nog niet. Nu moet ik steeds alle wijzigingen in de code maken en die opnieuw uploaden. Als ik jou werk zie dan kan ik opmaken dat jij het stukken beter in de vingers hebt dan ik. Zou ik ook mee mogen liften op jou source code? Alvast bedankt, Huibrecht
Source code staat in je mail 😉
Succes en laat me weten wat je resultaat is geworden
Just came across your blog.
I currently use the “Camera Axe” for water drop shots, but am intrigued with your set-up…am getting the components to build per your specs.
Please send me the source code.
Source codes are in your email !
i was looking for project like this. i have arduino duo and i have nikon d7000. can u send me code and schematic as it is not clear to which pin i have to connect control camera and flash and valve.
I’ve send the source code to your email. The definition of the pins can be found in the source code. You are flexible in defining the pins as long as you use the same type of pins (like analog pins for analog and digital for digital output, and so on).
Currently it is defined as shown below:
//Definition of the pins.
const int ValvePin = 11; // the number of the Valve pin
const int FlashPin = 10; // the number of the Flash Trigger pin
const int ShutterPin = 9; // the number of the camera shutter pin
const int AutoFocusPin = 8; // the number of the Autofocus pin
const int KeyPadPin = A0; // the number of the analog Keyboard pin
const int AnalogPin1 = A1; // the number of the Analog sound detection pin
Enjoy building your device.
Could you send me the source code, I am very interested in your project.
Source code is in your mailbox.
Thanks for a nice site with usefull info. Can you please mail me the cource code? Thanks!
Code is on it’s way
I am currently building an assembly can a near identical
would it be possible to have your code to do some testing
I thank you in advance
Sourcecode is in your mailbox.
Hi Alex – have taken information from all over the web on building an Arduino based water drop photography controller and yours is the closest match to what I have in mind. I actually intend to expand it a little and control 3 valves and 2 Speedlights. I particularly like your feature of storing ‘drop parameters’ against the photo file number. Very useful for progression and review!
Be really grateful for your source code!
Keep up the good work!
Sourcecode is in your mailbox
Good detail I built one and need source code please!
The source code is in your mailbox
Great write up and work. I am trying to build a droplet unit too. Can you please share your source code to me!
it’s in your mail 😉
Sorry to bother you again. Can you please resend the code to me, because for some reason, I didn’t get it:(
Should have it now ;-).
If not, let me know.
I don’t know what’s wrong with my email, so I used a different email address. Please try it again.
I finally got it. It went to my junk mail, but it’s all good now. thank you very much.
Great write up and work. I am trying to build a droplet unit too. Can you please share your source code to me!
It’s in your email now 😉
Im looking at building this kind of device, Could you please send me a copy of the code so I can give it a go.
Source code is in your email.
Hi There, could you please send me a copy of the code.
Source code is in your mail
Sounds exactly like a project that I’ve started on, is it possisble to get a copy of the code?
a copy of the source is in your mail!
Thanks for very nice site and usefull info. Pictures you have taken are creat.
Can you please mail me the cource code? Thanks!
Sourcecode is in your email now.
I like your project and wish to build the circuit. ¿Can you please mail me the source code?
Thank you for sharing this info.
I’d love to see your source code too please!
I’ve send it to your mail
Excellent shots…you’ve generated my interests on the subject. Could you provide your source code?
It’s in your mail
Hi Alexander, great article.
I am looking at creating a drop control controller using the MSP-430 launchpad, now that it supports the Wiring coding through Energia. I would appreciate looking at your code on how you handled some of the controls.
It’s in your mail too
Alexander, wonderful shots, I’d like to try to shoot this kind of photos. Could you send me your source code? Thank’s in advance.
It’s send to your mail
The functionality of indexing the photos is great.
Your project is the only one I have come across which uses the keypad input -exactly what I need.
I would be grateful if you would send me the source code.
It’s in your mailbox!
I’m building one of these my self could you please send the source code for me please so I can get it working 🙂
It’s in your mailbox
Could I also have your source code?
it should be in your mailbox now
I’m planning to start putting this together this weekend. Would you be willing to share your source code with me? Thanks for blogging about what you’ve learned! 😉
Link should be in your mailbox now 😉
Ik zou graag een blik op je Sources werpen. Ik heb e.e.a. Werkend maar mijn seriële verbinding hapert. Ben benieuwd hoe jij dat doet. Bedankt alvast !
Would you be good enough to send me your source code too – i am using a HiViz trigger controller.
Also can you select more than 2 drops?
Source is in your mailbox. Yes you can select multiple drops although I’m not sure anymore if it will use equal delays between drops or that you can select other delays. Haven’t used it for quite some time anymore 🙁
Today I decided to put a download link on the site. I get so many requests for the source code that it’s not efficient anymore to do it manually. I’m excited by the many requests I’ve received and hope that you all can enjoy building your own waterdrop device!
Nice, was working on manual and don’t have proper co-ordination. I am looking to create one like yours. Can you please send me the source code? I love your idea, rather than spending more money on it.
you can download the sourcecode from the webpage you visited.
good luck !
Thank you very much
Is there link for the application code? i read the article but did not find the link at the end. can you please email?
thank you very much,
Links are back on the site again. I disabled the plugin because of the new template. 🙁
I’ll send you an email with the source too.