Pivot! Decoder -> Quench

My prior work had established a reference set of data messages exchanged between my Canon G16 and a 430EX II flash. Now all I had to do was workup an Arduino program to mimic a 430EX II to the G16 and mimic a Nikonos camera to my Sea & Sea YS 110 strobes.

So far I had been focused on the Canon G16 digital side of my problem. I considered the strobe side to be simple. So I had ignored it. I had focused on developing a Sniffer program that would characterize the G16 to 430EX II protocol. Next step was to think about the big picture decoder problem.

My work on the Sniffer revealed that I was pushing the speed limits of the Arduino (at least the way I was using it...more on that later?). My sniffer was bit bashing and sometimes gave inconsistent data values for the same operations. Adding analog control of the strobes on top seemed risky.

I utilize my strobes in manual mode so that I can dictate the light output. I adjust the power output of each strobe via a knob on the back of the strobe. My strobes are mounted at the end of long arms on each side of my camera housing. This means that I have to reach left and right to each strobe for every power adjustment. A single power level knob located close to the camera would simplify my life.

An interesting eBay opportunity provided the nudge for me to rethink my problem. I managed to acquire a used Sea & Sea TTL converter. My interest in this device was only for the physical housing and controls. The behaviour of the internal microcontroller would not be compatible with my G16 camera. But it was big enough to hold an Arduino so I could replace the controller with my own.

So I did a pivot and changed direction. Slightly. I split my problem into 2 distinct slightly less complex problems:

  • controlling the strobes
  • handling Canon's eTTL protocol

First I needed to be able to control the strobes. Controlling them intelligently from my G16 could come afterwards. I switched my attention from the bleeding edge digital world of Canon G16 eTTL protocol to the archaic world of analog Nikonos TTL protocol.

My next step became creating an Arduino controller that would replace the obsolete "smarts" inside the Sea & Sea TTL converter. In theory strobe control should not be that difficult. Just 2 analog signal lines. Fire the strobe, then when enough light has been produced, quench the strobe.

Simple...All I needed was a small Arduino program to fire and Quench the strobes