v0.12.2
Voyant SDK v0.12.2
Interface contract:
carbon-interfacev1.3.3
- Unchanged from v0.12.1. Exact interface contract version matches are still required for the register/RAM access that time sync depends on.
Firmware compatibility:
v5.0.Xandv5.1.X. Unchanged from v0.12.1.
New Features
Connectivity indicator in the visualizer
While the sensor is idle, the visualizer now shows a live control-link health indicator derived from the success rate of register reads — at a glance you can tell whether the link is solid enough to push a calibration or firmware transfer before starting one. The check pauses automatically while the sensor is streaming.
If the indicator reports a bad link, try the following before escalating:
- Keep the connection active.
- Power cycle the sensor.
- Watch whether the indicator improves.
- Reconnect through the visualizer (without closing it).
Repeat this cycle a few times; if the link still does not recover, escalate.
Raw peak capture
The visualizer can now dump the raw peak stream to CSV alongside live viewing. The dump_peaks CLI gains a --max-frames limit to stop after a set number of whole frames (complementing the existing --max-peaks).
Non-blocking SDL reconfiguration
A new send_sdl_orchestrated() call applies an SDL change while streaming without blocking the caller — settings are applied in Idle and PointCloud is then resumed automatically, driven by poll_sdl(). This lets real-time callers (such as the visualizer) change frame rate, FOV, or bandwidth mid-stream. send_sdl_blocking() remains the simple path when blocking is acceptable.
Behavior Changes
Peak dumps are now frame-aligned by default
A peak dump now begins at the first frame boundary and ends on a whole frame, so captured files start and stop cleanly on frame edges rather than mid-frame. Pass --no-frame-align to dump_peaks to dump every peak immediately as before.
SDL command timeouts are now enforced per command
Because a PointCloud request is applied as a two-step transition (settings in Idle, then resume PointCloud), the CarbonConfig.sdl.timeout_sec timeout now applies to each step. A PointCloud request can therefore take up to roughly twice that timeout to confirm. The non-blocking send_sdl() path also performs this two-step transparently now, advanced by poll_sdl().