Repository navigation
New Features and Major Improvements
- Firmware monitoring: Added configurable polling intervals for device heartbeat and firmware logs.
- Test coverage: Expanded the SDK unit-test suite to improve functional regression coverage.
- Global timestamp stability and accuracy: Improved timestamp fitting and calculation with Kalman filtering and per-device timestamp mapping to reduce timestamp differences between streams from the same device. Improved system-timestamp acquisition to reduce jitter caused by host scheduling.
- Multi-device synchronization: Refactored the multi-device synchronization sample to support saving raw frame timestamp data from multiple devices, and added a Python script for multi-device data pairing analysis.
- Gemini 335Le performance and streaming: Reduced CPU usage by minimizing frame-buffer copies, added progressively smaller fallback UDP receive-buffer sizes when the requested size cannot be allocated, and improved frame reception to reduce occasional frame loss during software triggering.
- USB streaming stability:
- Added URB retries after recoverable
ENOMEMerrors in Linux libuvc to prevent stream interruption when transfer requests are exhausted. - Improved stream shutdown to avoid the kernel warning
did not claim interface xxx before use. - Fixed libuvc device handles not being closed correctly after stream startup failures, which could prevent subsequent streaming attempts.
- Added URB retries after recoverable
- MJPEG robustness: Improved invalid-frame detection to reject invalid frames earlier, removed trailing padding, and improved decoder tolerance for small amounts of missing or extra data around the
FFD9marker.
Key New APIs
- Device heartbeat and firmware log polling intervals:
- C:
ob_device_set_monitor_poll_interval,ob_device_get_monitor_poll_interval - C++:
ob::Device::setMonitorPollInterval,ob::Device::getMonitorPollInterval
- C:
Improvements and Fixes
- Corrected V4L2 device- and sensor-timestamp calculation to fix occasional sensor timestamp errors of approximately 256 seconds.
- Refreshed the cached alignment mode after multi-device synchronization settings change, preventing device timestamps from becoming inconsistent with the active configuration.
- Fixed Gemini 2 and Gemini 2 L returning nonzero device timestamps when frame metadata is missing; invalid timestamps now return
0. - Fixed occasional duplicate UIDs on Windows when multiple USB devices are connected, which could prevent devices from being recognized correctly.
- Fixed repeated
SpatialFastFilterparameter loading after multiple depth preset switches, which could produce athe number of params errorlog. - Fixed occasional crashes when stopping bag recording.
- Fixed Gemini 305 exposure settings changing unexpectedly when selecting interleaved frame mode.
- Hid unsupported LDP properties on Gemini 330 (PID
0x0801) and Gemini 330L (PID0x0805) devices. - Improved GMSL device filtering to prevent unsupported devices from being recognized by custom SDK variants.
- Fixed metadata decoding for Y16 left and right IR streams on Gemini 305 GMSL devices.
- Improved GMSL metadata matching on JetPack 7.2 to prevent initial-frame mismatches and duplicate metadata. JetPack 6.0 driver requirement: Update to the released GMSL driver v1.2.21 for JetPack 6.0 for correct metadata matching. Older driver versions may cause incorrect or missing metadata.
- Fixed a potential crash on macOS when enabling
FalsePositiveFilterfor depth streams at resolutions above 848 × 480. - Fixed an issue that prevented SDK log filenames from starting with
0. - Fixed potential build failures with GCC 14 and later.
Documentation, Samples, and Packaging
- Updated
docs/tutorial/enhanced_depth_filter.mdto clarify the supported platforms and environment requirements for LingBot Enhanced Depth Filter, including NVIDIA JetPack 6.2, and added an introduction and a link to the guide in the repository README. - Improved EOF handling in interactive samples so they exit cleanly in non-interactive terminals instead of looping or hanging.
- Fixed a potential crash when exiting the
common_usagessample with Esc on Ubuntu 24.04 and later. - Removed the log-level override from the
common_usagessample so it follows the SDK configuration, and enabled rendering when fewer than three sensors are available. - Added
build_examples.ps1to the Windows x64 release package for building the included samples.
OrbbecViewer
- Added device heartbeat and firmware log polling interval options of 1, 2, 3, 5, 8, and 10 seconds.
- Changed Gemini 305 AE strategy properties to be queried after streaming starts.
- Fixed artifacts at the edges of video images, including those appearing when resizing stream views.
- Fixed inconsistent left and right Color preset names on Gemini 305 devices.
- Fixed opening the Gemini 305 interleaved-frame panel during stream startup triggering configuration loading and causing incorrect AE parameters.
- Fixed an empty
preEnhanceddirectory being created when saving images with point cloud enabled but Enhanced Depth Filter disabled. - Fixed Gemini 305g HDR Merge remaining unavailable after an error while enabling it with the Color stream active.
Document
OrbbecSDKv2 API User Guide, This document provides an overview of key features in the OrbbecSDK and demonstrates how to use its most commonly used APIs. For more detailed APIs, please refer to the document below:
API Reference: OrbbecSDKv2_API_Reference.html
Supported Devices and Recommended Firmware Version
| Products List | Recommended FW Version | Note |
|---|---|---|
| Gemini 305g | 1.1.20 | |
| Gemini 305 | 1.1.20 | |
| Astra Mini Pro | 2.0.03 | Version of v2.x.x (major version 2) indicates firmware using the UVC protocol, which is only supported by Orbbec SDK v2. |
| Astra Mini S Pro | 2.0.03 | Version of v2.x.x (major version 2) indicates firmware using the UVC protocol, which is only supported by Orbbec SDK v2. |
| Gemini 435Le | 1.3.19 | |
| Gemini 330 series | 1.8.10 | Gemini 330/330L/335/335L/336/336L/335Lg/335Le |
| Gemini 338Le/338Lg | 1.8.17 | Gemini 338Le/338Lg |
| Gemini 215 | 1.0.9 | |
| Gemini 210 | 1.0.9 | |
| Gemini 2 | 1.4.98 | |
| Gemini 2 L | 1.5.2 | |
| Femto Bolt | 1.1.3 | unsupport macOS |
| Femto Mega | 1.3.1 | |
| Femto Mega I | 2.0.5 | |
| Astra 2 | 2.8.20 | |
| Gemini 345 | 1.9.03 | |
| Gemini 345Lg | 1.9.03 | |
| Pulsar SL450 | 2.2.4.5 | |
| Pulsar ME450 | 1.0.0.6 |
Supported platforms
- Windows 10 or later: x64 architectures
- Linux x64: tested on Ubuntu 20.04, 22.04 and 24.04
- Linux ARM64: tested on NVIDIA Jetson AGX Orin , NVIDIA Jetson Orin NX , NVIDIA Jetson Orin Nano , NVIDIA Jetson AGX Xavier , NVIDIA Jetson Xavier NX , NVIDIA Jetson Thor
- macOS: tested on M2 chip, OS version 26.4