PWM Cooling Fan Not Working on Raspberry Pi 5 with Umbrel OS

Hi everyone,

I’m experiencing an issue with my PWM cooling fan on Raspberry Pi 5 running Umbrel OS. Here are the details:

Hardware specs:

  • Raspberry Pi 5
  • PWM Active Cooling Fan (4-Pin JST)
  • Fan should automatically adjust speed based on temperature:
    • Below 50°C: 0% speed
    • At 50°C: 30% speed
    • At 60°C: 50% speed
    • At 67.5°C: 70% speed
    • At 75°C: 100% speed

Issue:

  • The fan is not spinning at all
  • Running Bitcoin node on Umbrel OS which typically generates heat
  • Fan hardware is confirmed working when tested separately
  • Properly connected to the PWM port

Has anyone successfully got the PWM fan working with Umbrel OS on Pi 5? Any specific configuration needed?

Thank you for your help!

I searched in some of my poats of a couple of years ago. I found this url and there is some code shared in github. Hope this helps. Fan SHIM for Raspberry Pi

Thank you for your suggestion. However, I noticed that Fan SHIM is designed for Raspberry Pi 4, but I’m using a Raspberry Pi 5. Will this cooling solution be compatible with Pi 5’s different power and thermal management system? I’m concerned about potential compatibility issues since Pi 5 has different specifications from Pi 4.

Could you please confirm if anyone has successfully used Fan SHIM with Pi 5?

I followed this guide for my Raspberry Pi 5 with Umbrel 1.3:
https://wiki.geekworm.com/X735-script

This is also the github page of the script:

However, there are the following alerts:

  1. [MAJOR] In the guide they refer a python library that is not being updated. This is only specified in the FAQ of the same guide, where they provide an alternative. The alternative is rpi-lgpio, while they use rpi.gpio within the main body of the guide.

  2. [MAJOR] When you arrive at the section of the guide named “Configuring Different GPIO Chip for Raspberry Pi 5 hardware” use these commands instead:

sed -i ‘s/xSoft.sh 0 20/xSoft.sh 4 20/g’ install-sss.sh
sed -i ‘s/xPWR.sh 0 5 12/xPWR.sh 4 5 12/g’ x735-pwr.service
sed -i ‘s/pwmchip0/pwmchip2/g’ x735-fan.sh

They are mentioned in their github page.
If, instead, you use the commands mentioned in the main body of the guide and then you proceed to the next section “Create the x735-fan service” , Umbrel will shut down after the command “sudo ./install-fan-service.sh” and won’t turn on again. It took me several reflashes of the sd card before understanding this. I don’t know exactly why the commands they list in “Configuring Different GPIO Chip for Raspberry Pi 5 hardware” break Umbrel. If you have Umbrel completely located in your disk without having an sd card, I would avoid this procedure at the moment.

  1. [minor] The script seems to be very conservative in any case. It speeds up fans only at high temperatures. At 50°C they are at almost minimum speed.

On my previous Raspberry Pi 4 I had a fan connected to the 40-pin header and it was always spinning at maximum speed. I might switch back to that type of fan.