If you've used the new Raspberry Pi 4, or read much about it, then you'll know that it can run pretty hot under high CPU load. Let's take a very quick look at it's thermal performance, and how a couple of different cooling options perform, in particular our new Fan SHIM.
With each generation, the Raspberry Pi packs greater performance into a same-sized package, and the Raspberry Pi 4 is one of the most significant steps up so far. The Raspberry Pi 3 was known to run hot, but the Raspberry Pi 3 B+ dramatically improved thermal performance with a metal heat-spreader on the System-on-Chip (SoC), and much better thermal dissipation through the PCB. The Pi 4's higher performance means that some of that heat creeps back.
For more detailed benchmarking, and some really nice thermal images, have a read of Gareth Halfacree's excellent blog post.
Each test was run for 10 minutes and, for the two tests with Fan SHIM, the fan was turned on half-way through, after 5 minutes. The heatsink used was one of our new, large 40x30x5mm heatsinks. The Fan SHIM was mounted on a booster header, with the fan approximately 5mm above the top of the heatsink.
Before each ten minute collection of data started, we started the sysbench primes test, running on four threads, and let the CPU temperature stabilise.
sysbench --test=cpu --cpu-max-prime=1000000 --num-threads=4 run
The SoC temperature was measured with
vcgencmd measure_temp every second throughout the ten minute test, and logged to a file using Python.
Before going through them, we'll just say that the results are pretty convincing. Fan SHIM gives dramatic active cooling, while the reasonably large heatsink does very little during extended high-load on the CPU.
Here's the chart of the results:
Both the "No cooling" and "Fan SHIM" tests run at around 80°C, climbing a little through the test, potentially as a result of the script running. The average temperature through the "No cooling" test was 78.8°C.
The "Heatsink" test had a 3.0°C lower average temperature across the ten minute test than the "No cooling" test, although this was without thermal paste or thermal tape, just the supplied double-sided tape.
Once the fan kicked in during the "Fan SHIM" test, Fan SHIM cooled the CPU by a whopping 26.7°C (by the end of the ten minute test) compared to the average temperature through the "No cooling" test, while the greatest temperature difference between the tests was 30.2°C!
Fan SHIM cooled the CPU to approximately 52°C after five minutes running, versus 80°C with no cooling at all.
With the heatsink and Fan SHIM, the thermal performance is actually worse! We think this is likely due to the fact that the fan is both further away from the SoC and a few millimetres above the heatsink.
Conclusions and Further Work
Without any cooling, the CPU will reach temperatures around 80°C. Given that the Raspberry Pi's CPU throttles at just above 80°C to lower its temperature, if you're pushing the CPU hard then it's likely it will throttle.
Fan SHIM will give you 25-30°C of active cooling under high load. Its effective active cooling means that your Pi will likely never throttle its CPU.
Using a heatsink gives a small amount of headroom, and this will increase with larger heatsinks. Their passive cooling provides a buffer, meaning that short bursts of CPU activity will be absorbed, but extended high load CPU temperatures will only be a few degrees lower than without a heatsink at all.
Using a heatsink in addition to Fan SHIM, in our testing, gave no additional benefit, in fact the performance was worse (see explanation above).
We'll follow up with a more detailed blog post and set of benchmarks that use thermal imaging, a range of heatsinks, thermal paste, and other fans.