

PWM+fan stop
In a small form factor, an extension of the fan control is implemented.
- Size
- 24.6 × 11.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 24
- Nets
- 13
- Pads
- 53
- Tracks, vias
- 153, 33
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 31 Aug 2026
- Updated
- 5 Sep 2026
Overview
PWM+fan stop is an open-source printed circuit board by yvoronkin, from the yvoronkin/FANSTOP repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 24.6 × 11.1 mm with 24 parts on 13 nets, routed with 153 tracks and 33 vias.
It is built around the ATTINY10-TSH, L78L05ABUTR and AO3413. Its parts include 6 resistors, 3 capacitors, 2 ICs, 2 diodes and 2 transistors. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
3ATTINY10-TSH
SOT-23-6-40℃~+85℃ 1.8V~5.5V 12MHz 1KB 32Byte 4 8 Bit 8bit AVR Built-in FLASH Power-on reset (POR)、Undervoltage detection (BOR/LVD/LVR/LVI)、Watchdog reset、External pin reset (NRST)、Built-in general-purpose timer、Programmable watchdog、Touch function SOT-23-6 Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)L78L05ABUTR
SOT-89-3-40℃~+125℃@(Tj) 1 1.7V@(40mA) 100mA 30V 40uV 49dB@(120Hz) 5V 6mA Fixed Over Temperature Protection、Short Circuit Protection Positive SOT-89-3 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSSTMicroelectronicsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsAO3413
SOT-23-55℃~+150℃ 1 P-Channel 1.4W 11nC@4.5V 130mΩ@1.8V 20V 3A 400mV 70pF 745pF SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETs
README
README.mdFANSTOP
An inline hardware adapter that adds true fan stop to 4-wire PWM fans and supply-PWM control to 2- and 3-wire fans.
Some fans keep spinning even when their controller outputs 0% duty cycle. Other fans expose only power and tachometer pins, so they cannot use the standard 4-wire PWM control input at all.
FANSTOP sits between a 12V fan controller and a fan. An ATtiny10 measures the incoming PWM signal and controls a high-side MOSFET in one of two selectable operating modes.
[!CAUTION] FANSTOP can remove power from a cooling fan. Validate the module, firmware thresholds, fan startup behavior, and thermal protection before using it on equipment that can be damaged by loss of cooling.
Features
- True power-off for fans that do not stop at 0% PWM
- Supply-PWM speed control for 2- and 3-wire 12V fans
- Hardware pass-through for PWM and tachometer signals
- Approximately 300ms low-duty debounce to reject short glitches.
- 5-10% hysteresis to prevent repeated switching around the stop threshold
- Static LOW and static HIGH input detection
- Compact two-layer PCB: approximately 24.5 x 11.15 mm
- ATtiny10 firmware written in AVR assembly
- Exposed TPI programming pads compatible with pogo pins or a 2.54 mm 2x3-style fixture
- KiCad 10 hardware sources and FreeCAD/STL programming-fixture files included.
Operating modes
Mode is sampled at startup using solder jumper JP1
| JP1 | Mode | Output behavior |
|---|---|---|
| Open | 4-wire fan-stop | PWM and tachometer pass through. The module switches the fan's 12 V supply only when fan-stop is requested. |
| Bridged | 2/3-wire supply PWM | Incomming PWM duty is reproduced by switching the fan's 12V supply at a lower frequency. Tachometer passes through. |
4-wire fan-stop mode
This is the default mode.
| Input state | Result |
|---|---|
| Duty cycle below 5% for approximately 300 ms | Fan supply OFF |
| Duty cycle from 5% through 10 % | Keep the previous ON/OFF state |
| Duty cycle abowe 10% | Fan supply ON |
| Static LOW | Treated as a stop request after the debounce interval |
| Static HIGH | Fan supply ON |
The firmware accepts PWM periods from 240 to 500 timer ticks. At the 8 MHz MCU clock this corresponds to approximately 16-33.3 kHz, covering the nominal 25 kHz 4-wire PC-fan control signal.
2/3-wire supply-PWM mode
Bridge JP1 before powering the board. FANSTOP measures the incoming duty cycle and generates power PWM through the high-side MOSFET.
The output timing is derived from the measured input:
output frequency = input frequency / 100
For a nominal 25 kHz input, the fan supply is therefore switched at approximately 250 Hz. The tachometer line remains connected directly between input and output.
Because the entire fan supply is switched, fan compatibility, acoustic noise, tathometer quality, and reliable startup at low duty cycles depends on the particular fan.
Connections
Both fan connectors use the standard 4-wire PC-fan pin order:
| Pin | Signal | Notes |
|---|---|---|
| 1 | GND | Common ground |
| 2 | +12V | Fan supply; switched on the output side |
| 3 | Tach | Passed through directly |
| 4 | PWM | Control input and hardware pass-through |
Connect the controller or motherboard to PWM_IN (J1) and the fan to PWM_OUT (J2). Do not reverse the board direction or connector polarity.
The PWM input is pulled up to 5V on the module and is intended for the usual open-collector/open-drain fan-control interface. Verify compatibility before connecting a push-pull controller.
Electrical notes
- Nominal supply: 12V DC
- Logical supply 5V (generated by an
L78L05regulator) - Controller: ATtiny10
- High-side switch:
A03413P-channel MOSFET driven through a2N7002 - The power path uses 0.9 mm traces and was laid out with a 2A design target
- Tachometer and PWM signals are not galvanically isolated
- The board is not intended for 24 V fans; the fitted protection network is designed around a 12 V system
The 2 A figure is a layout target, not a certified continuous-current rating. The practical limit also depends on connectors, assembly quality, ambient temperature, MOSFET dissipation, and fan startup current.
Building the firmware
The firmware is a PlatformIO project and uses a pinned AVR toolchain that contains ATtiny10 support
git clone https://github.com/yvoronkin/FANSTOP.git
cd FANSTOP/firmware
pio runThe resulting firmware image is placed under:
.pio/build/attiny10/firmware.hex
Programming
ATtiny10 uses the TPI programming interface. The board exposes five programming pads:
| Pad | Signal |
|---|---|
| GND | Ground |
| +5V | Programming supply |
| DAT | TPI data |
| RST | Reset |
| CLK | TPI clock |
The tools/ directory contains a printable programming gixture in FreeCAD and STL formats.
Project status
FANSTOP is an actively developed hardware project. The firmware builds with PlatformIO, but fan controllers and fans vary considerably; treat electrical, thermal, acoustic, and tachometer compatibility as something to validate for each installation.
Contributing
Bug reports, oscilloscope captures, fan compatibility results, firmware improvements, and hardware revisions are welcome. When reporting a control issue, include the fan model, input PWM frequency and duty cycle, selected mode, and measured output behavior.
License
- Hardware design files: CERN Open Hardware Licence Version 2 — Strongly Reciprocal
- Firmware: GNU General Public License Version 2](./firmware/LICENSE)
Parts
24| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 1uF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | GND | TestPoint:TestPoint_Pad_D1.5mm | TP1, TP6 |
| 1 | +5V | TestPoint:TestPoint_Pad_D1.5mm | TP2 |
| 1 | 100k | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | 100nF | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | 2.2k | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | AO3413 | Package_TO_SOT_SMD:SOT-23-3 | Q1 |
| 1 | ATtiny10-TS | Package_TO_SOT_SMD:SOT-23-6 | U2 |
| 1 | BZX384-B6V2.115 | Diode_SMD:D_SOD-323 | D2 |
| 1 | CLK | TestPoint:TestPoint_Pad_D1.5mm | TP5 |
| 1 | CONF1 | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP1 |
| 1 | DAT | TestPoint:TestPoint_Pad_D1.5mm | TP3 |
| 1 | L78L05ABUTR | Package_TO_SOT_SMD:SOT-89-3 | U1 |
| 1 | PWM_IN | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J1 |
| 1 | PWM_OUT | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J2 |
| 1 | RST | TestPoint:TestPoint_Pad_D1.5mm | TP4 |
| 1 | TVS VRWM15 | Diode_SMD:D_SOD-323 | D1 |
Questions
How big is the PWM+fan stop PCB?
It measures 24.6 × 11.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the PWM+fan stop use?
24 parts, built around the ATTINY10-TSH, L78L05ABUTR and AO3413. 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 PWM+fan stop KiCad files?
From the yvoronkin/FANSTOP repository on GitHub, at the commit this page was made from: the board is hardware/PWM+fan_stop.kicad_pcb and its schematic hardware/PWM+fan_stop.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the PWM+fan stop design in my own project?
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers104.1 × 54.6 mm

- 2 layers72.4 × 78.7 mm

AudioInterface
Diabltica/AudioInterface
An hardware audio interface featuring an ouput selector and an amplifier powered by usb C
91 parts - 2 layers103 × 54 mm

- 2 layers40.1 × 54.3 mm

- 2 layers56 × 44 mm

Cphp82001-pcb
calcpsu/cphp82001
CalcPack replacement for HP 82001, suits HP35/45/55/65/67 calculators
30 parts4 - 2 layers100 × 100 mm

- 2 layers51.4 × 43 mm

- 2 layers
