DOC Skip to main content

Multi-Device Synchronization Guide

Update on 2026-11-06 06:41:53

ON THIS PAGE

This guide uses the Gemini 305g as an example to demonstrate multi-camera synchronization setup, including hardware connections, synchronization mode configuration, and validation. The procedures also apply to other Orbbec GMSL series cameras.

 

1.  Synchronization Mode Description:

1.1 Secondary-Synced: Secondary-synced mode. The camera works in continuous streaming mode with on-board RGB-D synchronization, and captures images in sync with the external hardware synchronization signal. It supports receiving and sending sync/trigger signals through the GMSL interface.

1.2 Hardware Triggering: Hardware triggering mode. The camera works in trigger-based capture mode and captures RGB-D images synchronously upon receiving an external hardware trigger signal. Single trigger and continuous multi-frame capture are supported, with a configurable number of frames. It supports receiving and sending sync/trigger signals through the GMSL interface.

 

2. Hardware Platform and Connection Diagram:

2.1 Hardware photo (taking AGX Orin as an example)

image001.png

 

Note: The figure above uses Gemini 305g as an example. The GMSL interface driver and hardware of all Orbbec GMSL series sensors are exactly identical, and mixed use is supported in actual deployment.

 

2.2 Synchronization Signal Chain Diagram:

1) To achieve accurate synchronization, the host should be able to output a stable, high-precision trigger signal. After the trigger signal is output to the supported deserializer MAX9296A or other compatible deserializers, the deserializer and the serializer can transmit the signal to the ASIC through GPIO mapping via the coaxial cable. The GPIO used by the Gemini 305g serializer is MFP6.

2) Users can evaluate the synchronization effect with Orbbec's official preview tool, Orbbec Viewer. In Orbbec Viewer, set camera #1 to camera #8 to “Secondary-synced”, then use the provided script to generate PWM signals. In this case, all 8 cameras work as secondaries, with the host PC as the master, achieving accurate multi-device synchronization. With proper configuration and no external interference, the synchronization accuracy can reach 1 ms.

image003.png

 

2.3 GMSL IO Pin Definitions:

Pin

I/O

Definition

Function Description

Deserializer Priority

MFP3

O

WAKE

Camera enters sleep mode; high level wakes it up

Level 2 — used when low-power operation is required

MFP6

O

SYNC_IN

Multi-device sync SYNC_IN, output from the serializer IC to the ASIC; active high pulse, pulse width ≥1 ms

Level 2 — used for multi-camera synchronized operation

MFP7

O

PPS

GPS pulse-per-second signal; active high pulse, pulse width >1 ms

Level 2 — used when a module power reset is required

MFP8

O

RESTART

Multi-device sync SYNC_OUT, output from the ASIC to the serializer IC; active high pulse, pulse width ≥1 ms

Level 2 — used for multi-camera synchronized operation

MFP9

I

SYNC_OUT

Multi-device sync SYNC_OUT, output from the ASIC to the serializer IC; active high pulse, pulse width ≥1 ms

Level 2 — used for multi-camera synchronized operation

MFP15

O/I

I2C_SDA

I2C_SDA (master)

Level 1 — mandatory

MFP16

O

I2C_SCL

I2C_SCL (master)

Level 1 — mandatory

 

3.  Platform and Accessory Support Information

 

Support Information

Reference Link

Hardware Platform

AGX Orin, AGX Orin NX, Xavier

 

Firmware Version

1.0.70 or later

doc.orbbec.com/documentation/Gemini 305 Documentation/Firmware Release of Gemini 305

SDK Version

Orbbec SDK 2.8.6 or later

doc.orbbec.com/documentation/Gemini 305 Documentation/Firmware Release of Gemini 305

Deserializer Board Model

FG96-8CH-V2; LI-JAG-ADP-GMSL2-8CH

 

Supported Sensor Models

Gemini 335Lg, Gemini 338Lg, Gemini 305g, Gemini 345Lg

 

 

4. Synchronization Mode Configuration Example

4.1 Example Environment

image005.png

4.2 Physical Connection:

image007.png

4.3 SDK Build:

Code Example Verification:

Build:

#cd Multi-Device-Synchronization-Example-feature-add_multi_device

#mkdir build && cd build

#cmake ..

#cmake --build . --config Release

 

5. Trigger Mode Description:

5.1 Secondary-synced Mode

①Working Principle:

1) The master device sends a hardware trigger signal via the sync signal at each frame exposure.

2) The secondary device performs exposure and captures images upon receiving the trigger signal.

②Startup Sequence:

1) Start all secondary devices first

2) Then issue the hardware trigger signal

③Hardware Trigger Signal Requirements:

1) Electrical requirements of the trigger signal

 

 

 

 

 

VSYNC_IN

Input drive level: VCC voltage

Valid input level: VIH: VCC × 0.65, VIL: ≤ 0.7 V

Input drive current: ≥ 4 mA at 1.8–5.0 V. The drive current may be increased as appropriate depending on the cable length in the actual application.

Signal rise rate: ≤ 30 ns/V at 1.8 V; ≤ 20 ns/V at 3.3 V; ≤ 8 ns/V at 5.0 V

Signal fall rate: ≤ 90 ns/V at 1.8 V; ≤ 90 ns/V at 3.3 V; ≤ 50 ns/V at 5.0 V

Trigger type: Rising-edge trigger. Signal requirement: Single-pulse trigger.

2) Trigger signal fluctuation requirements:

30 fps: 33.453 ms (29.892 Hz) ~ 33.333 ms (30 Hz, excluding 30 Hz)

④Configuration Example:

1) In Multi-Device-Synchronization-Example-feature-add_multi_device/config, configure the MultiDeviceSyncConfig.json file:

image011.png

2)Configuration Parameter Description:

Configuration Parameter

Description

syncMode

Synchronization mode. Available values: OB_MULTI_DEVICE_SYNC_MODE_PRIMARY, OB_MULTI_DEVICE_SYNC_MODE_SECONDARY_SYNCED, OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_TRIGGERING, OB_MULTI_DEVICE_SYNC_MODE_HARDWARE_TRIGGERING

depthDelayUs

Configures the depth frame delay, in microseconds.

colorDelayUs

Configures the color trigger signal input delay, in microseconds. Typically set to 0.

trigger2ImageDelayUs

Configures the delay from trigger signal input to image capture, in microseconds. Typically set to 0.

triggerOutEnable

Enables or disables the device trigger signal output.

triggerOutDelayUs

Configures the device trigger signal output delay, in microseconds. Typically set to 0.

framesPerTrigger

Specifies the number of frames captured per trigger. This parameter is only valid in software triggering and hardware triggering modes. Typically set to 1.

Enter the build/bin directory: run ./MultiDeviceSync

image015.png

image017.png

Before the hardware trigger signal is started, the timestamp has an error of about 3 ms,

Run with administrator privileges:sudo ./MultiDeviceSyncGmslTrigger

image019.png

 

After execution, the timestamp synchronization result:

image021.png

5.2 HARDWARE_TRIGGERING Mode

① Working Principle:Hardware triggering mode. The device captures a specified number of frames when it receives an external hardware trigger signal through the sync port.

② Hardware Trigger Signal Requirements:

 

 

 

 

 

VSYNC_IN

Input drive level: VCC voltage

Valid input level: VIH: VCC × 0.65, VIL: ≤ 0.7 V

Input drive current: ≥ 4 mA at 1.8–5.0 V. The drive current may be increased as appropriate depending on the cable length in the actual application.

Signal rise rate: ≤ 30 ns/V at1.8 V; ≤ 20 ns/V at 3.3 V; ≤ 8 ns/V at 5.0 V

Signal fall rate: ≤ 90 ns/V at 1.8 V; ≤ 90 ns/V at 3.3 V; ≤ 50 ns/V at 5.0 V

Trigger type: Rising-edge trigger. Signal requirement: Single-pulse trigger.


③Startup Sequence:

1) The device is configured in hardware triggering mode.

2) The device receives the hardware trigger signal through the sync port

3)Each trigger captures framesPerTrigger frames

4) The device also outputs the trigger signal through the sync port (enabled by default), which can be used to chain-trigger the next device.

④ Trigger Frequency Limit:

To ensure proper operation in this mode, the IR, depth, and RGB sensors must be configured to the same fixed frame rate (e.g., 5, 10, 15, 30, or 60 fps). This setting determines the minimum allowed time between two triggers, which in turn determines the maximum effective trigger frequency. The camera only responds to trigger signals within this allowed range. Therefore, any trigger frequency within the valid range can be passively supported.

Set The Camera’s Fixed Frame
Rate(fps)

Supportable Passive Trigger
Interval (ms)

Supportable Passive Trigger
Frequency (Hz)

60

≥33.4

0-30

30

≥33.4

0-30

15

≥66.7

0-15

10

≥133.4

0-10

5

≥200

0-5

⑤Configuration Example:

Modify MultiDeviceSyncConfig.json:

image024.png

 

1) Open the first terminal and run the multi-device synchronization example:

image026.png

 

2) Open the second terminal and run the PWM trigger signal example with administrator privileges

image028.png

3) Test Result:

image030.png

 

Appendix:

ROS2 Running Example:

2*335LG +2*305G

GMSL Multi-Device Documentation Reference Links:

5.2.4. GMSL Camera — OrbbecSDK V2 ROS2 Wrapper Documentation

 

ros2 sdk version : 2.8.6

Ensure camsync permission: chmod 777 /dev/camsync

Configuration of multi_gmsl_camera_synced.launch.py under /orbbec_camera/examples/gmsl_camera:

image032.png

 

Launch the corresponding launch file:

#ros2 launch orbbec_camera multi_gmsl_camera_synced.launch.py

image034.png

 

Run #ros2 run orbbec_camera image_sync_example_node to check the synchronization effect

image036.png

ON THIS PAGE

Add

  • Name:

  • Link Address:

Cancel

Add

  • Name:

  • Link Address:

Cancel
Questions or
Feedback?

Feedback

  • Your feedback matters! Share your thoughts on this page, report errors, or let us know how we can improve to better support your needs. If applicable, please include the specific sentence or section to help us identify and address the issue.