Electronics Stator Board Layout - thepinkmile/Enigma-NG GitHub Wiki
Stator V1.0 Master Pinout
Status: Draft Project: Enigma-NG Author: Izzyonstage & GitHub Copilot Version: v1.0.0 Associated Hardware Revision: Rev A Last Updated: 2026-04-05
J7— Reflector / Extension Link (16-pin, 2×8, 2.54mm Shrouded Box Header)
Provides a direct power and data link to the Reflector (end-of-stack loopback) board, bypassing the full rotor stack to avoid cumulative contact resistance on the power rail and to provide a short TDO return path for the JTAG chain.
Connector Definition Owner: This board. All other boards using this connector cross-reference here.
| Pin | Signal | Direction | Notes |
|---|---|---|---|
| 1 | 3V3_ENIG | PM → Reflector | 3.3V logic power direct from Power Module LDO (bypasses rotor stack) |
| 2 | SYS_RESET_N | CTRL→Ext | Active-low CPLD reset broadcast (driven by Stator U_EXP2 GPA[7] @ 0x21 via I²C — DEC-031) |
| 3 | ENC_IN[0] | Stator → Reflector | Return-pass start: CPLD drives post-plugboard signal to Reflector chain (Step 2 drive in routing matrix) |
| 4 | ENC_IN[1] | Stator → Reflector | Return-pass start: CPLD drives post-plugboard signal to Reflector chain (Step 2 drive in routing matrix) |
| 5 | ENC_IN[2] | Stator → Reflector | Return-pass start: CPLD drives post-plugboard signal to Reflector chain (Step 2 drive in routing matrix) |
| 6 | ENC_IN[3] | Stator → Reflector | Return-pass start: CPLD drives post-plugboard signal to Reflector chain (Step 2 drive in routing matrix) |
| 7 | ENC_IN[4] | Stator → Reflector | Return-pass start: CPLD drives post-plugboard signal to Reflector chain (Step 2 drive in routing matrix) |
| 8 | ENC_IN[5] | Stator → Reflector | Return-pass start: CPLD drives post-plugboard signal to Reflector chain (Step 2 drive in routing matrix) |
| 9 | ENC_OUT[0] | Reflector → Stator | Reflected signal: returns from Reflector chain to Stator CPLD (Step 2 receive in routing matrix) |
| 10 | ENC_OUT[1] | Reflector → Stator | Reflected signal: returns from Reflector chain to Stator CPLD (Step 2 receive in routing matrix) |
| 11 | ENC_OUT[2] | Reflector → Stator | Reflected signal: returns from Reflector chain to Stator CPLD (Step 2 receive in routing matrix) |
| 12 | ENC_OUT[3] | Reflector → Stator | Reflected signal: returns from Reflector chain to Stator CPLD (Step 2 receive in routing matrix) |
| 13 | ENC_OUT[4] | Reflector → Stator | Reflected signal: returns from Reflector chain to Stator CPLD (Step 2 receive in routing matrix) |
| 14 | ENC_OUT[5] | Reflector → Stator | Reflected signal: returns from Reflector chain to Stator CPLD (Step 2 receive in routing matrix) |
| 15 | TTD_RETURN | Reflector → Stator | JTAG TDO return path (short route, bypasses rotor stack) |
| 16 | GND | — | Signal return / shield |
Connector: 2×8 2.54mm shrouded box header with polarisation key (e.g. Wurth 61201621621 or equiv).
Mating connector on Extension: J7 / Reflector: J4 — same 16-pin 2×8 shrouded box header.
Power current requirement: Reflector-only use remains low, but Extension use must budget the J7/J8
3V3_ENIG path for up to 1.43A worst-case downstream reinjection into the first Extension (see
Extension/Board_Layout.md). Connector family: Adam Tech BHR-16-VUA with local datasheet at
design/Datasheets/bhr-xx-vua-data-sheet.pdf.
ENC_DATA bidirectionality: ENC_IN[0:5] (pins 3–8) and ENC_OUT[0:5] (pins 9–14) carry simultaneous bidirectional ENC_DATA on the same connector. See
Stator/Design_Spec.md §3 CPLD Signal Routing Matrixfor the full step-by-step signal flow.
J1–J3: ROTOR INTERFACE CONNECTORS
Connector Definition Owner:
Rotor/Board_Layout.md — Rotor Interface Connectors. This board hosts the mating connectors. See BOM for part numbers; mechanical finalisation pending.
The connector set (ENC-IN, ENC-OUT, and PWR/JTAG — one of each per rotor position) is defined on the Rotor board. The positional requirement stands: J1–J3 must be positionally identical across Stator, Extension, and Reflector so any rotor can mate at any position without re-wiring.
J8A / J8B — Controller Dock (Hybrid Molex — To Controller Board)
Connector Definition Owner:
Controller/Board_Layout.md — Controller ↔ Stator Dock. This board uses the Molex2195620015hybrid plugs. See BOM for part numbers.
Connector: Molex 2195620015 hybrid blind-mate plug pair (J8A / J8B). Mating Controller
receptacles are Molex 2195630015 on J2A / J2B.
Power capacity: J8B groups 3V3_ENIG across four power blades and J8A groups 5V_MAIN
across four power blades. The practical 3V3_ENIG limit remains the upstream 3.0A LDO; the grouped
5V_MAIN dock easily supports the Settings Board indicator rail and the J_SERVO branch.
Power telemetry path:
[ J8B logic / 3V3 dock ] --(3V3_ENIG blades)--> [ CSS2H 10mΩ SHUNT ] --(CLEAN 3V3)--> [ ROTOR BUS ]
| |
+----------- (I2C-1) ----------- [ INA219 ] ------+
J4–J6: ENCODER PORTS (26-Pin, 2×13, 2.54mm Shrouded Box Header)
Connector type: 2×13 (26-pin) 2.54mm pitch shrouded box header with polarisation key. Cable: Standard 26-wire 2.54mm IDC ribbon cable.
Physical Placement & Silkscreen
Left group: Right group (stacked vertically):
┌──────────┐ ┌──────────┐
│ J4 │ │ J5 │
│ TASTATUR │ │STECKERBR.│
│ / │ │ A │
│ HID UNIT │ └──────────┘
└──────────┘ ┌──────────┐
│ J6 │
│STECKERBR.│
│ B │
└──────────┘
Silkscreen requirement: Each port labelled individually in bilingual typewriter style:
- J4:
TASTATUR/LAMPENFELD/HID UNIT- J5:
STECKERBRETT A/PLUGBOARD A- J6:
STECKERBRETT B/PLUGBOARD B
JTAG Chain
TCK and TMS are broadcast to all three encoder ports and the rotor stack. SYS_RESET_N is broadcast to all devices. TDI/TDO form a serial chain routed internally on the Stator PCB:
- Controller
J2B/ StatorJ8BTDI → Stator CPLD TDI - Stator CPLD TDO → J4 (HID Encoder) TDI (internal Stator trace)
- J4 TDO → J5 (Plugboard Encoder #1) TDI (internal Stator trace)
- J5 TDO → J6 (Plugboard Encoder #2) TDI (internal Stator trace)
- J6 TDO → Rotor stack TDI (via J1–J3 PWR/JTAG connector) (internal Stator trace)
- Rotor stack TDO returns via J7 Extension Port TTD_RETURN
Connector Definition Owner: This board. All other boards using this connector cross-reference here.
Pin Table (identical across J4, J5, and J6)
| Pin | Signal | Direction | Notes |
|---|---|---|---|
| 1 | 3V3_ENIG | Stator→Encoder | Power supply |
| 2 | ENC_IN[0] | Stator→Encoder | Encoder input bit 0 |
| 3 | ENC_IN[1] | Stator→Encoder | Encoder input bit 1 |
| 4 | ENC_IN[2] | Stator→Encoder | Encoder input bit 2 |
| 5 | ENC_IN[3] | Stator→Encoder | Encoder input bit 3 |
| 6 | ENC_IN[4] | Stator→Encoder | Encoder input bit 4 |
| 7 | ENC_IN[5] | Stator→Encoder | Encoder input bit 5 |
| 8 | GND | — | ENC_IN / JTAG group separator |
| 9 | TCK | Stator→Encoder | JTAG clock (broadcast to all encoder ports) |
| 10 | GND | — | TCK/TMS inter-pin shield |
| 11 | TMS | Stator→Encoder | JTAG mode select (broadcast to all encoder ports) |
| 12 | GND | — | TMS/TDO inter-pin shield |
| 13 | TDO | Encoder→Stator | JTAG data out (chains to next device via Stator) |
| 14 | GND | — | TDO/TDI inter-pin shield |
| 15 | TDI | Stator→Encoder | JTAG data in (from previous device via Stator) |
| 16 | GND | — | TDI/SYS_RESET_N shield |
| 17 | SYS_RESET_N | Stator→Encoder | Active-low CPLD reset (broadcast to all encoder ports) |
| 18 | GND | — | JTAG / ENC_OUT group separator |
| 19 | ENC_OUT[0] | Encoder→Stator | Encoder output bit 0 |
| 20 | ENC_OUT[1] | Encoder→Stator | Encoder output bit 1 |
| 21 | ENC_OUT[2] | Encoder→Stator | Encoder output bit 2 |
| 22 | ENC_OUT[3] | Encoder→Stator | Encoder output bit 3 |
| 23 | ENC_OUT[4] | Encoder→Stator | Encoder output bit 4 |
| 24 | ENC_OUT[5] | Encoder→Stator | Encoder output bit 5 |
| 25 | GND | — | ENC_OUT trailing shield / power return |
| 26 | 3V3_ENIG | Stator→Encoder | Power supply |
Power capacity: 2 × 3V3_ENIG pins × 1A/pin = 2.0A — adequate for Encoder board load (~208mA: 2× EPM240T100I5N CPLDs + 2× status LEDs; >9× margin).
J_CFG — Settings Board I²C Connector
Component: JST B6B-PH-K-S(LF)(SN) — 6-pin JST PH 2.0mm THT (JLCPCB: C131342).
Placement: Board edge facing the enclosure panel, accessible without rotor stack removal.
Silkscreen: Label EINSTELLUNGEN / SETTINGS adjacent to connector.
Cable: 6-wire harness to Settings Board J_I2C (100mm recommended).
SW1 and SW2 DIP switches have been removed. Configuration is now handled via panel-mount toggle switches with discrete RGB indicators on the Settings Board (current implementation; see DEC-034). R16–R26 pull-downs are retained on the Stator CPLD config input pins to hold all configuration bits at logic-0 during power-up until CM5 initialises U_EXP4.
| Pin | Signal | Description |
|---|---|---|
| 1 | 3V3_ENIG | Logic supply to Settings Board expanders |
| 2 | 5V_MAIN | Indicator power feed from the Controller via the J8A 5V dock |
| 3 | GND | Logic return only; no local GND_CHASSIS bond |
| 4 | SDA | I²C-1 data — shared Stator I²C-1 bus |
| 5 | SCL | I²C-1 clock — shared Stator I²C-1 bus |
| 6 | GND | LED/current return paired with the 5V_MAIN feed |
U_EXP4 — MCP23017 CPLD Config Output Driver (@ 0x22)
Component: MCP23017T-E/SO, SOIC-28. Placement: Near Stator CPLD U1, within 15 mm of R16–R26 pull-down resistors. Decoupling cap within 1 mm of VDD pin. Address: A2=LOW, A1=HIGH, A0=LOW → 0x22.
Drives the CPLD configuration input pins (SW1_OUT[0:3], SW2_OUT[0:5]) and STATOR_CFG_RDY strobe under CM5 firmware control. CM5 writes the active configuration (sourced from either the Settings Board switches or its own override) to U_EXP4 via I²C, then pulses STATOR_CFG_RDY HIGH to trigger CPLD re-latch.
| Port | Pin | Signal | Direction | Connected to |
|---|---|---|---|---|
| GPA | [0] | SW1_OUT[0] | Output | CPLD config input bit 0 (via R16 pull-down) |
| GPA | [1] | SW1_OUT[1] | Output | CPLD config input bit 1 (via R17 pull-down) |
| GPA | [2] | SW1_OUT[2] | Output | CPLD config input bit 2 (via R18 pull-down) |
| GPA | [3] | SW1_OUT[3] | Output | CPLD config input bit 3 (via R19 pull-down) |
| GPA | [4] | STATOR_CFG_RDY | Output | CPLD re-latch strobe; rising edge triggers re-latch (via R20 pull-down) |
| GPA | [5:7] | — | — | Spare |
| GPB | [0] | SW2_OUT[0] | Output | CPLD reflector config bit 0 (via R21 pull-down) |
| GPB | [1] | SW2_OUT[1] | Output | CPLD reflector config bit 1 (via R22 pull-down) |
| GPB | [2] | SW2_OUT[2] | Output | CPLD reflector config bit 2 (via R23 pull-down) |
| GPB | [3] | SW2_OUT[3] | Output | CPLD reflector config bit 3 (via R24 pull-down) |
| GPB | [4] | SW2_OUT[4] | Output | CPLD reflector config bit 4 (via R25 pull-down) |
| GPB | [5] | SW2_OUT[5] | Output | CPLD reflector config bit 5 (via R26 pull-down) |
| GPB | [6:7] | — | — | Spare |
See Settings_Board/Design_Spec.md for the full CM5 firmware flow and LED control logic.
See Stator/Design_Spec.md §3 for the CPLD configuration tables.
§9 Routing — Trace Width Specifications
Board specs: 4-layer / 2oz finished copper (JLC04161H-7628). L1 = signal (JTAG/routing); L2 = GND plane; L3 = 3V3_ENIG power pour; L4 = secondary routing / data plate.
IPC-2221A basis (2oz copper, external, 10°C rise, 25°C ambient): For 2oz external: ~0.15 mm/A. Internal pour (L3) handles 2.05 A total without width constraints. See Global_Routing_Spec.md §1.1 for the full current-category table.
Trace Width Table
| Net | Peak Current | IPC Calc (2oz ext) | Design Min | Specified Width | Layer | Notes |
|---|---|---|---|---|---|---|
| Signal (ENC_IN/OUT, SYS_RESET_N, I2C) | < 5 mA | < 0.001 mm | 0.20 mm | 0.20 mm | L1 | 3.3 V logic signals; all CPLD I/O and encoder data lines |
| JTAG signals: TCK, TMS, TDI, TDO, TTD_RETURN (CI) | signal | — | 0.127 mm | 0.127 mm (5 mil) | L1 (external) | 50 Ω controlled impedance over L2 GND plane; per DEC-016. External layer — no inner-layer minimum conflict. See JTAG_Integrity.md. |
| JTAG fan-out to encoder ports (L1, cable-drive side) | signal | — | 0.20 mm | 0.20 mm | L1 | Traces from series resistors R7–R15 to J4/J5/J6 connector pads (post-termination section) |
3V3_ENIG entry trace (J8B dock → shunt R1) |
2.05 A | 0.31 mm | 0.80 mm | 0.80 mm | L1 | Carries full rotor-stack + encoder load; series path through CSS2H 10 mΩ Kelvin shunt; consistent with PM §9 and Global_Routing_Spec §1.1 |
| 3V3_ENIG fan-out (post-shunt → L3 pour via-down) | 2.05 A | 0.31 mm | 0.80 mm | 0.80 mm | L1 | Entry to inner power pour via thermal via cluster |
| 3V3_ENIG per-slot feed (L1 → each rotor ERF8-005 socket) | 55 mA | 0.008 mm | 0.80 mm | 0.80 mm | L1 | 3V3_ENIG canonical 0.80 mm (Global_Routing_Spec §1.1); one trace per 30 rotor slots |
| 3V3_ENIG distribution (inner power pour) | 2.05 A | — | pour | copper pour | L3 | Full uninterrupted 2oz plane; primary 3V3_ENIG distribution |
| GND return (inner GND pour) | — | — | pour | copper pour | L2 | Solid GND reference plane; must be uninterrupted under all CI traces on L1 |
Notes
- INA219 shunt (R1, CSS2H-2512R-R010ELF, 10 mΩ): Force and sense traces must be independent 0.20 mm 4-wire Kelvin routes — dedicated sense traces on both IN+ and IN− sides of the shunt, never shared with the high-current force traces. Even 1 mΩ of shared trace resistance introduces 10% measurement error on the 10 mΩ shunt value.
- JTAG CI traces: 0.127 mm (5 mil) on L1 over the L2 GND plane achieves 50 Ω controlled impedance on the JLC04161H-7628 stackup (h = 0.087 mm, t = 0.035 mm, Eᵣ = 4.4). Per DEC-016.
- 3V3_ENIG entry trace: 0.80 mm is specified for the 2.05 A trunk path (consistent with PM §9 which uses 0.80 mm for the LDO output at its 3.0 A hard limit). The 0.80 mm design choice provides a 36% current headroom margin toward the 3.0 A LDO limit while aligning with the canonical system-wide 3V3_ENIG trace width standard.