Cooling Options for the Hot Raspberry Pi 4

As previously covered the latest Raspberry Pi 4 is running too hot, such that it can’t even be used in the official Raspberry Pi 4 case without hitting thermal throttling, even when idle.

Update 4 September 2019: I’ve performed a larger series of tests with various enclosures, you may want to read those newer posts.

There is some updated USB 3.0 firmware which shows some positive signs of reducing power consumption, however, there remain issues with the alpha firmware and the reduction in power consumption still doesn’t appear to be sufficient.

It’s time to experiment to determine what does and doesn’t help, from a physical perspective only. The original fully enclosed Pi 4 had CPU temperatures at 78°C, 49°C above ambient.

Pi 3 Case – one side panel removed (-1°C)

Raspberry Pi 4 in a modified Raspberry Pi 3 case - side panel removed

As noted in an update to the original post, I took a Dremel to an official Pi 3 case in order to accommodate the redesigned Pi 4. With all the panels re-installed, less the side panel where the power and monitor connectors are now different. This configuration reduced the CPU temperature by just 1°C to 75°C, 48°C above ambient.

Pi 3 Case – one side and top panel removed (-7°C)

Raspberry Pi 4 in a modified Raspberry Pi 3 case - top cover removed

Continuing with Pi 3 and removing the top cover, allowed heat to escape from the enclosure with resultant temperatures 7°C lower than the original Pi 4 fully enclosed.

CPU Heatsink (0°C)

With the Pi 4 still housed in the Pi 3 case with the top and side cover removed, a small (14 x 14 x 5mm) aluminium heatsink I had lying around was added. This resulted in an immediate 7°C drop in the CPU temperature, but this was short-lived as the heat spread through the heatsink the CPU returned to the same level as before the heatsink had been installed.

The increased surface area doesn’t help when there isn’t any airflow. With airflow, there should be some benefit, and increased thermal mass would help deal with spikes in temperature.

Temperature graph - Raspberry Pi 4 in modified Pi 3 case

I’m not sure if the larger (40 x 30 x 5mm) Heatsink from Pimoroni with a greater surface area might perform significantly better. This larger heatsink design also covers the WiFi module and partially covers the DDR4 memory chip. In an enclosure, I’d expect it to reach the same temperature as the CPU again due to the lack of convection. A Heatsink and Fan would provide should help, but the Fan is likely to be more significant gain than the heatsink, questioning the value of adding a heatsink at all.

Pimoroni Fan Shim

Temperature graph - Raspberry Pi 4 in official case with and without the Pimoroni Fan Shim

Case Enclosed (-14.4°C)

I purchased the small 30mm Fan Shim from Pimoroni to try and provide some active cooling. Installing the fan but keeping the Pi 4 fully enclosed in the official Raspberry Pi 4 case, results in the system running with a CPU temperature of 61°C, 34.6°C above ambient.

Case Open (-38.5°C)

Raspberry Pi 4 in a Raspberry Pi 4 case - top cover removed with Pimorni Fan Shim

With the top white section of the official Raspberry Pi 4 case removed the Fan Shim can clearly cool things significantly better. Venting the warm air to the surrounding environment, allowing the CPU temperature to drop to 37°C, just 10.5°C above ambient, a reduction of 38.5°C above ambient.

Fan Shim Service

There is software available to control the Fan Shim so that the fan doesn’t need to run all the time. This is explained in the tutorial for Fan Shim, where you can set a target temperature. As the idle temperature when enclosed is higher than the suggested target temperature, this feature doesn’t make sense to test when fully enclosed. When the board is open to the air, then the fan does correctly turn on and off to keep the board within the desired range.

Raspberry Pi PoE HAT (-14.9°C)

Raspberry Pi 4 in a Raspberry Pi 4 case - top cover removed with official POE HAT

I had an original Raspberry Pi (R1) PoE HAT from my previous investigation into power supply problems with the PoE HAT. This is the unmodified version, and only used to provide cooling, power was still provided via the USB-C connector, and not PoE.

Temperature graph - Raspberry Pi 4 with POE HAT, case open and closed

The Fan on the PoE HAT is controlled by the Pi, turning on at 50°C and off again at 45°C. With the Pi 4 top half of the case removed and continuing to sit idle, the PoE HAT is able to maintain the temperature within that range, with the fan turning on and off about every 30 seconds.

Enclosing the Pi4 and PoE HAT fully in the official Pi 4 case, the 25mm fan on the PoE HAT runs continuously as it can’t cool the board to below the 45°C threshold. The CPU temperature stabilised at 59°C, 34.1°C above ambient.

The 25mm fan on my original PoE HAT is significantly louder than the slightly larger 30mm fan used on the Fan Shim. There is only 0.5°C between the two enclosed fan-based results. Not likely to be significant, and more likely to be within the noise of the test measurements.

Pibow Coupé 4 Case (-10.4°C)

At the time of writing 3rd party enclosures designed for the Raspberry Pi 4 are limited, the Pibow Coupé 4 Ninja case is one of the few available. The case doesn’t completely enclose the board, leaving many components exposed, so whilst more covered than a bare board, it’s not the fully enclosed solution that might be needed for many scenarios.

Raspberry Pi 4 in a Pimoroni Pibow Coupé 4 case

Note: During deconstruction of the Coupé case to test the next scenario, layer number 3 snapped. Based on other feedback/posts for this case, it does appear that this layer is very fragile. So take great care assembling or disassembling the Coupé case should you get one.

A new layer 3 was provided after contacting the Pimoroni support team. They are aware this layer is very fragile and indicated that the case isn’t really designed for frequent assembly/disassembly, so something to keep in mind.

Temperature graph - Raspberry Pi 4 in Pibow Coupé 4 case with and without the Fan Shim

With the heatsink (not doing much) still in situ and the board mounted in the coupé case. The CPU temperature settled to 63°C, 38.6°C above ambient.

Pibow Coupé 4 Case + Fan Shim (-37.4°C)

Raspberry Pi 4 in a Pimoroni Pibow Coupé 4 case with Pimoroni Fan Shim - Top down view

Adding the Pimoroni Fan Shim to the Pi 4 secured in the Pibow Coupé case sees CPU temperatures to drop significantly to 36°C, 11.6°C above ambient.

Raspberry Pi 4 in a Pimoroni Pibow Coupé 4 case with Pimoroni Fan Shim - side view

This configuration performs similarly to the Pi 4 being housed in the official case, but without the top cover. That said, the ambient temperature has fallen since that test which may be a factor. It could also be that the Coupé case does cover some of the other components, which may be why it’s less able to dissipate as quite much heat.

Raspberry Pi 4 Board: Not enclosed (-15°C)

Removing the Raspberry Pi 4 from the case and leaving the board bare in the open air, with the small heatsink still attached to the CPU. The CPU reached 58°C, 34°C above ambient.

Temperature graph - Raspberry Pi 4 bare board temperature with and without the Fan Shim

Adding the Fan Shim (-38.9°C)

Raspberry Pi 4 bare board with heatsink and Pimoroni Fan Shim

With the Fan Shim installed, the CPU temperature dropped to 34°C, 10.1°C above ambient.


Temperature graph - Raspberry Pi 4 various results showing high idle temperatures unless actively cooled

Remember all tests were performed whilst the Raspberry Pi 4 was idle, just sitting booted to a desktop. Whilst idle the CPU clock speed drops to 600Mhz, a fraction of the full speed of the system.

The data above shows clearly that the Raspberry Pi 4 needs active (Fan) cooling when used in any full enclosure, to bring the idle temperatures down sufficiently to provide the headroom necessary for running actual workloads.

Leaving the top lid off from the Official Raspberry Pi 4 case, or using a partial enclosure provides a lower CPU temperature than a fully enclosed case. Though if you are willing to leave the board exposed, leaving it fully exposed would be my recommendation, since it provides the lowest temperature without active cooling.

Parts Tested

Note, Amazon links are affiliate links, meaning I may make a small amount of money in return from you following the link and buying the product

30 thoughts on “Cooling Options for the Hot Raspberry Pi 4

  • As you say, leave the board exposed.

    Mount it on edge (for the best convection cooling)

    Mount a small heat sink (The PiHut 30x30x10mm works well) with the fins aligned vertically.

    Make sure the thermal tape is optimal.

    Arranged like that, throttling cannot happen.

    • > Arranged like that, throttling cannot happen.

      Sounds like a challenge!! 😉

  • I wonder why none of the solutions attempt to cool the underside of the board. There will be a fair amount of heat transferred to the bottom.
    How about a thermal pad and heatsink, or even a second fan?

    • Ian, with the top side actively cooled, further cooling from the bottom would appear unnecessary. The Pibow case does raise the height of the Pi from the surface and includes some ventilation holes there.

  • I have used a geekpi extreme cooling fan and heatsink which I modified by chopping some the heat sink to make room for the repositioned Ethernet port and filing flat the base.
    Im achieving 54c while the pi is running at full speed with CPU burn. After 20mins.
    Over locked to 1750mhz GPU 600mhz I get 67c while it’s running at max speed. For 30mins with no down clocks.

    • Nice bit of handiwork to get it to fit the Pi 4. My preference is for passive cooling as was achievable easily with the Pi 3. Hopefully, the planned USB firmware is just the first of many improvements to reduce power usage and thus heat output.

      • Those results are with the new USB firmware, to be honest it only made about 2-3c difference, but once the board is running full tilt for a sustained period it doesn’t make much difference.
        There is a link on the official RPi forum for the firmware.
        When running in passive mode, with the fan unplugged on overclocked speeds I getting 80-81c.
        When it hits 81 it down locks to 1.1669ghz then goes back to 1.75ghz when at 80c or under.

        If you can keep the board under 80c it won’t downclock.

    • Hi do you have a image of it i am interested to try it, thz

  • how much noise does the fan shim make, how would you characterize it ?

    • I’ll see if I can grab a video of the Pi shim vs the PoE HAT, sometime in the next few days.

  • How best to cool the following situation? A Pi 4 attached to a 7″ official screen, with a HAT fitted. The 7″ screen is mounted vertically, which means the Pi is also mounted vertically, which is good, however because of the orientation of the screen the HAT header is at the top, which will restrict convection. It’s in a fairly large case (a 17″ x 4U case 300mm deep) with ventilation slots at the top and bottom, so hot air build-up shouldn’t be too bad. I have a 35x35x10 heat sink I’m planning to fit. I would rather not add a fan as this is a hi-fi application: is it worth adding one of those stand-off headers with extra-long pins (and appropriate length PCB spacers) to stand the HAT further off from the Pi and create a bit of free air space, or will convected air just flow out round the sides of the header easily enough?

    • I’d not recommend using the Pi4 for anything that where active cooling isn’t an option, until the raspberry Pi team have done something to reduce power usage and therefore heat. The alpha USB3 firmware is a step in the right direction, but probably not enough. So unless you have a pressing need, stick with a Pi3.

  • Hi
    I have linked some pictures of my modification, excuse the pictures they are a bit dark and where taken on my phone.

    Some of the heat-sink needed to be cut off for the Ethernet and the base needed to be flattened as originally there was a square that juts out of the base.
    I also channelled out the hole for the fan wires as that fouls the cpu

    I bought the heatsink and fan for under £10 from amazon and it comes with a copper pad which stuck to the ram chip with the supplied thermal tape.
    The heatsink is attached to the CPU with a thermal pad also in the box.

  • Very interesting, thank you

    • I think two fans are significant overkill. I’m awaiting delivery of a couple of cases and will create another new post with my experience those.

  • I’d be really interested to see these tested, especially the fanless version:
    I was pleased to see the offer tested alternatives to the heat transfer pads provided too.

    We should also find someone to narrow down some physical laws and invent fans that are actually powered by the temperature differential between the case/PU they are connected to and the air. Ventilation would be essential of course. It would be nice to have fans that don’t compromise the GPIO and leave an ugly wire loop as standard.

    • I’ve the results from the fanless version just completing the test with the twin fan version now. Expect to see a follow up post soon.

    • Might be useful to test if this case affects the Wifi or BT range. Should not, but who knows.

      • It might, but would need to investigate how practical that would be to get reliable measurements. It might also be quite disruptive to my family if I need to reduce the house to using fewer AP in order to increase the distance from the Pi to the nearest AP, which right now is about 0.5m away 😉

      • Ok I’ve done some quick tests and the armour heatsink style case does significantly impact WiFi signal strength. I’ve a couple of other cases expected in the next few days so will create a post to cove wifi next week.

  • It’s better if there are more test results for 100% CPU loading.

  • Hi,
    I’m using is one, as it has PWM FAN and adjust FAN speed to the temperature, combined with RTC. For me is perfect. Not using any GPIO, with internal sensor, if needed use Daemons


  • Really interesting article backed up by some some solid work! I have equipped my RP4 with a small Noctua 5V fan, and it works really well. When searching for some sw to control the fan speed, I only found Python based solutions. Python is absolutely fine, get’s the job done, but running a full Python interpreter (with a rather largish system imprint) for such a mundane task seems a bit heavy-handed. So I have written an alternative in C, with a very small system footprint (in terms of cpu cycles and ram). It also hooks nicely into systemd (e.g. for automatic start at boot time). It can be found here:


  • Hi martin, great article! I wonder how you managed to install the Pimoroni fan shim hardware on top of the heatsink? (as indicated by one of the pictures) as on the shopping page they clearly says it is “Not heatsink-compatible!”


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.