Nikon i-TTL
protocol
29th October 2020
Parameters
and information for Nikon D7000
Disclaimer:
All information
gathered for private usage. This is a report with comment, result of
observation and cannot be consider as official protocol specification.
Nikon, Nikon D7000, D7100, Nikon SB-900, I-TTL
are products, brand or name property of Nikon corporation.
Analyses
were done with SW Analyzer running on Teensy 2.0 and Arduino
software environment and tools.
Author: Hervé QUEVAL - Document V1 - first published version
20 April 2020
Updates:
on October 2nd
2020 – D7100 Firmware version
on October 29th2020
– B0 frame ISO, SPEED, MODE byte usage and value; A0 frame additional
information.
Parameters and information for Nikon D7000
Parameters and information for Nikon
D7100
Parameters and information for Nikon
SB-900
DSLR Nikon
D7000 connected to flash SB900
Software version of
Nikon devices used during this
test:
-
A
1.02
Nikon D7000
-
B 1.03
-
S
5.002
SB-900
Remarks:
All values in Hexa (C notation 0xFF)
Software version of the D700 are not the latest
to be compliant with all lens used. As I use Raw and DxO,
I do not need last version of lens correction in the body.
DSLR identity
Cmd + 10
bytes ( 9 bytes info + Checksum)
D7000
Identity:
B1,2,1,19,4,3,1,9,1A,E,7
identity in case of firmware version:
DSLR Status and setup
Analyses of
0xB0 frame, Information frame from DSLR to Flash
Cmd + 15
bytes ( 14 bytes info + Checksum)
Example:
B0,5,44,40,1E,24,1E,50,0,2,49,11,1E,1E,1E,A0
Flash
Mode
byte 2 of the frame
B0,5,44,40,1E,24,1E,50,0,2,49,11,1E,1E,1E,A0,
^
Flash mode as set on the body
Bit 7 : -
Bit 6: 1 flash authorized, 0 no flash
Bit 5: 1 DSLR and mode P,A,S,M
selected
Bit 4: 1
remote controller (activated by GODOX X1n)
Bit 3: -
Bit 2: 1 ( always 1
during all investigation)
Bit 1:
Anti-red eye activated
Bit 0 : rear curtain sync
example
44 |
|
64 |
- ( normal) |
65 |
Rear |
66 |
Anti
red eyes |
Combined with mode
PASM mode, scene, Program it give the following result
Scene, U1,U1 |
44 |
M,A,S,P |
64 |
Auto |
44 |
No flash |
4 |
ISO
information
Byte 4 of the frame: Current ISO selected (manually of automatically)
Byte 13 and 14 of the
frame: same value as Byte 4 when manual ISO selected, Max and Min ISO
capability of the body if Auto ISO selected.
B0,5,44,40,1E,24,1E,50,0,2,49,11,1E,1E,1E,A0
^
x x
ISO
repeated there (Iso Manual)
B0,5,44,60,2A,24,12,50,0,2,48,11,12,36,1E,A0
^
x x
ISO max min (Auto ISO)
ISO Table
50 |
62 |
80 |
100 |
125 |
160 |
200 |
250 |
320 |
400 |
500 |
640 |
800 |
1000 |
1250 |
1600 |
2000 |
2500 |
3200 |
4000 |
5000 |
6400 |
H0.3 |
H0.7 |
H1 |
H1.3 |
H1.7 |
H2 |
0x18 |
0x1A |
0x1C |
0x1E |
0x20 |
0x22 |
0x24 |
0x26 |
0x28 |
0x2A |
0x2C |
0x2E |
0x30 |
0x32 |
0x34 |
0x36 |
0x38 |
0x3A |
0x3C |
0x3E |
0x40 |
0x42 |
0x44 |
0x46 |
0x48 |
0x4A |
0x4C |
0x4E |
Shutter
speed
Byte 5
Cde:B0,5,64,60,30,24,1E,29,0,3,3F,11,1E,42,1E,E6
^
Table with speed code
8000 |
4E |
6400 |
4C |
5000 |
4A |
4000 |
48 |
3200 |
46 |
2500 |
44 |
2000 |
42 |
1600 |
40 |
1250 |
3E |
1000 |
3C |
800 |
3A |
640 |
38 |
500 |
36 |
400 |
34 |
320 |
32 |
250 |
30 |
200 |
2E |
160 |
2C |
125 |
2A |
100 |
28 |
80 |
26 |
60 |
24 |
50 |
22 |
40 |
20 |
30 |
1E |
25 |
1C |
20 |
1A |
15 |
18 |
13 |
16 |
10 |
14 |
1/8 |
12 |
1/6 |
10 |
1/5 |
0E |
¼ |
0C |
1/3 |
0A |
1/2.5 |
08 |
½ |
06 |
1/1.6 |
04 |
1/1.3 |
02 |
1 sec |
00 |
1.3" |
FE |
1.6" |
FC |
2" |
FA |
... |
|
30" |
E2 |
Bulb |
80 |
x250 |
30 |
Aperture
byte 6 ( repeated in 12th
position)
B0,5,44,40,1E,24,1E,50,0,2,49,11,1E,1E,1E,A0,
^
x
aperture repeated there
Aperture table
0A |
1,8 |
0C |
2 |
0E |
2,2 |
10 |
2,5 |
12 |
2,8 |
... |
|
30 |
16 |
Lens
focal
byte 7
B0,5,44,60,30,24,18,29,0,2,62,44,18,30,1E,FD,
|
f
Tested with
10-20mm, 16-85DX, 35mm DX, 50mm, 50-150mm and 120..
300mm
f byte value :
variation from 29 (16mm) to 62 ( 85 mm)
value 50 for 50
mm !!
variation from 19 (10mm) to 31 (20 mm)
variation from 50 (50mm) to 76 (150mm)
value 44 for 35 mm
variation from 6E (120mm) à 8E (300 mm)
Expo
compensation (ambiant or flash)
byte 8
B0,5,44,40,1E,24,1E,50,0,2,49,11,1E,1E,1E,A0,
^
expo
Table coded per 1/3 IL
IL |
Code |
0 |
0 |
-0.3 |
2 |
-0.7 |
4 |
-1 |
6 |
.... |
|
-5 |
1E |
|
|
+0,3 |
FE |
+0,7 |
FC |
+1 |
FA |
... |
|
+5 |
E2 |
Distance
with subject Transmission
2 bytes, position 10
and 11
B0,5,44,60,2A,24,18,50,0,2,42,11,18,30,1E,CB
| |
L H
tested
with 50mm Nikon AF-S
seems
coded on two byte, must be analyzed in detail.
|
min
infinite |
Distance |
42 11 .. 59 11, 5C 22, 65 33, 70 03 |
|
L H |
Not
transmitted
- mode (S CL, CH, ...)
Flash command detail
POWER
Command Byte 0xD3 - first byte information
1st byte
data power cmd
|
|
7654 3210 |
|
D0 |
power
AEL |
1101 0000 |
|
00 |
power M
or AA or A |
0000 0000 |
|
10 |
power
ITTL BL |
0001 0000 |
sync normal |
|
|
0001 1xxx |
sync FP |
|
|
xxx |
Shutter speed range |
The 3 first
bit are used to transmit speed over 1/250 (in case of D7000) 1/320 .. 1/8000.
DSLR identity
Cmd + 10
bytes ( 9 bytes info + Checksum)
D7100
Identity:
B1,2,1,22,3,3,1,9,1A,E,F
identity with firmware version: C 1.01 L 1.009
comparison with D7000
D7000 02,01,19,04,03,01,09,1A,0E
D7100 02,01,22,03,03,01,09,1A,0E
Bytes 3 and 4 are different.
Frame B0
Cde:B0,5,64,60,30,24,1E,29,0,3,3F,11,1E,42,1E,E6
A quick comparison with D7000 do not show any major
differences when using DSLR.
Frame A1 / A2
device identification
A1,1,1,5,2,8,7,81,78,B4,64,A,4E,FF,3E,90,3E,90,1D,
A2,3,5,6D,9B,90,86,80,7A,72,6A,65,5E,6,75,9E,94,8A,80,77,6F,66,60,58,6,74,9E,95,8B,80,76,6F,66,60,59,4,5F,96,8A,82,80,7E,79,71,6E,6A,FC
Frame A0
content
Frame
containing flash status and setup information
Flash
ready
First data
byte of the answer
A0,1,1,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,30 1ere
après flash
A0,3,1,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,32 // TTL BL
^
flash
ready and handshake
Bit 0 Recycling
0 Ready
1
Bit 1 Ack DSLR 0 Normal
1 //
after main flash strobe, set 0.
Ready 3 (normal,
no ack)
bit 7 0 zoom auto
1
manual zoom
Flash
Mode
second
data byte of the answer
A0,3,1,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,32 TTL
BL
A0,3,2,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,33 TTL
A0,3,3,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,34 AA
A0,3,5,C0,4,0,0,92,5E,30,4B,0,FF,12,0,0,0,0,0,0,0,0,49 GN
A0,3,6,C0,4,0,6,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,3D M
A0,3,7,C0,4,0,1E,92,5E,30,4B,64,3,FF,0,0,0,0,0,0,0,0,BE
^
flash
mode reported to DSLR Body
Mode Flash
TTL BL |
1 |
TTL |
2 |
AA |
3 |
A |
4 |
GN |
5 |
M |
6 |
RPT |
7 |
Master |
81 |
M Mode -
Flash level
3rd
byte of the answer
depend of
the flash mode.
When manual
flash:
A0,3,6,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,37
A0,3,6,C0,4,0,6,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,3D M
^
M
mode - flash level (setup on the flash)
1/1 |
0 |
½ |
6 |
1/2 -1/3 |
8 |
1/2 -2/3 |
A |
¼ |
C |
|
... |
1/128 |
C0 |
When TTL (change with
Zoom value), in coordination with byte 7,8 and 10 of the frame
Zoom |
Byte 3 |
Byte 7 |
Byte 8 |
Byte 10 |
24 |
B6 |
88 |
54 |
23 |
28 |
B8 |
8A |
56 |
2A |
35 |
BB |
8D |
59 |
32 |
50 |
C0 |
92 |
5E |
4B |
70 |
C3 |
95 |
61 |
69 |
85 |
C4 |
96 |
62 |
78 |
105 |
C5 |
97 |
63 |
A0 |
Byte-4 (exact function not yet define)
4 normal
(bit 3 set to 1)
5 action
done on flash keyboard/button ( bit 0 set to 1)
6 connected
to remote controller like GODOX 1Xn (bit 2 set to 1) or hot shoe of GODOX X2
Exposure
Adjustment
6th
byte . Information transmitted when AA, A or TTL mode.
A0,3,1,C0,4,0,0,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,32,
^
exposure
adjustment (when modified on the
flash)
coded in
the same way as DSLR.
Power
available
15th
byte of the data sent to DSLR
A0,3,6,C0,4,0,6,92,5E,30,4B,0,FF,FF,0,0,0,0,0,0,0,0,3D
^
0 Full capacity available
Values
0xFF recycling
0.. FE level
off power available, increase after each strobe according power consumption.