Skip to the content
2 layers100 × 79.7 mmFanController, the printed circuit board in 3D

ESP32 10 Channel PWM Fan Controller

Size
100 × 79.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
164
Nets
74
Pads
422
Tracks, vias
748, 68
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
23 Apr 2023
Updated
14 Oct 2025

Overview

FanController is an open-source printed circuit board by Matesxs, from the Matesxs/ESP32FanController repository on GitHub, published under the MIT licence. It is a 2-layer board of 100 × 79.7 mm with 164 parts on 74 nets, routed with 748 tracks and 68 vias.

It is built around the BC847B,215-JSM, BSS138 and S3P-VH(LF)(SN), with the M5082RK-04P and BZT52C3V3 among its other parts. Its parts include 72 capacitors, 45 resistors, 28 ICs, 10 diodes and 2 connectors. It belongs with the lEDs and displays boards and the ESP32 boards of this library.

Main components

5

README

README.md

ESP32 PWM Fan Controller

Image of final board

Description

This project is still in development so lot of things can be untested or not working at all!

text
ESP32 10 channel pwm fan controller with control over tcp sockets and serial, 
temperature readout from onewire temperature probes (unlimited count, board have 2 ports), 
fan control routine (automatic - 20 points temperature curves with option of multiple 
temperature inputs and one external temperature value set by control interfaces, manual) 
for 10 separated channels with rpm readout from tacho sensor and led strip control routine with 
predefined effects (some of them use the temperature probes to be able to display temperature).

Features

  • 10 Channels for PWM fans
    • Automatic or manual fan speed control
    • Automatic control with 20 point curves with option for multi source temperature input for each fan
  • 2 Channels for one wire temperature probes
  • 2 Channels for RGB adressable led strips
    • Predefined effects and some even reacts to temperature
    • Support for both 5V and 12V warriants
  • Integration for Argus Monitor
  • Power by molex or barrel jack (selectable by jumper when stepdown is present)

Todo

  • Publish Schematics for board

References

ESP32 Docs
PlatformIO
NeoPixelBus
Argus Monitor
Argus Monitor Controller example
DallasTemperature
ArduinoJson

Parts

164
QtyValueFootprintReferences
7210uCapacitor_SMD:C_0805_2012MetricC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +56
313k3Resistor_SMD:R_0603_1608MetricR2, R10, R12, R13, R14, R16, R17, R18, R19, R20, R22, R24, R25, R26, R27, R28 +15
102k2Resistor_SMD:R_1206_3216MetricR1, R7, R11, R15, R21, R23, R33, R35, R37, R39
10BC847B,2153DS:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-TLU2, U5, U7, U9, U11, U13, U15, U17, U19, U21
10BZT52C3V33DS:SOD-123_L2.8-W1.8-LS3.7-RDD1, D2, D3, D4, D5, D6, D7, D8, D9, D10
10Fan1PwrConsMon:CONN-TH_47053-1000U1, U4, U6, U8, U10, U12, U14, U16, U18, U20
40603WAF8201T5EReg_v2.1:R0603R42, R43, R44, R45
4MountingHoleMountingHole:MountingHole_3.2mm_M3_DIN965H1, H2, H3, H4
2BSS138Reg_v2.1:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BRU22, U23
2Jumper_3_OpenConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1, JP2
2S3P-VH(LF)(SN)Reg_v2.1:CONN-TH_3P-P3.96_S3P-VH-LF-SNU24, U29
15V selectorConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP3
1DC-005_5_5-2_0MMReg_v2:DC-IN-TH_DC-5520-1U28
1ES32-DevKitCLibrary:MODULE_ESP32-DEVKITC-32DU3
1M5082RK-04PReg_v2.1:CONN-TH_M5082RK-04PU26
1STPDWN3V3Library:ESP32_STPDWN5VU25
1TempSensor1Connector_Phoenix_MC:PhoenixContact_MC_1,5_3-G-3.5_1x03_P3.50mm_HorizontalJ1
1TempSensor2Connector_Phoenix_MC:PhoenixContact_MC_1,5_3-G-3.5_1x03_P3.50mm_HorizontalJ2

Similar boards

  • 2 layers24 × 30 mmTactile Power Switch, the printed circuit board in 3D

    Tactile Power Switch

    Dima-Shlenkevitch/Tactile-On-Off-Power-Switch

    This project is about replacing a mechanical switch with tactile push button and latch circuit

    16 parts1MIT
  • 2 layers100 × 100 mmCOPIE 0, the printed circuit board in 3D

    COPIE 0

    AssaadMH/shadow-4wd-motor-shield-pcb

    The 24-signal interface board that replaces SHADOW's perfboard wiring — and the two pin conflicts that only appeared on re-checking the spec.

    154 parts2MIT
  • 2 layers114.9 × 76 mmProtected power entry, the printed circuit board in 3D

    Protected power entry

    absmach/synth

    Open-source circuit compiler for engineers and AI agents

    84 parts29Apache-2.0
  • 2 layers41 × 87 mmDif pressure meter, the printed circuit board in 3D

    Dif pressure meter

    ardiloot/dif-pressure-meter

    ESP32 based differential pressure (and air flow) meter. Handheld, battery powered DIY device for measuring small pressure differences (Sensirion SDP810-500Pa).

    68 parts23MIT
  • 2 layers64 × 39 mmDAP405, the printed circuit board in 3D

    DAP405

    SushiBits/DAP405

    USB High-Speed CMSIS-DAP debugger based on STM32F405

    50 parts3
  • 4 layers66 × 66 mmOpenTurn, the printed circuit board in 3D

    OpenTurn

    OpenTurn/OpenTurn_PSoC

    OpenTurn is a closed loop servo controller for BLDCs developed for robotics application.

    165 parts1
  • 2 layers110 × 85 mmAvtech agv carrier, the printed circuit board in 3D

    Avtech agv carrier

    eerdemgundogdu/avtech-agv-main

    Software and carrier PCB design for a line-following forklift AGV built by CU AVTECH for the Sanayide Robotik Uygulamalar 2026 competition.

    84 partsMIT
  • 2 layers73.3 × 58.2 mmPower electronics converter, the printed circuit board in 3D

    Power electronics converter

    JLJ-V14/Synchronous-Buck-converter

    A synchronous buck converter project built from the ground up to practice power stage design, feedback control implementation, and real-time embedded firmware development.

    88 parts

Questions

How big is the FanController PCB?

It measures 100 × 79.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the FanController use?

164 parts, built around the BC847B,215-JSM, BSS138, S3P-VH(LF)(SN) and M5082RK-04P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the FanController KiCad files?

From the Matesxs/ESP32FanController repository on GitHub, at the commit this page was made from: the board is Schematics/FanController.kicad_pcb and its schematic Schematics/DI_Tach.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the FanController design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).