Micro-doppler classifier — not everything that moves is a person

Phase 6 adds a DBSCAN cluster builder and a rule-based micro-doppler classifier to the pipeline. Novel returns are now labeled PERSON, OBJECT, or UNKNOWN before they reach the zone logic. UNKNOWN passes through as PERSON — the classifier can never make the system less safe than the baseline.

May 21, 2026 · 4 min · Nic

Persistent background map — the sensor shouldn't relearn the room every boot

The 15-second background learning phase is necessary — but only once. Phase 5 adds a persistent voxel map saved to disk after the first learn, reloaded on every subsequent boot. Also: a novelty-aware refresh gate that means a stationary person can never be silently absorbed into the background.

May 21, 2026 · 3 min · Nic

Swept-volume workspace clipper — the sensor finally knows what the arm can reach

Phase 7 adds a swept-volume workspace clipper to the pipeline. Detections outside the arm’s reachable envelope are suppressed before they reach zone logic. This is the primary technical differentiator over fixed-mount sensors — and the reason the hardware configuration locked at 3× IWR6843AOP on the forearm link.

May 21, 2026 · 5 min · Nic

Full safety stack live — background learning, ego-motion compensation, and the motionless person problem

The IWR6843AOP is now running a complete ROS 2 safety pipeline on the Jetson — CLEAR/CAUTION/STOP zone detection with ego-motion compensation, voxel background learning, fault handling, and a heartbeat watchdog. One non-obvious bug dominated the session: velocity filtering was silently eating motionless people.

May 16, 2026 · 5 min · Nic

TLV frames live on the Jetson — wrong firmware was the whole problem

Two days chasing a sensor that accepted every config command, then emitted 16 bytes of 0xFF. Root cause: ISK firmware on AOP hardware. The fix was one file.

May 3, 2026 · 2 min · Nic

sensorStart Error -1 — the chirp was running outside the 60–64 GHz band

All 12 calibrations passed. Sensor State 1. Then nothing. The chirp engine silently refused to run because the end frequency exceeded the regulatory band by 750 MHz.

April 29, 2026 · 2 min · Nic

IWR6843AOPEVM arrived — bringup notes and the mmWave Studio trap

EVM in hand, USB detection working immediately. mmWave Studio looked like the obvious next step. It was a trap — the AOP standalone board can’t connect. UniFlash is the right tool.

April 21, 2026 · 2 min · Nic