main
Download ZIP Propose a change
Name Last commit message Last updated
assets Use decoder-independent CAD assembly in sandboxed interactive preview · matt
docs Publish 0.2.0 · matt
downloads Publish 0.2.0 · matt
models Publish 0.1.3 · matt
pcm Revision 1: the chosen parts, the component table and the KiCad PCM repository (adom-aiflow) · matt
revisions Add MTA-156 input revision and document enclosure and cable-fit limits · matt
screenshots Set hero asset · matt
source Publish 0.2.0 · matt
steps adom-aiflow: step evidence (finish) · matt
videos Rev A development 0.1.1: native KiCad 10 validation, probe-side checks and silent design review · matt
chapters.json Publish 0.2.0 · matt
fan-controller-tour.mp4 Stage reviewed current puck media and development source download · matt
fan-controller-tour.video.json Publish 0.2.0 · matt
fan-controller-tour.vtt Publish 0.2.0 · matt
narration.json Publish 0.2.0 · matt
package.json Publish 0.2.0 · matt
page.json Set visibility: public · matt
readme.html Use decoder-independent CAD assembly in sandboxed interactive preview · matt
README.md Bind current development overview and both README sections · matt
timeline.json Publish 0.2.0 · matt

Narrated tour and engineering details: version 0.2.0

Two fans. Wired control. A display you can read at a glance. An ESPHome controller designed around a serviceable printed puck and custom wire harnesses.

Download the narrated tour / Engineering overview / Exact file inventory

Inside the puck

The cap has a 4 mm thread pitch. The bezel fastens from below; the exploded view illustrates construction rather than a validated service procedure. Light-pipe illumination is illustrative, not an optical simulation.

Exploded assembly LED-to-light-pipe relationship

Designed for local control and connected monitoring

Function Implementation
Controller ESP32-S3-MINI-1U-N8, 8 MB flash, external antenna connection
Ethernet W5500, 10/100; no PoE
Fans Two independent 12 V fan channels; separate 25 kHz PWM commands and tachometer inputs
Display LP5036, 33 of 36 outputs driving 11 RGB LEDs: ten speed positions and a status indicator
Temperature Remote and onboard 10 kohm NTC inputs
Expansion Door-switch input and I2C header
Service USB-C programming and logic service power; USB does not power the fans
Mechanical 84 x 52 mm, R3 corners, four copper layers, centered in the puck

The firmware prioritizes Ethernet with Wi-Fi fallback. MTA-100 connections allow custom harness lengths. Connector and component markings identify the actual design; markings added to CAD component bodies are descriptive and do not promise matching manufacturer printing.

Control electronics Harness connections Power and service interfaces

Development status

Routed development snapshot - not released for manufacture. PCB commit b675a28940872728bbb461d4e69cf0d48f8b5c1c. Recorded native checks report ERC 0 and 0 unconnected items, with two approved ganged-header courtyard overlaps and 42 retained dangling-copper warnings. Physical electrical, thermal, USB, signal and assembled-puck qualification remain open. No prototype performance is claimed.

The onboard NTC is influenced by PCB heating. Improved cabinet-air sensing is under evaluation. ESP32 internal temperature is a deferred diagnostic, not enabled in this firmware snapshot and not an ambient thermostat input.

Downloads

Current development source package includes the exact selected board sources, required local libraries, placeholder-only firmware secrets example and matching enclosure-interface exports. The manifest records file hashes and both electrical and mechanical source revisions. No credentials, surrounding cabinet repository or manufacturing release is included. Use source/fan-controller/fan-controller.kicad_pro in KiCad 10. External standard library models may require a normal KiCad library installation.

Published with Matt's approval as a public development preview. This page can be updated in place; version 0.2.0 preserves this snapshot. Older folders and releases are historical designs, not the current board. Third-party library notices and provenance accompany the source; making the page public does not change their licenses. See source attribution.