Skip to content

v0.17.1

Choose a tag to compare

@kyle-the-voyant kyle-the-voyant released this 08 Aug 01:07
· 1 commit to main since this release
9c2d7f2

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