Skip to content
Active Cooler H505 strange temperature fluctuation | Geekworm

Active Cooler H505 strange temperature fluctuation


  • I bought a couple Active Cooler H505 blowers for Raspberry Pi 5, and they work well.

    There is one curious detail that I cannot explain. I have Prometheus recording the vital stats of several systems, including an RPi5 using this blower, and the CPU temperature varies in a strange way:

    It's a very regular up-and-down sway, with an amplitude of maybe 4 degrees, and a strict period of about 8 minutes. From the graph, you can see CPU usage for the same system, and there is nothing on the system that creates a varying load with that period. I've checked network traffic, etc, and I don't have that.

    The only thing I could think of is that there is a built-in hysteresis in the control loop for the speed of the fan, which allow the CPU temperature to overshoot and undershoot the ideal temperature by a few degrees, before changing the fan speed.

    It's not a bad thing, since the temperature variation is tiny. It's just a curious, hard to solve puzzle.

    Any ideas?



  • I think I've found the answer. If you read /boot/firmware/overlays/README you will see this:

    ```
            fan_temp0               Temperature threshold (in millicelcius) for
                                    1st cooling level (default 50000). Pi5 only.
            fan_temp0_hyst          Temperature hysteresis (in millicelcius) for
                                    1st cooling level (default 5000). Pi5 only.
            fan_temp0_speed         Fan PWM setting for 1st cooling level (0-255,
                                    default 75). Pi5 only.
            fan_temp1               Temperature threshold (in millicelcius) for
                                    2nd cooling level (default 60000). Pi5 only.
            fan_temp1_hyst          Temperature hysteresis (in millicelcius) for
                                    2nd cooling level (default 5000). Pi5 only.
            fan_temp1_speed         Fan PWM setting for 2nd cooling level (0-255,
                                    default 125). Pi5 only.
            fan_temp2               Temperature threshold (in millicelcius) for
                                    3rd cooling level (default 67500). Pi5 only.
            fan_temp2_hyst          Temperature hysteresis (in millicelcius) for
                                    3rd cooling level (default 5000). Pi5 only.
            fan_temp2_speed         Fan PWM setting for 3rd cooling level (0-255,
                                    default 175). Pi5 only.
            fan_temp3               Temperature threshold (in millicelcius) for
                                    4th cooling level (default 75000). Pi5 only.
            fan_temp3_hyst          Temperature hysteresis (in millicelcius) for
                                    4th cooling level (default 5000). Pi5 only.
            fan_temp3_speed         Fan PWM setting for 4th cooling level (0-255,
                                    default 250). Pi5 only.
    ```

    In other words, it turns on at 50C, it keeps running until the temperature drops by 5 degrees (temp0_hyst), then it turns off. Repeat, again and again.

    Pretty neat!


Please login to reply this topic!