Jetson Nano Fan Tachometer reading does not work

We use a Jetson Nano on a JN30 carrier board, running Ubuntu 18.04.2 LTS.
We have connected a ASB0305HP fan.

Setting fan PWM via /sys/devices/pwm-fan/target_pwm works. However, we cannot get a readout from /sys/devices/pwm-fan/rpm_measured, it always displays 0.

The JN30 carrier board, has a FAN_TACH (208) pin described as “tachometer from the fan (open drain input with 100k pull-up to 1.8V)”, which we have connected.

Measuring the FAN_TACH out pin from the fan with an oscilloscope, we do get a frequency output. For example, the images attached show the fan set to 100 and 200 PWM. The frequency changes, but rpm_measured still always displays 0.

Any input on this? Did someone ever get this to work? There is a lot of posts about setting the PWM, but none about reading the RPM.

hello jonathan18,

please refer to Topic 159908 for the similar issue,
you might also check the look-up table, pwm_rpm_table, to check the PWM signals and its corresponding fan speed.

there’s known issue that rpm_measured returns zero, we’re looking into it,

hello jonathan18,

fan rpm can be read by enabling tach from SW commands,
please also check Topic 159908 for comment #16.
you should use fan with 5V regulator, and please also make sure you had proper pin connections.

We are not getting any readouts from /sys/devices/pwm-fan/rpm_measured even if we do echo 1 > /sys/class/hwmon/hwmon1/tach_enable before.

We do have the pins connected, and are getting a signal on the oscilloscope as posted above on it.

hello jonathan18,

are you able to check fan interrupts?
for example,

$ cat /proc/interrupts | grep fan

HI jonathan18,

Any update? Is this still an issue to support?


$ cat /proc/interrupts | grep fan
300:          0          0          0          0      GPIO 202 Edge      pwm-fan-tach

still does not work for us.

hello jonathan18,

did you enable tach before checking the interrupts ?
i.e. echo 1 > tach_enable

$ cd /sys/devices/pwm-fan/
$ echo 1 > tach_enable
bash: echo: write error: Invalid argument\
# but tach_enable was 1 before anyways
$ cat tach_enable 

( doing that as root)