The GMSL Camera Interface: Integrating Stereolabs ZED X with NVIDIA Jetson
The ZED X is a GMSL2 camera, not USB. Connecting it to a Jetson means the right deserialiser on the carrier board and a board support package configured to match. Here is how the integration actually works.
Why ZED X integration is not plug-and-play
The Stereolabs ZED X is built for robotics and industrial machine vision, and it connects over GMSL2 rather than USB. That choice buys long cable runs, rugged locking connectors, and tight multi-camera synchronization, which is exactly what an outdoor robot or a production cell needs.
It also means the camera cannot simply be plugged into a Jetson and recognized. The GMSL2 signal has to be deserialised back to MIPI CSI-2 on the carrier board, and the Jetson has to be told how to read it. That is a board support package job, and it is where most ZED X on Jetson projects stall.
What the GMSL camera interface actually is
GMSL, or Gigabit Multimedia Serial Link, is a serialiser-deserialiser interface for moving uncompressed high-resolution video over a single coaxial cable. A serializer on the camera packs the sensor data onto the coax; a deserialiser on the host board unpacks it back into MIPI CSI-2, the interface the Jetson actually reads.
For the ZED X that deserialiser is typically a Maxim/Analog Devices MAX9296A on a two-camera board, or a MAX96712 where four cameras share one quad deserialiser. Stereolabs ship this silicon as the ZED Link family of capture cards and the ZED Box, but the same parts appear on partner Jetson carrier boards designed for camera-heavy edge AI.
From camera to Jetson: the signal path
The path is the same whichever board you use. The ZED X serializes its stereo sensors onto GMSL2 coax. At the carrier board the deserialiser converts GMSL2 to MIPI CSI-2 and forwards it across the Jetson module connector. The Jetson camera subsystem then exposes it as a V4L2 device that the ZED SDK can open.
GMSL2 also carries power and a back-channel for control and triggering. That back-channel is why ZED X capture over GMSL supports hardware synchronization to around 15 microseconds across multiple cameras, an accuracy a USB camera chain cannot reach.
What the board support package has to configure
- 01The deserialiser
- The driver has to match the exact part on the carrier board, MAX9296A or MAX96712, and the way its ports map to the Jetson CSI lanes.
- 02The device tree
- A device tree blob describes the CSI lane count, I2C addresses, GPIO, and clocking for the camera and deserialiser. If it does not match the board wiring, capture times out.
- 03The JetPack and L4T version
- The ZED Link driver ships as a Debian package built for a specific L4T release. A driver for L4T 35.x will not load on JetPack 6 (L4T 36.x); the version has to line up with the flashed module.
- 04Synchronization and GPIO
- Hardware triggering and multi-camera sync are configured through the GMSL back-channel and board GPIO, not in software alone.
- 05Validation
- The ZED daemon loads the driver and device tree on boot; the camera then has to confirm as a live V4L2 device before the SDK will see it.
Why this is a configuration job, not a download
Stereolabs publish ready-made drivers for their own ZED Link cards and for several reference Jetson developer kits. On those, installation is close to a single command: a deb package drops in the kernel module, the device tree, and the ZED daemon, and a reboot applies them.
The moment the carrier board is not one of those reference designs, the device tree no longer describes the hardware. The CSI lane mapping, the deserialiser address, and the GPIO assignments are board-specific, and a mismatched device tree shows up as a V4L2 capture timeout: the camera looks present but never delivers a frame. Resolving that means taking the deserialiser driver and rebuilding the device tree against the actual carrier board, then validating capture and synchronization.
Integrating ZED X on a partner Jetson platform
Several of the rugged Jetson carrier boards and box PCs we work with already carry a GMSL deserialiser and CSI camera adapter sockets, which makes them a natural starting point for a ZED X build. As the system integrator, our job is to recommend the right platform for the application first, often one where the camera is already supported, and then take on the board support package work where it is needed: matching the ZED Link driver and device tree to the board and module, confirming the deserialiser configuration, and validating capture and multi-camera sync.
The result is a platform that arrives with the camera already enumerating, not a deserialiser the integrator still has to fight.
Integrating a ZED X on a Jetson platform?
Tell us about your camera and what the system has to do. As your system integrator we will recommend the best Jetson platform to start from, often one that already supports the camera, or take on pairing it to the carrier board where it does not.