> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.stereolabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.stereolabs.com/_mcp/server.

# Using GMSL with ZED Box 2

The ZED Box 2 comes with two embedded [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) quad deserializers, so you can connect up to 8 **ZED X** and **ZED X One** cameras, or any other supported GMSL2 camera.

![ZED Box 2 with 8 GMSL2 cameras](/_fern-files/_img/91100187e2096bea43b7d127667a931a18b4ce85a554bd5db717dbce07663d76.webp)

## GMSL driver

The ZED X cameras require a GMSL driver. It comes already installed with the ZED Box 2.

You may need to install it manually, especially if you upgraded your system version. Go to [our website](https://www.stereolabs.com/developers/drivers) and download the ZED Box 2 driver version that matches your L4T version.

To find your Jetson Linux (L4T) version, run:

```bash
cat /etc/nv_tegra_release
```

You will obtain an output like this:

```bash
# R36 (release), REVISION: 4.3, GCID: ..., BOARD: generic, EABI: aarch64, DATE: ...
```

In this example, the L4T version is 36.4.3.

Then, open a terminal in the folder that contains the downloaded driver and run:

```bash
sudo dpkg -i <the deb file path>
```

Finally, reboot the device.

## Multi-camera configurations

The ZED Box 2 provides 8 [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) ports on two Quad FAKRA-Z connectors. Each connector is driven by its own deserializer:

* Connector **#1**: ports **1** to **4**
* Connector **#2**: ports **5** to **8**

On each connector, the ports are organized in two pairs of adjacent ports: ports **1-2** and **3-4** on connector **#1**, ports **5-6** and **7-8** on connector **#2**.

The bandwidth is shared between the cameras connected to the same Quad FAKRA-Z connector. Please refer to the table below to understand how different camera configurations provide different image capture behaviors, according to the number of cameras, their type, and the ports they are connected to:

| Camera Type | Camera Model                                           | Max number of cameras **per connector**                    | Max Resolution/FPS                                   | Max number of cameras **per ZED Box 2** |
| ----------- | ------------------------------------------------------ | ---------------------------------------------------------- | ---------------------------------------------------- | --------------------------------------- |
| Monocular   | ZED X One GS ZED X One S                               | Up to 4 cameras                                            | HD1200\@60fps HD1080\@60fps SVGA\@120fps             | 8                                       |
| Monocular   | ZED X One 4K                                           | Up to 2 cameras *only to port #1, #3, #5, #7*              | 4K\@15fps QHDPLUS\@15fps HD1200\@60fps HD1080\@60fps | 4                                       |
| Stereo      | ZED X ZED X Mini ZED X Nano                            | Up to 2 cameras                                            | HD1200\@60fps HD1080\@60fps SVGA\@120fps             | 4                                       |
| Stereo      | ZED X ZED X Mini ZED X Nano                            | Up to 4 cameras                                            | HD1200\@30fps HD1080\@30fps SVGA\@60fps              | 8                                       |
| Mixed       | ZED X One GS/ZED X One S + ZED X/ZED X Mini/ZED X Nano | 1 ZED X One GS/S + 1 ZED X/Mini/Nano **per pair of ports** | HD1200\@60fps HD1080\@60fps SVGA\@120fps             | 4 + 4                                   |

> **Note**
>
> For the maximum frame rate with stereo cameras, connect no more than 2 stereo cameras to each Quad FAKRA-Z connector, and distribute them over the two connectors.

Beyond the GMSL2 bandwidth, the number of cameras you can process in real time also depends on the ZED SDK modules you run and on the [power mode](/docs/products/embedded/zed-box-series/zed-box-2/power-modes) of the Jetson module. Read [Frame rate and latency](/docs/development/zed-sdk/modules/camera/frame-rate-and-latency) to size your application.

## Camera synchronization

The cameras connected to the **same** Quad FAKRA-Z connector are natively synchronized by their deserializer. The synchronization of the two deserializers, and of several ZED Box 2 units, is configured with the `sync_mode` parameter of the ZED X daemon, in the file `/etc/systemd/system/zed_x_daemon.service`:

| `sync_mode` | Mode                         | Use case                                                                                                                                                                                                                                                                                      |
| ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0`         | Unsynchronized deserializers | The two connectors run independently.                                                                                                                                                                                                                                                         |
| `1`         | Internal synchronization     | All 8 ports are synchronized together, and the trigger signals are available as outputs on the [Sync and IO](/docs/products/embedded/zed-box-series/zed-box-2/connectivity#sync-and-io) connector. Use it on a standalone ZED Box 2 and on the **Master** device of a multi-device setup.     |
| `2`         | External trigger             | The cameras are triggered by the signal received on pin #2 of the [Sync and IO](/docs/products/embedded/zed-box-series/zed-box-2/connectivity#sync-and-io) connector. Use it on the **Slave** devices of a multi-device setup, or to synchronize the cameras with an external trigger source. |

Change the mode with the following commands, replacing `<mode>` with `0`, `1`, or `2`:

```bash
sudo sed -i 's/^sync_mode=./sync_mode=<mode>/' /etc/systemd/system/zed_x_daemon.service
sudo systemctl daemon-reload
sudo systemctl restart zed_x_daemon.service
```

The mode is kept across reboots.

### Synchronize all the cameras of a ZED Box 2

To synchronize the cameras connected to the two Quad FAKRA-Z connectors together, for example for 360° perception with 8 cameras, set `sync_mode=1`:

```bash
sudo sed -i 's/^sync_mode=./sync_mode=1/' /etc/systemd/system/zed_x_daemon.service
sudo systemctl daemon-reload
sudo systemctl restart zed_x_daemon.service
```

Now, all the cameras connected to the ZED Box 2 have synchronized frame acquisition with 15µs precision.

> **Note**
>
> Although frames are hardware-synchronized with 15µs precision, software timestamps are assigned upon driver receipt and may exhibit slight millisecond-level jitter. Frames are considered synchronized if the timestamp difference is less than one frame period (`1000/FPS` ms).

### Multi-device synchronization

Several ZED Box 2 units can share the same frame-sync trigger, so that the `grab` calls of the ZED SDK on all the devices are aligned on the same clock signal.

> **Warning**
>
> The trigger pins of the Sync and IO connector are **1.8V** signals. Do not connect them to 3.3V or 5V signals, for example the SYNC-OUT port of a ZED Box Mini or a third-party trigger source, without a level shifter: out-of-range voltages may permanently damage the port and the Jetson module.

The devices are wired in a **star** configuration: the trigger output of the Master is split to reach the trigger input of each Slave. Unlike the [ZED Box Mini](/docs/products/embedded/zed-box-series/zed-box-mini/connectivity#multi-device-synchronization), the ZED Box 2 units are not daisy-chained: a Slave does not forward the trigger signal to another Slave.

1. Designate one ZED Box 2 as **Master** and set `sync_mode=1` on it, as described [above](#synchronize-all-the-cameras-of-a-zed-box-2).

2. On each **Slave** ZED Box 2, set `sync_mode=2`:

   ```bash
   sudo sed -i 's/^sync_mode=./sync_mode=2/' /etc/systemd/system/zed_x_daemon.service
   sudo systemctl daemon-reload
   ```

3. Connect a `GND` pin (for example pin #5) of the Master to a `GND` pin of each Slave.

4. Split the wire from pin #1 (`DESER_1_TRIGOUT`) of the Master, and connect it to pin #2 (`DESER_2_TRIGIN`) of each Slave.

5. Restart the ZED X daemon on each Slave:

   ```bash
   sudo systemctl restart zed_x_daemon.service
   ```

6. Verify the Slave configuration:

   ```bash
   sudo dmesg | grep Sync
   ```

   The output should report `Sync mode configured` for the deserializers.

When you use an external trigger source instead of a Master ZED Box 2, it must provide a signal with the following characteristics:

* Square wave
* Amplitude: 1.8V, never higher
* Frequency: the camera frame rate set in the ZED SDK (15Hz, 30Hz, 60Hz, or 120Hz)

> **Note**
>
> Multi-device synchronization is only available for [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) cameras. USB 3 cameras do not support this feature.

## Developing your own driver

If you intend to use a GMSL device alongside a StereoLabs ZED X camera, a custom driver is required for compatibility.

In such cases, we recommend reaching out to our support team at [support@stereolabs.com](mailto:support@stereolabs.com) for more information and assistance.