main
matt Add MTA-156 input revision and document enclosure and cable-fit limits 16485bb
{
  "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"
  }
}