Port: PNut-Term-TS P81svj44 only.
Pin constants: pin-map.md, src/usb_pins.spin2.
One-time physical setup so software can run dogfood (on-chip host↔device) and later Serial Host (real MSC) without rewiring data lines.
Safety
- Common GND between all P2 USB pairs under test and any external hub/SSD.
- VBUS: only Serial Host EN pins (33/37) drive port power. Never back-drive 5 V into a pair that is only D±.
- Dogfood proto gang has no VBUS — pure D± loop for emulators.
- Do not short Serial Host D± (34/35 or 38/39) to proto 40/41/48/49 unless you intend one electrical bus.
- Leave PropPlug / debug pins alone.
Topology A — Dogfood (default bring-up)
Used by harness/top_selftest.spin2 and ticket 3005.
| Role | Pair (DM/DP) | EN |
|---|---|---|
| Host | 40 / 41 | none |
| Device min | 48 / 49 | none |
Jumpers (required):
| Wire | From | To |
|---|---|---|
| D− | 40 | 48 |
| D+ | 41 | 49 |
P2
40 ──D−── 48 host cog = 40/41
41 ──D+── 49 device cog = 48/49
Software: dev.start(48) then app.open(40, -1).
Topology B — Serial Host real media (MSC later)
| Priority | Logical | DM/DP | VBUS EN |
|---|---|---|---|
| 1st | Ch1 (prefer top USB-A) | 34/35 | 33 high |
| 2nd | Ch2 fallback | 38/39 | 37 high |
- Plug Serial Host addon on base 32.
- Supply 5 V to the addon (Eval ACC/5V shunt as needed).
- USB SSD/thumb in top socket first; software may fall back to ch2.
- No requirement to gang proto pairs for MSC path.
Topology C — Hub (multi-device, later)
- Host pair = Serial Host ch1 (34/35) + EN 33.
- Hub upstream → that USB-A; hub powered externally.
- Downstream: real SSD and/or future emulator ports (only if you jumper extra pairs to hub-facing connectors — not the default proto gang).
- Software: same host object; addresses from enum (ticket 1090/1100).
Pin picture
Serial Host (base 32) Proto dogfood gang
┌──────────────────────┐ 40 ── D− ── 48
│ 32 LED1 │ 41 ── D+ ── 49
│ 33 EN1 → VBUS ch1 │
│ 34 D− → USB ch1 │ independent of Serial Host
│ 35 D+ → USB ch1 │
│ 36 LED2 │
│ 37 EN2 → VBUS ch2 │
│ 38 D− → USB ch2 │
│ 39 D+ → USB ch2 │
└──────────────────────┘
▲
real SSD / stick
SE0 / float notes (multi pair)
- Only one host driver on a bus. Device pairs idle Y=0 (float) with device-mode pull-up.
- Dual smart-pin pairs on one gang both receive; host drives, device listens then drives handshakes.
- Long SE0 is host bus reset (≥10 ms). Devices must not treat EOP SE0 as reset (use multi-ms hold).
Acceptance (0110)
- [x] Human can wire dogfood from this doc alone
- [x] Serial Host map + VBUS rules
- [x] Hub sketch for later
- Harness references this path for non-MSC tests