As I mentioned in my previous post on the Raspberry Pi 4, it tends to get hot, considerably hotter than previous generations. This heat can cause the CPU to throttle and run much slower than the intended clock speed. This is done automatically to protect the components from overheating.
I have tested in the past and provided a lot of data to support the fact previous generations of the Raspberry Pi didn't need heatsinks or cooling 99.99% of the time, despite heatsinks being the number one accessory sold. Not only were they not needed, they really didn't do much.
The Raspberry Pi 4 launched with thermal problems and the Raspberry Foundation released numerous firmware updates each reducing the thermal problems.
As you might know from my Raspberry Pi 4 Unboxing post I purchased a case that includes a fan and heatsinks and planned on doing some testing.
I wanted to test all options but I did skip testing fan w/ heatsink and you will see why in a bit.
All tests are done with a 30-minute 100% load and 5 minutes idle CPU before and after testing.
I tested the following scenarios:
- Stock Pi 4 with no case or cooling
- Pi 4 with heatsink and included thermal tape
- Pi 4 with heatsink and quality thermal paste
- Pi 4 in an enclosed case
- Pi 4 in an enclosed case with fan
- Pi 4 in an enclosed case with fan and reduced power
Test 1 - Stock (No fan, case, no heatsink)
This is our control, pull the Raspberry Pi 4 out of the box, hook up Ethernet and power and stress it out.
As you can see from the chart we are experiencing a lot of thermal throttling around 16 minutes into the test. The CPU bounces between 1.5GHz and 1GHz during the last half of the test. This is the normal expected behavior of the Raspberry Pi 4 but would be a concern if running similar workloads.
Test 2 - Enclosed Case
The next test uses a high-quality Pi 4 enclosed case with breathing holes. This case includes a fan but it is not activated.
This test is far more revealing than the first, within 8-9 minutes there is already thermal throttling and in the last half of the test, the throttling hits stage 2 and drops even further to 600MHz.
This test is far more similar to potential real-world scenarios where a user buys a fancy new case to make their Raspberry Pi look pretty and has a short burst of sustained load potentially while compiling software or doing software installation.
Even with the latest firmware, you can potentially run into thermal problems with the Raspberry Pi 4. I will admit this would be rare and not something that would happen all the time.
Test 3 - Heatsink with included thermal tape
As predicted, not much of a difference than stock without heatsinks. We are still seeing thermal throttling in the last half of the test but if you look back at test one you will see the throttling is less frequently than the stock in the earlier parts of the test, but not enough to make any real difference.
Test 4 - Heatsink with quality thermal paste
As I said in my Raspberry Pi 3 posts if you are going to use heatsinks, you need to use real thermal paste. The included thermal tape is absolute crap and needs to be peeled off and cleaned with alcohol. Then you can use the standard application process used in modern computers. I recommend GELID GC-Extreme or Arctic Silver, both can be found on Amazon and will last for multiple installations.
This test is very revealing and shows heatsinks can in fact help but only when properly installed. The testing lasted an extra five minutes before thermal throttling kicked in and it happened far less frequently. This is a solid improvement over stock, especially if you start putting this in a case.
Make sure you clean both the CPU and the heatsink well with isopropyl alcohol before using thermal paste. Also, don't apply too much paste. You need less than you think.
Test 5 - Fan
In this test, I used a small 40mm fan included with the case and closed it up (not shown).
This test is the most impressive. No thermal throttling at all for the entire 30-minute stress test and temperatures are a good 30C cooler.
The picture is clear if you are going to use heavy loads on a Raspberry Pi 4, install a fan. Even during idle I noticed drastically reduced temperature.
Full disclosure, this fan isn't silent, and you can hear a whine. It's not loud but it isn't silent either. Most use cases likely don't even require a fan as the CPU isn't running at full speed for long periods of time. It is worth taking a look at your workload to see if you are experiencing throttling.
Test 6 - Fan with reduced power
The 40mm fan takes 5V, but did you know you can supply less power to it and it will still spin? The Raspberry Pi includes 5V and 3.3V pins, by using 3.3V we can reduce the spin and ultimately the noise from the fan in exchange for reduced cooling.
This, in my opinion, is the best of both worlds, you get nearly no noise, and no throttling at any point in the stress test. The only way I can hear the fan is if I put the case to my ear, at about 1-2 feet the noise is gone.
The money shot
Here you can see all the tests on the same chart and get a feel for how much of a difference there is.
These tests are under 100% load and not a typical workload for a Raspberry Pi. These tests were done to test the worst-case scenario.
How to check the temperature on the Raspberry Pi
You can run the command
vcgencmd measure_temp and if you are below 85C you shouldn't be throttling.
You can use
vcgencmd measure_clock arm to check the current frequency. If you are idle you will likely be running at 600Mhz-750Mhz. At full speed, it will be 1GHz-1.5GHz depending on the model.