

FanCTRL
Controls the fan speed using an additional PCB, especially for fans with a 4-pin connector (plus, minus, PWM, tacho)
- Size
- 27.2 × 38.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 26
- Pads
- 66
- Tracks, vias
- 110, 12
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 25 May 2026
- Updated
- 25 May 2026
Overview
FanCTRL is an open-source printed circuit board by Code99it, from the Code99it/FanCTRL repository on GitHub. It is a 2-layer board of 27.2 × 38.6 mm with 20 parts on 26 nets, routed with 110 tracks and 12 vias.
It is built around the AP2112K-3.3 and BSS138. Its parts include 6 resistors, 3 capacitors, 2 ICs, 2 transistors and 2 connectors. It belongs with the STM32 boards of this library.
Main components
2README
README.mdFanCTRL
Controls the fan speed using an additional PCB, especially for fans with a 4-pin connector (plus, minus, PWM, tacho).
Features
- 4-Pin Fan Support: Full control over standard 4-pin cooling fans, utilizing all signals:
- Power:
V+(Plus) - Ground:
GND(Minus) - PWM: Precise speed control via Pulse Width Modulation.
- Tacho: RPM feedback interpretation (Tachometer signal).
- Power:
- Dedicated Hardware: Designed to offload fan management to a custom, additional PCB.
- Efficient Control: Optimized timing and frequency handling for silent and reliable fan operation.
Pinout & Signals
| Pin | Description | Signal Type |
|---|---|---|
| + / V+ | Power Supply | Input (e.g., 12V) |
| - / GND | Ground | Reference |
| PWM | Pulse Width Modulation | Control Input (Target Speed) |
| TACHO | Tachometer / FG | Output (RPM Feedback) |
Hardware Setup
Connect the 4-pin fan connector directly to the designated header on the FanCTRL PCB. Ensure that the logic level of the microcontroller (e.g., 3.3V or 5V) matches the PWM input specifications of your fan or is properly shifted on the PCB.
Getting Started
- Clone the repository:
bash git clone https://github.com/Code99it/FanCTRL.git
Parts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 10k | Resistor_SMD:R_0805_2012Metric | R301, R401 |
| 2 | 2k4 | Resistor_SMD:R_0805_2012Metric | R302, R402 |
| 2 | 5k9 | Resistor_SMD:R_0805_2012Metric | R303, R403 |
| 2 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q301, Q401 |
| 2 | Conn_01x04_Pin | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J201, J202 |
| 1 | 100n | Capacitor_SMD:C_0805_2012Metric | C201 |
| 1 | 10µ 6V3 | Capacitor_SMD:CP_Elec_5x4.5 | C203 |
| 1 | 4,7µ 6V3 | Capacitor_SMD:CP_Elec_4x3.9 | C202 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U201 |
| 1 | SPI_GND | TestPoint:TestPoint_Pad_1.5x1.5mm | H203 |
| 1 | SPI_NRST | TestPoint:TestPoint_Pad_1.5x1.5mm | H204 |
| 1 | SPI_SWCLK | TestPoint:TestPoint_Pad_1.5x1.5mm | H201 |
| 1 | SPI_SWDIO | TestPoint:TestPoint_Pad_1.5x1.5mm | H205 |
| 1 | SPI_VCC | TestPoint:TestPoint_Pad_1.5x1.5mm | H202 |
| 1 | STM32G030F6Px | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U202 |
Questions
How big is the FanCTRL PCB?
It measures 27.2 × 38.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the FanCTRL use?
20 parts, built around the AP2112K-3.3 and BSS138. 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 FanCTRL KiCad files?
From the Code99it/FanCTRL repository on GitHub, at the commit this page was made from: the board is KiCad/FanCTRL.kicad_pcb and its schematic KiCad/FanCTRL.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the FanCTRL design in my own project?
Its repository states no licence, so its author keeps all rights: ask Code99it before reusing the design.
Similar boards
- 4 layers74 × 104 mm

- 4 layers70 × 54 mm

- 2 layers390 × 120.2 mm

- 2 layers312.5 × 122.3 mm

- 2 layers89 × 124 mm

Hub20
joshajohnson/Hub20
Hub20 is a numpad with a bunch of features you never knew you needed.
183 parts68 - 2 layers220 × 70 mm

Bemini rp
ianklug/bemini
A miniature mechanical keyboard controller with a rotary encoder for staggered-key rhythm games.
70 parts55CC-BY-SA-4.0 - 2 layers27 × 40.3 mm

Panasonic aircon
jnicolson/panasonic_ac_wifi
Module to interface with the CN-CNT port on Panasonic airconditioner units
26 parts28CC-BY-4.0 - 2 layers196.7 × 31.5 mm
