The Raspberry Pi 4 might not need a fan anymore

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.

Raspberry Pi 4 cooling options including ICE tower cooling fan and a case mod fan
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:

  1. Seeed Studio/S2Pi sent me one of their ICE Tower CPU Cooling Fans, and asked me to review it.
  2. 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:

  1. Begins logging temperature, throttling, and CPU frequency data every 5 seconds.
  2. Waits 2 minutes to establish a baseline reading.
  3. Runs stress-ng on all 4 Pi CPUs for 5 minutes.
  4. 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:

Raspberry Pi 4 in case - comparison of temperature under load before and after firmware update

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:

Raspberry Pi 4 comparison of different cooling methods

Three major things to note here:

  1. 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.
  2. Active cooling (just a fan blowing on the Pi, no heatsink) is an order of magnitude better than nothing.
  3. 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:

Raspberry Pi 4 inside hacky frankencase with the ICE Tower cooling fan

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:

  1. The firmware update makes it so you don't need a fan to use a Raspberry Pi 4 in a typical case anymore. This is great!
  2. The ICE Tower Cooling Fan lives up to its name; it cools the Pi 4 extremely well, but it is massive and requires some thought as to how to encase the Pi if you're considering using it in the real world.

Comments

Interesting, thank you! Now the question is... does the firmware upgrade has an impact on performance? As you said, we are dealing with science, not magic. I'm still amazed how firmwares always solve every problem, it seems so easy.

Great article! Thanks for your tests!

The soc can easily run at 125, but is artificially throttled at 85 to ensure people don't burn their fingers or suffer reduced lifetimes of the chip. So not quite right to say thermal limit, temperature limit would be a better phrase.

You're correct; at ~80°C the case on the CPU is already pretty hot to the touch. One thing I'd caution on, though; while the CPU chip itself is rated much higher, other components might not fare as well or might have some reliability issues if run above 80°C for a long time (especially parts like the microSD card).

After some discussion elsewhere, a few people recommended the Flirc case for Raspberry Pi 4 (which basically takes the idea of a massive heatsink, like the ICE Tower, and spreads it into an aluminum case instead of a vertical grid of fins), and so I just ordered one and plan on updating this post with the results of the same testing to see how it compares to the passive cooling of the ICE Tower.

You mention "passive cooling of the ICE Tower" - but it has a fan? How about with and without fan? Also - what about adding a heatsink to the Pi (passive) - in a "vented" case and "bare"? That is, where would a heatsink and natural convection fall?

Passive with the ICE Tower in this article == using the ICE Tower as a heatsink, with the fan disconnected (off).

I'm going to also be testing the Flirc case soon, to see how a case-as-heatsink works. I don't have any other cases besides a few open-side cases (which do okay with natural convection) and the official Pi Foundation case (which doesn't allow for any convection at all, it's like a mini-oven :).

I have the Flirc case for my 4GB RPi-4 and running LibreELEC with a 1080p TV screen (so no 4K content yet), wired LAN plus a new gen Flirc IR receiver, and the whole case does get very warm to the touch so it's obviously pulling out the heat. I leave it running 24/7.

At idle it sits at 60C and when watching content it goes up to about 66-68C - they recently added a firmware function to the Kodi build so I know it's also got the latest EEPROM.

It will be interesting to see how you tests compare.

I wonder if you could also test the cheap aluminum heatsinks that come in some Pi kits. They used to be more than enough for the Pi 2 and Pi 3 (at least not overclocked). But those also ran fine without any heatsinks, so I'd like to know if they help at all for the Pi4

I made some other performance tests with the Raspberry Pi 4B: new and old firmware / active and passive cooling:

The performance also reduces if the SoC is under ~40°C, and with the old eeprom firmware a small heatsink was also enough.

https://lemariva.com/blog/2019/11/raspberry-pi-4b-sometimes-its-cool-to-...

What if you want to use various hats on a pi? Is that no longer possible with the Ice Tower?

Jeff.

Enjoyed the article. Much appreciated. VK2TEQ