main
matt Publish 0.2.0 10573f9
<!doctype html><meta charset="utf-8"><title>Fan controller engineering overview</title><style>body{font:12px Arial;color:#172238;margin:36px}h1{font-size:30px}h2{margin-top:26px;color:#2256a0}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #ccd6e4;padding:9px;text-align:left}p,li{line-height:1.6}.status{padding:14px;background:#fff0d2}img{width:100%;max-height:240px;object-fit:contain}.break{page-break-before:always}footer{font-size:10px;color:#64748b}</style>
<h1>Network cabinet fan controller</h1><p>Engineering overview · 2 November 2026 · PCB b675a28</p><p class="status"><b>DEVELOPMENT SNAPSHOT — NOT RELEASED FOR MANUFACTURE.</b><br>These are design capabilities and recorded CAD checks, not prototype measurements.</p>
<h2>Control, display and connectivity</h2><table><tr><th>Function</th><th>Design implementation</th></tr><tr><td>Main controller</td><td>ESP32-S3-MINI-1U-N8, 8 MB flash, external antenna connector</td></tr><tr><td>Ethernet</td><td>W5500 10/100 interface; no Power over Ethernet</td></tr><tr><td>Fan control</td><td>Two independent 25 kHz PWM commands; two separate tachometer inputs</td></tr><tr><td>Display</td><td>LP5036, 36 outputs; 33 drive 11 RGB packages (10 speed positions + status)</td></tr><tr><td>Temperature</td><td>Onboard and remote 10 kΩ NTC inputs; no DS18B20 interface in this revision</td></tr><tr><td>Additional interfaces</td><td>Door-switch input, I²C expansion, local buttons, USB-C programming</td></tr><tr><td>Power</td><td>12 V fans; USB-C service power for logic only</td></tr></table>
<h2>Harness and operating intent</h2><p>MTA-100 headers support custom harness lengths. Fan plugs are replaced with the selected IDC housings; follow the committed schematic and actual pin labels. Cable gauge and housing wire rating must match. Fan speed commands and RPM feedback are separate signals.</p><p>The firmware prioritizes Ethernet with Wi-Fi fallback. Local temperature-based fan control runs on the controller. USB service operation does not power the 12 V fans. No external GPIO expander is fitted; the LP5036 is the dedicated LED driver.</p>
<div class="break"></div><h2>Mechanical integration</h2><table><tr><td>Board</td><td>84 × 52 mm, R3 corners, four copper layers, centered [0,0], 0° rotation</td></tr><tr><td>Installed top copper</td><td>7.660 mm above puck datum; native export top 1.519 mm, translation +6.141 mm</td></tr><tr><td>Mounting centers</td><td>See exact hole coordinates and sizes in export/fan-controller-parts.json</td></tr><tr><td>Light pipes</td><td>Bivar PLP1-500-F; source body length 12.7 mm; 11 positions</td></tr><tr><td>Cap motion</td><td>4 mm pitch printed thread. Animation follows pitch before lifting clear.</td></tr></table><p>The bezel uses fasteners from below. Exploded views illustrate the parts; they are not a validated disassembly instruction. LED colors and glow are illustrative, not photometric results. CAD component markings identify parts but do not promise identical manufacturer printing.</p>
<h2>Checks and remaining qualification</h2><p>Recorded native checks: ERC 0; 0 unconnected items; 2 approved ganged-header courtyard overlaps; 36 dangling-track and 6 dangling-via warnings retained. Same-commit board and enclosure-interface exports identify the revision above.</p><p>Physical electrical, thermal, USB and signal qualification remain open. The onboard NTC is influenced by PCB heating and is not demonstrated to measure cabinet air accurately. A better air-sensing arrangement is under evaluation. ESP32 internal temperature is a deferred diagnostic, not enabled firmware and not an ambient thermostat sensor.</p><p>The earlier +65 °C thermal rise used a 1.65 W stress assumption for the ESP32. It is not expected operating temperature or measured junction temperature and is not presented as product performance.</p><h2>Source and sharing</h2><p>Read-only mechanical sources: cabinet-spec.scad and parts/fan-controller-puck.scad. Exact hashes and revision are in the download manifest. This public development snapshot changes no electronics, firmware or plastic. Third-party attribution and original notices accompany the source package.</p><footer>PCB SHA-256: 2caa34c2191b0a69da5b95f9ae950c1d765f0ac0d07f76087902a8ade9167c17</footer>