Decision

The block detectors' Input A is left unpowered, against the datasheet

Powering an LM-iD.1's Input A, as every datasheet says to, makes its output idle at 5V into 3.3V expander inputs. It's deliberately left unpowered on Westgate Hollow.

Status
accepted
Decided
Affects
Layout Feedback, Westgate Hollow Yard

Context

The LM-iD.1 current detectors feed MCP23017 expander inputs running at 3.3V. Measured on the bench, the detector’s output has two modes, selected by Input A, and nothing published says so:

Input A Clear Occupied
Unpowered Open circuit Pulled to 0V
Powered Driven to 5V Pulled to 0V

5V on a 3.3V MCP23017 input is out of specification (absolute maximum 3.9V). The clamp diode conducts whenever a block is clear, which is most of the time, and back-feeds the 3.3V rail. It appears to work while degrading the part.

Decision

Input A is deliberately left unpowered. The output is then 0V or open circuit, which is harmless to the expander. “Occupied” reads as 0 in both modes, so the node’s active-low setting is correct either way.

Alternatives considered

If Input A ever needs powering (it’s also what lights the detector’s own LED), the inputs need protecting first:

Option Verdict
Pull-up resistor to 3.3V Worth fitting anyway, but doesn’t stop the 5V.
BSS138 level shifter (Adafruit 757) Works with this kind of open-drain source.
TXB0108 level shifter (Adafruit 395) No. Its auto-direction sensing is defeated by this source.
74LVC14A Schmitt trigger, 5V-tolerant, run at 3.3V Takes 5V directly, adds hysteresis beside a DCC bus, and opens the door to wire supervision.

Consequences

Source: docs/block-detector-wiring.md.