tl;dr: After the fall 2019 firmware/bootloader update, the Raspberry Pi 4 can run without throttling inside a case—but only just barely. On the other extreme, the ICE Tower by S2Pi lives up to its name.



Three options for keeping the Pi 4 cozy: unmodified Pi 4 case, modded case with fan, and the ICE Tower.

A few months ago, I was excited to work on upgrading some of my Raspberry Pi projects to the Raspberry Pi 4; but I found that for the first time, it was necessary to use a fan to actively cool the Pi if used in a case.

Two recent developments prompted me to re-test the Raspberry Pi 4's thermal properties:

Seeed Studio/S2Pi sent me one of their ICE Tower CPU Cooling Fans, and asked me to review it. The Raspberry Pi foundation released a bootloader and firmware update which reduces the temperature of the Pi by enabling power-saving functionality of the Pi's USB 3.0 chipset.

In the blog post I linked to earlier, I came to the conclusion that you must use active cooling for the Raspberry Pi if you run it inside the official Pi case. I wanted to see if, after the firmware update, this was still true.

I also wanted to see what kind of affect the ICE Tower's massive heat sink would have on the Pi's thermal capabilities under load—with and without the active cooling provided by the sleek icy-blue fan it comes with!

How I tested

I hate when you read an article about benchmark results, and you never see the methodology. That's not science! I wanted to make a completely repeatable and automated process to test and graph the temperature results, using stress-ng to put load on the Pi, and the onboard frequency, throttling, and temperature monitoring, to put the Pi through its paces.

Therefore, I wrote this Raspberry Pi CPU temperature and throttling test script, which does the following:

Begins logging temperature, throttling, and CPU frequency data every 5 seconds. Waits 2 minutes to establish a baseline reading. Runs stress-ng on all 4 Pi CPUs for 5 minutes. Waits another 2 minutes to see how the CPU temperature backs off after the stress test.

It's also important to list the details of my test environment, and the actual hardware used:

The test environment was steady 72°F (22°C), with gentle airflow provided by a fan running on low in the opposite corner of the room.

I used the exact same Raspberry Pi 4 model B with 4 GB of RAM for every test, with the same microSD card.

The Pi was plugged into an official Raspberry Pi foundation USB-C AC adaptor.

The Pi was run headless, only connected to a wired network for control via SSH (WiFi was inactive).

Upgrading the Raspberry Pi's Bootloader and Firmware

I first ran all the tests without the updated firmware, using the latest version of Raspbian Lite from the Raspberry Pi foundation's website, then I updated the firmware following the guide in this article from geeks3d.com.

Results

Cooling Option Min Temp (°C) Max temp (°C) CPU throttled? Bare Pi 50 77 NO Pi in official case (no fan) 51 82 YES Pi in official case (with fan) 39 61 NO Bare Pi with ICE tower, fan off) 31 51 NO Bare Pi with ICE tower, fan on) 29 39 NO Bare Pi — after fw update 38 69 NO Pi in official case — after fw update 43 76 NO

There are two result sets that stand out the most to me.

Firmware upgrade makes the Pi case usable

If you run the Pi 4 in the official Raspberry Pi Foundation's case, unmodified, the CPU would start throttling within a few minutes of any serious activity. This was what prompted my original blog post on the subject. But after the firmware update, the Pi 4 in an unmodified case might not be so bad. I still don't like running CPUs right up to their thermal limits all the time... but I'd be much more comfortable doing so now that the USB controller is not generating as much heat!

Here's the graph comparing the Pi in the case before (blue line) and after (green line) the firmware upgrade:

The delta is between 6-8°C, which is quite significant when you're talking about the tiny Raspberry Pi!

Active cooling and massive heatsinks make the Pi very happy

The second standout result is a graph comparing all the different cooling options I tested pre-firmware-update:

Three major things to note here:

Without any cooling assistance, the Pi can get uncomfortably close to the CPU's temperature throttling limit (~80°C), either bare or in a case. Active cooling (just a fan blowing on the Pi, no heatsink) is an order of magnitude better than nothing. The ICE Tower is aptly named.

I mean, look at the bottom graph; if you need to run the Pi wild, there is no better active cooling setup I can think of, short of liquid immersion cooling! The temperature under load is lower than the idle temperature of a bare Pi, or even a bare Pi with a fan blowing over it!

A brief review of the ICE Tower Cooling Fan

Now, you might look at the above graph and immediately jump over to the Seeed Studio shop to buy one... but you need to take into account the massive size of this cooler. It's a specialty tool, one that few really need. But it does a darn good job cooling the Pi.

The biggest issue is figuring out how to encase a Pi with this massive heat sink. Here's my hacked-together solution, using a bunch of standoffs to make some open-air frankencase:

The fan came in a little box with all the screws needed to mount it to a bare Pi 4, as well as a little thermal pad to place between the copper pipe and the Pi's CPU case. It all fit together perfectly, but after you put it on, you have to figure out the best way to get the whole rig into some sort of case.

Summary

In the end, I learned two things: