Canon eTTL Protocol

The Nikonos analog TTL protocol is relatively simple and has been reverse engineered by a number of scuba strobe manufacturers. The X contact is used to start the strobe dump and the Q contact is used to stop it. That's about it.

But it is rather limited in what it can accomplish. Advanced everyday things like zoom head flashes can not be supported. The answer to this problem is "digital". Different camera manufacturers developed their own camera-to-flash digital protocol. A quick skim of this Canon patent might help to give you an idea of the potential complexity of the digital protocols.

These protocols are closely guarded trade secrets. The camera manufacturers do not publish any details or respond to enquiries. This makes it very hard for a third party to produce a compatible flash. Have a Nikon camera? Buy a Nikon flash. Have a Canon camera? Buy a Canon flash.There are a few third party manufacturers ( Yongnuo is an example) that have reverse engineered portions of the digital protocol. This normally results in flash products that are not full featured and may not work with all camera models.

The following image depicts a modern Canon digital hot shoe. It has different contacts than a Nikon digital hot shoe.

EOS 350D Hot-Shoe

So what do the various contacts do?

A web search turns up very little relevant hits. After sifting down through the results I discovered the following gold mine of information authored by Bill Grundmann way back in 2009. Bill wanted to do something similar and had worked out some of the basics. He has a series of blog posts that cover his investigation into things like the electrical interface, contact use and the digital protocol. His work was based upon some earlier work that is no longer accessible on the web. I also found a page which provides information on the hot shoe contacts.

One thing Bill noted is that his protocol findings differed from the results of the earlier work. He was finding both new and altered messages. It makes perfect sense that as time progresses, new messages would be created to support new features. It also makes sense that some features may be camera / flash specific.

So with Bill's work as a starting point, all I had to do was create an eTTL decoder...