
Smart PWM Fan Controller V1
A custom ESP32-based PWM fan controller designed for Home Assistant integration.
Tools/Technologies:
KiCad • ESP32 • ESPHome • PWM Control • PCB Design • SMD Components • Home Assistant • DC Fan Control • IoT / Embedded Systems
Date: 2025 (approx.)
Overview
This project is a custom-designed smart PWM fan controller built around an ESP32 microcontroller and integrated directly into Home Assistant through ESPHome. The PCB provides a reliable way to control brushless DC fans using hardware PWM while monitoring system parameters through ESP32 peripherals.
The board was fully designed from scratch in KiCad, including schematic capture, PCB layout, silkscreen artwork, and manufacturing preparation.
The goal was to create a compact, modern, and aesthetically unique controller for automated ventilation, cooling systems, and general airflow management within a smart home environment.
My Role
- Fully designed the complete PCB in KiCad, including schematic, footprint selection, routing, ground strategy, and silkscreen art.
- Integrated an ESP32 module for wireless connectivity and programmable PWM output.
- Created custom silkscreen artwork and a branding layout for the board.
- Configured ESPHome firmware to expose PWM control, sensor inputs, and status reporting to Home Assistant.
- Validated electrical continuity, connector alignment, and physical fit after fabrication.
Technical Challenges
- Balancing component placement to maintain clear routing channels while keeping the PCB compact.
- Ensuring clean PWM output by maintaining proper ground return paths and separating noisy traces from ESP32 RF sections.
- Designing a universal fan header footprint that supports common 3-pin and 4-pin PC fan connectors.
- Tuning PWM frequency and duty-cycle resolution in ESPHome to avoid fan whine, dead zones, or jitter at lower speeds.
4) Key Design Decisions
- ESP32 chosen for built-in WiFi, high-resolution PWM, and perfect compatibility with ESPHome/Home Assistant.
- 4-layer-like ground strategy on a 2-layer board, using a large copper pour to reduce noise on PWM switching signals.
- Modular headers (J3/J4) added for expandability—allowing future modes such as temperature sensing or multiple fan banks.
- Custom silkscreen artwork added to visually distinguish the board and make it easier to orient during assembly.
- Selected SMD resistor footprints and compact layout to reduce overall board size and fabrication cost.
Results / Outcomes
- Produced a fully manufacturable PCB that powered up cleanly and allowed stable PWM fan control.
- Achieved seamless Home Assistant integration using ESPHome, enabling fan speed automation tied to temperature, humidity, or schedules.
- The final board layout was clean, easy to assemble, and visually distinctive thanks to custom silkscreen design.
- Gained deeper experience with KiCad PCB layout, ESP32 PWM tuning, and IoT device integration.