Practical Arduino Quench Control - Part 2

The next step was to be able to control the power output of the strobe. The Nikonos TTL wired interface provides a Q (quench) signal line. This is used to instruct the strobe to stop firing. If the Q line is unused the strobe will fire a full dump each time it is triggered. If the Q line is dragged low after the X line then the strobe will stop firing. The longer you wait to assert low on Q the longer the strobe dump is. If you wait too long to assert low on Q then the strobe will perform a full dump. This all works when the strobe is in TTL mode. If the strobe is in manual mode, the Q signal line is ignored.

The logic to control the Q line was easily duplicated from my X line control logic. The tricky part was figuring out the time delay for the Q signal in relation to strobe power output. This took a series of experiments were I added some Arduino code that would automatically step through a range of Q delay values. This allowed me to establish minimum and maximum Q assertion delays. The minimum delay always allows the strobe enough time to consistently fire. The maximum delay occurred at the point where the strobe did a full dump. The full dump point was easy to detect as the YS50 strobe has a builtin "TTL" indicator (well not really). A green LED is turned on if the strobe thinks it performed proper TTL. It isn't a true TTL indicator. The strobe has no idea if TTL was achieved. The LED is turned on anytime the strobe does NOT perform a full dump. So the LED is really a not-full-dump indicator.

I now had a basic Arduino Quench control program that could be triggered via a push button switch and a means to have the strobe provide different levels of power. But no external control over the power level - we will get to that in a later post.

Next on the list was continuous fire mode. This is required if I wanted to support burst mode in the camera. I needed to be able to repeatedly trigger the strobe in rapid succession.

The concept was simple: press and hold the push button - have the strobe fire, recharge, fire, recharge, fire, repeat until the button was released. So I added some simple logic to to support this cyclic firing. And once again a simple concept presented a nasty edge case.

On a full power setting the YS50 strobe was taking 2 to 4 seconds to recharge (depending upon battery charge level). So it could cycle once every 2 seconds at the fastest. Push the button, hold it for 3 seconds and I would get 2 fires of the strobe. Push and release it quickly and I got a single fire of the strobe. All was well - it works as expected. I then tried it on a low power setting and found I was getting an irregular number of strobe fires each time I pressed the button.  I was unable to achieve just 1 strobe fire at low power. The strobe could fire, recharge and fire again faster than I could press and release the button. My finger was not fast enough to release the push button before the strobe fired several times.

The only viable solution was to implement a minimal strobe re-fire interval. I arbitrarily picked 10 flashes per second as a maximum fire rate, which meant a minimum interval of 0.1 seconds. This mostly fixed my problem, but this is definitely an open problem that I will need to readdress once I switch to camera control of the strobe.