Electronics Cypher Input Cypher Input 64 Char Design - thepinkmile/Enigma-NG GitHub Wiki
Cypher-Input Board - 64-Character Variant Design Specification
Status: Draft
Project: Enigma-NG
Version: v.0.1.0
Associated Hardware Revision: Rev A
Last Updated: 2026-09-21
Parent Document: design/Electronics/Cypher-Input/Design_Spec.md
1. Overview
This document specifies the 64-Character variant of the Enigma-NG Cypher-Input Board. It
supports the extended Enigma-NG cipher alphabet: 26 letters + 10 digits + 2 base64-extra symbols
(+//), realised via Shift for uppercase (RFC 4648 base64 alphabet: A-Z, a-z, 0-9, +,
/). Space and Enter are present for CM5 UI input clarity but are not part of the cipher
alphabet.
All three Cypher-Input variants (26-Char Classic, 64-Character, 10-Numeric) share an identical
circuit topology (ENC module mount, LED indicator bank, Cypher Board interconnect, USM
interconnect, board-identification strap plus a shared non-cipher-key I2C expander) - see
design/Electronics/Cypher-Input/Design_Spec.md. Only key count/layout, LED/resistor/socket
quantities, plain-bits allocation, and BOARD_ROLE_ID value differ between variants.
2. Key Layout and Character Set
- Layout: QWERTY-style. 26 letters + 10 digits + 2 base64-extra symbols (
+,/) + 2 Shift (Left/Right) + Space + Enter. - Key count: 42 total (40 cipher-path + 2 non-cipher: Space, Enter).
- Character set composition: the 64-character (base64) cipher alphabet is realised as 26
physical letter keys (doubling as uppercase via Shift = 52 letter values) + 10 physical digit
keys (case-invariant) + 2 physical base64-extra symbol keys (case-invariant) = 64 cipher values,
driven by 40 cipher-path signals on the ENC module
plain-bitsbus. Space and Enter are read via the on-board I2C GPIO expander (U4), not theplain-bitsbus, so they never enter the cipher pipeline.
Placeholder layout (provisional): the arrangement below is an initial placeholder only, to be superseded once the user's own mock layout and renders (produced with an external keyboard-layout tool) are added to the repository. Key positions, row groupings, and Shift/Space/ Enter placement are all subject to change.
1 2 3 4 5 6 7 8 9 0 + /
Q W E R T Y U I O P
A S D F G H J K L
SHIFT Z X C V B N M SHIFT
[ SPACE ] [ENTER]
3. plain-bits Allocation
| Range | Assignment |
|---|---|
| PB[0:25] | 26 letter keys (case realised via Shift - see Shift rows below) |
| PB[26:35] | 10 digit keys (case-invariant) |
| PB[36:37] | 2 base64-extra symbol keys: + and / (case-invariant; RFC 4648 base64 alphabet) |
| PB[38:39] | 2 Shift keys (Left/Right) |
| PB[40:63] | Unused - spare plain-bit positions |
Provisional pending Quartus pin-planning and PCB layout on the ENC module side. See
Design_Spec.md §3for the common ENC module interface and full J4 zig-zag pin map (Board_Layout.md §1). Space and Enter are not part of this bus - see §4 below. LED colour selection never uses anyplain-bitsposition - colour is sourced entirely from the User Settings Module, see §5.
4. Board Identification and Non-Cipher Key I/O
BOARD_ROLE_ID[3:0]strap value:0b0111(Characters + Numbers + Special; bit3 Custom not populated on this board - seeCypher/Board_Layout.md §4encoding table andCypher/Design_Spec.md §3a).- U4 (PCA9534A) I2C address:
0x38, the single fixed address shared by all Cypher-Input variants (seeDesign_Spec.md §3a). Used on this variant for Space/Enter UI-only key readback only - seeDesign_Spec.md §3a.
5. LED Indicator Behaviour
Colour and illumination values (four independent styles) are stored and configured entirely on the
User Settings Module and delivered to this board on the common J3 connector
(RED_DRIVE_{1,2,3,4}_N/GREEN_DRIVE_{1,2,3,4}_N/BLUE_DRIVE_{1,2,3,4}_N/
ILLUMINATION_DRIVE_{1,2,3,4}_N - see Design_Spec.md §5/§6 and
User_Settings_Module/Design_Spec.md). This variant carries no dedicated local colour-selection
circuit of its own.
LED count matches total physical keyswitches (42: 40 cipher-path + Space + Enter), so Space and Enter also carry a colour-indicator LED even though they are not part of the cipher pipeline.
This is the only Cypher-Input variant with Shift keys. Shift is a global state, not a
per-key one: while either Shift key is held, all keys switch their baseline illumination from
Colour1 to Colour3 (Shift changes the [a-z] keys' cipher meaning to [A-Z], so Colour3
indicates the board is in uppercase mode). The currently-pressed key still shows Colour2 on top
of whichever baseline (Colour1 or Colour3) is currently active. Which local circuit/CPLD
implementation realises this behaviour is not yet determined - see
.copilot/todos/cypher-input-led-independent-rgb-pwm-review.md.
6. Bill of Materials (64-Char Variant-Specific Components)
Variant-specific components for the 64-Character variant. Common components shared across all
Cypher-Input variants are listed in design/Electronics/Cypher-Input/Design_Spec.md §11.
| RefDes | Specification | MPN | Manufacturer | DigiKey PN | Mouser PN | JLCPCB PN | Alt Supplier + PN | Notes | Footprint Available | Footprint Downloaded | Qty |
|---|---|---|---|---|---|---|---|---|---|---|---|
| D1-D42 | RGB SMD LED (placeholder - MPN TBD, pending user confirmation of a part that fits under Cherry MX2A-71NB) | TBD | TBD | - | - | - | - | One per key; colour source is the User Settings Module (see Design_Spec.md §5); top face - not populated in PCBA, hand-soldered by the user after delivery (see Design_Spec.md §2 Architecture) |
- | - | 42 |
| R1-R42 (Red) | 0402, value TBD pending LED part confirmation | TBD | TBD | - | - | - | - | Red channel current-limit | - | - | 42 |
| R1-R42 (Green) | 0402, value TBD pending LED part confirmation | TBD | TBD | - | - | - | - | Green channel current-limit | - | - | 42 |
| R1-R42 (Blue) | 0402, value TBD pending LED part confirmation | TBD | TBD | - | - | - | - | Blue channel current-limit | - | - | 42 |
| SW1-SW42 | Mechanical keyswitch hot-swap socket, THT (rear-mount) | PG151101S11 | Kailh | - | - | C41430893 (consignment) | - | Hot-swap socket for Cherry MX2A-71NB (not populated - see below) | ✔ | ✔ | 42 |
Not part of the PCBA (sourced and installed separately):
| Item | MPN | Manufacturer | DigiKey PN | Mouser PN | Notes | Qty |
|---|---|---|---|---|---|---|
| Mechanical keyswitch | MX2A-71NB | Cherry | 1644-MX2A-71NB-ND | 540-MX2A-71NB | Snap-fit into hot-swap sockets; JLCPCB global sourcing/consignment or Amazon (prototyping) | 42 |