Skip to content

v0.12.2

Choose a tag to compare

@kyle-the-voyant kyle-the-voyant released this 11 Jun 18:32
b277de0

Voyant SDK v0.12.2

Interface contract: carbon-interface v1.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.X and v5.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:

  1. Keep the connection active.
  2. Power cycle the sensor.
  3. Watch whether the indicator improves.
  4. 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().