See EF 40mm f/2.8 STM 1.2.0

  • File extension is .LFU
  • minimal file length is 0x2e bytes
  • first 5 bytes must be 0x002c00004c
  • 6th byte is the number of lens records
  • See FF5BEC94 IsValidLensFirmware() in 5dm3, 1.1.2
  • For 5D Mark III, 650D/T4i and maybe 1Dx

no real header, version or CRC/checsum ? strange...

Frames[edit | edit source]

[TT] [LL PP PP ... CC]

TT = 1 byte type
LL = 1 byte "payload length + 1"
PP = payload
CC = checksum (0xFF - PP-bytes - LL)

Payload[edit | edit source]

Type 0x00[edit | edit source]

First Frame, unknown content 
0x2B bytes payload mostly 0x00. maybe sizes and flags.

Type 0x02[edit | edit source]

Looks like lens firmware content

Payload format:
[OO OO OO] [DD DD ... DD]

OO = Offset
DD = Data (0x10 bytes)
CC = Checksum header/data (without

Type 0x08[edit | edit source]

Last Frame, unknown content (0x03 bytes payload all zeros)

Indy: It is close to update records of type 0x200 for TX19A MPU: See Canon_SRec_format

Community content is available under CC-BY-SA unless otherwise noted.