Decisions › D15
A small file says what this PC should see, so the page can name what is missing
Context
A CAN adapter enumerated on USB but never put a frame on the wire. The page showed the adapter and no boards, and nothing said what ought to be there.
The decision
An expected setup is a rig manifest in the user's config directory: one entry per rig, listing its devices (matched by hardware id or serial) and the nodes each should show. The page draws one rig row first, “1-DOF test rack · 2/2 adapters · 6/7 boards · 2/2 cameras”, which warns and names each missing item. It lives outside the checkout because it is the user's own data.
A device can be retired with a reason; plugged in again, its row says so, so a known-bad adapter is recognised at once. The panel and the command line write the file; nothing touches a device.
Why
“it detects the canusb but something is wrong with it so you don't see any CAN things connected”
Zach Yamaoka, 23 Oct 2026
“we need to be able to like easily configure expected number of things”
Zach Yamaoka, 23 Oct 2026
Options considered
| Option | Verdict | Reason |
|---|---|---|
| Show only what happens to answer | Rejected | A dead adapter shows nothing at all. |
| Each driver's own last-known inventory | Kept as the fallback | The moteus driver uses its inventory when no file names the boards. |
| A rig manifest the person owns | Chosen | States intent. Round 1's station board (76 of 100) had the same idea, and the same weakness: the file has to be kept true. |
Consequences
- A node counts when it answers. A missing item counts once, because the rig row names the row that reports it (caused_by).
- A wrong gear ratio is the board's own warning (“config ratio 0.1667, expected 0.1”), not the rig row's.
- Each plugin is told the expected nodes in an environment variable; the moteus driver prefers it over its inventory.
Evidence
- Diagnostics rollups: five proposalsReport, 2026-10-23. Evidence for this decision.
- Babble and prune, round 1: five top-bar directionsReport, 2026-10-21. Evidence for this decision.
- The expected setup (a rig manifest)Contract doc, 2026-10-23. A small file that says what this PC should see, so the page can say 6 of 7 boards and name the missing one.
Commits in the app's repository (private):
91293f22026-10-23 Expected setup: a rig manifest drawn as one rig row with counts