v0.17.1
Interface contract:
carbon-interfacev1.5.6 — unchanged from v0.17.0.
Firmware compatibility: install FPGA v1.5.6 / MCU v4.1.0 with the v7.1.X
bringup script / updater. This release also runs on the MCU v4.0.0 – v4.0.3 firmware
v0.17.0 shipped against (v7.0.X updater), so an un-updated sensor is not blocked
— but the excessive log output this release quiets came from the API and the sensor
both, and v4.1.0 carries the sensor's half of the fix. Not compatible with
FPGA v1.3.3 / MCU v2.6.0 or older.
A live-reconfiguration and log-noise release. Changing frame rate, field of view, or
scan mode on a streaming sensor now hands off cleanly instead of producing a burst of
warnings and malformed frames, routine sensor behavior no longer logs as if it were a
fault, a hung MCU is no longer reported as healthy, and two more Carbon sensors gain
default background-noise calibration.
New Supported Units
- Background noise calibration: default masks added for
CAR-30-018and
CAR-30-019. Required to bring these sensors up through the compiled binaries
(visualizer, CLI, Python/C++ bindings).
Behavior Changes
- The point stream now recovers cleanly across a live reconfiguration. Changing
frame rate, field of view, or scan mode changes how many ramps make up a frame. The
pipeline previously kept pairing against the old frame length, which produced a
burst of invalid-ramp-count warnings and malformed frames until it happened to
resync. It now closes the in-flight frame at the change, discards ramps until the
stream matches the sensor's newly reported frame length, and resumes — reported once
at info level instead of once per ramp at warning level. If the stream never
conforms, it warns once and continues without ramp accounting rather than warning
forever. - A hung or unbooted MCU is now reported as degraded. MCU liveness is judged from
the MCU's own counter alone. Previously a frozen counter was treated as "no signal"
and the MCU was reported alive as long as heartbeat packets kept arriving — but
those are driven by the FPGA's watchdog, so a dead MCU was indistinguishable from a
healthy one. The visualizer's heart now turns amber in that case. - The visualizer's Static Line Mode toggle is always available. It was hidden
unless the sensor reported a firmware version new enough to support it; every
supported firmware is past that point, so the check is gone. - Duplicate-ramp reporting no longer counts benign repeats. Ramp counts repeated
by the sensor's fallback liveness heartbeat are tallied separately and logged at
debug level, so the duplicate-ramp warning and counter now reflect only real stream
anomalies. Drop reports gained that count alongside a count of ramps discarded
during reconfiguration.
Bug Fixes
- Corrected the checksum on control packets sent to the sensor. The host stamped
them with the wrong CRC variant (CRC-16/ARC rather than the CRC-16/XMODEM the sensor
computes). The sensor never rejected a message over it, but its checksum-error
telemetry flagged every packet the host sent, masking genuine link problems. Verified
against captured hardware traffic.