Software GUI App Design Spec - thepinkmile/Enigma-NG GitHub Wiki
Enigma-NG Software Design: C# GUI Application
Status: Draft Version: v1.0.0 Associated Hardware Revision: Rev A Last Updated: 2026-04-05
1. Core Framework
- Version: .NET 10.0 (C#)
- UI Library: Avalonia UI (for hardware-accelerated Skia rendering on Linux/CM5).
- Architecture: MVVM (Model-View-ViewModel) for clean separation between hardware I/O and the display.
2. Aesthetic (The "Digital Museum" Look)
- Font: Authentic "Typewriter" monospaced font for all data readouts.
- Colour Palette: "Enigma Green" (#004D40), Slate Grey, and Amber highlights.
- Bilingual Toggle: A one-click switch to toggle all UI text between DEUTSCH and ENGLISH.
3. Primary Dashboard Features
- The Virtual Enigma: A 3D or high-res 2D representation of the 30-rotor stack.
- Live Power Telemetry: Real-time Gauges for Voltage, Current (mA), and Power (W) sourced from the INA219.
- Rotor stack monitor: INA219 at I²C address 0x45 (on Stator board),
R_SHUNT = 0.010Ω(10mΩ CSS2H-2512R-R010ELF), calibration registerCAL = 0x0400; current formula:I = V_shunt / 0.010, range 0–3A, typical 1–2.05A; Current_LSB = 4mA. - Power Module monitor: INA219 at I²C address 0x40 (on Power Module board), monitors 5V_MAIN rail.
- See
Software/Linux_OS/Power_Management.md §INA219for full driver code and register setup.
- Rotor stack monitor: INA219 at I²C address 0x45 (on Stator board),
- Source Indicators: Dynamic icons for PoE+, USB-C, and Battery (with "Time-to-Empty" countdown).
- Thermal Monitor: CPU and eFuse temperature tracking with bilingual "HOT" alerts.
- The "Daily Key": Ability to export/import the machine configuration (Rotor order, Ring settings, Plugboard patches) as a "Codebook" PDF or JSON file.
4. Cryptographic Visualization
-
Signal Path Trace: A "light-trail" animation showing the 12-bit signal traveling from the Keyboard, through the Plugboard, through the 30 rotors, hitting the Reflector, and returning to the
Lampboard.
-
Rotor Configurator: Drag-and-drop interface to "program" historical wiring (I-VIII) into the CPLDs/FPGAs.
5. GUI Implementation Checklist
- Setup Avalonia .NET 10.0 Project Template.
- Implement I2C Wrapper for INA219 (Telemetry) — address 0x45 (rotor stack), 0x40 (power module); R_SHUNT=0.010Ω (CSS2H 10mΩ); CAL=0x0400; see Power_Management.md for driver code.
- Create the "Enigma Path" SVG animation logic.
- Integrate JTAG programming library for Intel MAX II EPM240T100I5N (×6 Encoder) and EPM570T100I5N (×31 Rotor+Stator) CPLDs.
- Design the Bilingual "Typewriter" UI Theme.
- Finalize the "Time-to-Empty" Battery algorithm.