E-mount reverse engineering

Started Jul 12, 2015 | Discussions thread
OP Entropy512 Veteran Member • Posts: 4,839
Protocol analysis of the Techart EOS-NEX III (focus position bug?)
5

OK, I haven't worked on this project in a while.

This is a more detailed analysis of my post from http://www.dpreview.com/forums/post/56587712 , regarding the Techart EOS-NEX III, which is also marketed as the DEO Saker Falcon Lite Mk IV.

Specifically - It looks like the first two focus position fields (bytes 7/8 and 25/26) are focus motor positions. Only the first of these is populated with adapters that emulate the EA1/EA3 adapters (pretty much every EF adapter on the market except for the Techart III in Fn mode and Metabones adapters in Advanced mode). The second one is populated on native lenses and the Techart III in Fn mode, and rarely is more than 1-2 values away from the first one.

The third one (bytes 31/31) is a bit more interesting. On native lenses, this appears to be an absolute focus position indicator. When the lens is at infinity focus, it will be at approximately 110*sqrt(focal length). Note that all of these values are little-endian - least significant byte first.

For example, on the Sigma 19mm at infinity (first two focus positions bold, third one bold and underline):

Packet id: 30, rxtx: 0, length: 46, data: "00 01 34 06 12 00 2C 0F 00 00 10 87 0F A6 13 00 00 0A 00 21 00 00 00 00 2C 0F 00 00 21 00 F9 01 00 00 00 00 00 00 00 00 00 00 00 98 03 55 "

0x01f9 = 505 = 115.85*sqrt(19.0)

SELP1650 @16mm (note, lens may not be at infinity, it's a bit of a pain to independently control zoom and focus on this lens due to a single control ring - I suspect it wasn't at infinity as this has the highest values compared to focal length of any lens I have looked at)

Packet id: 30, rxtx: 0, length: 46, data: "00 01 6B 06 82 00 00 40 03 10 50 F2 3E C5 42 0E 00 17 00 18 47 47 EB 08 FF 3F 00 40 27 00 FE 01 00 00 00 00 00 00 FF 01 00 00 00 60 09 55 "

(note that 0x4000 = 0x3fff + 1)

0x01fe = 510 = 127.5*sqrt(16.0)

SELP1650 @50mm (again, lens not likely at infinity):

Packet id: 30, rxtx: 0, length: 46, data: "00 01 04 06 82 00 6F 36 2B 1D 70 C7 35 12 43 00 40 14 00 18 7C 7C 99 0F 70 36 00 00 25 00 7C 03 00 00 00 00 00 00 00 00 00 00 00 C1 06 55 "

0x037c = 892 = 126.1*sqrt(55.0)

SEL55210 @55mm (infinity):

Packet id: 30, rxtx: 0, length: 46, data: "00 01 E6 06 92 00 E2 3E D0 11 10 E2 3E 6A 44 D0 01 12 00 18 39 39 29 07 E1 3E 00 40 6C 00 1A 03 00 00 00 00 00 00 00 00 00 00 00 13 09 55 "

0x031a = 794 = 107.06*sqrt(55.0)

SEL55210 @210mm (infinity):

Packet id: 30, rxtx: 0, length: 46, data: "00 01 87 06 92 00 35 33 10 4D 10 35 33 CD 4D 10 3D 0C 00 17 7A 7A 49 0F 34 33 00 40 85 00 9F 06 00 00 00 00 00 00 00 00 00 00 00 34 07 55 "

0x069f = 1695 = 116.9*sqrt(210.0)

Also, it's too much data for this post, but all of the lenses above increase that focus position value as the lens moves outwards. I'm fairly certain this is how subject distance is calculated on native lenses.

Now let's look at the Techart III in Fn mode (The focus position value is misreported in Nor mode too):

EF 50/1.8 STM at infinity:

Packet id: 30, rxtx: 0, length: 46, data: "00 01 0C 06 82 00 FF 3E 00 10 10 00 3F AD 4F 00 00 1A 00 00 12 12 52 02 FF 3E 00 40 29 00 62 01 00 00 00 00 00 00 00 00 00 00 00 F8 05 55 "

0x0162 = 354 = 110.0*sqrt(10.2)

10.2mm??? For a 50mm lens focused at infinity??? That's not right. It also does not change when focusing.

EF 85/1.8 USM at infinity:

Packet id: 30, rxtx: 0, length: 46, data: "00 01 64 06 82 00 44 58 00 10 10 00 3F 40 59 00 00 15 00 00 12 12 52 02 44 58 00 00 29 00 62 01 00 00 00 00 00 00 00 00 00 00 00 66 04 55 "

0x0162 again?  Techart hardcoded this.  It never changes with focus position or lens focal length.

There is a good chance this value is why despite emulating a native lens, moving the focus ring of a lens with the Techart III does not trigger MF assist like on a native lens and does not display the subject distance slider in the camera's UI.  (Metabones IV in "advanced" mode claims to support this but I do not own a Metabones adapter for testing.)  It may also be confusing the autofocus system and could explain why the Techart III tends to perform more poorly as focal length increases.

The Viltrox II also populates this with "wrong" data (EF50 has lower values than EFS24), but at least it makes an attempt to place increasing values in this field as the lens moves.

 Entropy512's gear list:Entropy512's gear list
Sony a6000 Pentax K-5 Pentax K-01 Sony a6300 Canon EF 85mm F1.8 USM +5 more
Post (hide subjects) Posted by
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow