Design Log DEC 035 hid keyboard and lightboard use a 40 position qwerty derived layout for the 64 character code space - thepinkmile/Enigma-NG GitHub Wiki
DEC-035 - HID Keyboard and Lightboard Use a 40-Position QWERTY-Derived Layout for the 64-Character Code Space
- Status: Decided
- Date: 2026-04-17
- Category: HMI / Mechanical interface / HID logic
- Area: HID Assembly; Encoder Board; Rotor actuation interface
- Author: Izzyonstage & GitHub Copilot
Summary
Freeze the HID operator interface as a 40-position physical layout rather than a 64-key physical
array. The printable positions are [a-z0-9+=], with Left Shift and Right Shift on the
bottom row to access uppercase alphabetic codes. The machine still retains its full 64-character
logical alphabet.
Problem
Older docs had drifted toward describing the HID assembly as a literal 64-key keyboard, which no longer matched the intended operator experience. That made the purchased keyboard-switch quantity, mechanical lever count, and Encoder input mapping ambiguous, and risked re-introducing separate uppercase-only key positions that were never part of the intended user-facing layout.
Decision
- Physical keyboard layout: Use 40 total switch positions in the HID keyboard.
- 26 lowercase alphabetic keycaps:
a-z - 10 numeric keycaps:
0-9 - 2 symbol keycaps:
+and= - 2 modifier keycaps: Left Shift and Right Shift
- 26 lowercase alphabetic keycaps:
- Logical 64-character repertoire: Preserve the full 64-character code space in Encoder logic.
- Unshifted alphabetic keys emit
a-z - Shifted alphabetic keys emit
A-Z - Digits and
+/=are unchanged by Shift - Therefore the HID path still covers 26 lowercase + 26 uppercase + 10 digits + 2 symbols = 64 unique character codes
- Unshifted alphabetic keys emit
- Physical lightboard layout: Mirror the same QWERTY-derived printable positions on the lightboard instead of introducing dedicated uppercase-only legends or lamp locations.
- Mechanical interface: The rotor actuation mechanism shall therefore be designed around 40 physical key levers, not 64.
Rationale
- This matches the intended operator experience of a keyboard-like panel instead of an abstract 64-button matrix.
- It preserves the full 64-character cipher alphabet without wasting front-panel area on duplicated uppercase-only key positions.
- It aligns the purchased custom keyboard switch count and the HID mechanical packaging with a more realistic enclosure layout.
Impact
- HID Assembly Design_Spec: layout, key count, and purchased switch definition fixed at 40 positions
- Encoder Design_Spec: HID mapping clarified as 40 physical inputs projected into a 64-code logical space
- Rotor Actuation Assembly: lever count reduced from 64 to 40
- Consolidated BOM / component tracking: keyboard switch quantity updated to 40 and tied to the pseudo datasheet for the purchased marketplace part