Skip to the content
PCBKitNew board
2 layers30 × 69 mmFan adapter, the printed circuit board in 3D

USB-PD to 12V PWM fan with speed control

Size
30 × 69 mm
Copper layers
2
Thickness
1.6 mm
Parts
43
Nets
42
Pads
136
Tracks, vias
179, 21
Pours
4
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
10 Jan 2025
Updated
10 Jan 2025

Overview

Fan adapter is an open-source printed circuit board by wormyrocks, from the wormyrocks/fan-adapter repository on GitHub. It is a 2-layer board of 30 × 69 mm with 43 parts on 42 nets, routed with 179 tracks and 21 vias.

It is built around the CH32X035G8U6, SY8201ABC and BSS138, with the BZT52C13 among its other parts. Its parts include 15 resistors, 9 diodes, 6 capacitors, 2 ICs and 2 transistors. It belongs with the power and interfaces and adapters boards of this library.

Main components

4

README

README.md

USB-PD fan driver

Screenshot 2025-01-10 140730

This is a completely untested, mostly routed PCB that uses a cheap MCU to trigger a 12V USB-PD sink, to drive a computer box fan. Entire BOM cost should only be $2-$3, no uncommon components. Might have to hand-solder the fan header. You could also use an angled fan header if you wanted.

I started designing this because I was annoyed about not having a desktop fume extractor that I could easily run off a laptop charger. I got busy / lazy and don't actually want to finish it, but if someone wants to adopt it that would be awesome! I have a handful of the CH32X035 preordered on JLCPCB, so the riskiest $10 of the project budget is already a sunk cost.

I designed this with 12V PWM fans in mind, but it occurs to me that if you want an amount of static pressure appropriate for fume extraction the move might be to use a 20V PDO. The SY8201 step-down should be able to support that no problem. Just make sure you don't plug it into a 12V fan then.

It is a Kicad 7 project. You could open and save it in Kicad 8 and force push it if you wanted, I don't care.

Designed to be as cheap as possible, using the CH32X035 MCU.

99% of this design is derived from Stefan Wagner's repos: https://github.com/wagiminator/Development-Boards https://github.com/wagiminator/CH32X035-USB-PD-Adapter

Most firmware development could be done using the inbuilt USB bootloader or the UCPD adapter sample code from Stefan Wagner. More simple example firmwares for CH32X035 live here: CH32V003fun examples

There are LEDs to indicate the fan speed and two touch buttons to make it go faster and slower. Since there's a tach pin, you could do some pretty delightful UI stuff by making the line of LEDs strobe at the exact speed that the rotors are turning, which would make this into a fun desk toy.

I don't do a lot of work with motors and maybe would like someone to take a second look at the fan drive circuit. I followed this white paper. Do I need a flyback diode or something? More decoupling capacitors?

I remember spending a comically long time trying to find an in-stock LCSC alt for the 4-pin 2.54mm fan connector (Molex 470533000), it looks like it might be in "Molex actually defends that patent" territory. Oh well. Buy them on Amazon and solder them yourself, or knock yourself out on Aliexpress. On the plus side, this means there are no through-hole parts, which will knock a day and a couple dollars off the final JLCPCB bill.

Evan Kahn 2025

Parts

43
QtyValueFootprintReferences
8LEDLED_SMD:LED_0402_1005MetricD1, D2, D3, D4, D5, D6, D7, D9
6TEST_PADTestPoint:TestPoint_Pad_1.0x1.0mmTP1, TP2, TP3, TP4, TP5, TP6
55.1KResistor_SMD:R_0402_1005MetricR5, R12, R13, R14, R15
4100KResistor_SMD:R_0402_1005MetricR2, R3, R7, R10
30.1uFCapacitor_SMD:C_0402_1005MetricC1, C4, C6
3100RResistor_SMD:R_0402_1005MetricR1, R4, R11
310uFCapacitor_SMD:C_0805_2012MetricC2, C5, C7
110KResistor_SMD:R_0402_1005MetricR9
122KResistor_SMD:R_0402_1005MetricR6
13401Package_TO_SOT_SMD:SOT-23Q2
14.7uHInductor_SMD:L_1210_3225MetricL1
1470533000Connector:FanPinHeader_1x04_P2.54mm_VerticalJ1
171KResistor_SMD:R_0402_1005MetricR8
1BSS138Package_TO_SOT_SMD:SOT-23Q1
1BZT52C13Diode_SMD:D_SOD-123D8
1CH32X035G8U6footprints:QFN-28_L4.0-W4.0-P0.40-BL-EP2.8U1
1SY8201ABCPackage_TO_SOT_SMD:SOT-23-6U2
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J2

Questions

How big is the Fan adapter PCB?

It measures 30 × 69 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Fan adapter use?

43 parts, built around the CH32X035G8U6, SY8201ABC, BSS138 and BZT52C13. 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 Fan adapter KiCad files?

From the wormyrocks/fan-adapter repository on GitHub, at the commit this page was made from: the board is fan-adapter.kicad_pcb and its schematic fan-adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fan adapter design in my own project?

Its repository states no licence, so its author keeps all rights: ask wormyrocks before reusing the design.

Similar boards

  • 4 layers103.5 × 85 mmLTC3 Charge Controller, the printed circuit board in 3D

    LTC3 Charge Controller

    psas/launch-tower

    CAD files and software for the launch tower computer (LTC)

    450 parts19
  • 2 layers23.3 × 22 mmMiniBee, the printed circuit board in 3D

    MiniBee

    Jana-Marie/MiniBee

    Some smol Zigbee endpoint to integrate addressable LEDs (e.g. SK6812, WS2812) into existing smart lighting systems (e.g. Philips Hue).

    40 parts12
  • 2 layers46.4 × 80 mm3Phase, the printed circuit board in 3D

    3Phase

    eauel/openzmeter

    openzmeter (oZm) is an Open Source system designed for power quality analysis and smart energy metering in power networks. It has been designed to comply with international standards IEC 61000-4-30 and EN 50160.

    153 partsGPL-3.0
  • 2 layers90 × 60 mmCh32x035 pioc ws2812, the printed circuit board in 3D

    Ch32x035 pioc ws2812

    openwch/ch32x035

    32-bit RISC-V MCU CH32X035 built-in USB PD PHY

    53 parts86
  • 8 layers50 × 50 mmUSB C PSU, the printed circuit board in 3D

    USB C PSU

    LeoDJ/USB-C_PD_PSU

    A 5-60V bidirectional buck-boost-converter, also capable of 240W USB PD EPR (48V 5A)

    149 parts29
  • 4 layers50 × 50 mmPdaltmode, the printed circuit board in 3D

    Pdaltmode

    AnterCreeper/pdaltmode

    USB Power Delivery Alt-mode Negotiation using CH32X035

    88 parts10LGPL-2.1
  • 2 layers62 × 100 mmESP32-S3-HUB75-Driver, the printed circuit board in 3D

    ESP32-S3-HUB75-Driver

    wszeto9/ESP32-S3-HUB75-Driver

    This board serves as the Matrix Display driver for MIT's 2.007 gameboards in Spring 2024 and Spring 2025. The board can take 4 button inputs, Stemma-QT I2C sensors, and breaks out 8 GPIO pins for future use.

    137 parts3MIT