If you run you Jetson Nano under heavy workloads, you may find it useful to add a fan. Looky here:
Under most conditions, the large heatsink on the Jetson Nano keeps the system running within the design thermal limits. However there may be times when running very GPU intensive loads or when the Jetson is in a very warm environment, that the thermal limits may be reached.
Once the thermal limits are reached, the system software will lower the clock speeds on the CPU and GPU to help reduce the heat being generated. This is called thermal throttling.
If you are wondering about thermal benchmarks for the Jetson Nano and such, there is an excellent article over at Phoronix.com with comprehensive thermal testing: The Thermal Performance Of NVIDIA’s Jetson Nano $99 Developer Board
Money quote from the conclusion:
After hours of different benchmarks stressing both the Kepler GPU and Cortex-A57 cores, the fan-less out-of-the-box configuration led to around 58 degrees average with a peak of 69 degrees. When having the PWM fan attached, the average temperature under load was 42 degrees with a peak of 51 degrees. With the temperatures not hitting any extremes, there weren’t any workloads in our temperature-controlled environment where thermal throttling was taking place for the Jetson Nano or the performance otherwise changing, which is good.
Let’s note here that the article is from March, so there may have been some tweaks since then to the Nano system software for better thermal performance.
The tests over at Phoronix were conducted in a temperature controlled environment. If your application is such that it is exposed to more temperature extremes (like outdoors, or in a warm environment such as under direct sunlight), you may find that the Jetson reaches its thermal limits.
A couple of comments here. First, some people confuse thermal throttling with other symptoms. For example, if you are using a Jetson with a micro USB power supply you may see “stutters” or pausing. More than likely this is because the Nano is up against the amount of power it can draw from the power supply (2.5A), and is trying to adjust power consumption. You can address this by using a 4A power supply through the Nano barrel jack.
Another example is that you may experience issues with the micro SD card, where the SD card is exhibiting poor performance, failures or long access/write times. This can be due to a variety of factors of the SD card, such as poor quality, bad sectors, and so on.
Second, some people measure the temperature by touching the heatsink. They feel that if the heatsink is uncomfortable to the touch, then it needs a fan, or there are thermal issues. This is a simplistic view. There are sensors on the Tegra module (under the heat sink and thermal plate) which measure the actual temperature of the Tegra chip itself. That’s how it figures out when to do thermal throttling. The actual thermal limits for the chips are generally quite a bit higher than what would actually be comfortable for most people to actually touch.
With that said, there are certainly reasons one may need a fan. And there’s a lot to be said about just adding the fan and not have to think about it anymore.
In the video, we install a Noctua A4x20 5V PWM fan. This fan recommended by NVIDIA. The fan attaches to the Jetson Nano’s heatsink via 4 mounting points. There are 4 holes drilled into the heatsink at the factory. However, the holes do not have threads which means that we need to think about how to use them. Fortunately, Noctua gives us some mounting options and instructions.
The heatsink holes are a little bigger than 2.5mm. You can use self-tapping M3 screws or regular M2 or M2.5 25mm machine screws with nuts for attachment. The nuts are pretty small, people use tweezers to hold them. The screw and nut method can be a little frustrating if you’re not use to handling very small parts.
The easiest way to attach the fan is to use self-tapping M3 screws, 25mm long. The heatsink is soft metal, you should be able to use your screwdriver to drive the screws in fairly easily.
In the video, we show a little more complicated approach. We use a M3x0.5mm tap to place threads in the hole, and then attach the fan with M3 screws around 23mm long. A machine screw 22-25mm should work. This method is useful if you intend to detach and attach the fan multiple times.
The Noctua fan has a 4 pin connector to attach to the Jetson. The connector is keyed to help with installation. The 4 pins are:
The fan gets power from the Jetson from the GND and 5V pins. The Tachometer signal tells the Jetson what the speed of the fan currently is, and the PWM signal allows the Jetson to control the fan speed.
Under normal use, the Jetson will only spin the fan when the thermal demand is high enough to warrant its use. Some people think their fan is broken after installation because the fan does not spin when the power is applied to the Jetson. As we have discussed, there is actually quite a bit going on behind the scenes trying to manage the thermal load and balancing that against power consumption. The Jetson Nano is an embedded system, and usually biases towards a system that should use less energy when possible.
However, if we run the following scipt:
$ sudo jetson_clocks
this will spin the fan, as well as set the CPU and GPU clocks to their maximum value in the current performance profile. Install the fan, then test it with jetson_clocks. The jetson_clocks script does not persist across boots, so in order to return to normal thermal management reboot the Jetson.
Of course, there are many fan alternatives in this form factor. You will need a 5V fan. One thing to note is that some of the fans have 3 pin connectors. If you use a 3 pin version, the Jetson will not control the fan dynamically (there are no signals to enable that feature). The fan will spin at full speed when the Jetson Nano is powered.