原创 尼康热血协议-5

2012-6-12 17:42 2251 5 5 分类: 消费电子

 

byte   35 36 37 38 39 40 41 42 43 44 45
dec   11 111 156 148 139 128 119 113 103 98 92
hex   0x0B 0x6F 0x9C 0x94 0x8B 0x80 0x77 0x71 0x67 0x62 0x5C

I converted the above data to ASCII as well, but the characters make no sense. Nothing like "SB800" or so. Nor did I find the serial number of the flash in that data.

 

Flash_Settings (0xA0)

This byte is send as a command to the flash to read its settings. The flash then sends 21 bytes payload and one checksum byte with the seed 1d. Byte 1 is send first.

 

 Byte 1 2 3 4 5 6 7 8 9  10  11 12 13 14 15 16 17 18 19 20  21
payload Status Mode #8+102 Activity ? Power #8+34 #8 ? Reflector RPT: f RPT: n

discrete values

 0  0  0 CLS? Menu Gr A: fv  Gr B: fv Gr C: fv 

Byte 1: Status byte

This byte contains numerous status bits of the flash reflector settings and the ready-light of the flash.

Bit Meaning
 0 Set if the ready light of the flash is on
 1 1 if flash display illumination is on
 2 clear if reflector is facing forward and not tilted, otherwise set
 3  set if ready light of the flash is flashing
 4  set if diffuser is pulled out
 5  set if soft-box attached
 6  always clear
 7  always clear

 Byte 2:  Mode

To be completed

Bit Meaning
 0  
 1  
 2  
 3  
 4  
 5  
 6  
 7  

 

 Byte 3: Unknown

This byte is always #8+102d. Purpose unknown


 

 Byte 4: Activity

This byte signals user activity to the camera (eg. to reset the exposure meter tome-out).

Bit Meaning
 0 set for 1 second after a button press and for 5sec. if power of the flash was not sufficient
 1 0 always
 2 1 always
 3 set if flash is in mode A
 4 high if AF assist light is on
 5 0 always
 6 set if flash is in mode A
 7 0 always

NOTE: Red eye reduction lamp (if available) and maybe the buzzer status (can not check this one) should be in there as well.

There is a circuit in the SB800 to detect that the flash has fired, maybe this status is in this byte, too

 Byte 5: Unknown

This byte is always 0d. Purpose unknown

 Byte 6: Flash Power

This byte reflects the fraction of the flash power as set on the speedlight in all manual modes.

Output power = 2^(-x/6)

Please note that on the flash you can only set the power in 1/3 stops.

 Byte 7: Unknown

This byte is always #8+34d. Purpose unknown

 Byte 8: Unknown

This byte reappears modified in bytes 3 and 7. Purpose unknown

 Byte 9: Unknown

This byte is always 48d. Purpose unknown

 Byte 10: Reflector Settings

This byte shows the zoom-setting of the reflector in the flash. The focal length is given in millimeter.

 Byte 11: Stroboscope - Frequency

The frequency of the stroboscope (flash in mode RPT) given in Hz.

 Byte 12: Stroboscope - Number of Flashes

The number of flashes the speed light will fire when set to mode RPT

 Byte 13: Unknown Settings

Purpose unknown. Values observed so far: 9, 16, 18, 21, 22

 Byte 14 - 16: Unknown Settings

Purpose unknown. Always 0d. I suspect group settings for the CLS (creative lightening system). Not checked yet

Byte 17: CLS 

Changes when the remote settings of the flash are changed. Exact purpose unknown.

Byte 18: Menue activiy

Changes when the menue of the flash is accessed.

 Byte 19 - 21: CLS - flash exposure compensation / power

Flash exposure compensation or flash power for the three groups (A-C) of the CLS. Flash power is encoded the same way as in byte 6.

 


 

CAM_SETTINGS (0xB0)

The checksum for this frame uses 1 as seed. 

 

 

 Byte 1 2 3 4 5 6 7 8 9  10  11 12 13 14
payload Mode Config. 64d always ISO exposure f-stop focal length exposure compensation

unknown

changes with cam

distance ?strange? f-stop +1

D700: ISO else:0

D700: ISO else:0

 Note: There is no bit to indicate that the flash was fired using the "Test" button.

 Byte 1: Mode

Depending on the Settings of these bits various modes show up on the display of the flash. So far I have only seen the values 1,4,5.
0x00: AA/FP
0x01: TTL/FP
0x02: TTL/BL/FP
0x04: TTL/BL/FP
0x08: AA/FP

 Byte 2: Configuration

This byte sets the configuration of the camera/flash.

Bit Meaning
 0 sync on 2nd curtain
 1 red eye reduction
 2 camera display illumination on
 3 0 always
 4 FP required (check!)
 5 FP available in current mode
 6 TTL available
 7 0 always

NOTE to self: check whether bit 5, 6 enable the display of FP and TTL in flash display

 

 Byte 3: unknown

On all cameras I have tested this byte is always 64d. 

 Byte 4: ISO setting

The set ISO value can be calculated the following way:
ISO = 100 * 2^((x-30)/6)

 Byte 5: Exposure

This signed char encodes the exposure time:
t = 2^(-x/6)
x = 128d encodes the bulb mode.

 Byte 6: f-stop

f-stop = 2^(x/12)

 Byte 7: Focal length

f [mm] = 2^( (x+55.4)/24)
That was a hard one to figure out, thanks Marcus!

 Byte 8: Flash exposure compensation

This signed byte encodes the flash exposure compensation:
EV [stops] = -x/6

 Byte 9: unknown

This byte is always 48d = 110000b = 0x30

 Byte 10: Distance

The actual focus distance is transferred to the flash as well:
d [m] = 2^( (x-80)/6)

 Byte 11: strange byte

The value of this byte depends on the focal length and the focus distance. The exact formula is unknown.

 Byte 12: f-stop (again)

Most of the time the value of this byte is equal to the byte 6. But every now and then it is one count higher. This +1 does no depend on the in-camera fine tuning. Maybe this byte represents something like debounced data?

 Byte 13/14: ISO (again)

On a D700 these two bytes contain exactly the same value as byte 4. On myD200/D70s these bytes contain only zeros (0x00). Purpose unknown.

 
 

AF-ILL (0xD0)

Controls the AF illumination lamp in the speedlight. The camera sends two bytes after the command. The first byte enables (0x01) or disables (0x00) the AF-LED, the second byte is always 0x00. The LED is enabled/disabled 1ms after the frame was send. If the frame is not repeated the LED is automatically shut off by the flash after 900ms. My investigations show that you can also send a 0x00, 0x01 to enable the AF LED. Other bits than bit 0 in either byte seem to have no effect.
"208 001 000" is appended after each regular transmission of command 160/176 as long as the AF light is required

 

Red_eye_reduction (0xD1)

The 1 byte payload enables (128d) or disables (0d) weak flashes before the main flash to reduce red eyes.

 

Modeling Light 0xD5

To enable the modeling light the camera sends the command 0xD5 and 0xD5 again as "CRC". The flash then fires a series of flashes for about 1.5 seconds. During this time it holds the DATA line low to signal it is not ready for new data.

 

Preflash1 (0xD7)

The camera uses several pre-flashes to determine the requires flash power. The first pre-flash is weaker than 1/128 full power, but stronger than one single flash when the button for the modeling light is pressed.

After the command has been transmitted to the flash the flash fires about 2ms after the last rising clock edge. There is a jitter of about 500µs around this 2ms.The flash signals the firing of the flash by pulling the clock line low for 310µs as it fires.

 

Preflash2 (0xD8)

In case the first pre-flash was not strong enough for the camera to be evaluated the camera can issue a second pre-flash. After the command byte the camera sends 1 byte of payload containing information about how strong  the second pre-flash will be.

0d: weakest setting, the power of preflash1

9d: 1/128 + 2/3ev

24d: maximum, standard value, 1/32 + 1/3 power

After the command and the 1 byte payload has been transmitted to the flash the flash fires about 2ms after the last rising clock edge. There is a jitter of about 500µs around this 2ms.The flash signals the firing of the flash by pulling the clock line low for 310µs as it fires.

Note: I managed to fire pre-flashes at rates of about 100Hz, but the flash head heats up quickly doing so. I do not recommend this!

 

Flashpower 0xD3

After one or two pre-flashes have been fired the camera calculates the required output power for the main flash. This data is then transmitted in two bytes to the flash using the command 0xD3. The first byte carries information about the required flash, the second byte sets the flash power.

Byte 1: This byte sets the flash type

Bit Meaning
 0 FP-time
 1 FP-time
 2 FP-time
 3 FP on
 4 always 1
 5 0 always
 6 1 if Flash EV lock
 7 1 if Flash EV lock
  • Bit 3 enables the FP feature for the following flash.
  • The lowest 3 bits give the time the flash will emit bursts of short flashes in FP mode. One LSB is worth 4ms, the valid range is from 4ms (001b)  to 32ms (111b). If not in FP these bits are ignored.
  • Bit 4 has only been observed set.
  • Bit 5 does not change anything on the behavior of the flash if set.
  • Bits 6/7 are set if the data transmitted is from a flash exposure lock measurement. This might signal that the actual flash may be fired later. (maybe: enables display of underexposure - flash-power > 128)

Byte 2 sets the output power of the flash. In FP mode it seems to specify the frequency of the flash bursts. The minimum value is 54d-75d, maximum is 201d

After the data has been send to the flash, the fixed CRC 0xD3 follows. The flash is triggered by pulsing the X-Sync line low. There is no signal on the lines indicating that the flash has fired. These settings are only valid for all consecutive flashes, that is if you pulse X-Sync low a second time, the flash will fire again with the set power. Minimum timer between consecutive flashes is about 15ms. This time can get as long as a few seconds depending on the recharge time of the flash capacitor. In FP mode the minimum time is about 30ms.

For the FP mode to work properly at least one preflash1 has to be fired first. Check whether needed only once!!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条