Abnormal RPM readings (ridiculously large and random)

I need your assistance regarding the abnormal RPM readings I keep on getting from Jetson Xavier NX.
Observations are noted below. Why are the values abnormally large and random? Looking forward to your prompt response. Thanks!

Observations:

  • When the fan speed measured by the tachometer is tabulated, the values are ridiculously large and random:
$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
1463415
769231
504202
504202
495868
1463415
1538462
1463415
1538462
495868
372671
495868
1500000
1500000
769231
372671
750000
750000
495868
1463415
1500000
1363636
750000
750000
495868
1463415
1500000
504202
495868
495868
1363636
1538462

At least based on the look-up-table below, the RPM shouldn’t exceed hundreds of thousands even if we set PWM to max value of 255

  • look-up-table to check the actual fan rotate speed based on PWM settings
$ cd /sys/class/hwmon/hwmon2/
/sys/class/hwmon/hwmon2$ cat cur_pwm 
120
/sys/class/hwmon/hwmon2$ cat pwm_rpm_table 
(Index, RPM, PWM, RRU, RRD)
(0, 0, 0, 40, 40)
(1, 1000, 130, 2, 2)
(2, 2000, 160, 1, 1)
(3, 3000, 200, 1, 1)
(4, 4000, 255, 1, 1)
(5, 5000, 255, 1, 1)
(6, 6000, 255, 1, 1)
(7, 7000, 255, 1, 1)
(8, 10000, 255, 1, 1)
(9, 11000, 255, 1, 1)
  • set and get commands for PWM duty cycle work just fine
$ sudo -i
root:~# echo 255 > /sys/devices/pwm-fan/target_pwm
root:~# cat /sys/devices/pwm-fan/target_pwm
255
root:~# echo 120 > /sys/devices/pwm-fan/target_pwm
root:~# cat /sys/devices/pwm-fan/target_pwm
120
root:~# exit
logout
  • interesting even, when i set duty cycle to max (255) and read the RPM values continuously, the values fluctuate as follows:
$ cat /sys/devices/pwm-fan/target_pwm
255
$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
2820
2821
2824
2824
2822
2824
2825
2826
2824
2821
2818
2823
2824
2823
2822
2820
2821
2823
2824
2824
2824
2826
2826
  • then when i set to min (0), RPM eventually goes 0
$ cat /sys/devices/pwm-fan/target_pwm
0
$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
1428571
1538462
750000
1463415
495868
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

Additional note:
It seems there’s a similar topic asking if the RPM readings have some sort of multiplier but it was closed without proper response.

Sorry for the late response, is this still an issue to support? Thanks

It seems not happening to our board.

# cat /sys/devices/pwm-fan/target_pwm 
0
# while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
4675
4467
4255
4053
3839
3628
3416
3023
2170
0
0
0
0
0
0

Do you have other jetson NX to test on your side?

Hi! I also got the same results when the target PWM is set to 0.
As you already noticed, after sometime, the RPM becomes 0. This is correct behavior for sure.

However, for PWM=120, can you try these commands and check how the RPM values flunctuate? Thanks!

$ sudo -i
root:~# echo 120 > /sys/devices/pwm-fan/target_pwm
root:~# cat /sys/devices/pwm-fan/target_pwm
120
root:~# exit
logout

$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done

We have tested on other NX as well. The same large and random flunctuations during PWM=120 were observed.

Hi EkoCustodio,

We tried set PWM=120, but still can’t reproduce your issue.
Attached “NX-pwm120.txt” test result for you reference.
NX-pwm120.txt (11.3 KB)

Thank you for sending your logs @ PWM=120.
Can you also generated the RPM readings @ PWM = MAX (255)? Thanks!

Hi EkoCustodio,

Please check attached “NX-pwm255.txt” test result.
NX-pwm255.txt (8.6 KB)