gajdipajti / fan-control

A project for controlling 2, 3, and 4 wire DC fans using Arduino or a Raspberry Pi. It also integrates into munin monitoring. Funded by the Free Software Foundation Hungary. The code is under GPLv3. Schematics, drawings, and the documentation is under CC BY-SA-4.0. If you have an idea about how to improve the project, jus file an issue.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fan-control

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.

Pages

Wiki

In hungarian and in english: wiki

Fan Control Nano - Schematic

Note: There are multiple solutions displayed here, only implement the needed ones.

image How to start placing the components image

Fan Control Nano - Code

Serial communication

  • 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

Fan Control RPi - Schematic

Note: There are multiple solutions displayed here, only implement the needed ones.

Note: Under testing.

image

Planned updates

  • External ADC experiments
  • Other board support (RP2040, Attiny85, ...)
  • Without machine spirit (no microcontroller)

References

Free Software used in this project

Note: I only mention software that can be downloaded and installed.

About

A project for controlling 2, 3, and 4 wire DC fans using Arduino or a Raspberry Pi. It also integrates into munin monitoring. Funded by the Free Software Foundation Hungary. The code is under GPLv3. Schematics, drawings, and the documentation is under CC BY-SA-4.0. If you have an idea about how to improve the project, jus file an issue.

License:GNU General Public License v3.0


Languages

Language:C++ 88.0%Language:Python 10.6%Language:MATLAB 1.4%