Feature

When Tech Meets Art

High-Speed Water Valve & Camera Controller

Peter Lin and Craig Kenyon

Issue 1, July 2017

As you’ve been looking through the DIYODE website, it’s probably no surprise we’re big fans of creative photography. But we found something really unique, and it was prototyped on Arduino!

Initially, we came across this amazing high speed timing system through a local photographer, Craig Kenyon, who had been winning awards for his stunning droplet photography. Craig built a great system to develop his style ­– and the resulting photos were what caught our eye. When we contacted Craig, thinking he was the one who built the controller, to our surprise he referred us to Peter Lin, who developed the base controller and valve system that Craig was using. We caught up with the two of them: with Peter, to chat about the design and development of the controller itself and then Craig, to explore the end-user experience.

Developing the System

Your high-speed water drop timing circuit is fantastic. What inspired you to start developing it, and how did you go about designing it?

There were some groups on Flickr where a lot of people were playing with water drop photography. I designed a simple circuit back in 2006, but it was just a simple circuit; a bit better than manual drop operation, where you use an eye dropper to drop water and then manually trigger the camera. It was hard to use, though better than manual drop (as my current circuit detects a laser beam and has timing delays). 

An earlier version of the 6-valve controller
An earlier version of the 6-valve controller.

There was another water drop machine, which I think is called “Time Machine”, but it was out of my budget so I didn’t buy it. After I moved back to China, I found making PCBs really easy and cheap, so I decided to design one for myself. I actually went on Kickstarter and got that project funded. Later, I designed a better, more powerful one. The best feature of my water drop machines is the use of a remote control. With most other machines, the user has to physically touch the controller and push buttons; however mine uses a small IR remote control that acts like a keyboard, making it very easy. 

Photo Timer-Unit with Bowl

You raised over $20,000 on Kickstarter – such a great result! Do you have any tips for a hobbyist who is looking to take their prototype commercial using crowdfunding, such as Kickstarter?

The only tip I have, is to make a good presentation video. Although later on, I also found out that having a good project is not enough – you also need good promotion. 

Definitely good advice. Obviously you found some demand for them anyway. Were there any challenges turning it from a prototype into a commercial kit?

I found them back in 2006 and like I said, there are a lot of people doing water drops. I did not think about commercialising it, but having a project funded by Kickstarter seemed like a pretty good idea, so I went for it. Even now, I still have this idea of helping water drop artists by providing an easy-to-use system with high quality parts. For example, the Shako valves I use are considered to be the best. They cost about three times more than other vendors’ valves, but I offer them at a competitive price. 

What microprocessor are you using, and did it change between prototype and commercial product?

The microprocessor for the three valve controller uses PIC16F1847, and the six valve controller uses ATmega328P, the same as Arduino uses in many of their boards. In fact, it was developed with Arduino first, and then ported over to a stand alone unit.

Close up of trigger

Photo Timer Controller

It’s definitely versatile, and does make any transition from an Arduino board to a production board relatively straight forward. You interface with multiple camera models. Were there any challenges in creating the universal interface?  

No, it’s not as much of challenge as finding the right commercial cables for the right camera!

How accurate is the timing on the valves and shutter? Do you have to compensate for hardware responding at different rates?

With the three valve controller, timing is very accurate. The basic timing element is 1ms and at 16MHz, so executing loops for three valves is not big deal; in fact, I think I still have some spare computing power left. The key part is utilising the machine code. Of course, if two valves are supposed to open at same time, there will be some difference between them, but the timing difference should be minimal; maybe 0.1ms per 100µs or even less. With the six valve controller you can change the basic timing element – I call it a tick – to be as little as 100µs or 0.1ms. Executing loops for six valves in 100µs is not a problem at all since ATmega328P is very fast (running one instruction per cycle), so you can run 16 million instructions per second.

Craig's DIY frame, used to mount the trigger hardware
Craig's DIY frame, used to mount the trigger hardware.

Very true - that’s extremely fast for relatively simple functions. Have you considered any other applications for your precision timing circuit?

No, but if there is a need, the code bases I have built will be handy.

What’s the most fun or impressive thing you have seen someone do with one of your kits?

I am very happy to see a lot of users creating amazing photographs, winning awards and the like. Craig is one such user.

Yes! We were hugely impressed with how Craig’s used your controller to create award-winning artwork (more on this later). The remote control is a great feature, and presumably eliminates the need for onboard controls. Were there any challenges developing an intuitive infrared-controlled interface?

The remote control is not hard to decode. I didn’t even use any tools like a logic analyser or oscilliscope to decode it. I just used Arduino to decode the time and that was it. Having the IR remote eliminates a lot of physical buttons and I can use less of an MCU (memory controller unit). It greatly reduced circuitry and simplified the design. The MCU only needs one pin, compared to other designs that use an onboard hardware control interface, which may require up to 10 pins.

I/O is definitely the limitation on many developments, so infrared control was definitely the way to go! We can see there’s some other creative products in your range. Is there anything currently in development that you can share with us?

Yeah, I just finished some circuits that will use a speaker to move things at micro level.

Wow! Even more interesting ways to create stunning images! We can’t wait to see what you do with it, Peter!

Timer base
Water doesn't just have to drop. Here they're rigged for gravity-defying operation.

The System in Use...

While Peter is the creator behind the control system, Craig is using the technology to create artwork – and it’s stunning.

Thanks for chatting to us, Craig. How long have you been a photographer?

I have been a serious photographer for four years, and I have really loved the journey it has taken me on. I have always had a love for art.

Did you attempt water drop photography manually, before purchasing a controller?

I never tried water drops manually, but I did do other types of high-speed photography, such as dropping fruit into an aquarium and freezing the motion with a flash. I started photographing water drops using a different brand, so I was very pleased with my purchase of the MJKZZ and its ease of use.

You built your own framework for your setup – are we seeing version 1, or did it go through different upgrades?

My original frame was given to me, but at one stage I did modify it to improve stability. Currently, I’m dreaming up a new frame, which includes sliding acrylic walls that can easily be cleaned.

Mexican Clown by Craig Kenyon
Mexican Clown by Craig Kenyon.

That would certainly make clean up faster! This sort of photography may seem simple, but there’s also a lot of finesse in the compounds being used. Have you refined your mixtures, or is it a constant evolution?

I am always trying new ratios for my mixes. Liquids have so many secrets and just when I think that I have something worked out, the liquids will prove me wrong! I have recently been working with methylcellulose powder, which is a good alternative to xanthum gum or the like; it keeps well in the fridge and doesn’t smell after a while, like some gums do. I have found using a blender to mix one teaspoon of the powder to 1.5L of warm water works well.

That’s great info for those wanting to have a go. Your water drop photography is so eye-catching. What official attention has it received?

One of my prints was recently named Best Exhibit at a local exhibition. This has made me want to enter more art shows, because apart from social media, I haven’t really put myself out there.

Congratulations, Craig – that’s fantastic! What’s your all-time favourite image you’ve created, using this technology?

My favourite image would have to be "The Rose". I was messing around with timings at the end of a session and had a happy accident. It is an image that I feel a lot of people would love.

It is amazing! We’re big fans of your work! Were you a Kickstarter backer, or did you purchase the controller from Peter’s website?

My first experience was from a single valve kit that was loaned to me. After I figured out how to get collisions, I just had to get myself a kit. I did a lot of research and stumbled across the MJKZZ Flickr group. I loved the sound of this kit and the fact that it used the most highly recommended valves, so I sold my Canon 7D and purchased the kit – the Kickstarter campaign had finished by this time.

What other tips can you share, for anyone looking to create art using this technology?

If you want to get started in this art form, search for Corrie White’s eBook about “liquid art”. This book is great and I highly recommend it to any newcomer. I also recommend watching slow motion videos of water drop collisions on YouTube, as it helps unveil the mystery behind the formations. Lastly, remember that patience is a virtue. 

Thanks so much, Craig. We look forward to keeping an eye on what comes next, from you.

The Rose
"The Rose" by Craig Kenyon.

What is it: I/O Explained

I/O refers to “input/output”. Any data terminal on an Arduino board, Raspberry Pi, or anything that can be used to transmit or receive data (one way or another), is referred to as “I/O”. I/O signals can be digital (on/off) or analogue (anywhere in between), as well as advanced options such as Pulse Width Modulation (PWM) and serial (loads of data streaming through the one connection).

These signals can be “read” by the device (some other hardware providing a value to be read), or set to a desired output (with some other device using the output to perform a function of some sort).

I/O is a little like railway tracks. There should only ever be as many trains, as there are different train lines. Trains can go either way, and you can have trains following each other down the line, but you can't have two trains on the same part of the track.

Perhaps the most powerful solution to this problem is serial communication. It's like multiple trains following each other on one track. You're using one I/O port to transmit or receive a sequence of data.