Electronics Power Budgets - thepinkmile/Enigma-NG GitHub Wiki
Enigma-NG Power Budgets
Status: Draft Version: v1.0.0 Associated Hardware Revision: Rev A Last Updated: 2026-04-20
Design Constraint Hierarchy
- TPS75733KTTRG3 LDO (Power Module U7): 3.0A maximum output — hard limit, component not to be changed.
- PM dock
J13V3_ENIG allocation:2 × 3V3_ENIGcontacts at 6A/contact — comfortably above the LDO limit. - Stator dock
J53V3_ENIG allocation:4 × 3V3_ENIGlarge blades plus additional guarded-return capacity — connector is not the bottleneck, the LDO is. - Available to Stator + Rotor stack: LDO output minus Controller-local consumption (CM5 GPIO reference, pull-ups, and local housekeeping) ≈ 2.95A (Controller overhead ≤ 50mA).
3V3_ENIG Load Analysis
Per-Device Current (Intel MAX II EPM240T100I5N [Encoder ×6] / EPM570T100I5N [Rotor ×30 + Stator] @ 3.3V)
| Operating condition | ICC (core) | Source |
|---|---|---|
| Static (no switching) | ~5 mA | Intel MAX II Datasheet ICC_STATIC |
| Typical cipher logic (50 MHz toggle) | ~25 mA | Intel MAX II Power Estimator (50% toggle, 50% resource use) |
| Worst-case (100 MHz, 80% resource use) | ~80 mA | MAX II Datasheet ICC_DYNAMIC worst case |
Design value used: 50 mA per CPLD (conservative typical — accounts for VHDL cipher switching without being an unachievable worst-case peak).
Per-Device Current (TI FDC2114RGHR Capacitive Sensor IC @ 3.3V)
| Condition | ICC |
|---|---|
| Active | 2.1 mA typ |
3V3_ENIG Allocation Table
| Consumer | Count | Per-unit (mA) | Total (mA) | Notes |
|---|---|---|---|---|
| Stator CPLD (U1, EPM570T100I5N) | 1 | 50 | 50 | JTAG forwarding + ENC signal routing |
| HID Encoder CPLDs (EPM240 ×2) | 2 | 50 | 100 | Keyboard decode + lightboard CPLD |
| Plugboard Encoder A CPLDs (EPM240 ×2) | 2 | 50 | 100 | Stecker map CPLD |
| Plugboard Encoder B CPLDs (EPM240 ×2) | 2 | 50 | 100 | Stecker map CPLD |
| FT232H VCCIO (JTAG Daughterboard) | 1 | 10 | 10 | VCCIO domain only; VCC (100 mA) is 5V_USB-sourced — see 5V_MAIN table |
| Rotor CPLDs (EPM570T100I5N ×30) | 30 | 50 | 1500 | All rotors cipher-active simultaneously |
| Rotor FDC2114RGHR capacitive sensor ICs (U2/U3 or U2/U4, 2 ICs per rotor, 60 ICs total) | 60 | 2.1 | 126 | Continuous position polling; two ICs per rotor add 4.2 mA to the 50 mA CPLD budget, giving 54.2 mA typ / 55 mA budget per rotor |
| INA219 current monitor (Stator) | 1 | 1 | 1 | Negligible |
| INA219 current monitor (Power Module) | 1 | 1 | 1 | Negligible |
| Stator GPIO expanders (MCP23017 ×3) | 3 | 10 | 30 | U_EXP1, U_EXP2, U_EXP4 on shared I2C-1; monitor / control overhead only |
| Stator servo PWM driver (PCA9685 ×1) | 1 | 5 | 5 | U_EXP3 @ 0x60; low-duty housekeeping load |
| PM-local GPIO expander (PCA9534A ×1) | 1 | 5 | 5 | U16 @ 0x3F; PM status + SW1 runtime RGB handoff control |
| Settings Board GPIO expanders (MCP23017 ×3) | 3 | 25 | 75 | U_EXP_SW_IN, U_LED_B1, U_LED_B2 on the shared Stator I2C-1 bus |
| Extension Buffer ICs (SN74LVC2G125DCUR) | 5 | 2 | 10 | TCK/TMS re-drive for each 5-rotor group; one per Extension board; negligible load |
| Controller-local housekeeping | — | — | 50 | Controller overhead subtracted before Stator distribution |
| Typical total | 2,163 mA | |||
| Rounded budget | ≤ 2.17 A |
Headroom vs LDO Limit
| Limit | Value | Margin |
|---|---|---|
| LDO hard limit | 3.00 A | — |
| Typical worst-case load | 2.17 A | +0.83 A (28%) |
| Controller↔Stator dock capacity | Above 3.00 A | Not the constraint |
✅ Conclusion: The 3A TPS75733KTTRG3 LDO provides ~28% headroom above the full downstream worst-case typical load. No LDO upgrade is required for the current 30-rotor design. Telemetry note: The Stator INA219 / shunt path still measures the rotor-stack distribution branch at about 2.05 A typical. The extra 75 mA above that figure is the Settings Board's local logic load on the shared
3V3_ENIGrail.
3V3_ENIG Conflict Resolution
STA-05 / STA-06: Shunt resistor and power figure reconciliation
| Document | Old figure | Resolved value | Action |
|---|---|---|---|
| Stator §2 "5A peak" | 5.0 A | 2.05 A worst-case typical | ✅ Complete — Stator §2 updated to 2.05A worst-case typical; 5A figure retired |
| Controller↔Stator dock capacity | 5.5 A | Not the bottleneck — hybrid Molex dock remains above the 3.0 A LDO limit | ✅ Complete — Samtec Link-Beta constraint retired by DEC-038 |
| Rotor ×30 claim "4.5A" | 4.5 A | 1.65 A (30 × 55 mA budget; 1.63 A typ) | ✅ Complete — Rotor DR-ROT-06 and §3.1 now use the 54.2 mA typical / 55 mA budget figure; 150 mA figure retired |
| Shunt resistor | Stator: 20 mΩ, Controller: 10 mΩ | 10 mΩ CSS2H (Stator R1 = CSS2H-2512R-R010ELF; Controller has no shunt) | ✅ Complete — Stator R1 updated to CSS2H-2512R-R010ELF (10mΩ, 2512 Kelvin) |
INA219 shunt selection rationale (10 mΩ CSS2H-2512R-R010ELF):
- V_drop at 2.05A: 2.05 × 0.010 = 20.5 mV — within INA219 ±80 mV PGA range.
- V_drop at 3.00A max: 3.00 × 0.010 = 30 mV — within ±80 mV range.
- Resolution: with 12-bit ADC at ±80 mV range, LSB = 2×80mV/4096 ≈ 39 µV/LSB → I_LSB = 39µV/0.010Ω ≈ 4 mA current resolution.
- Power dissipation at 2.05A: 2.05² × 0.010 = 42 mW — 2512 Kelvin package (rated ≥0.5W) is adequate with >10× margin.
- Power dissipation at 3.00A max: 3.00² × 0.010 = 90 mW — 2512 Kelvin package ≥0.5W still OK.
- CAL register: 0x0400 (1024) — unchanged. CAL = 0.04096 / (Current_LSB × R_SHUNT) = 0.04096 / (0.004 × 0.010) = 1024 ✓
- Part: CSS2H-2512R-R010ELF (Bourns 2512 Kelvin-sense, 10mΩ ±1%, 5A). Used on PM R12 (LTC3350 RSENSE), PM R23 (INA219 U12, 0x40, 5V_MAIN monitoring) and Stator R1 (INA219 U2, 0x45, rotor-stack monitoring). Total build qty: 3.
5V_MAIN Load Analysis
| Consumer | Current | Notes |
|---|---|---|
| CM5 (Raspberry Pi Compute Module 5) | 5.0 A max | CM5 boot-to-load current profile; 25W at 5V = 5A |
| 3V3_ENIG LDO quiescent (TPS75733KTTRG3) | 2.05 A | Sourced from 5V_MAIN; P_in = 5V × 2.05A = 10.25W |
| Status LEDs, RJ45, misc. | 0.1 A | |
| FT232H VCC (JTAG Daughterboard — via Controller TPS2065C) | 0.1 A | USB HS active; VCC from 5V_USB (TPS2065C-protected 5V_MAIN output) |
| USB 3.0 external devices (TPS2065C rated max) | 1.60 A | System boundary: connected USB device load; TPS2065C hard-limits output |
| HDMI sink device | 0.05 A | System boundary: connected HDMI sink; AP2331W-limited |
| Settings Board indicator rail (via Controller↔Stator dock → J_CFG) | 0.24 A | 12 indicators, one active colour per bank, 240mA max |
| Stator servo rail (via Controller↔Stator dock → J_SERVO) | 0.50 A | Budgeted Stator-side servo allocation |
| Total 5V_MAIN worst case (system boundary) | 9.50 A | |
| LMQ61460-Q1 dual-phase capacity | 12.0 A | 79.2% utilisation (9.50/12.0) ✓ |
Scope note: The 7.40 A board-level budget (internal consumers: CM5 + LDO + misc + FT232H) covers internal consumers only. External device loads (USB 3.0 + HDMI) plus the Stator-fed Settings Board + servo loads add 2.39 A, giving a system total of 9.50 A. Component utilisation figures (e.g. LMQ61460-Q1) are calculated against the 9.50 A system total.
Stator dock 5V margin: The Stator-facing 5V branch uses four large
5V_MAINblades on the dedicated MolexJ4dock, with additional return capacity in the companion ground blades / guards. The current downstream budget remains 0.74 A, so the dock is not the limiting factor for Stator-side 5V peripherals.
Document History
| Date | Change |
|---|---|
| 2026-04-05 | Initial document — created to resolve STA-05/STA-06/ROT-04/PM-05 inconsistencies |