Decision

Build our own active-high block detector

Off-the-shelf detectors pull low for occupied, so a broken wire under the layout reads as a clear block. A home-designed board with an active-high output makes that fault read as occupied instead.

Status
accepted
Decided
Affects
Block Detector, Layout Feedback, Westgate Hollow Yard

Context

Block occupancy on Westgate Hollow comes from LM-iD.1 current detectors wired into MCP23017 expander inputs on a feedback node. Their output is active low: occupied pulls the line to 0V, and clear leaves it open (see why their Input A is left unpowered).

The expander inputs are pulled up. So an open circuit (a broken cable, a failed crimp, a connector worked loose under the layout) floats high, and reads exactly like a clear block. The sensor node is still alive and still re-asserting, so the 30-second re-assert rule can’t catch it. For a current detector, a false clear is enough on its own to let the orchestrator clear the block. This is recorded in the feedback repo as #9.

Decision

Design a block detector with an active-high output. Occupied drives 3.3V, clear drives 0V, from a push-pull comparator output. On a pulled-up input, the broken-wire fault now floats to occupied, which is the fail-safe side.

Consequences

Source: block-detection README and layout-feedback CLAUDE.md.