Repository navigation
Electronics Encoder Module Board Layout
Status: In Review Project: Enigma-NG Author: Izzyonstage & GitHub Copilot Version: v.0.1.0 Associated Hardware Revision: Rev A Last Updated: 2026-08-14
TOP VIEW (L1) - 4-Layer / 2oz Copper
__________________________________________________________________
| |
| [ J1 - 90-PIN plain-bits BtB PLUG ] <--- Left edge |
| |
| [ SINGLE CPLD + DIGITAL DEBOUNCE / ROLE LOGIC ] |
| (EPM570T100I5N + sampled encode/decode image implementation) |
| |
| [ J2 - 24-PIN cypher-bits+JTAG BtB PLUG ] <--- Bottom-right |
| [ J3 - 10-PIN POWER BtB PLUG ] <--- Top-right |
| |
| [ DATA PLATE ] <--- Inverted White Silkscreen on L4 |
|__________________________________________________________________|
____________________________________________________________
| |
| [ J1 plain-bits ] [ CPLD ] [ J2 cypher-bits ] |
| (90-pin BtB plug) (U1) + JTAG (24-pin plug) |
| [ J3 power (10p) ] |
|___________________________________________________________|
Connector Definition Owner: this board (canonical ENC-module BtB pin-mapping reference). Mates with the carrier board's DF40C-90DS receptacle. Reused by the Cypher Board (J7/J10/J13/J16), Cypher-Input Board (J1), and the future Cypher-Output Board.
2 rows x 45 positions = 90 total pins. 64 plain-bit signal pins (PB) + 26 GND pins, zig-zag distributed between rows (Bresenham-spread, max signal-only gap = 1 column between any two GND columns). PB[0] is leftmost (LSB convention).
| Col | Row A | Row B |
|---|---|---|
| C01 | PB[0] | PB[1] |
| C02 | GND | PB[2] |
| C03 | PB[3] | GND |
| C04 | PB[4] | PB[5] |
| C05 | GND | PB[6] |
| C06 | PB[7] | PB[8] |
| C07 | PB[9] | GND |
| C08 | PB[10] | PB[11] |
| C09 | GND | PB[12] |
| C10 | PB[13] | GND |
| C11 | PB[14] | PB[15] |
| C12 | GND | PB[16] |
| C13 | PB[17] | PB[18] |
| C14 | PB[19] | GND |
| C15 | PB[20] | PB[21] |
| C16 | GND | PB[22] |
| C17 | PB[23] | GND |
| C18 | PB[24] | PB[25] |
| C19 | GND | PB[26] |
| C20 | PB[27] | PB[28] |
| C21 | PB[29] | GND |
| C22 | GND | PB[30] |
| C23 | PB[31] | PB[32] |
| C24 | PB[33] | GND |
| C25 | PB[34] | PB[35] |
| C26 | GND | PB[36] |
| C27 | PB[37] | PB[38] |
| C28 | PB[39] | GND |
| C29 | GND | PB[40] |
| C30 | PB[41] | PB[42] |
| C31 | PB[43] | GND |
| C32 | PB[44] | PB[45] |
| C33 | GND | PB[46] |
| C34 | PB[47] | PB[48] |
| C35 | PB[49] | GND |
| C36 | GND | PB[50] |
| C37 | PB[51] | PB[52] |
| C38 | PB[53] | GND |
| C39 | PB[54] | PB[55] |
| C40 | GND | PB[56] |
| C41 | PB[57] | PB[58] |
| C42 | PB[59] | GND |
| C43 | GND | PB[60] |
| C44 | PB[61] | PB[62] |
| C45 | PB[63] | GND |
plain-bits usage: all 64 PB[] positions are generic; how a carrier board wires them (to keyswitches, lightboard lamps, or plugboard jack terminals) is defined entirely by the carrier board's own design files - see e.g.
Cypher-Input/Board_Layout.md §1. On Cypher-Input, all 64 positions are reserved exclusively for cipher-path keyswitches - LED colour selection is generated entirely on the carrier board itself and never touches this bus (seeCypher-Input/Design_Spec.md §5).
Connector Definition Owner: this board. Mates with the carrier board's DF40C-24DS receptacle.
2 rows x 12 positions = 24 total pins. 12 signal pins + 12 GND pins, full zig-zag (every signal
flanked by GND at adjacent columns). Signal order left-to-right: CB[0:5], then JTAG (TCK, RST_N,
TMS, TDI, TDO), then ENC_ACTIVE_N.
| Col | Row A | Row B |
|---|---|---|
| C01 | CB[0] | GND |
| C02 | GND | CB[1] |
| C03 | CB[2] | GND |
| C04 | GND | CB[3] |
| C05 | CB[4] | GND |
| C06 | GND | CB[5] |
| C07 | TCK | GND |
| C08 | GND | RST_N (CPLD_RESET_N) |
| C09 | TMS | GND |
| C10 | GND | TDI |
| C11 | TDO | GND |
| C12 | GND | ENC_ACTIVE_N |
This board's usage: all 12 signals active.
ENC_ACTIVE_Ndirection is role-dependent (KBD_ENCdrives it,LBD_DECconsumes it, other roles hold it inactive/HIGH) - seeDesign_Spec.md §3.BRIGHTNESS_PWM(an external 555 oscillator on the carrier board, where applicable) feeds the CPLD GCLK0 pin - a dedicated clock input, not part of this 24-pin signal/JTAG connector.
Connector Definition Owner: this board. Mates with the carrier board's DF40C-10DS receptacle.
2 rows x 5 positions = 10 total pins. Power only, no zig-zag (solid rows). Row A = 3V3_ENIG, Row B = GND.
| Col | Row A | Row B |
|---|---|---|
| C01 | 3V3_ENIG | GND |
| C02 | 3V3_ENIG | GND |
| C03 | 3V3_ENIG | GND |
| C04 | 3V3_ENIG | GND |
| C05 | 3V3_ENIG | GND |
Pin-1 marker (per GRS §7.1): J1/J2/J3 pin 1 shall each be identified by a triangular silkscreen marker adjacent to the pin-1 corner on L1 per
design/Standards/Global_Routing_Spec.md §7.1.
Power capacity: 5 x 3V3_ENIG pins x 1 A/pin = 5.0 A. One Encoder Module estimated load ~104 mA (1x EPM570 CPLD + 1x status LED + local margin) - substantial connector margin.
This is the board-authoritative logical signal map for U1. The local MAX II handbook confirms
EPM570T100package availability in TQFP-100, but it points printed device pin-outs to external package documentation rather than embedding a fixed package pin table. The map below therefore freezes the required board-level connectivity while leaving the exact TQFP pad numbers to schematic capture.Detailed role logic, sampled debounce requirements, and encoder/decoder behaviour are owned by
design/Software/CPLD_Logic/Encoder_Logic.md.
| Function | Source / destination | Notes |
|---|---|---|
TCK |
J2 C07 (Row A) -> U1 | Dedicated JTAG clock input |
TMS |
J2 C09 (Row A) -> U1 | Dedicated JTAG mode input |
TDI |
J2 C10 (Row B) -> U1 | Dedicated JTAG serial input from the carrier board's JTAG chain |
TDO |
U1 -> R6 -> J2 C11 (Row A) | Dedicated JTAG serial output back to the carrier board's JTAG chain |
DEV_CLR_N / reset input |
J2 C08 (Row B, RST_N/CPLD_RESET_N) -> U1 |
Active-low device reset; held high locally by R5 (vendor pin name DEV_CLRN - see design/Standards/Global_Routing_Spec.md §10) |
| Signal group | Pins | U1 direction | Notes |
|---|---|---|---|
J1 PB[0:63] plain-bits bank |
64 | Role-dependent | Encode-role population reads one asserted line; decode-role population drives one-of-64 output |
J2 CB[0:5] cypher-bits |
6 | Role-dependent | Encode role drives the 6-bit bus back to the carrier board; decode role consumes it |
ENC_ACTIVE_N |
1 | Role-dependent |
KBD_ENC drives keyboard activity LOW when a debounced key is active; LBD_DEC consumes it to blank outputs when idle; other roles keep it inactive |
D1 status LED |
1 | Output | Active-low debug LED: U1 drives LOW to illuminate |
Logical budget summary: 72 general-purpose signal connections total = 64 bank lines + 6 bus lines + 1 activity sideband + 1 LED, plus the dedicated JTAG / reset pins above.
Spare-pin policy: the active docs do not currently claim any spare U1 user I/O.
Board specs: 4-layer / 2oz finished copper — stackup per GRS §2.3.1.
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. The 3V3_ENIG inner pour (L3) handles board load without width
constraints. See Global_Routing_Spec.md §1.1 for the full current-category table.
Encoder Module current budget:
1x EPM570T100I5N CPLD @ 50 mA; 1x status LED @ 4 mA; misc = ~50 mA; total worst-case:
104 mA from the 3V3_ENIG rail supplied via J3.
| Net | Peak Current | IPC Calc (2oz ext) | Design Min | Specified Width | Layer | Notes |
|---|---|---|---|---|---|---|
Signal (plain-bits, cypher-bits) |
< 5 mA | < 0.001 mm | per GRS §1.1 | per GRS §1.1 | L1 | 3.3 V logic; CPLD I/O; J1/J2 traces |
| JTAG signals: TCK, TMS, TDI, TDO (CI) | signal | - | per GRS §2.3.1 | per GRS §2.3.1 / JLCPCB_Manufacturing.md §1.1 | L1 (external) | 50 Ω controlled impedance over L2 GND plane; per DEC-016 |
| 3V3_ENIG power (J3 -> CPLD + LED) | 104 mA | 0.016 mm | per GRS §1.1 | per GRS §1.1 | L1 + L3 pour | Canonical 3V3_ENIG width per GRS §1.1 |
| 3V3_ENIG distribution (inner power pour) | 104 mA | - | pour | copper pour | L3 | Full uninterrupted 2oz plane |
| GND return (inner GND pour) | - | - | pour | copper pour | L2 | Reference plane under all CI traces on L1 |
-
JTAG CI traces: 50 Ω controlled impedance on L1 over the L2 GND plane. Trace width per GRS §2.3.1 and
design/Production/JLCPCB_Manufacturing.md §1.1. - Cable-output trace (U1 TDO -> R6 -> J2 C11): R6 (75 Ω) is placed within 2 mm of U1 TDO; the post-R6 trace to the J2 connector pad should be kept short.
- 3V3_ENIG power entry (J3, all 5 Row A pins): power pins connect to the same L3 copper pour via thermal vias; L1 traces from J3 to the via entry points per GRS §1.1.
-
Design Log
- DEC-001 3v3-enig-used-throughout-3v3-system-removed-from-btb-interconnect
- DEC-002 poe-option-a2-selected-coilcraft-poe600f-12ld
- DEC-003 poe-output-12v-or-ing-priority-logic-required
- DEC-004 supercap-charge-current-05a-under-poe
- DEC-005 tps25980-efuse-replaces-tps259474l
- DEC-006 stusb4500-negotiates-15v5a-75w
- DEC-007 dual-interleaved-lmq61460-q1-5v-buck-12a
- DEC-008 tps25750-emulates-5v5a-pd-profile-to-cm5
- DEC-009 legacy-controller-probe-access-pin-14-reassigned-to-sw-led-ctrl
- DEC-010 inc-14-deferred-legacy-probe-access-esd-protection-post-prototype
- DEC-011 all-power-rails-on-power-module-3v3-enig-serves-rotor-stack
- DEC-012 u4-tps25750-replaced-with-tps25751drefr-nrnd-resolution
- DEC-013 l3-emi-inductor-changed-to-bourns-srp1265a-100m
- DEC-014 controller-board-uses-erf8-female-on-both-btb-connectors-for-blind-mate-assembly
- DEC-015 link-beta-connector-reduced-from-80-pin-to-40-pin-erf8-020-erm8-020
- DEC-016 jtag-controlled-impedance-and-series-termination
- DEC-017 minimum-4-layer-stackup-for-all-non-controller-boards
- DEC-018 connector-pinout-ownership-model
- DEC-019 poe-transformer-topology-acf-option-a-selected
- DEC-020 gnd-chassis-rib-clearway-enig-bond
- DEC-021 supercapacitor-bank-upgrade-2x2-2s2p-2x3-2s3p
- DEC-022 jdb-ft232h-clock-source-dedicated-12mhz-smd-crystal-selected
- DEC-023 jdb-gnd-chassis-omitted-mounting-holes-tied-to-gnd
- DEC-024 jdb-is-complete-jtag-master-controller-jtag-lines-are-pass-through
- DEC-025 cm5-shutdown-mechanism-hardware-driven-ltc3350-software-support-deferred
- DEC-026 rotor-position-encoder-as5600-replaced-with-single-track-capacitive-encoder
- DEC-027 rotor-position-readback-via-jtag-virtual-jtag-user0-udr
- DEC-028 split-dual-board-rotor-architecture
- DEC-029 supercapacitor-hold-up-specification-25f-abracon-cells-2s4p-20-s-at-15w
- DEC-030 5v-main-backup-switchover-transient-fix-r14-r30-c35
- DEC-031 cm5-virtual-keyboard-key-injection-feature-architecture
- DEC-032 settings-board-panel-mount-configuration-controls-with-cm5-override
- DEC-033 dsi1-display-connector-provision-for-optional-lid-touchscreen
- DEC-034 switch-hardware-refresh-settings-board-toggle-discrete-rgb-led-ruggedized-pm-sw1
- DEC-035 hid-keyboard-and-lightboard-use-a-40-position-qwerty-derived-layout-for-the-64-character-code-space
- DEC-036 link-beta-former-monitor-pins-reallocated-as-grouped-power-rails
- DEC-037 link-beta-pin-map-regrouped-around-dedicated-jtag-and-i2c-guard-bands
- DEC-038 controller-centric-dock-architecture-replaces-legacy-link-alpha-link-beta-backplane
- DEC-039 enclosure-connected-boards-use-gnd-chassis-daughterboards-are-exempt
- DEC-040 diagnostics-banks-removed-from-active-design-specs-pending-coupon-review
- DEC-041 encoder-modules-use-epm570-with-digital-debounce-and-role-by-programming
- DEC-042 encoder-port-pin-8-carries-hid-local-enc-active-n
- DEC-043 shared-actuation-module-replaces-direct-controller-servo-gpio
- DEC-044 fdc2114-internal-oscillator-selected-clkin-gnd
- DEC-045 rotor-samtec-erm8erf8-connectors-require-esd-protection
- DEC-046 bypassdecoupling-capacitor-voltage-rating-50v-retained-on-all-non-pm-boards
- DEC-047 or-ing-mosfet-corrected-to-csd17578q5a
- DEC-048 esd-protection-extended-to-host-side-rotor-facing-btb-connectors
- DEC-049 rotor-internal-headers-renamed-to-j-convention-connector-count-updated-to-8-bom-unified
- DEC-050 encoder-blade-terminal-refdes-corrected-from-bt-to-j-convention
- DEC-051 settings-board-renamed-to-user-settings-module-board-code-sbd-usm
- DEC-052 variant-specific-fdc2114-refdes-use-ab-suffix-convention
- DEC-053 extension-port-connector-upgraded-from-bhr-20-vua-20-pin-to-2bhr-30-vua-30-pin
- DEC-054 signal-net-renamed-pwr-but-pwr-but-n-active-low-suffix-conformance
- DEC-055 f-108-system-wide-reference-designator-and-requirement-id-consecutive-renumbering
- DEC-056 relocate-investigation-documents-to-board-owned-folders
- DEC-057 daughterboard-mounting-hole-specification-and-standoff-bom-ownership
- DEC-058 jdb-connector-upgrade-hat-headers-to-df40c-20-btb
- DEC-059 erm8erf8-stacking-height-confirmed-rotor-stack-assembly-specification-created
- DEC-060 jtag-daughterboard-renamed-to-jtag-module-jdb-prefix-replaced-with-jm
- DEC-061 pass-7-review-corrections-ctlstarotencamgrsstatus-updates
- DEC-062 ctl-poe-t1-selection-tdk-b82806d0060a120-topology-acf-flyback-acf-forward
- DEC-063 ctl-poe-l1-selection-yageo-pa4343333nlt-acf-forward-output-inductor
- DEC-064 ctl-poe-c17-final-part-selection-kemet-c0805c223k2racauto-22nf-200v-x7r-0805
- DEC-065 system-wide-stackup-code-correction-and-jlcpcb-authoritative-impedance-values
- DEC-066 grs-canonical-pcb-stackup-authority-consolidation
- DEC-067 am-sw1sw2-tactile-switch-rating-accepted-for-production
- DEC-068 pm-per-input-bulk-capacitors-and-output-source-quality-bulk-banks
- DEC-069 pm-per-input-polyfuse-protection-and-uvlo-resistor-recalculation
- DEC-070 mcp23017-i²c-silicon-restriction-gpb7gpa7-review-and-cfg-apply-n-reassignment
- DEC-071 usm-spdt-switch-dual-terminated-wiring-and-pull-down-resistor-removal
- DEC-072 review-pass-9-findings-and-resolutions
- DEC-073 ltc3350-rt-resistor-correction-332-kω-133-kω-amends-dec-030
- DEC-074 rename-cpld-reset-signal-sys-reset-n-cpld-reset-n
- DEC-075 tps25751-option-c-external-eeprom-isolated-i2ct-debug-header-on-power-module
- DEC-076 pm-3v3-architecture-redesign-3v3-main3v3-enig-rail-split-j4-dual-purpose-programming-j6-removal-and-q12-parallel-p-fet-selection
- DEC-077 retrospective-rotor-ttd-daisy-chain-no-series-termination-resistors-amends-dec-016
- DEC-078 cpld-reset-n-stator-buffer-bss138-n-channel-mosfet-new-decision-references-dec-077
- DEC-079 c20-voltage-rating-correction-25v-35v-amends-dec-072-bom-item-1
- DEC-080 retrospective-pm-and-stator-dock-connector-redesignation-amends-dec-038
- DEC-081 retrospective-rotor-ttd-no-series-resistor-policy-in-addition-to-dec-016
- DEC-082 10µf-bulk-reservoir-capacitor-upgrade-25v-0805-50v-1206-all-boards
- DEC-083 retire-all-boards-bomjson-consolidate-bom-authority-in-design-spec-files-and-consolidated-bom
- DEC-084 cypher-stack-architecture-migration-and-board-role-consolidation
- DEC-085 stack-output-j4-power-pin-zero-ohm-links-prototype-test
- DEC-086 cypher-input-common-variant-restructure-10-numeric-variant-single-i2c-address
- DEC-087 cypher-input-led-colour-architecture-moved-off-plain-bits-onto-local-rgb-select-circuit
- DEC-088 plugboard-jacks-wired-directly-to-cypher-board-spade-bank-j4j6-reserves-5v-main
- DEC-089 board-role-id-widened-to-4-bit-capability-bitmask-cpld-pin-freeing-and-j5-migration
- DEC-090 cypher-board-j3-stack-input-side-full-50-pin-allocation-and-actuate-request-in-out-n-signal-pair
- DEC-091 j3-esd-protection-extended-to-actuate-request-pins-and-actuation-gating-resolved-to-cypher-cpld
- DEC-092 cypher-board-j4-stack-output-side-full-50-pin-allocation
- DEC-093 actuate-request-end-to-end-signal-path-j4-rename-rotor-interposer-connectors-extended
- DEC-094 connector-ownership-reassignment-for-reused-chain-templates
- DEC-095 actuate-request-esd-protection-completed-stack-output-passive-wiring-defined
- DEC-096 stack-blanking-board-corrected-actuate-request-bridging-added
- DEC-097 cypher-j3-actuate-request-out-n-wired-as-round-trip-verification-input
- DEC-098 controller-cypher-dock-split-power-molex-signal-samtec-amends-dec-038-dec-080
- DEC-099 cm5-i2c-bank-architecture-mipi0-to-mipi1-swap-pwm-gpclk-reservation
- DEC-100 jtag-module-actuation-module-retirement-from-controller-board
- DEC-101 cypher-ina219-i2c-address-aligned-to-pm-default
- DEC-102 cypher-ft232h-3v3-vregin-self-powered-5v-usb-net-retired
- DEC-103 hid-usm-hub-connector-topology-rework
- DEC-104 user-settings-module-role-reworked-as-hid-colour-audio-hub-and-jtag-i2c-spine
- DEC-105 cfg-route-moved-to-full-cm5-software-control-physical-usm-switches-retired
- DEC-106 cypher-plugboard-reduced-to-mechanical-connector-only-board
- DEC-107 usm-hid-connector-four-colour-style-signal-expansion
- index
-
Diagrams
- renders
-
Electronics
- Boards Overview
- Consolidated BOM
- Electrical Design
- Power Budgets
- System Architecture
- Actuation Module
- Controller
- Cypher
- Cypher-Input
- Cypher-Output
- Cypher-Plugboard
- Encoder Module
- Extension
- JTAG Module
- Power Module
- Reflector
- Rotor
- Stack-Blanking
- Stack-Input
- Stack-Interposer
- Stack-Output
- Stator
- User Settings Module
-
Guides
-
Mechanical
- Complete System Assembly
- Extension
- Keyboard Assembly
- Lightboard Assembly
- Main Enclosure
- Plugboard Assembly
- Power Module
- Reflector
- Rotor
- Rotor Actuation Assembly
- Rotor Stack Assembly
-
Procedures
-
Production
-
Software
- Actuation Module
- CPLD Logic
-
GUI App
- Design Spec
-
Wireframes
- README
- renders
- Linux OS
-
Standards