board
Network cabinet fan controller
Public Unreviewedby matt
Two independently controlled 12 V fans, Ethernet and Wi-Fi, and an RGB speed display in a custom printed puck. Routed development preview, not approved for manufacture.
main
matt
Add MTA-156 input revision and document enclosure and cable-fit limits
16485bb
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
{
"name": "fan-controller",
"prompt": {
"utc": "2026-10-23T15:30:09Z",
"timestamp_basis": "First recorded clock reading for this project; the original request predates this and its timestamp is unavailable. Does not measure complete prompt-to-design time.",
"text": "Design a PCB for the network cabinet fan controller, inside the red-circled round enclosure between the two fans."
},
"brief": {
"kind": "conversation-and-existing-cad",
"quotes": [
"We need to design a PCB for the fan controller",
"Yes, the round enclosure between the fans is where we'll mount the PCB.",
"The red circled enclosure can be called fan-controller"
],
"source": "D:\\_Projects\\_3d-design\\sciops-network-cabinet",
"geometryAuthority": "cabinet-spec.scad and parts/fan-controller-puck.scad",
"assembly": "assemblies/assembly.cabinet.scad"
},
"inputs": [
{
"name": "VIN",
"nominal_V": 12,
"source": "cabinet-spec.scad controller-puck requirements",
"range_V": null
}
],
"outputs": [
{
"name": "FAN1",
"interface": "4-pin PWM + tachometer",
"model": "ARCTIC P14 Max",
"maximum_current_A": null,
"model_source": "User clarification: ARCTIC P14 Max is the fan model; applied to both fan positions.",
"nominal_voltage_V": 12,
"manufacturer_listed_current_A": 0.35,
"design_continuous_allowance_A": 1,
"current_note": "Manufacturer listed current is not a startup or stall bound."
},
{
"name": "FAN2",
"interface": "4-pin PWM + tachometer",
"model": "ARCTIC P14 Max",
"maximum_current_A": null,
"model_source": "User clarification: ARCTIC P14 Max is the fan model; applied to both fan positions.",
"nominal_voltage_V": 12,
"manufacturer_listed_current_A": 0.35,
"design_continuous_allowance_A": 1,
"current_note": "Manufacturer listed current is not a startup or stall bound."
}
],
"control": {
"proposed": "ESPHome-compatible microcontroller, independent PWM outputs and RPM inputs, local temperature-based operation, Home Assistant integration",
"assumed": true,
"why": "Existing CAD explicitly anticipates replacing the Owltree controller with an ESPHome board; detailed behavior remains a design proposal.",
"fault_goal": "Full-speed command upon controller reset or sensor failure; behavior must be verified for each selected fan and fault case. Not a claim of protection against loss of fan power."
},
"formFactor": {
"kind": "custom PCB inside existing fan-controller enclosure",
"enclosure_bore_mm": 110,
"overall_height_mm": 26,
"existing_controller_width_mm": 44.5,
"existing_controller_corner_radius_mm": 6.5,
"existing_controller_height_mm": 17.43,
"existing_controller_center_mm": [
0,
15
],
"proposed_pcb_width_mm": 44.5,
"proposed_pcb_thickness_mm": 1.6,
"pcb_dimensions_are_provisional": true,
"mounting": "Four M2 clearance holes on a removable carrier; original locating-tab cutout; same original component placement. Full mated connector and printed fit pending.",
"proposed_pcb_length_mm": 78.5
},
"fab": {
"target": "jlcpcb",
"rules": "jlcpcb",
"decision": "User selected JLCPCB: JLC",
"layers": 4,
"layers_assumed": true,
"thickness_mm": 1.6,
"design_copper_oz": 2,
"process_assumed": "Four-layer FR4, 1.6mm nominal, all layers2oz; provisional dielectric0.2/0.92/0.2mm; confirm ordered JLC stackup.",
"outer_copper_oz": 2,
"inner_copper_oz": 2,
"rules_note": "Current four-layer project rules use 0.2 mm clearance and 0.3 mm minimum via drill; confirm finished 2 oz copper and ordered stackup. The initial two-layer candidate is superseded."
},
"sourcing": {
"profile": "jlcpcb"
},
"deliverables": [
"requirements and mechanical fit review",
"schematic",
"PCB",
"BOM",
"3D fit review",
"design checks",
"fabrication exports"
],
"openDecisions": [
"input supply operating range and available current",
"sensor location and desired temperature curve",
"final PCB retention and antenna location"
],
"assumptions": [
"Keep existing cabinet mechanical sources unchanged during electronic design.",
"Do not order or manufacture hardware.",
"No mains voltage on this controller PCB."
],
"fan_model_confirmation": {
"user_statement": "ARCTIC P14 Max is the fan model",
"scope_interpretation": "Both fan positions; supersedes the earlier Noctua family entry inherited from CAD.",
"source": "https://www.arctic.de/media/8a/18/01/1710507321/Spec_Sheet_P14_Max_EN.pdf"
},
"powerConnector": {
"family": "TE MTA-156",
"positions": 2,
"confirmed_by_user": "yes, MTA-156",
"pcb_header": "640445-2",
"wire_plug": "pending selection for actual wire gauge",
"status": "revision implementation; mated fit pending"
}
}