Electronic Lens Control
Open, NormalPublic

Description

To apply for this task please complete one of those mandatory coding challenge together with your application: T1140
Applications without matching coding challenge completed will not be considered.

Read our Google Summer of Code Overview page:
https://wiki.apertus.org/index.php/GSoC_Overview


Control lens systems from various manufacturers (Canon, Nikon, Sony) from the AXIOM Beta hardware.
Implement the different protocols in a way that they can be utilized via AXIOM Beta userspace.

Goals:

  • Create a physical/electronic lens mount adapter (a macro extension tube might be a good basis for this device) that can go between lens and existing photo camera to listen to the communication between them. This means you require to have said lens/camera combination (Canon, Sony e-mount or Nikon).
  • Analyze the communication, pinout and protocol of the lens system
  • Adapt the "sniffing device" (from point 1) to being able to send communication to the lens - basicaly taking the photo camera out of the system
  • Establish communication with the Lens System
  • Retrieve Information about the Lens System (focal length, aperture range, focus distance etc)
  • Control the Lens System (Adjust aperture, focus, etc)
  • Create a generic lens control API that should abstract away the differences from different manufacturers if multiple system can be reverse engineered this way.

Prerequisites:

  • A test bench for interfacing the lens with a microcontroller
  • A working off the shelf camera/lens assembly to listen to lens communications

Required skills:

  • Basic hardware skills
  • Embedded systems programming (e.g. Arduino or other microcontrollers)
  • 3D CAD?

Some lens protocols were already reverse engineered; some good starting points:

Difficulty: Hard

Mentor: Alex (main mentor), Bertl (backup/co mentor)

To get in touch with any mentor check the Mentor Contact List.

sebastian updated the task description. (Show Details)
sebastian raised the priority of this task from to Wishlist.
sebastian moved this task to Misc on the Google Summer of Code 2022 board.
sebastian added a subscriber: sebastian.
Bertl renamed this task from electronic photography lens control to Electronic Photography Lens Control .Feb 8 2017, 10:55 PM
Bertl updated the task description. (Show Details)
alex updated the task description. (Show Details)Feb 8 2017, 11:17 PM
alex renamed this task from Electronic Photography Lens Control to Electronic Lens Control .Feb 9 2017, 11:08 AM
alex added a project: AXIOM Beta Hardware.
Bertl updated the task description. (Show Details)Feb 9 2017, 5:16 PM
Bertl added a subscriber: Bertl.Mar 23 2017, 9:12 AM
prnv.jb added a subscriber: prnv.jb.EditedMar 28 2017, 8:55 AM

Hi,
Is it something like this (http://www.ixbt.com/digimage/canonautosonyl.shtml) that you want to implement ??

Is it something like this (http://www.ixbt.com/digimage/canonautosonyl.shtml) that you want to implement ??

Yes, looks very similar.

Sebastian, if there's need at some point in time then i can translate the article natively, if machine translation is not clear enough.

Clarify me whether the communication system between cameras( of different manufacturers) and lens is same or do we need to implement different communication protocols for different camera manufacturers? Do all lens systems from various manufacturers follow same communication protocol to their cameras?

Every manufacturer has different protocol for their lenses.

prnv.jb added a comment.EditedMar 29 2017, 9:36 AM

I figured out that camera lenses are using 16bit addressing system and SPI protocol. We need to send and retrieve 16bit data from lenses. And then we need to decode that data stream to human readable. Unfortunately, the data that can be sent and retrieve to lenses is different for every model of the same lens manufacturer. Camera manufacturers include all the information(focus length, aperture range) in their firmware through camera lens ID code. Either we need to get data stream information and observe that by oscilloscope and function generator and translate that to lens information but we've to perform that for every lens model on the planet or else we can ask the camera manufacturers about their own SPI system (what bytes for what).

Bertl added a comment.Mar 29 2017, 2:45 PM

It is unlikely that the lens system manufacturers will disclose the information about their lenses, but of course, it is worth a try contacting and asking them.

The electronics for communicating with the lens system will most likely be added to an AXIOM Beta shield and the pins in the mount base will then be used to make contact.

Best,
Herbert

sebastian moved this task from Misc to Misc on the Google Summer of Code 2022 board.
Bertl updated the task description. (Show Details)Jan 23 2018, 12:59 PM
sebastian updated the task description. (Show Details)Mar 8 2018, 8:26 PM
BAndiT1983 updated the task description. (Show Details)Feb 5 2019, 8:22 AM
sebastian updated the task description. (Show Details)
sebastian updated the task description. (Show Details)Feb 6 2019, 9:38 AM
sebastian updated the task description. (Show Details)
sebastian updated the task description. (Show Details)
sebastian raised the priority of this task from Wishlist to Normal.Feb 6 2019, 12:46 PM
Bertl updated the task description. (Show Details)Feb 6 2019, 1:13 PM
Bertl updated the task description. (Show Details)Feb 28 2019, 12:01 PM
sebastian updated the task description. (Show Details)Apr 6 2019, 12:37 PM