DIY environmental monitor

Nvidia TX2 module on a Auvidea J121 board with noctua fan in motion

I have an Auvidea J121 carrier board with a Nvidea Jetson TX2 module. Decent carrier board. I got it for the GigE and NVME SSD support in a small form factor. One problem: the fan was not running even with the Auvidea DTB. Note: this was running JetPack 4.3 (L4T 32.3.1) with the Feb 2020 release of Auvidea drivers.

I thought that I’d made a mistake loading the DTB because sometimes the fan would spin for a few seconds after a power cycle. After burning too much time on this thinking that PWM was not working because of the DTB, I put my multimeter on the power pins (which should be energized even if the fan is idle) and saw no voltage. Power cycled and watched it drop from 5V to 0V after boot.

The lack of voltage after init told me something was wrong with the fan power line even though it is supposed to be enabled by default. I searched the Nvidia forums and noticed that some people were complaining about the fan running all the time. Their solution was to disable power to force it off. I reversed the steps, and the fan spun up! It appears to be adjusting speed correctly too. Much celebration!

Config to enable fan power on boot

Script to disable fan power inhibit:

# place in /usr/local/sbin/ and chmod 755
echo 398 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio398/direction
echo 1 > /sys/class/gpio/gpio398/value
echo 0 > /sys/class/gpio/gpio398/value

Systemd unit to run script at boot:

# place in /etc/systemd/system/fan.service
# and systemctl enable fan.service
Description=kickstart fan on auvidea dev board



Once those are in place, you should be able to run systemctl start fan.service and see your fan spin up–assuming your module isn’t idle and sitting in a cold room.

Yes, I’m leaving notes for Google in case I forget and end up searching for this again. This might also work on a J120 with other Jetson modules.

Want to keep reading? / go back