2025-12-18 00:48:17 +01:00
2025-12-18 00:48:17 +01:00
2025-12-18 00:48:17 +01:00
2025-12-18 00:48:17 +01:00
2025-12-18 00:48:17 +01:00
2025-12-18 00:48:17 +01:00
2025-12-18 00:48:17 +01:00

PiFanControlTUI

Welcome, this project aim to provide a simple minimal intuitive TUI to set your RaspberryPi 5 fan curves.

Install This

#TODO

Workings

This project works by setting the following dtparams in /boot/firmware/config.txt. Settings require reboot to work.

[all]
dtparam=fan_temp0=55000,fan_temp0_hyst=2000,fan_temp0_speed=90
dtparam=fan_temp1=65000,fan_temp1_hyst=3000,fan_temp1_speed=160
dtparam=fan_temp2=70000,fan_temp2_hyst=4000,fan_temp2_speed=200
dtparam=fan_temp3=72000,fan_temp3_hyst=5000,fan_temp3_speed=255
  1. fan_tempN: temperature fan activates at in millicelsius
  2. fan_tempN_hyst: fan turns off (or to lower setting) when temperature is fan_tempN - fan_tempN_hyst. Also in millicelsius
  3. fan_tempN_speed: fan speed in range [0, 255] where 255 is 100% fan speed

The RaspberryPi 5 firmware supports up to 4 different thresholds. The following are the default values used by the firmware:

fan_temp0               Temperature threshold (in millicelcius) for
                        1st cooling level (default 50000).

fan_temp0_hyst          Temperature hysteresis (in millicelcius) for
                        1st cooling level (default 5000).

fan_temp0_speed         Fan PWM setting for 1st cooling level (0-255,
                        default 75).

fan_temp1               Temperature threshold (in millicelcius) for
                        2nd cooling level (default 60000).

fan_temp1_hyst          Temperature hysteresis (in millicelcius) for
                        2nd cooling level (default 5000).

fan_temp1_speed         Fan PWM setting for 2nd cooling level (0-255,
                        default 125).

fan_temp2               Temperature threshold (in millicelcius) for
                        3rd cooling level (default 67500). 

fan_temp2_hyst          Temperature hysteresis (in millicelcius) for
                        3rd cooling level (default 5000).

fan_temp2_speed         Fan PWM setting for 3rd cooling level (0-255,
                        default 175).

fan_temp3               Temperature threshold (in millicelcius) for
                                4th cooling level (default 75000).

fan_temp3_hyst          Temperature hysteresis (in millicelcius) for
                        4th cooling level (default 5000).

fan_temp3_speed         Fan PWM setting for 4th cooling level (0-255,
                        default 250).
Description
small TUI to set RaspberriPi5 fan curve.
Readme 62 KiB
Languages
Python 100%