Strobit Triggr and Canons E-TTL

Seeing as I’m a canon person as far as bodies and lens goes I thought I’d look into the E-TTL protocol and how the camera body and the flash can talk to each other.

I’m not looking to completely implement the E-TTL protocol in the Strobit Triggr, (well not yet anyway), but more along the lines of fooling the camera body that I have an E-TTL capable strobe attached and thus enable high speed sync mode.  If we know what the sequence is between the camera and the flash is, then  I can play around with the timing of the Strobit Triggers.  Why do we need to do this?

  1. By not using E-TTL we are then limited to standard hotshoe only sync speeds,  so when the camera triggers the hotshoe we are at least guaranteed 1/60 – 1/250 etc rather than some higher sync speeds like 1/1000 or more.
  2. Wireless as a transmission medium has some inherent lag due to the physical properties (i.e. air) so if we can fool the camera I have a high speed strobe attached and so enable high speed sync mode, the camera triggers will still be out of sync due to this lag.  So with some knowledge of the basic E-TTL sequence and by playing around with the timing I should be able to get the Strobit Triggrs to fire early, before the actual camera fires and still be in sync with the high speed shutter.

While I’m waiting for the boards I will look at playing around with this idea, I’ve just ordered a cheap canon E-TTL flash extension cord (http://www.dealextreme.com/details.dx/sku.19612) so I can gain access to the hotshoe contacts easily with my logic analyser. 

Unfortunately one of my biggest stumbling blocks is that I do not own or have access to a Canon E-TTL flash, (the only non canon equipment in my kit are my strobes mix of Nikon and Vivitar), thus started some research, it just so happens that Bill Grundmann has recently started his analysis of the E-TTL protocol and making fantastic headways.  Dang he has saved me a huge amount of time!  Well done Bill!

Strobit M8 Files

Jans Gentsch has made his compact version of the Strobit Triggr available to the community, his version, the Strobit M08 based on AVR design can be found here.   Please note that there are a couple of things that need doing to the PCB, if you get a chance to implement Jans design, please post back any changes to me so I can make them available.

Hello Stephen,

I’ve attached the Eagle-Design-Data as well as the source code. I haven’t found time to do anything on those since my post, so the are not in the best state. There are a few Problems with the board design:

Transmitter – There is a connection missing between the processor and NIRQ of the transmitter-module (the transmitter module doesn’t have a fifo, so that the nirq-line is needed to clock out the data). I just added a piece of loose wire during assembly.
Receiver – NIRQ isn’t connected as well, so I am constantly polling, not really a power saving design. however I am still running on the first set of batteries so it’s not like they are being drained empty immediatly.
IO-Board – Thr optocoupley was meant to sit on the bottom side but I got confused. It has to sit on top now.

Getting everything into the housing was a major challenge.

The source code has been developed using avr-gcc and the eclipse ide.
As it stands only the most basic function, tiggering, is working. The control flow will have to be reworked in order to add the rest of the functionality. And of course my “magic” trigger id should be changed.

Have fun!

Alle the best
Jan

Files

You will need Eagle PCB to view/edit the schematics and PCB files, found here –http://www.cadsoft.de/

The firmware is written using winavr found here – http://winavr.sourceforge.net/

Tests

Here’s are some initial non scientific test results of the prototype.

Sidenote: I had some fun testing these outside at night, everytime a car drove past I triggered the strobe, instant brake lights, hehe (The use of speed cameras are notorious here in Western Australia).

The Unit, both the master and slave are identical, personality is determined at powerup by pressing the trigger button if you want a master.
IMG_5569

Test Rig of slave mounted on a strobe.
IMG_5560

Running at 12500bps, camera syncs to 1/125 ~60m
12500

running at 9600bps, camera syncs to 1/100 ~120m
9600

StrobIt In the Wild

IMG_8198.JPG, originally uploaded by jgentsch.

The first StrobIt Triggr seen in the Wild!

Jan has made a neat and well packaged version of the StrobIt Triggr. Based on the AtMega8 it runs from a single AA battery. Well done Jan!!!

StrobIt Board

Ok I have finally had a little bit of time to work on things (will be short lived as I’ve just bought a house and moving in the next couple of weeks Aghh!!).

Things are getting very close to reality after many design changes, the very nearly final Strobit Trigger base board, aka a modified Ardiuno BT board, with the Bluetooth removed and now fitted with the RFM12B SMD Tranceiver module and an external SMA antenna connector. The Eagle 3D side of things still needs work as some components are not shown and the inductor for the DC-DC converter is incorrect, but you get the basic idea right!

Why have I gone to a non-dedicated trigger board?

Well a couple of reasons, initially to cover myself from any patent issues that might have arrisen had I used a dedicated wireless triggering device, but mainly to allow better expandability. Why have a dedicated trigger with all the fruit and only use half of it, this way dedicated boards can be used, i.e. standard trigger, or sound/light trigger, sequences etc. Another reason is that the Ardruino is very well established and supported in the open source community, especially when it comes to the firmware libraries etc, it’s already been done. also I can use these in my robotics hobby as well, not just for photography.

Ok onto the board features:

  • Fairly compact same size as ArduinoBT
  • Standard Arduino Pin headers, so should be able to use with existing shields.
  • Will operate from as low as 1.2V, so should work from x1 NIMH AA easily enough.
  • RFM12 Tranceiver, up to 300m range (as per datasheets, although it does depend on the datarate)
  • SMA connector so you can connect an external antenna for better reliability and range, or remove the SMA connector and use a piece of wire as the antenna.

What is left to do?

  • Well the design is pretty well done, I want to get some prototypes made so I will be sending it off very shortly for fabrication.
  • Different variations of shields need to be done, first one being stock standard strobe type of triggr, input and outputs, then others as needed

Protocol

Protocol:

Full Detail can be found here on the wiki – http://wiki.everythingrobotics.com/index.php?title=Draft_Proposal

The trigger packet transmitted is 7 bytes long.  Preamble(3 bytes), Sync(2 bytes), trigger command (1 byte) and CRC byte.

The Preamble is used by the the RF module to tune the Receiver.

The Sync word is used by the RF modules receiver circuit to know when a valid transmission is occuring and not just interference.  This SYNC word can be used as a future PAN address, i.e. all your units are set to the same unique SYNC pattern then your units operating in the same area as other trigger units on the same frequency will not be triggered by your units and visa-versa.

If an invalid packet is detected by the CRC then the packet is dropped and the strobe will not fire.  This is where some future work can be done with forward Error Correction, so a corrupt packet could be rebuilt and still used by the slave, i.e. the strobe could still fire even if some corruption is detected.

Currently the slaves so not communicate back to the master in anyway.

Back – Firmware Triggr Home

Firmware

Firmware Details:

At the moment it’s pretty basic, but works!  Source is available via SVN (see download page)

The mode is set at powerup by pressing the manual trigger button. If pressed then mode is set to Master, default powerup is in slave mode (i.e.. do nothing). Master mode is identified by a single flash of the LED, Slave is a double flash. This way any of the units can be master or a slave.

Master mode sends a remote trigger command to the slaves when the manual trigger button is pressed, or a trigger signal is detected on the Trigger Input. The LED is light briefly when triggered.

Slaves will only trigger the local strobe if trigger test button is pressed, or a remote trigger command is received via RF. The status LED will light briefly when triggered by either of these means.

The Master will send out a keep-alive broadcast once every 5 seconds. The units LED (master and slaves) will blink briefly to indicated successful RF Link.

Back-Prototype Triggr Home Next – Protocol Details

Prototype

Prototype boards RF module Testing

Prototype Specs:

  • PIC16F88 running on internal 8MHz Clock – low cost and very popular, free development tools available, i.e. C compiler.
  • Works in unlicensed 915MHz ISM Band(Australia/US), can work at 433Mhz by changing RF module(US/EU/Australia).
  • RF uses FSK Modulation – Less prone to interference sources.
  • All aspects of the RF module is configurable via the firmware, i.e. frequency, Tx power, receiver bandwidth, modulation, datarate etc.
  • Indoor Range – ~30m+ works all through my house non line of sight, i.e. through multiple single brick walls, with transmitter at furtherest end, close to AV, TV & WIFI (i.e. interference sources) and receiver roaming throughout the house in different rooms, microwave oven also in the mix. No packets lost or dropped so far, but more testing needing to be done.
  • Outdoor Range – Untested, but from indoor tests I would guess 150-250m easily.
    Update:
    Outdoor Test Results here
  • Antenna – Simple 8cm whip (i.e. a single piece of wire), these RF units are matched to 50Ohm so an SMA antenna could be used
  • Sync to 1/125 – in theory it could easily sync upto 1/1000 as the Rf modules are capable of the bitrate necessary, however range will be affected by the higher the speed, also the processor / oscillator arrangement may need to be revised to handle the higher interrupt rate to process data, i.e may need to use a chip with onboard SPI support etc.
  • Can act as Master or Slave.
  • Can be programmed to use any frequency from 902Mhz to 928Mhz (using the 915Mhz module), using the 433Mhz Module will allow similar channels.
  • Can be triggered by a contact closure on Trigger Input. i.e. from camera
  • Can be manually triggered by test button.
  • Trigger output is isolated upto 400V, i.e. can safely trigger old stobe units with high voltage on hotshoe / sync terminals
  • Powered by x3 AA batteries. Currently no power management in the firmware.
  • Cost per prototype board AUD$ ~25

Note on the costs:

  • Most components are sourced via local retail outlets so are probably definately more expensive that sourcing elsewhere, i.e. this can be built a lot cheaper i.e. Sub $10 in parts.
  • Some of the components I had lying around at home so I’ve just used market prices in my estimates.
  • No freight was added to construction costs.
  • Some components have minimium order quanties such as the RF module.

Back – Triggr Home Next – Firmware

Trigger Fires Up

Well I finished the two prototype boards tonight with some minor changes and a bit of troubleshooting, still lots to do though.  I now have them triggering.  Will be testing further over the next few days to get indication of range etc.  So far it is only syncing at 1/100.  I will be posting more details , schematics, firmware etc as well as I get time.

Strobit Triggr fires up for first time

StrobIt Triggr

Introduction

20/03/09 *UPDATE * This project now has a new home and is actively being developed on Google code project hosting http://code.google.com/p/strobit/

IMPORTANT    This page is no longer being being maintained please go to the new project page.

Welcome to the Strobit Triggr Project, an open source hackable wireless trigger used in photography lighting by using low cost strobe units triggered remotely via RF. This was started while trying to find a cost effective and reliable solution to the commercial alternatives out there. At one end of the market is the Ebay or Cactus Trigger, which is low cost but rather unreliable. At the other end of the market there is the industry standard, Pocket Wizards, very reliable, but very expensive (i.e. way out of my price range).

What I wanted to do was to create an open platform that anyone can easily build for a low cost and then be expand upon by the community. The pair of prototypes I’ve built were a proof of concept that I can get a camera to trigger a strobe unit reliably at a low cost. From early tests it appears that I’ve succeeded in my goal, but further testing is required.

triggr0103

Project Status :

– Prototype successfully working in single master/slave configuration !

– (20/03/2009) Project now has a home at Google Code – http://code.google.com/p/strobit/

Still Todo:

  • Specifications
  • Hardware Design
    • Schematics
    • PCB
  • Software Design
    • Wireless
    • User Interface
    • Protocol
  • Hardware Prototype

License

The strobit hardware design is covered by The TAPR Open Hardware License. Please see http://www.tapr.org/ohl.html for further details.

Schematics:

Strobit Triggr Block Diagram Strobit Triggr Topology StrobIt Triggr Schematic

Prototype Details

Firmware Description

Protocol Description

Downloads – Files associated with the project

Tests – Tests done so Far

In the Wild – Version of this trigger made by others

I’m toying with the idea of putting together a low cost kit for the enthusiast. i.e. PCB, pre-programmed PIC, etc. So we could all benefit with a bulk order of the components. If your interested please email me using the contact form the top menu or use the mailing list signup on the right to give me an indication of numbers interested. Once I finaliaze the design and get some idea of numbers I’ll get a better idea of price. At the moment it will only be available in kit form due to FCC and other Licensing regulations.

Future Improvements:

  • Higher Sync Speed.
  • Frequency Hopping.
  • Forward Error Correction.
  • Power management.
  • UI to change settings, Channel etc.
  • Save settings in Flash memory.

RFM12 FSK Library – Alpha Release

I’m pleased to announce the very ALPHA release of the RFM12 library for the wireless HopeRF RFM12 FSK tranceiver module that I’m using for the strobist open trigger project.  It was developed under BOOSTC for the PIC embedded controller, but should be easily ported to any compiler.

Most of it is untested, hence the alpha release, but it’s a good starting point.  Everything is fairly well documented, but like any project could do with more.   Please send me any bug fixes/improvements that you may find while using it.

Download:  rfm12-0_1a.zip 

Features:

  • 433Mhz and 915Mhz HopeRF FSK RFM12 modules supported
  • Initialisation with a basic config
  • Set Frequency
  • Set Receiver Bandwidth
  • Set Receiver Gain
  • Set Receiver Signal Strength Indicator Level (RSSI)
  • Set Transmit Power level
  • Set Transmit Modulation
  • Set Baud rate
  • Enable/Disable Transmitter
  • Enable/Disable Receiver
  • Transmit a single byte – blocking
  • Transmit a buffer of data – blocking
  • Receive single byte – blocking with timeout
  • Receive ‘x’ number of bytes into buffer – blocking with timout

 TODO:  (not in any order)

  • Testing
  • Howto documentation
  • RFM12 Interrupt handling 
  • Non-blocking Tx/Rx routines
  • MSSP SPI implementation (current SPI implemented via bit bang)
  • Frequency hopping
  • Custom configurations

License:

Released under the Creative Commons – Attribution-Noncommercial-Share Alike

Disclaimer:

Please use this library at your own risk.  I will not be held liable for any damages.

Open Source Wireless Trigger

After getting back into photography after many many years (and because Digital SLRs are so much cheaper)  I’ve been an avid follower of the stobist website (www.strobist.com) for off camera lighting.  To do this off camera lighting you need a way of triggering the remote stobes, some are wired, some are wireless either RF or Infrared, but obviously the easiest is via wireless.  Well there are many solutions, some cheap (ebay triggers) some expensive (Pocket wizards) and you get what you pay for, the cheaper ones (of which I one a couple) are notorious for false triggers, while the Pocket wizards are way out of my price range.

So in the true spirit of Open Source, of which I’m a huge fan, I’ve proposed an open source wireless trigger for the strobist community.  Initial thread found here – www.flickr.com/groups/strobist/discuss/72157602088957861/  So far the response has been great fantastic.

 I’ve now setup a wiki for a brain dump of ideas http://wiki.everythingrobotics.com and will shortly have a mailing list up and running.

 forums are now also up and running http://forums.everythingrobotics.com  hopefully these will eventually fall under the strobist.com domain