What are Scatter Charts?

I was recently involved in a situation where we needed a simple graph to depict the likelihood of an event versus the impact of that event. All we needed was a simple 5 x 5 grid showing a bunch of data points. Both the X axis and the Y axis would have labels like Very Low, Low, Medium, High, Very High. We needed a Scatter Chart. I have seen lots of them. Nothing special. We just needed to add a graph to a Drupal system and generate dynamic graphs based upon data in the system. This should be simple.

Don't Forget the Camera!

My test rig and YS50 mule strobe were all working fine. It was now time to get serious and start to hook it up to real equipment.

At first I thought I should tackle jamming the Arduino into the Sea & Sea TTL converter housing. But I decided that I needed 100% confidence in my setup before I started to solder wires to the Arduino. Soldering was a final commitment.

So the next step was to include a real camera into the setup. This required more brain power than I anticipated.

Practical Arduino Quench Control - Part 3

The next step was to hook my Arduino Quench program to a real power level control switch. Seems easy, but once again I hit some interesting potholes along the way.

The Sea & Sea TTL converter housing came with 3 rotating controls:

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.

Practical Arduino Quench Control - Part 1

Now that I had determined how to properly structure my real-time code for the Arduino, it was time to start controlling my strobe.

Practical Arduino Real-Time Control - Part 2

Inconsistent test results meant that I needed to step back and examine how I was using the Arduino. Due to the single threaded nature of the runtime environment, I was forced to use a single loop function to handle all inputs and outputs. I now needed to make the loop execute on a consistent basis in order to provide real-time behaviour.

This caused me to adopt a more sophisticated approach to my Quench control program loop:


Practical Arduino Real-Time Control - Part 1

My Arduino Quench program was intended to provide control of the power level of the attached strobe(s). My initial attempt had a few challenges: the majority of them related to timing issues. I had lost my real-time control mojo.

My problems stemmed from a few areas:

  • unfamiliarity with the Arduino runtime environment
  • uncertainty over control timing of the Sea & Sea strobe(s) (see later posts...)

This post will focus on the first issue: real-time Arduino programming.

Strobe Quench Controller Operational Theory

I now needed to transform my Sea & Sea TTL converter into an open loop manual power controller for my YS110 strobes. This would provide a single point of power level control so that I did not need to individually adjust the built-in power knob on both of my strobes. Supporting the Canon eTTL protocol was shuffled to the back burner for a while.

The physical TTL converter provided the following features:

Strobe Quench Basics

My focus now switched to creating a simple Arduino based controller that would allow me to manually adjust the power (light) output of my Sea & Sea YS110 strobes from a single control on my re-purposed Sea & Sea TTL converter housing.

Let's talk theory first. My strobes (and many others) still support the ancient Nikonos analog TTL protocol via a wired connector. The Nikonos protocol depends upon

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.


Subscribe to KWGiffen & Associates RSS