Raspberry PI PoE+ HAT Fan Control


Having purchased a Raspberry PI PoE+ HAT recently, I found that the fan was always spinning very fast and therefore was quite noisey. Checking the temperature it didn't seem high enough to warrant the fan spinning so fast, which made me think if anything could be done about it.

After a not very long search I found someone who has done all the hard work already - so all the credit goes to them. They discovered the configuration settings in the official documentation (look for rpi-poe-plus) and shows what can be configured.

To do so, edit the boot config file...

sudo nano /boot/config.txt

Add the configuration below to the file. These are the defaults according to the documentation to act as a starting point...

# PoE Fan Speed Control
dtparam=poe_fan_temp0=40000,poe_fan_temp0_hyst=2000
dtparam=poe_fan_temp1=45000,poe_fan_temp1_hyst=2000
dtparam=poe_fan_temp2=50000,poe_fan_temp2_hyst=2000
dtparam=poe_fan_temp3=55000,poe_fan_temp3_hyst=5000

Temperature is specified in millicelcius. So a value of 50000 would be 50°C.

You can have a maximum of four different speeds based on temperature. Starting from poe_fan_temp0, which is the slowest/quietest fan speed. Up to poe_fan_temp3, which is the fastest/loudest.

The hyst parameters are described as "the temperature delta (in millicelcius) at which the fan slows down". So if the fan speeds up at 50°C, then with a hyst value of 2000 (2°C), it won't slow down again until it goes below 48°C.

Adjust the settings as required and save the file.

You will then need to reboot the RPI for changes to take affect.


Related Articles

If your PI isn't feeling well or it just needs a health check, this is how to read its current temperature.

Raspberry PI, Linux

How to install and setup an OS on a Raspberry PI headlessly.

Raspberry PI

Commands to update and upgrade a Raspberry PI

Raspberry PI

A quick and simple HTTP server in Python in only a few lines of code.

Raspberry PI, Python