A project for controlling 2, 3, and 4 wire DC fans using an Arduino Nano or a Raspberry Pi. It also integrates into munin monitoring. Funded by the Free Software Foundation Hungary. The code is under GPLv3. Schematics, drawings, circuit diagrams, and the documentation is under CC BY-SA-4.0. If you have an idea about how to improve the project, just file an issue and contribute.
In hungarian and in english: wiki
Note: There are multiple solutions displayed here, only implement the needed ones.
How to start placing the components
- 115200 bps
- Main Functions:
- pwm? - GET all PWM outputs
- pwm[A-F]? - GET PWM output
- pwm[A-F]p - SET PWM output to pilot mode
- pwm[A-F][0-255] - SET PWM output manually
- rpm[C,D]? - GET RPM output from 4-wire fans
- t? - GET measured temperature
- t[A,D,L,N]? - GET measured temperature from selected source
- ts? - GET temperature source (example Dallas 1-wire)
- tsa? - GET all available temperature sources
- Calibration Functions:
- Ch[L,H,C][A-F]? - GET LOW HIGH temperature for a channel
- Ch[L,H,C][A-F][0-100] - SET LOW HIGH temperature for a channel
- p[L,H][A-F]? - GET LOW HIGH PWM speed for a channel
- p[L,H][A-F][0-255] - SET LOW HIGH PWM for a channel
- Misc Func:
- hrs? - get board uptime [%d:%H:%M:%S]
- ver? - HW board version number
- cbn? - CODE build version number
- ? - Ping, Are You There? + Flash a LED
Note: There are multiple solutions displayed here, only implement the needed ones.
Note: Under testing.
- External ADC experiments
- Other board support (RP2040, Attiny85, ...)
- Without machine spirit (no microcontroller)
- Arduino Language Reference
- Arduino Nano
- 1-wire protocol
- Raspberry Pi documentation
- Raspberry gpiozero
- Raspberry Pi Zero 2 W Pinout
- RPI Zero 2W Board Layout
Note: I only mention software that can be downloaded and installed.
- LibreOffice Writer - documentation
- Visual Studio Code - documentation
- Arduino IDE - Arduino code
- KiCad - schematics
- Fritzing - schematics
- GNU Octave - drawing graphs, advanced calculations
- Qalculate! - basic calculation