Slow CPU fan speed

Hello guys

I have problem with cooling my RPi4.
I have still high cpu temperature over 60C and when I checked fan it’s speed is very slow.
I tried to change settings in /etc/rockpi-sata.conf doesn’t change fan speed.
Services rockpi-sata & pigpiod are running

I’m running dietpi v7.7.3 base od Debian bullseye
Thanks for helping

Hello.

  1. Let’s have a look at the content of the rockpi-sata.conf.
  2. The fan is not a high-speed fan, and a high-speed fan generates more noise.
  1. I tried to change lvls to this. I comment all except lv3 and set lv3=30
    But it doesnt change
  2. I put fan outside of cooler to see what is the speed and it is really slow. I know that in past it has faster speed because of sound what I hear in past.
  3. If I stop both services also there is no change, fan is running in same speed. it is ok?

For item 3:
Try to disable the service and reboot to see if the fan is running

Hi I tried it and fan didn’t start.
When I started services it started.
Here is video of fan https://youtu.be/2T9r_hqpfuc
CPU has more than 50C and lv3 was set to 30.

Hi Peter_Paulen,
please post here your /etc/rockpi-sata.conf, as 2 eyes more potentially discover a typo e.g. unwanted blank etc.
Secondly another explanation why after succesfull start it stops could be that during the regular timer based temperature measurement and new computed fan alignment in some of the Python scripts an error / exception occurs and crashes the fan.py without any further indication.
Did you modify the code?
Does it stop all time after an exact duration of running?
Maybe you want to try with a new installtion at least of the Python script portion.

Here is my actual config https://pastebin.com/4ssDgduD
Fan didn’t stop after start it stop (didn’t start after reboot) when I disable services.
And fan start after I manually started services. And fan is running very slowly and I can not see any differences in fan speed when I change settings in config.

config looks OK, stating
75% fan speed at 25 degree CPU temp
100% fan speed at 30 degree CPU temp
with that your fan should turn full power.
a) As it is PWM fan do you have an oscilloscop like DSO 138 to see if duty cycle is as expected?
b) ensure you have still
/lib/systemd/system/pigpiod.service:
ExecStart=/usr/bin/pigpiod -l -m -n 127.0.0.1 -p 8888
Mine got lost after a DietPi ugrade.

a) nope, doesn’t have it
b) file is there because before some days ago I tried to reinstall tools
but this is what I have in service file
ExecStart=/usr/bin/pigpiod -l

But pigpiod is listenning on port 8888
root@DietPi:~# netstat -tulpn|grep 8888
tcp6 0 0 ::1:8888 :::* LISTEN 394/pigpiod

please have a look here

Ok I will try but I think in past as default I have not enable it and services didn’t start.

Tested, pigpiod.service can’t start without IPv6 enabled
Nov 14 20:18:30 DietPi pigpiod[1150]: 2021-11-14 20:18:30 initInitialise: bind to port 8888 failed (Cannot assign requested address)
Nov 14 20:18:30 DietPi pigpiod[1150]: Can’t initialise pigpio library
Nov 14 20:18:30 DietPi systemd[1]: pigpiod.service: Main process exited, code=exited, status=1/FAILURE
Nov 14 20:18:30 DietPi systemd[1]: pigpiod.service: Failed with result ‘exit-code’.

to allow fan control ipv6 have to be OFF in dietpi-config

my /lib/systemd/system/pigpiod.service looks like:
[Unit]
Description=Daemon required to control GPIO pins via pigpio
[Service]
#ExecStart=/usr/bin/pigpiod -l
ExecStart=/usr/bin/pigpiod -l -m -n 127.0.0.1 -p 8888
ExecStop=/bin/systemctl kill pigpiod
Type=forking
[Install]
WantedBy=multi-user.target

after updating your /lib/systemd/system/pigpiod.service
ensure you reboot and that no relevant services are disabled
pls post than your netstat -tulpn|grep 8888

Ok
output of netstat
root@DietPi:~# netstat -tulpn|grep 8888
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 396/pigpiod

This looks good
But CPU has 60C and now it has 55 im not sure if it is working.
Later maybe I will dismantle it and I will check the fan.

do you use the original Metal Case?
Then you might check


Nope, I do not have case, everything is open.

if you feel confident
save a copy of fan.py
replace in fan.py the
/sys/class/thermal/thermal_zone0/temp
with a filename you own and enter an inital value of 40000 in that file
restart rockpi-sata.service
then just “play” in that file with temp values e.g. 30000, 40000, 50000, 60000
wait for the new “temp” reading and see how your fan reacts
and finally restore your saved original of fan.py and restart rockpi-sata.service

Testet no changes, any values and fan is running always with same speed.

Hi, are you using rpimonitor? Because it has same port 8888. Backup it’s settings, uninstall it and reboot.

and for the software side
to ensure to determine that fan.py is ongoing running as expected,
please insert logging in fan.py at indicated position in def read_temp(cache={}):

with open('/sys/class/thermal/thermal_zone0/temp') as f:
    t2 = int(f.read().strip()) / 1000.0

# >> logging here: timestamp and t2

return max(t1, t2)

you should see than an continous logging