> 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.

# ZED Link Quad GPIO Triggering

The ZED Link Quad [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) capture card allows you to synchronize external sensors by using triggering signals on the 16-pin 2.54mm pitch GPIO connector **J17**.

![](/_fern-img/c2d8198fc189f4903ce02fd55221c6edf0b8142ee8120411786bbbdbe956de9b.webp)![](/_fern-img/0494af1d8086fe396a33c3bfecff0e308d8e3b22a1266ed94e8b0008c4490fd8.webp)

## Master mode - Trigger out

The ZED Link Quad capture card is configured to operate in **master mode** by default.

In any case, if you change mode, you can set the card back to master mode by setting `sync_mode=0` in the file `/etc/systemd/system/zed_x_daemon.service` and restarting the ZED X daemon service:

```bash
sudo sed -i 's/^sync_mode=./sync_mode=0/' /etc/systemd/system/zed_x_daemon.service # Set master mode
sudo systemctl daemon-reload # Reload systemd configuration
sudo systemctl restart zed_x_daemon.service # Restart ZED X daemon service
```

The default content of the file `/etc/systemd/system/zed_x_daemon.service` is as follows:

```bash
[Unit]
Description=ZED-X Daemon service
After=nvargus-daemon.service driver_zed_loader.service 
Requires=driver_zed_loader.service
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
StandardOutput=syslog
ExecStart=/usr/sbin/ZEDX_Daemon

# 0 = no sync(Default), 1 = master/slave mode, 2 = slave mode only
sync_mode=0 

[Install]
WantedBy=multi-user.target
```

The output synchronization signals are available on **pin #16** and **pin #13** of the GPIO connector **J17** as soon as the Jetson™ device boots and the ZED Link [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) driver is installed.

* Connect the ground signal (Black - **GND**) to pin #2
* Connect the trigger out signal of the [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) port `J1` (Red - **DESER1\_MFP10**) to pin #16
* Connect the trigger out signal of the [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) port `J2` (Brown - **DESER2\_MFP10**) to pin #13

![](/_fern-img/449cc353b727ecd7ff2f2b00c35cdf33f5173c113bb46daa490dcc7af390ad47.webp)

### Triggering signals

The output trigger signals are two square waves, with their rising edges synchronized with the end of the exposure phase of the CMOS sensors.

The signals have a fixed **Amplitude** of 3.3V ± 1%, while **Width** and **Frequency** change according to the frame rate setting of the camera.

> **Note**
>
> The two deserializers installed on the ZED Link Quad are not synchronized, so the cameras connected to [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) connectors J1 and J2 will have a variable capture offset, depending on the camera open time. Only the four cameras connected to the same [GMSL2](/docs/products/embedded/zed-link-capture-card/gmsl2#what-is-gmsl2) connector are natively synchronized. To enable full synchronization of all the connected cameras, please follow the procedure described in the [ZED Link Quad Jetson AGX Orin Devkit Setup](/docs/products/embedded/zed-link-capture-card/gmsl2/zed-link-quad/jetson-orin-agx-devkit-setup/#enable-full-onboard-synchronization) or [ZED Link Quad Jetson AGX Xavier Devkit Setup](/docs/products/embedded/zed-link-capture-card/gmsl2/zed-link-quad/jetson-xavier-agx-devkit-setup/#enable-full-onboard-synchronization) guides.

#### Frame rate: 120 FPS - ZED X / ZED X Mini / ZED X Nano / ZED X One GS / ZED X One S

* Amplitude: 3.3V ± 1%
* Width: 2.08 msec
* Frequency: 120 Hz
* Period: 8.33 msec

![](/_fern-files/stereolabs.docs.buildwithfern.com/9d52e097b53887364b630526b776eebaa7341ca255e0ebf6173069229cb3a681/docs/products/embedded/zed-link-capture-card/images/zed-link-quad-OSC-120.png)

#### Frame rate: 60 FPS - ZED X / ZED X Mini / ZED X Nano / ZED X One GS / ZED X One S / ZED X One 4K

* Amplitude: 3.3V ± 1%
* Width: 4.17 msec
* Frequency: 60 Hz
* Period: 16.67 msec

![](/_fern-files/stereolabs.docs.buildwithfern.com/283cabf5c5d89bb0e191b5c3e5bd01562be2b9d75b38ab87d59bd56dfab197c2/docs/products/embedded/zed-link-capture-card/images/zed-link-quad-OSC-60.png)

#### Frame rate: 30 FPS - ZED X / ZED X Mini / ZED X Nano / ZED X One GS / ZED X One S / ZED X One 4K

* Amplitude: 3.3V ± 1%
* Width: 8.33 msec
* Frequency: 30 Hz
* Period: 33.33 msec

![](/_fern-files/stereolabs.docs.buildwithfern.com/462dce6aca772866a59a756fbec03d7aef55f730282cc893a23f483b7ebd9ca8/docs/products/embedded/zed-link-capture-card/images/zed-link-quad-OSC-30.png)

#### Frame rate: 15 FPS - ZED X / ZED X Mini / ZED X Nano / ZED X One GS / ZED X One S / ZED X One 4K

* Amplitude: 3.3V ± 1%
* Width: 16.67 msec
* Frequency: 15 Hz
* Period: 66.67 msec

![](/_fern-files/stereolabs.docs.buildwithfern.com/61c0c0d87b83d1e821a9db1ff2760612836ef666f6ef878646817f66d92d862e/docs/products/embedded/zed-link-capture-card/images/zed-link-quad-OSC-15.png)

> **Note**
>
> The two signals are not synchronized between them when the board is in **master mode**. To synchronize both signals, please follow the procedure described in the [ZED Link Quad Jetson AGX Orin Devkit Setup](/docs/products/embedded/zed-link-capture-card/gmsl2/zed-link-quad/jetson-orin-agx-devkit-setup/#enable-full-onboard-synchronization) or [ZED Link Quad Jetson AGX Xavier Devkit Setup](/docs/products/embedded/zed-link-capture-card/gmsl2/zed-link-quad/jetson-xavier-agx-devkit-setup/#enable-full-onboard-synchronization) guides.

## Slave mode - Trigger in

The ZED Link Quad capture card requires specific commands to switch to **slave mode**.

1. Set `sync_mode=2` in the file `/etc/systemd/system/zed_x_daemon.service` to enable the external trigger input.

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

2. Reload the systemd configuration:

   ```bash
   sudo systemctl daemon-reload
   ```

3. Connect PIN #2 (`GND`) to the ground signal of the trigger source.

4. Connect PIN #13 (`DESER2_MFP10_HEADER`) and PIN #16 (`DESER1_MFP10_HEADER`) to the trigger input signal, i.e., a 3.3V square wave signal.

5. Restart the driver by restarting the ZED X daemon service:

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

To verify that the Slave configuration is active, run the command:

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

The output should be similar to:

```bash
[   XX.XXXXXX] sl_max96712 9-0029: Sync mode configured
[   YY.YYYYYY] sl_max96712 13-0029: Sync mode configured
```

You must use an external trigger signal with the following characteristics:

* Square wave
* Amplitude: 3.3V ± 10%
* Frequency: Match the camera grab frame rate setting used with the ZED SDK - 15Hz, 30Hz, 60Hz, or 120Hz

![](/_fern-img/419179dcf35ad06e1d2d256cb8dae1a2cc9b230dd9b20106b0f48474ea2ba64b.webp)

## Disable synchronization

To disable the hardware synchronization, set `sync_mode=0` in the file `/etc/systemd/system/zed_x_daemon.service` and restart the ZED X daemon service:

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

The content of the file `/etc/systemd/system/zed_x_daemon.service` should look like:

```bash
[Unit]
Description=ZED-X Daemon service
After=nvargus-daemon.service driver_zed_loader.service 
Requires=driver_zed_loader.service
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
StandardOutput=syslog
ExecStart=/usr/sbin/ZEDX_Daemon

# 0 = no sync(Default), 1 = master/slave mode, 2 = slave mode only
sync_mode=0 

[Install]
WantedBy=multi-user.target
```