The head's hands cheat sheet

Printable: NES controller-port bridge, v1b: drawing package TM-NESB-001 rev P (PDF).

Generated by tools/cheatsheet.py --sheet bench-v1b-head. The jumpers, the wiring list and each module's bench column are read out of the schematic's third sheet (bench-v1b-3.svg); the breakout leads come from the bring-up tool's own table; the only authored text is what each module pin does on the part, kept in one place in that tool and refused if the schematic names a pin differently. Which two ways of the breakout are the reset pair was metered at the console on 2026-09-17, and the J3 table below is where that reading is written down. The same wiring at right angles: wiring-v1b-head.svg.

Sheet: bench-v1b-head.

Every wire on sheet 3

One row per net, read off the schematic. RST_HI is 3 orange and RST_LO is 4 yellow, the reset button, orange the higher of the two. PWR_BROWN and PWR_RED put the relay across the front panel's power switch, which stays off while the head runs the power.

netfromto
LANPI ETHSCPI over the LAN
PI_USBPI USB-AUSB to the Pi
PWR_BROWNK1 COMJ3-1 1 brown, power
PWR_DRIVEPI GPIO27 (position 13)K1 IN
PWR_REDK1 NOJ3-2 2 red, power
RST_DRIVEPI GPIO17 (position 11)OK1 INPUT +
RST_HIOK1 OUTJ3-3 3 orange, reset +
RST_LOOK1 GNDJ3-4 4 yellow, reset -
GNDPI GND (position 6)OK1 INPUT -; K1 GND
PI_5VPI 5V (position 2)K1 VCC

The head's four jumpers

Four Dupont leads off the Pi's header, no breakout (2026-09-10). Positions are the Pi's own numbering, odd on the inside row; the far end is read off sheet 3. No wire from here to the console: the Pi's ground reaches it through the UNO's USB cable only.

Pi pinpos.torole
5V2the PI_5V railthe coil's supply
GND6the GND railthe one ground lent
GPIO1711OK1 INPUT +reset, 100 ms high
GPIO2713K1 INpower: high is on

The power and reset breakout, J3

Five ways straight through, colour for colour with the front panel's harness, pin 1 at the back, tapped in parallel with the panel. What each way is was metered 2026-09-17; no way is ground. Orange sits 4.40 V above yellow with the console on and the button released (2026-09-17), so OK1's OUT goes on orange and its GND on yellow.

pinNES harnessbreakout leadwhat it is
1brownbrownpower switch
2redredpower switch
3orangeorangereset, + side (4.40 V)
4yellowyellowreset, - side, and LED
5whitewhiteLED

OK1: PC817 module

One optocoupler on a carrier: an LED behind a series resistor on the input side, a phototransistor on the output side, nothing joining the two but light. The carrier adds a pull-up from OUT to VCC; with VCC left open OUT is the bare collector and GND the emitter, so the output side is a switch to its own GND and nothing more: the reset button, closed by the head. INPUT + high (3.3 V from a Pi pin is enough) lights the LED and closes the switch.

sidepinon the parton this bench
inputINPUT +LED anode via the series resistor: high turns it onRST_DRIVE: PI GPIO17 (position 11)
inputINPUT -LED cathode, the input side's returnthe GND rail
outputOUTcollector: pulled to GND while the LED is litRST_HI: J3-3
outputGNDemitter, the output side's own groundRST_LO: J3-4
outputVCCpull-up supply for OUT; open, so OUT is open collectorno connection: left open on purpose

K1: relay module, 5 V coil

A 5 V coil relay on a carrier with an opto-isolated input, driving the coil's transistor. The coil takes about 80 mA from VCC, which is why it is on the Pi's 5 V pin and not a GPIO. The contact is a changeover, COM to NO or NC. MEASURED 2026-09-17 at the console rather than read off the module: GPIO27 HIGH powers the console and LOW turns it off, which is why the boot config rests it low.

sidepinon the parton this bench
coilVCCcoil and carrier supply, 5 Vthe PI_5V rail
coilGNDcoil and carrier returnthe GND rail
coilINcontrol: GPIO27 high is the console on (measured)PWR_DRIVE: PI GPIO27 (position 13)
contactCOMthe contact's commonPWR_BROWN: J3-1
contactNOnormally open: meets COM while the coil is onPWR_RED: J3-2
contactNCnormally closed: meets COM while the coil is offno connection: left open on purpose

The two steps, as the bring-up tool runs them

From tools/bringup.py, the same table docs/build-guide.md is written from. One command each, on the Pi:

cd ~/nes-bench && yes '' | python3 tools/bringup.py --step 6.2 --bridge /dev/ttyACM0 --scope SCOPE --operator NAME
cd ~/nes-bench && yes '' | python3 tools/bringup.py --step 6.3 --bridge /dev/ttyACM0 --scope SCOPE --operator NAME

6.2 The reset optocoupler pulses the console

  • The breakout J3 is five ways straight through, colour for colour (1 brown, 2 red, 3 orange, 4 yellow, 5 white); 3 orange and 4 yellow are the reset button, orange 4.40 V above yellow with the console on (MEASURED 2026-09-17).
  • PC817 module: OUT to 3 orange, its GND to 4 yellow, VCC unconnected, and the Pi's GPIO17 to INPUT + with INPUT - to the Pi's GND. The front panel's button stays wired in parallel.

6.3 The power relay switches the console

  • The relay's COM and NO across J3's 1 brown and 2 red, the front panel's power switch (metered 2026-09-17), in parallel with it. The front switch stays OFF for this step. MAINS SAFETY: nothing here is ever on the mains side.
  • Relay module VCC to the Pi's 5V pin, IN to GPIO27 (high powers the console, MEASURED 2026-09-17), GND to the Pi's GND.

Pulled at build time from nes-bench/docs/cheat-sheet-head.md; the repository is the one copy. The reports use some working words of their own: Words the reports use.