Ender3PWM is a small hardware and firmware project for making the PSU fan in an Ender 3 Pro / P360W24 24V power supply much quieter.
The project replaces the original noisy PSU fan with a larger 80 mm 4-pin PWM fan, controlled by an mbed LPC1768 and a DS18B20 temperature sensor.
The goal is not to remove cooling.
The goal is safe, temperature-controlled and quieter PSU cooling.
The system consists of:
- P360W24 24V PSU
- MP1584EN buck converter for 12V fan power
- TSR 1-2450 24V → 5V regulator for the LPC1768
- mbed LPC1768
- DS18B20 temperature sensor
- P2N2222AG NPN transistor for PWM pull-down control
- 80 mm 4-pin PWM fan
- 3D printed PSU cover / fan mount
Ender3PWM/
├─ main.cpp
├─ README.md
├─ ATTRIBUTION.md
├─ LICENSE
├─ .gitignore
├─ docs/
│ ├─ BOM.md
│ ├─ WIRING.md
│ ├─ BUILD_AND_FLASH.md
│ ├─ TROUBLESHOOTING.md
│ ├─ SAFETY.md
│ └─ KICAD.md
├─ 3D/
│ ├─ README.md
│ ├─ fan_guard_80.stl
│ ├─ Cheng_liang_24v_360w_80mm_fan.stl
│ └─ Cheng_liang_24v_360w_cover.stl
└─ pic/
├─ README.md
├─ banner.png
├─ schematics.png
├─ electronic.jpg
├─ fancover.jpg
├─ pin_configuration_of_5v_fans.jpeg
├─ pin_configuration_of_12v_fans.jpeg
├─ pin_configuration_of_24v_fans.jpeg
└─ pin_configuration_of_chromax_black_fan.png
P360W24 PSU 24V
├─ MP1584EN 24V → 12V → fan +12V
└─ TSR 1-2450 24V → 5V → LPC1768 VIN
LPC1768 p21 → 1.2kΩ → P2N2222AG base
P2N2222AG collector → fan PWM
P2N2222AG emitter → common GND
DS18B20 DATA → LPC1768 p15
DS18B20 VCC → LPC1768 3.3V
DS18B20 GND → common GND
The 4-pin fan receives constant 12V.
Only the fan's PWM control wire is modulated.
Read more in docs/SAFETY.md.
See the full bill of materials:
Short version:
| Part | Purpose |
|---|---|
| LPC1768 | Controller |
| DS18B20 | Temperature sensing |
| MP1584EN | 24V → 12V fan supply |
| TSR 1-2450 | 24V → 5V controller supply |
| P2N2222AG | PWM pull-down transistor |
| 1.2kΩ | Base resistor |
| 100kΩ | Base pulldown |
| 4.7kΩ | DS18B20 pull-up |
| 80 mm PWM fan | PSU cooling |
See the wiring guide:
Diagram:
The firmware is located in:
main.cpp
It does the following:
- Reads temperature from the DS18B20
- Sets the DS18B20 to faster 10-bit mode
- Generates 25 kHz PWM on
p21 - Uses inverted PWM because of the P2N2222AG pull-down transistor
- Fail-safe: sensor error = fan 100%
- Startup safety: fan 100% for 5 seconds
- Serial debug output
See the full guide:
Short version:
mbed-tools compile -m LPC1768 -t GCC_ARMFind the generated .bin file and copy it to the MBED drive.
STL files are located in:
See:
External Thingiverse sources are listed in:
Example serial output:
STATUS | Raw: 24.8 C | Filtered: 24.8 C | Target: 35% | Fan: 35% | p21 duty: 65% | p21 avg: 2145 mV
If the fan or sensor does not behave correctly, see:
This project was built as a practical quiet cooling mod for a 3D printer PSU.
Built by Thomas / TuxiNet.dk

