Skip to main content


Motorized zoom lens systems designed to be integrated into custom optical instruments and operated remotely. Lenses are paired with 4 axis custom motion controllers.


Lens name Zoom ratio Focal length, mm Image circle, mm
L084 40x 6.3 ~ 252 9.2
L085 25x 5.3 ~ 130 6.8
L086 18x 6.8 ~ 120 9.2
L116 (TBD) 5x 10.5 ~ 47 9.2
L117 32x 6.5 ~ 212 9.2
L119 (TBD) 16x 16.8 ~ 269 20.8
L120 28x 6.7 ~ 190 9.3


Detailed SCE2-M controller documentation is located here. Information and examples below explains how to use lens functions.


In order to function properly, controller has to be configured. There are many things that should be adjusted: max motor speed, direction, homing parameters, motor acceleration, motor steps per mm calibration and more. Mostly suitable parameter table is maintained along with source code on SCE2-SDK repository on GitHub. Most parameters can be updated during normal operation, but controller restart might be required. Motors are calibrated to match g-code travel value with physical motor travel length in mm.

Firmware has 2 startup command lines that are executed during power on sequence. Any G-code command can be used. However for smaller motors we recommend setting lower so motors will not overheat.


Iris (also known as aperture) is responsible for:

  • Light gathering capabilities (larger aperture lets collect more light).
  • Depth of field (DOF). Open aperture will yield shallow depth of field.
  • Spatial resolution. Usually lens sharpness is affected by aperture position. Usually maxes out somewhere at the middle of range.

New lenses have 2 types of iris mechanisms;

  • P-Iris - so called precision iris, driven by a stepper motor.
  • DC-Iris - more often found in older lenses. Construction is simpler but control and precise positioning is much more complicated. Uses hall sensor to establish position. Current controller allows only on or off control of this iris type.

Due to construction topology DC-Iris is always closed after controller is reset


Two interpretations of homing are used in lenses and controllers.

  • One is used by GRBL code derived from CNC control where home means axis can't move any further. It is in most minimal position and in normal operation should operate in positive range of axis. In normal operation axis should never reach limit switches.
  • Another scheme is used by a lens. Lens is designed in such a way that limit switch is placed roughly in the middle of the axis. In most configurations optical train can't go far from center axis position. And motor operates in positive and negative range of axis.

If standard firmware detects that limit switch is actuated it decides that it is dangerous situation and motors should be powered down. While for CNC this behavior is perfect it is not acceptable for lens control. It is pretty easy to configure controller to operate normally when limit switch is actuated. However if limit switch is already actuated homing procedure will fail. This functionality should be fixed in upcoming firmware updates. Meanwhile prior to homing procedure axes should be moved away from limit switches manually before performing homing procedure.


Source code of development kit is maintained on GitHub.

Lens Tester GUI

  • Open python script
  • Select COM port and click Connect, lens should be automatically detected and status info filled
  • Normally Iris is closed. Click OPEN
  • Change desired active filter
  • Reference each axis. If position sensor shows LOW, move axis manually until status changes to HIGH. Recent firmware does not know how to perform home cycle when limit switch is actuated. This behavior is perfectly normal for CNC machines and operation will be updated in future firmware releases
  • After each axis is referenced try lens train presets.


Console demo

  • Edit script and change COM port
  • Open python script
  • Controller will move lens train and toggle various parameters. See code for more details