Skip to content

Arduino based PWM fan controller, with configurable temperature/speed curves

License

Notifications You must be signed in to change notification settings

CromFr/fan-controller

Repository files navigation

Arduino fan controller

Features

  • Control fan speeds by using the following modes:
    • Auto: Use temperature->speed curves for each fan
    • Low: All fans sets to their lowest value on the curve (that is not 0)
    • High: All fans to their highest value on the curve (that is not 100)
    • Full: All fans to 100%
  • SSD1306 Display:
    • Fan speed control mode
    • Sensor temperature
    • Fan speeds percent (with RPM if tachometer is available)
  • Buzzer:
    • When there is no display: beep to transmit control mode and temperature
    • Beep when temperature is critical
  • Warning led: Blink when in low speed mode (as temperature may rise)
  • Button:
    • Short button press
      • Send control mode, temperatures and fan speeds to serial output
      • Beep first temperature (mix of morse and roman numbers)
        • .: 1, ..: 2, ...: 3, .-: 4, -: 5, -.: 6, -..: 7, -...: 8, .--: 9, --: 0
    • Long button press: Switch fan control modes
      • Auto (beep .-, morse code for A)
      • Low (beep .-.., morse code for L)
      • High (beep ...., morse code for H)
      • Full (beep ..-., morse code for F)

Setup

  • Install dependencies
    • On GNU/Linux platforms, execute ./arduino-install-libs.sh
    • On Windows platform, using the Arduino Library manager, install the following libraries:
      • ssd1306 by Alexey Dynda
  • Edit config.cpp to configure the different settings:
    • Pinout
    • Sensor list: pin
    • Fan list: pin, speed curve, associated sensor
    • SSD1306 display connection
    • ...

Board

Perfboard design & photos in board/

About

Arduino based PWM fan controller, with configurable temperature/speed curves

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published