iTTL Nikon Protocol – Metz SCA300 interface part-2
Metz SCA 3000 interface for Metz45 – part 2
In the
previous document I describe the i-TTL protocol
from Nikon. In this document, I will focus on the implementation of this
protocol connecting Metz 45 CL-3 or CL4 with Nikon DSLR.
Hardware interface
As mention previously the hot shoe interface will be define as 0-5V technology even if the devices use 0-3.3V level during data exchange. Before protocol activation, signal reach 4 to 5V… No safe to use 3V CPU or must accept 5V.
On Flash side, using SCA3000 M1 cable the interface will be TTL 5V (some signal have to be adapted but it is 5V interface). One analog input is needed to acquire the mode signal from the flash.
The micro CPU must be small as it must enter in the SCA shoe adapter type SCA 3401. This is the most difficult point.
Then I chose a fast micro CPU working at 5V level with efficient software tools. I select Teensy 2.0 board, Arduino software environment with Teensyduino library. The CPU speed is acceptable if well programmed. For your information the latency of Sync X signal is similar to SB-900.
The input accepts 2.5 to 3V signal. It is not the case of all Arduino board. Lose 1 day with a bad clone of Arduino V3.
SCA 3000 system from Metz
Metz Company developed flash system with universal adapter for Film camera. They start with SCA300 series adapter for non-autofocus SLR and develop SCA 3000 when autofocus SLR arrived on the market.
SCA 3000 system for 45 CL-3 or CL-4 flash is composed as follow:
a shoe adapted |
SCA 3401 (shoe for Nikon). |
a cable with focus assist LED and AA battery power supply with the right connector for 45 CL |
SCA3000 M1 |
Could certainly work with 45CT-3 or CT4 and 38CT3 but flash stop signal (Metz pin 9) must be checked before any test.
Flash control
The flash strobe is control as follow:
- Start flash: send a 0 on Sync out pin 10 2µS width
- Stop flash: send a 1 on Stop pin 7 2µS width.
Flash status
Ready 1 flash not ready 0 flash ready
Mode analog value between 5 V (M) and 1V (TTL selected). Use analog to digital converter to detect the voltage at the input and selected mode.
Expo OK 1 after each strobe if main cap is not discharged. input not used because not reported in I-TTL protocol flash status.
Other signals with SCA3000C
AF Assist 0 activate the AF assist led (1 LED off).
ON/OFF 0 activate TTL BL mode (1 standard TTL mode reported to the DSLR)
Test button 0 activate test flash.
Hot shoe interface
The hot shoe characteristics are the following:
Sync X Input 220nF to GND; internal pull up
Handshake Input, pull down with 10K
Clock Flash output direct signal
Data Internal pull up (when input) direct signal.
When DSLR is off, Handshake is low. Clock is low. When DSLT wakeup, Handshake is set to 1, Flash set clock to 1 and wait a 0 on Data signal. Then protocol is initiated as describe in part 1.
Which Nikon Flash to emulate
The characteristics of the Metz 45 flash duration are the following
between 1/300 - 1/20,000 second in TTL mode. Min 0,05 ms Max near 3,3 ms
Power ratio |
Speed |
strobe duration µS |
1/1 |
1/300 |
3 300 |
1/2 |
1/1000 |
1 000 |
1/4 |
1/2500 |
400 |
1/8 |
1/4000 |
250 |
1/16 |
1/6000 |
166 |
1/32 |
1/10000 |
100 |
1/64 |
1/14000 |
71 |
1/128 |
1/20000 |
50 |
Information from manufacturer Metz
Flash strobe duration for SB-900
1/880 sec. |
M1/1 (maximale) |
1/1100 sec. |
M1/2 |
1/2550 sec. |
M1/4 |
1/5000 sec. |
M1/8 |
1/10000 sec. |
M1/16 |
1/20000 sec. |
M1/32 |
1/35700 sec. |
M1/64 |
1/38500 sec. |
M1/128 |
After analyses, SB900 emulation seems the best solution:
Will permit to use 1/128 level (SB-600 limited to 1/64)
Will permit mode M and A on top of TTL level.
The software will emulate SB910 from Nikon:
Identification and capability will be cut ans past from SB-900 (frame 0xA1, 0xA2)
Power table range will be same range as SB-900 (0x54 min; 0xA8 max).
Power table conversion
A table must be created to convert “Power Index” send by Nikon DSLR to the appropriate strobe duration for Metz 45 CL. Table step is 1/12 IL.
This was done using an excel sheet and some formula with manual adjustment to obtain a smooth table.
Here the excel file with the table per 1/12
IL - M45_CT-4 Power table
calculation
Schema of the interface
SCA
3401 mod
DC DC MP1584 power
supply
SCA 3000C board
SCA 3401 modification
remove the cover then :
· Extract the board (set exposure correction to +3) taking care of the spring and contacts and small button.
· Remove the CPU, cut circuit to isolate each pin coming from shoe contact or going to the cable, except GND.
· Open a small window for the USB connector. It permit to upload the software without opening the box.
· Connect the CPU to the different pin.
All pin number refer to Metz standard numbering of SCA shoe interface with cable (see description in Annex of this document).
Pin /contact assignment with SCA 3000C
Name |
Contact id |
Comment |
/AF Asyst |
2 |
Original pin from Metz |
/Test |
3 |
Specific for this modification |
Expo OK |
4 |
Original pin from Metz (signal adapted in cable cover) |
Mode |
6 |
Original pin from Metz (signal adapted in cable cover) |
Stop |
7 |
Original pin from Metz |
/Ready |
8 |
Original pin from Metz (signal adapted in cable cover) |
/Sync X |
10 |
Original pin from Metz |
+Vcc |
13 |
Original pin from Metz |
GND |
1, 11, 12 |
Original pin from Metz |
SCA3000 M1 modification:
Here it is different. We remove the battery compartment (have t o cut it) and replace by a small power supply to regulate 7,85.. 7,2 V to 5V needed for the electronic
· Test the DC-DC MP1584 power supply and adjust voltage at 5V (+0 -100mV) before connecting to the circuit.
· connect 470µF 16V at the output of the power supply
· 5V output is connected to +Vbat and directly to pin13 to provide 5V to the SCA 3401.
· A diode is in the signal path – pin 8 /ready (active low).
· A diode and resistance are added to pull-up signal 6 and connect to pin 2 of the Metz Cable
· A diode is inserted in the signal 4 Expo OK , active high) not used in the current version of the interface because not used by i-TTL protocol)
· Drill the battery cover to install the push button and 100nF capacity connected with to wire to the board.
Recommendation: for all component, use surface mount parts, more easy to integrate. Do modification on component side. The other side must be clean as it is in contact with SCA3401
SCA 3000C M1 modified |
SCA3401 pin out |
Software project
Software is the main component of the interface between Metz Mecablitz 45 CL-3 or CL-4 flash series and Nikon DSLR.
Software is developed using Arduino tool environment.
Arduino software to manage i-TTL protocol and Metz 45 CL-3 or CL-4 flash 45-iTTL_V0.ino
Software features
The software manage Nikon i-TTL data exchange with DSLR ignoring some information like zoom, ISO, aperture but managing flash power control in TTL and generating adequate frame to insure correct handshake between flash and camera.
Emulate SB910 from Nikon.
SB-900 was chosen as target because flash range is quite similar even if 45CL is slightly more powerful.
Main features:
- in all mode ( A, M, TTL), recurrent handshake with camera to indicate that flash is active
- Allow and process Mode A, M and TTL set on flash. Flash mode reported to DSLR to insure proper operation.
- Mode TTL or TTL BL is selected by switch on SCA3401
- In A mode ISO an aperture must be set on Metz 45 using top calculator disk. In A mode, do not produce pre-flash even if the command is received. This pre-flash must be process by the flash. In case of Metz 45, we use a classical light measurement during main flash strobe.
- Then A mode is really Nikon A mode and not AA mode (do not take into account distance).
- In TTL mode, take into account exposure correction send by DSLR body. It is added to the power index received from the body before conversion to strobe duration.
- AF assist led manage from DSLR body,
- No mode FP, no modeling lamp, ignores zoom or DX/FX information.
- No flash standby, standby command is only processed to stay synchronized at protocol level.
- test button on SCA adapter permit to produce test flash in all mode A, M or TTL:
o TTL 1/128 flash power
o A power managed by flash according subject reflectance
o M power managed by flash according selected power.
TTL mode
Managing Start and stop signal and analog interface SCA300/3000, it permits to simulate 1/1 to 1/128 per 1/12 IL according i-TTL Nikon protocol.
The software process following command:
- Pre-flash and pre-flash 30 %
- main flash strobe according requested power
- data flash confirmation to camera during pre-flash and flash
- allow usage of AEL
Compatibility with Metz 45 and 60 series
The interface is dedicated for 45 CL3 or CL4 flash. Do not use with 45 CT or 60 CT.
Could be adapted but not investigated:
- analog interface to adapt (flash stop signal) 45 CT
- Power calibration for 45 series
Usage with NON I-TTL body
When i-TTL protocol is not active, the system permit to use A and M mode only, both modes manage by Metz flash. When TTL mode selected, no main flash are produced when receiving Sync X signal from the shoe (central contact).
Software architecture
The main loop process event:
- Event from Flash
- Event from DSLR
- Event from software itself ( split data processing in different short slice to permit the multi-tasking)
Two state machine are implemented
- one for frame level
- second for protocol level
Each state machine is associated with a timer and time-out that permit to avoid dead loop waiting event that will never occurred. It is also necessary at frame level to manage correctly frame interruption (case of 0xD7 frame).
States of Frame state machine
DISABLE |
DSLR OFF, STANDBY or SCA not connected, no i-TTL signal received |
WAIT |
DSLR ON start negotiation begin frame |
STANDBY |
DSLR standby (frame state standby) |
READY |
1st pulse Handshake received - interface synchronized, read command and decode |
RECEIVED |
Frame received, process command – executing command, manage i-TTL Protocol state |
States of Protocol state machine
INACTIV |
I-TTL protocol inactive |
INIT |
Frame A1 sent |
STARTED |
Frame A2 sent |
ACTIV |
Protocol STARTED and A0 sent Or Protocol INACTIV (time out on flash side but not on body side. Resynchronize Protocol state. |
Protocol state is used to manage:
· Led blinking
· Sync X action
· Could be extended if needed….
Internal events
Timeout |
use Timer 3 to manage frame time out; use Timer 1 to manage Handshake timeout |
Time LED T1 and T2 |
based on main loop count. |
flash test request |
activated by external event ‘test push button |
Usage of time-out timer
Frame timeout |
1sec time out; Timeout must be checked in all possible dead loop (while loop) to exit the loop when timeout occurred. Tested in the main loop. If activated, reinit I/O and change frame machine state to DISABLE. |
Handshake time out |
short time out to detect missing handshake, two cases: or command aborted by DSLR or bad synchronization (wait a number of byte that is wrong). |
Possible Enhancement
Read Analog input Implementation of non-blocking function to avoid losing command or Sync event.
PWM output PWM output must be used to generate flash modulation in case of FP mode or for modeling lamp. For that, the electronic of the flash must permit 70Hz strobe frequency.
Document version
V1.1 - 22 April 2020 – © Hervé QUEVAL – herve.queval@free.fr