This project allows automatic fan speed adjustment of the Argon One Case without Python. It is written in Go to use less memory (and for fun).
The project creates 3 tools :
readtemp
: display the current CPU temperaturesetfan
: set the fan speedadjustfan
: automatic fan speed adjustment
Both setfan
and adjustfan
require root privileges to access I2C device.
I created this for my personnal use, and only tested on a Raspberry Pi 4 using :
- Ubuntu 19.10 (arm64).
- Raspbian (arm32, based on Debian Buster).
The deploy part is rather quick & dirty. But it works.
To build, and install the tools (including starting adjustfan daemon) :
make
sudo make install
The tools are installed in /opt/argononefan
. After that adjustfan
should run as a service. You can change thresholds (see below).
sudo make uninstall
The file /opt/argononefan/adjustfan.json
contains the configuration used to adjust the fan speed according to the CPU temperature.
You can change its content, and restart the service with :
sudo systemctl restart adjustfan.service
An example :
{
"thresholds": [
{
"temperature": 65,
"fanspeed": 100
},
{
"temperature": 60,
"fanspeed": 50
},
{
"temperature": 55,
"fanspeed": 10
}
]
}
Thresholds have to be ordered from the higher to lower temperature. Under the lowest temperature the fan is stopped.
Released under the MIT License, see LICENSE.txt for more informations.==)