Catalog · How the catalog works
universal_fan_ctrl
An autonomous, temperature dependent fan controller
- ★ 1 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
universal_fan_ctrl
An autonomous, temperature dependent fan controller
The aim of the project is to develop a fan controller module that can be applied to fans in existing appliances that otherwise have no speed control. The module is intended to be connected as a pass-through between the fan and its original power source.

Features
-
- V - 30V input voltage range
- Low side 1A PWM switch controls any DC fan, with of without PWM pin
-
- x 13.6 mm 2-layer PCB, no bottom side components
- Cheap BOM with hand-solderable 0603 passives
- BOM-configurable parameters
-
- 4mm pitch input and output THT pads for wires or connectors
- On-board or remote temperature sensor (DS18B20), or AVR internal sensor
Operation
- PWM fixed at 100Hz
- In absence of DS18B20 temperature sensor, falls back to the internal AVR sensor
- Temperature probed at 5Hz
- Digital low pass filters reduce measurement noise
- Configurable Maximum temperature (MT) and Temperature ramp length (TR)
- Fan stays off at T < (MT-TR)
- Fan's PWM is mapped to (23.2% - 100%) range within (MT-TR) < T < MT range
- Fan stays fully on at T > MT
Configuration
The microcontroller senses two ADC values on startup, which determine mode of operation. They can be easily changed by replacing two resistors on board.
Maximum temperature (MT)
The temperature at which the fan works at the maximum speed. Resistor Rmt controls this parameter.
| Max Temperature | Rmt value |
|---|---|
| 30C | Open |
| 35C | 68k |
| 40C | 33k |
| 45C | 20k |
| 50C | 12k |
| 55C | 6k8 |
| 60C | 3k6 |
| 65C | 1k or less |
Ramp length (TR)
The temperature range that is mapped linearly to 23.2% - 100% PWM output This parameter is controlled by resistor Rtr.
| Ramp Length | Rtr value |
|---|---|
| 2.5C | Open |
| 5C | 33k |
| 10C | 12k |
| 20C | 2k7 or less |
Schematic


