> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.stereolabs.com/docs/products/embedded/zed-link-capture-card/gmsl2/zed-link-quad/zed-link-quad-gpio-triggering/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 ```