I was very excited about the Raspberry Pi 4, especially when I learned that it was available with 4GB of RAM - perfect for running a Kubernetes cluster using software like k3s.io and kubeadm. There's a number of options I've tried to add cooling to my Raspberry Pi and I thought I'd list them here, how effective they are, and what the cost of each option is. I'll also tell you about a firmware update that may shave off a degree or two.

Observing the temperature

Here's a very rudimentary way to observe the temperature of the RPi

while [ true ] ; do sleep 2 && sudo sudo /opt/vc/bin/vcgencmd measure_temp ; done temp=32.0'C temp=33.0'C temp=31.0'C

If you want to check how idle your system is, run uptime or htop and look at the values returned, they should be very low. If they are much over 0.1, then checkout what's eating up your CPU cycles with htop and sort by CPU usage.

Cooling off

Let's look at a few of the options for cooling off. If you think I've missed something, then please reach out over Twitter.

The Pimoroni heatsink

Pimoroni have a very cheap heatsink which you can order when you purchase your RPi. It looks like this, and can shave off a degree or two at idle.

I just got a TLS certificate for my RPi4 over my home network, connected to tethered WiFi and it's serving the same site with HTTPS. Some magic with cert-manager, k3s, and inlets-pro.



Find out more in San Diego 😎https://t.co/ioYDerQ52u pic.twitter.com/Fxes5KrW8V — Alex Ellis (@alexellisuk) November 13, 2019

The heat will be spread out, but not moved away from the device, so once it's hot, it will likely radiate that heat around the board.

You can't argue with 2.40 GBP - https://shop.pimoroni.com/products/raspberry-pi-4-heatsink

Pimoroni fan shim

This option does apply a decent amount of cooling at idle and under load, it also moves the heat away from the board unlike the heatsink.

I found the assembly very fiddly, and was worried about breaking its attachments, once attached it worked fine, and I even tried it with the custom-designed case.

Checkout a detailed thermal overview from Pimoroni on the fan shim vs. the heatsink.

Check it out from 9.60 GBP - https://shop.pimoroni.com/products/fan-shim

Heatsink case

This is not the most effective option, we'll see that next, but it is good at reducing the overall heat. It looks fantastic, and is practical on the go because it is also a case.

All kitted-out for my @rejektsio talk with this great case and heatsink for my RPi4 from @pimoroni



See you Saturday! @inletsdev pic.twitter.com/ve8lQi1bGp — Alex Ellis (@alexellisuk) November 14, 2019

I feel it may be rather overpriced, but at least it comes in several colours. It's solid, and under load gets warm all over.

Check it out from 12 GBP - https://shop.pimoroni.com/products/aluminium-heatsink-case-for-raspberry-pi-4?variant=29430673178707

ICE cooling tower

Here's my top pick, which can get a mostly idle k3s cluster down to 31c in no time. It lights up my whole office with blue light and has a subtle, but constant hum.

Check it out from 19.90 USD - https://www.seeedstudio.com/ICE-Tower-CPU-Cooling-Fan-for-Raspberry-pi-Support-Pi-4-p-4097.html

After attaching this fan and heatsink, you cannot use a case of any form or a base-plate. It probably is best left in once place for that reason. I would like to see Seeed Studio come up with something to place the RPi on.

You can update the RPi's firmware as detailed here, and it may shed a few degrees depending on what cooling solution you're already using.

Note: you follow these instructions at your own risk.

Here's what you need to do:

Update

sudo apt update && sudo apt upgrade -qy --no-install-recommends

Reboot sudo reboot (don't skip this)

Add the rpi-eeprom-update package

sudo apt install rpi-eeprom -y

Update

sudo rpi-eeprom-update

You should see output like "update required"

Reboot sudo reboot (don't skip this)

Updating didn't appear to cause an issues for Docker or k3s, but I wouldn't recommend running rpi-update since that has usually caused issues for containers.

Wrapping up

I've listed the ways I've tried to cool my RPi and given you some links where you can go and purchase your own solutions. The lowest temperature I observed was with the combination of the ICE Tower fan and the firmware update, after stopping k3s and containerd, the temperature got down to 28c.

I prefer the heatsink case for its balance of form and function, here's a graph from Pimoroni showing that it may be enough to stop the RPi from applying CPU throttling in most circumstances.

This graph should give you a decent picture. The passive cooling from these cases is enough to stop your Pi 4’s CPU throttling in most conditions. pic.twitter.com/qBQgG79Xum — pimoroni (@pimoroni) November 15, 2019

Follow me on Twitter @alexellisuk to make sure you never miss a post.

Here's some other related content you may like with your new cooler, RPi:

See also: new Official: Thermal testing Raspberry Pi 4