ZED SDK 5.3

Release notes of the ZED SDK 5.3.x series
Open in ClaudeOpen in ChatGPT

Release notes of the ZED SDK 5.3 series. Patch releases are listed newest first. Download links and the full changelog, including ZED Tools and integrations, are available on the ZED SDK 5.3 release page.

What’s New

ZED SDK 5.3 introduces support for the new ZED X Nano camera, an ultra-compact module featuring an 18 mm baseline and dual global-shutter sensors, enabling high-quality stereo capture for close-range manipulation tasks. This release includes an update to the NEURAL LIGHT model, which has improved robustness and accuracy in challenging environments while maintaining the same runtime cost. The new voxel-decimation mode provides point clouds with depth-adaptive resolution, reducing memory and bandwidth usage while preserving detail where it matters most. In addition, native encryption for SVO2 recordings ensures secure data storage and protects sensitive captured information.

Core system improvements streamline deployment and integration. Camera calibration is now stored directly on board in EEPROM, removing network dependency at initialization. The SDK can also automatically reuse an existing CUDA primary context, enabling smoother interoperability with frameworks such as PyTorch. Additionally, a new monotonic TIMESTAMP_CLOCK option ensures image and IMU timestamps remain stable and unaffected by wall-clock adjustments (e.g., NTP/PTP).

Performance and ecosystem updates further enhance the platform. Recording now benefits from significantly reduced CPU usage through zero-copy capture, complemented by the new SVO_ENCODING_PRESET API for flexible quality–performance tuning. SLAM GEN_3 delivers improved accuracy in low-texture environments, ROS 2 image topics support zero-copy intra-process communication, and overall streaming and GMSL stability have been strengthened.

5.3.1

Released: Jun 4, 2026

SDK

General

Bug Fixes
  • Fixed GMSL camera enumeration not recovering after nvargus-daemon is restarted while the application is running. getDeviceList() now returns the connected GMSL cameras again without requiring an application restart.
  • Fixed a Desktop (x86) streaming decode latency regression introduced in 5.2.3 with the NVIDIA Video Codec SDK update. The hardware decoder was waiting for the next packet before releasing each frame, adding roughly one frame of latency per received stream on both H264 and H265. Received-stream latency is back to 5.2.1 levels, with no change to image quality, throughput, or decoder load.
  • Fixed sl::Camera::reboot(sl::INPUT_TYPE::USB) silently no-op’ing whenever there wasn’t exactly one camera in the right state (multi-camera setups, or cameras whose USB stream was wedged but still enumerable on the bus). It now enumerates every connected ZED 2 / ZED 2i and sends a full reset to each over the MCU HID interface, using the same path as ZED_Explorer --rbt <SN>, applied to every camera.
  • Fixed regression on some VIDEO_SETTINGS (SCENE_ILLUMINANCE, DENOISING) retrieved values on GMSL cameras (ZED X / ZED X Mini). These values can now be correctly retrieved.
  • Fixed sporadic crash in sl::Camera::findFloorPlane on low texture scenes.
  • Fixed periodic frame drops when using USB cameras on Linux at HD1080@30.
  • Rate-limited the GNSS covariance-too-low warning. Repeated occurrences are now batched and reported with a count to avoid log spam.

5.3.0

Released: Apr 29, 2026

SDK

General

Features / Improvements
  • Improved NEURAL_LIGHT depth model: higher overall accuracy, better shape preservation on planar surfaces, and stronger robustness in challenging conditions such as glare and reflections, at the same runtime cost as before.
  • Added support for the new ZED X Nano camera (ultra-compact, 18mm baseline, global shutter sensors). New sl::MODEL::ZED_X_NANO enum value. All tools, calibration, and wrappers (C, Python, C#, ROS 2) are updated. Requires ZED X Driver >= 1.4.2.
  • Camera calibration data is now stored directly on the on-board EEPROM and automatically kept in sync with the factory calibration file. Upon opening a camera, the SDK prioritizes the downloaded local file. If this file is missing and no internet connection is available, the SDK will seamlessly fall back to the internal EEPROM calibration. For cameras that do not have the calibration written in EEPROM, see the new --download_calibration option in ZED_Explorer.
  • Added a new process-wide TIMESTAMP_CLOCK selector on Camera and CameraOne, letting applications opt into timestamps that are immune to wall-clock adjustments (NTP, PTP, manual date change). Default remains SYSTEM_CLOCK for compatibility; switch to sl::Camera::setTimestampClock(sl::TIMESTAMP_CLOCK::MONOTONIC_CLOCK) before opening any camera to get image and IMU timestamps backed by a monotonic clock.
  • In SYSTEM_CLOCK mode, the SDK now follows backward host-clock adjustments at up to 4 ms per sample, keeping IMU and frame timestamps coherent across an NTP/PTP step. The threshold is tunable with sl::Camera::setMaxSystemClockStepMs(ms). Pass a negative value for PTP setups that need step corrections to land instantly.
  • Added Camera::retrieveVoxelMeasure to retrieve a voxel-downsampled point cloud, useful for reducing point density while minimizing information loss. Supports all point cloud measures (MEASURE::XYZ, XYZRGBA, etc.) and returns an unorganized 1D Mat of reduced points. Configuration is controlled through the new VoxelMeasureParameters struct: voxel size (default: 100mm equivalent), output point positioning (centroid or grid-center), and depth-adaptive voxelization via the VOXELIZATION_MODE enum (FIXED, STEREO_UNCERTAINTY, LINEAR) with a tunable resolution_scale. Camera::retrieveVoxelMeasure uses depth confidence to weight voxels and produce more accurate point clouds.
  • Added SVO2 native recording encryption support. A new RecordingParameters::encryption_key field accepts a passphrase, a hex key, or a path to a key file. For decryption, the same key must be passed via the new InitParameters::svo_decryption_key field. Encryption uses AES-256-CTR through OpenSSL (libcrypto), loaded dynamically at runtime, making it an optional dependency. Performance impact is negligible thanks to hardware-accelerated AES-NI instructions. If the key is lost, the data is unrecoverable. New samples are available in recording/encrypted folder. Tools are also updated to support this feature.
  • Added a lightweight background positional-tracking fallback for Object Detection and Body Tracking when positional tracking is not already enabled, allowing AI modules to start even with out-of-order initialization and automatically hand off to explicitly enabled positional tracking. Relevant samples have been updated to reflect this behavior.
  • Added RESOLUTION::XVGA (960×768) and RESOLUTION::TXGA (640×512) for ZED X HDR cameras. This resolution uses respectively 2×2 NEON and 3×3 NEON-accelerated software binning from the native 1920×1536 sensor output.
  • Camera and CameraOne now automatically reuse an existing CUDA primary context (e.g. created by PyTorch), avoiding unnecessary GPU memory duplication when integrating with other CUDA frameworks. The ZED SDK must be opened after the other framework has initialized CUDA. Set ZED_SDK_REUSE_CUDA_CONTEXT=0 to disable this behavior.
  • Added VIDEO_SETTINGS::AE_ANTIBANDING to control the AE anti-banding mode.
  • Added detection of GMSL PHY CSI bandwidth overflow during camera open (compatible with ZED X Driver >=v1.4.2). When the camera reports a bandwidth overflow for the chosen configuration (resolution/FPS or hardware branching), Camera::open() returns ERROR_CODE::CAMERA_EXCEEDS_BANDWIDTH. This prevents opening configurations that would not stream reliably; it is recommended to reduce resolution or FPS, adjust GMSL branching/hardware, or consult the GMSL documentation for platform limits.
  • Highly reduced CPU loads in recording mode using zero-copy feature.
  • Added SVO_ENCODING_PRESET enum and RecordingParameters::encoding_preset parameter to control the GPU encoder speed/quality tradeoff for SVO recording. Available presets: DEFAULT, ULTRAFAST, FAST, MEDIUM and SLOW. Maps to NVENC P1–P5 on Desktop and V4L2 HW presets on Jetson.
  • Improved GMSL camera capture stability and performance in multithreaded and high-FPS scenarios.
  • Improved sl::Camera::reboot() on GMSL: cameras can now be fully reset and reopened after restarting zed_x_daemon, without restarting the application.
  • Added duplicate frame detection to the camera health check. When InitParameters::enable_image_validity_check is enabled (default), the SDK detects when the same image is delivered twice in the capture stream (e.g. a stale capture buffer or a sensor freeze) and reports ERROR_CODE::CORRUPTED_FRAME from Camera::grab(). Persistent duplicates can also trigger an automatic camera reboot when ZED_SDK_AUTO_REBOOT_ON_CORRUPTED_FRAMES=1 is set.
Bug Fixes
  • Fixed SVO2 files larger than 2GB failing to open on Windows.
  • Fixed VIDEO_SETTINGS::SCENE_ILLUMINANCE not being accessible via getCameraSettings on ZED X One cameras.
  • Fixed a race condition in the SVO2 writer that could cause a crash (heap-use-after-free) when new data channels were created while recording was in progress.
  • Fixed SVO auto-repair failing to open corrupted files on read-only or full disks. The SDK now opens the corrupted file directly and retries writing the repaired file on the next open.
  • Fixed calibration file download, leaving an empty file on disk on poor network connectivity, which caused subsequent Camera::open() calls to fail with INVALID_CALIBRATION_FILE instead of retrying the download.
  • Fixed Camera::open() on live GMSL/USB (Jetson and x86) sometimes failing with “no valid frame after 10 retries” or returning corrupted first frames during sensor warm-up.
  • Fixed the orientation of 3D objects when cameras are mounted vertically (90° roll w.r.t. the ground)
  • Fixed auto-gain behavior in some GMSL camera paths, improving exposure adaptation reliability.
  • Fixed missing format arguments in GNSS covariance warning log, which caused repeated “argument not found” logger errors when ingesting GNSS data with very low covariance when using the Fusion module.
  • Fixed a race condition in the async streaming pipeline that could cause frame corruption on the receiver side when streaming from cameras on Jetson.
  • Fixed a memory leak (~18 MB per camera, once per open) on GMSL cameras (ZED X / ZED X Mini).
  • Fixed a regression that caused SVO recordings from streamed cameras to fail.
  • Fixed Camera::reboot(sl::INPUT_TYPE::GMSL) returning INVALID_FUNCTION_CALL on non-Jetson platforms (x86, Windows). It now returns CAMERA_NOT_DETECTED, correctly signaling that no GMSL hardware is present.
  • Fixed Camera::open() returning INVALID_FIRMWARE for transient firmware-version reads (the version field was momentarily unreadable, e.g. right after a USB driver re-enumeration). The transient case now returns CAMERA_DETECTION_ISSUE, allowing the SDK’s internal open loop to recover; INVALID_FIRMWARE is now reserved for the genuine “firmware too old” case.

SLAM

Features / Improvements
  • Improved accuracy of sl::POSITIONAL_TRACKING_MODE::GEN_3, especially in low-textured areas.
  • Limited the overall memory used by SLAM.
Bug Fixes
  • Fixed false positive loop closure issue that could occur in low-textured areas.
  • Fixed an issue that prevented 2D mode from initializing.
  • Updated GEN_3 behavior in enable_localization_only mode: camera pose and covariance in the WORLD reference frame are now updated when SPATIAL_MEMORY_STATUS is LOST (i.e. when the camera moves outside of the loaded area map).

Platform

  • Added support for Ubuntu 26.04.