Design Log DEC 107 usm hid connector four colour style signal expansion - thepinkmile/Enigma-NG GitHub Wiki
DEC-107 - USM/HID Connector Four-Colour-Style Signal Expansion
| Field | Value |
|---|---|
| Decision ID | DEC-107 |
| Status | Decided |
| Date | 2026-09-21 |
| Author | Izzyonstage & GitHub Copilot |
| Amends | DEC-103, DEC-104 |
| Related | DEC-105, DEC-106 |
Context
The Template 3 connector (User Settings Module's left connectors, mating each HID board's own
right-edge connector) originally carried a single generic RED_DRIVE_N/GREEN_DRIVE_N/
BLUE_DRIVE_N/ILLUMINATION_DRIVE_N signal group, broadcast identically on both rows. Reviewing
the Cypher-Input 64-Character variant's LED requirements surfaced a gap: a HID board's own local
logic (e.g. a colour-select mux keyed on Shift state) needs simultaneous access to more than one
of USM's stored colour values in order to switch between them in real time. A single broadcast
signal group cannot represent more than one colour at a time.
Decision
- Expand Template 3 to carry four independent colour-style signal groups, each with its own
RED_DRIVE_{n}_N/GREEN_DRIVE_{n}_N/BLUE_DRIVE_{n}_N/ILLUMINATION_DRIVE_{n}_Nset (n= 1-4), rather than one shared/generic group. - The User Settings Module's colour-value store is expanded to hold 4 colour styles instead of 3. The initial system configuration uses only 3 (Colour1 = idle/static baseline, Colour2 = standard key-press, Colour3 = shifted key-press); Colour4 is reserved for future use and is not consumed by any board today.
- Reallocate Template 3's pin map:
TDI_INPUT/TDO_INPUT/TMS/TCK/CPLD_RESET_Nshifted one column closer to the center GND bar (their neighbouring JTAG/reset signals do not create signal-integrity concerns when adjacent, since TDI/TDO are inactive wheneverCPLD_RESET_Nis toggled);I2C_SDA/I2C_SCLrelocated adjacent to the static3V3_ENIGrails (also separated by the center GND bar, so signal integrity is unaffected by the static rail's proximity); the freed columns host the 3 additional colour-style signal groups (Colour1, Colour2, Colour4 - Colour3 keeps its original pin positions).
Rationale
- A HID board cannot arbitrate between multiple stored colour values in real time using only one broadcast signal group - each value a board's own local logic needs simultaneous access to must have its own dedicated set of pins.
- Reserving a 4th colour style now avoids a second connector rework later if a future requirement needs a 4th distinct colour value.
- Repositioning JTAG/reset and I2C signals adjacent to their respective "safe" neighbours (reset state or static power rails) keeps the new colour-style pin groups contiguous and readable without introducing any new signal-integrity risk.
Impact
User_Settings_Module/Board_Layout.md(Template 3 owner) and both HID boards' (Cypher-Input/Cypher-Output) own connector-usage notes must be updated to reference the 4-colour-style pin map instead of the single generic signal group.User_Settings_Module/Design_Spec.md's colour-value store description changes from "3 colour values" to "4 colour styles (3 used, 1 reserved for future use)".- Any HID board's own local colour-selection circuit (e.g. Cypher-Input 64-Character's Shift-key colour mux) now sources its inputs from the specific colour-style pin group(s) it needs, instead of a single shared signal group.