• Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
  • Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
home/Knowledge Base/Camera Features/Using Multiple Helios Cameras Simultaneously

Using Multiple Helios Cameras Simultaneously

418 views 2 June 25, 2024 Updated on March 7, 2025

There are numerous use cases where multiple Helios ToF cameras are required to be used simultaneously at the same scene. To avoid interference between the lasers emitted by the different devices, special measures have to be employed.

On Helios2 family devices, A feature called Communication Channel is available, allowing users to operate up to 5 Helios2 cameras without interference between cameras. This is accomplished by using slightly different modulation frequencies for each channel.

What if I want to use more than 5 cameras? Such can be achieved by implementing timed triggering and acquisition for different cameras.

The following graph shows the Integration stages of the lasers on the normal modes on all Helios2 and Helios2+ at 1000us exposure times in non-high speed Operating Modes.

Duration

Description

Reset

Negligible

The duration is minimal and negligible, and no integration or image acquisition takes place. Hence it can be grouped and considered as part of readout/ idle time.

Integration

User-selected

The duration of the laser integration is slightly shorter than the user-selected ExposureTime:

  • ExposureTime: 1000 μs → laser integration time: 980 μs

Readout

1.55 ms

Always constant independent of operating mode on all Helios 2 variants

Idle

Calculated

The lasers are idle during the remainder of the time in the allocated time in each frame

The following shows the sequence of the operation of the cameras with the exposure time of 1000 μs, with one of the single-frequency operating modes.

  1. The laser integrate for 0.98 ms

  2. followed by the constant readout time of 1.55 ms

  3. Steps 1 & 2 are repeated 4 times for all 4 lasers

  4. T(total) = (0.98 + 1.55) x 4 = 10.12 ms. The camera will then stay idle until it is time to integrate for the next frame

During the idle time in each frame, additional integrations and acquisitions can be accommodated. This is given by:

Total allowable exposure between frames = T(FPS) / T(total) = (1000 ms / 30 FPS) / 10.12 ms = 3

During the readout time in each micro frame, additional integrations and acquisitions can be accommodated. This is given by:

Total allowable exposures between integration = T(readout) / T(integration) = 1.55 ms / 0.98 ms = 1

Combining the above would give 3 x (1 + 1) = a total of 6 cameras.

Now that we have knowledge of the laser timings and durations when additional cameras could be added, we can work out the TriggerDelay times for each camera.

We add a buffer of around 170 μs after integration to avoid jitter

Calculations for the timings for the TriggerDelay for an ExposureTime of 1000us:

Camera #

Group (G)

Formula

Calculation (μs)

TriggerDelay (μs)

ExposureTimeSelector = 1000

1

0

Reference

0

0

2

0

T(integration) + buffer

980 + 170

1150

3

1

G x T(total)

10120

10120

4

1

G x T(total) + T(integration) + buffer

10120 + 980 + 170

11270

5

2

G x T(total)

20240

20240

6

2

G x T(total) + T(integration) + buffer

20240 + 980 +170

21390

TriggerDelay can be implemented in one of the two ways below:

Trigger Mode

  • ArenaView: Navigate to the Trigger Delay Node and input the calculated value.
  • C/C#/C++/Python API in Arena SDK: set the TriggerDelay node to the calculated value
    C: SetFloatValue(hNodeMap, "TriggerDelay", delay_value);
    C#: SetFloatValue(device.NodeMap, "TriggerDelay", delay_value);
    C++: SetFloatValue(pDevice->GetNodeMap(), "TriggerDelay", delay_value);
    Python: device.nodemap.nodes['TriggerDelay'].value = delay_value

PTP Sync

  • ArenaView:  Set PTPEnable to True, set AcquisitionStartMode to PTP Sync, and then set the PTPSyncOffset node to the desired value.
  • C/C#/C++/Python API in Arena SDK: Use the PTPSyncOffset node to define a delay (in nanoseconds).
    C: SetFloatValue(hNodeMap, "PTPSyncOffset", delay_value);
    C#: SetFloatValue(device.NodeMap, "PTPSyncOffset", delay_value);
    C++: SetFloatValue(pDevice->GetNodeMap(), "PTPSyncOffset", delay_value);
    Python: device.nodemap.nodes['PTPSyncOffset'].value = delay_value

    The PTPSyncOffset node is available in the following Helios2 firmware versions:

    • HLT003S: 1.21.0.00 and higher
    • HTP: 1.16.0.0 and higher
    • HTR: 1.6.0.0 and higher
    • HTW: 1.12.0.0 and higher
    • HTN: 1.1.0.0 and higher

Was this helpful?

2 Yes  No
Related Articles
  • Using QOI with LUCID Cameras
  • Solving driver-related RDMA streaming issues with Ubuntu 22.04
  • Troubleshooting Network Timeouts (Linux)
  • Shading Correction Control (Atlas10)
  • Save Image on LUCID Camera’s File System
  • Multicast Device Discovery with LUCID Cameras

Didn't find your answer? Contact Us

  Troubleshooting Network Timeouts (Linux)

Solving driver-related RDMA streaming issues with Ubuntu 22.04  

© 2024 LUCID Vision Labs Inc.
Looking to purchase our cameras?
Visit the LUCID Webstore at thinklucid.com
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}