1.7 KiB

Canon lens management.

Management of some Canon Lens. Checked: EF85, EF200 and EF400.

Documentation about first "crack" methods.

Pinout

  • PA4 - lens detect (low active);
  • PA5,6,7 - SPI SCK, MISO (should have external pullup), MOSI;
  • PA8 - enable lens power (high active);
  • PA9 - !OC - overcurrent detected (low active);
  • PA10 - USB DP pullup (low active);
  • PA11,12 - USB DM, DP;
  • PA13,14 - SWD IO, CLK;
  • PB8,9 - CAN Rx,Tx;
  • PC13 - USB/CAN (solder jumper to turn on CAN instead of USB, zero - CAN).

USB commands

Protocol have a string form, each string ends with '\n'. You should wait an answer for previous command before sending next, or have risk to miss all the rest commands in one packet.

Base commands

0 move to smallest foc value (e.g. 2.5m)

1 move to largest foc value (e.g. infinity)

a move focus to given ABSOLUTE position or get current value (without number)

d open/close diaphragm by 1 step (+/-), open/close fully (o/c) (no way to know it current status)

f move focus to given RELATIVE position

h turn on hand focus management

i get lens information

l get lens model

r get regulators' state

Debugging or configuration commands

A set (!0) or reset (0) autoinit

C set CAN speed (25-3000 kbaud)

D set CAN ID (11 bit)

E erase full flash storage

F change SPI flags (F f val), f== l-LSBFIRST, b-BR [18MHz/2^(b+1)], p-CPOL, h-CPHA

G get SPI status

I reinit SPI

L 'flood' message (same as S but every 250ms until next command)

P dump current config

R software reset

S send data over SPI

T show Tms value

X save current config to flash