Odroid XU4 Fan Control with PID controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Paweł Płazieński ba95d3e4e9 Merge 4 years ago
systemd Add SIGTERM handling mainly to add ability to systemd close program gratefully 4 years ago
README.md Create README.md 4 years ago
controller.py Store last error as expected, allowing derivative part to work 4 years ago
driver.py Reset XU4 fan when starting control 4 years ago
element.py Added support for Odroid C2 with fan on PWM0 and feature of spin up fan if was not spinning in last cycle 4 years ago
fan-control.py Add histeresis which affects proportional part 4 years ago
system.py initial version of closed-loop system 4 years ago



Software fan control with PID controller for ODroid XU4 and Odroid C2.

This python script replaces native fan control for Odroid XU4 with software-controlled one or starts control for custom-built Odroid C2 fan which uses GPIO PWM as control.

Implementated controller is standard discrete PID with integration boundaries.

By default it uses zero derivative constant (which is fine for thermal control) and will try to keep average temperature below 52°C. However, most of the constants can be changed by program arguments.


For defaults run either:

./fan-control.py --device XU4


./fan-control.py --device C2


./fan-control.py --help