Lens Motor Control
πŸ“’

Lens Motor Control



Supported Lens Motors


Tilta Nucleus-M Motors

  • Cheap, entry-level option 

  • Can trigger camera start/stop
  • No position feedback 

  • No status feedback 

  • Tuned for hand operation


Requirements

  • 12-24V DC Power supply 5-10A
  • IO Builder Tilta Nucleus-M EtherCAT Control Box or DIY UDP/TTL Serial Gateway


CMotion CForce Motors

  • High torque option available (CForce Plus)

  • Medium-frequency position feedback

  • Status feedback
  • Expensive

  • Additional adapter is required (ARRI LCUBE)

  • Tuned for hand operation

Requirements

  • 24V DC Power supply 5-10A
  • ARRI LCUBE CUB-1
  • IO Builder CForce EtherCAT Control Box or DIY UDP/RS232 Gateway
  • LCUBE IO Builder Cable


IO Builder Universal Lens Motor Driver


  • High torque options available

  • High-frequency control and feedback 

  • Extensive status and calibration feedback

  • Fully customizable tuning and parameters
  • Expensive

  • Factory motor cables cannot be used, requires custom-made cabling for different motors

Requirements

  • 24V DC Power Supply 5-10A
  • ARRI CLM3 / ARRI CLM4 / HedΓ©n Motors 
  • Other motors might be compatible, that have 
    Incremental Encoder Interface (5V, GND, A, B) and 
    Motor Winding Inputs (+, -)


EtherCAT Option




EtherCAT Option (with Additional EtherCAT Slaves)


If you plan to expand the network by adding more slaves, incorporating EtherCAT Junctions into the system is recommended to simplify the cabling process.




Example EtherCAT Junction Devices:


DIY Option


The user can create a custom solution that can be connected through the IP network. IO Builder has a Custom Lens Motor node developed for the purpose.


DIY Option Protocol Guide

This guide explains how to communicate between the IO Builder software and an external device (called "your box") to control camera lens features like Focus, Iris, and Zoom (FIZ). We use UDP, a way to send and receive messages, for this communication.

  • UDP Port: The external device should wait for messages from IO Builder on an arbitrary port (for example, port 10000).
  • Message Format: Messages between IO Builder and the external device are written in text/json format.


⬇️ From IO Builder to Your Box: IO Builder sends instructions like this

Clipboard
{
  "f": 0.0,   // Focus target
  "i": 0.0,   // Iris target
  "z": 0.0,   // Zoom target
  "f_cal": false, //Focus Calibration Request
  "i_cal": false, //Iris Calibration Request
  "z_cal": false  //Zoom Calibration Request
}

Target Values (f, i, z): (Percentage, 0 - 100.0 float; any negative value should disable the corresponding motor (removing power from the motor))
Calibration Request (f_cal, i_cal, z_cal): Start calibration on rising edge (true)




⬆️ From Your Box to IO Builder: After getting a message, reply to IO Builder with this format to the source UDP port:

Clipboard
{
  "f": 0.0,   // Actual focus position
  "i": 0.0,   // Actual iris position
  "z": 0.0,   // Actual zoom position
  "f_stat": 0, // Focus status
  "i_stat": 0, // Iris status
  "z_stat": 0  // Zoom status
}

Actual position: (Percentage, 0-100.0 float)
Calibration status (f_stat, i_stat, z_stat): 

Status

Value

Offline

0

Uncalibrated

1

Calibration in progress

2

Calibrated, ready

3

Immediate response with the current status after receiving a control packet ensures a reliable feedback loop, enabling IO Builder to adjust commands based on real-time lens positions and calibration status.