This post is now Part 1 of a series, covering the cooling for the Pi4, you may also want to read some related posts:

The Raspberry Pi Foundation released their latest version of the popular tinkers SBC, the Raspberry Pi 4 on 24th June 2019. This latest version also came with a new official Pi 4 case to house and protect the little computer.

The Raspberry Pi 4 features a 1.5GHz quad-core 64-bit ARM Cortex-A72 CPU compared to the Pi 3’s 1.4GHz quad-core 64-bit ARM Cortex-A53 CPU, with a claimed 3x increase in performance. These gains, however, have come with a few demands, increased power consumption and a resulting increase in heat which needs to be dissipated from the new board. Something the new official case design does not appear to have factored in.

Official Pi 4 Case

The new case design does away with the removable individual side panels and top pieces, instead, creating a simpler two-piece design. Those wanting to access internal connections will either need to leave the top half of the case off, get handy with a Dremel or seek an alternative enclosure.

Raspberry Pi 3 Official Case







Raspberry Pi 4 Official Case







With dual micro-HDMI 4k cable display output and a complete Desktop Kit available, this new edition does appear to be pitching itself as more than an electronics tinkers microcomputer, but as a small form factor desktop computer. Perhaps this focus on being a desktop alternative swayed the design of the new enclosure to have less removable parts, leaving the 3rd party market to continue to provide a wide range of case options.

Note, however, the Raspberry Pi 4 and the official enclosure remains a fan-less design. Sadly, this doesn’t work out well with the increase thermal load of the Pi 4.

Test Setup

After initially hitting some thermal throttling issues with the new Raspberry Pi 4, I bought an official Pi 3 case in order to compare like with like. Booting the each of the Pi’s to a desktop session using Debian 10 Buster image (Kernel 4.19.50-v71+ on the Pi 4 and 4.19.50-v7+ on the Pi 3). I used rpi-monitor to record the Pi temperatures. I used my Home Assistant instance to monitor the ambient room temperature in order to work out temperature delta over ambient. Finally, I bought a USB-C USB power meter to measure the current draw. Tests were performed using the official USB-C Raspberry Pi Power supply, connected with a suitable cable to the micro-USB interface on the Pi 3.

Idle Temperatures

Allowing the Pi to boot to a desktop session and leave it to idle. While idle the CPU power management reduces the clock speed to 600MHz. The following measurements were taken, note measurements were taken at various points in the day where the ambient temperature varied significantly. The key measurement is the increase over ambient:

Enclosed in Pi Case Pi 3 B+ Pi 4 Pi 4 (4K) CPU Temperature (°C) 53 78 77 CPU Temp. over ambient (°C) 27 49 55 Power Consumption (W) 2.5 3.6 3.9

Board in open Air Pi 3 B+ Pi 4 Pi 4 (4K) CPU Temperature (°C) 48 62 62 CPU Temp. over ambient (°C) 22 36 40

What we can see here is that the Raspberry Pi 4 in the official enclosure even when idle is very close to the thermal throttle limits. Everything metal on the board is getting hot to the touch, including the shielding cans around the Ethernet and USB ports.

Compared to the Pi 3, the new Raspberry Pi 4 is running 80% hotter and more than 100% hotter when the new 4k display support is enabled. The monitor connected to my Pi wasn’t 4k, instead, it runs at 3440×1440.

If the board is left in free air, there is a sufficient buffer between the CPU temps and the thermal throttle limits, at least whilst idling. Though the Pi 4 is 60% hotter than the Pi 3 in the same environment.

The likely cause of this increase heat output is, of course, a higher power consumption. Whilst at idle the Raspberry Pi 3 was drawing around 2.5W (~480mA @ 5.22V). The Raspberry Pi 4 draws around 3.8W (750mA @ 5.19V), an increase in power of more than 50%.

Thermal Throttling

As any Pi model approaches its thermal limits it will begin to protect itself by throttling the CPU. The user is warned this is occurring with two different icons being shown to the user if they are using a desktop.

From the command line you can check if it’s throttling using the command: vcgencmd get_throttled a none zero value indicates it’s throttling.

With the Pi 4 in an enclosure, browsing web sites (bbc.co.uk) or attempting to watch videos (YouTube) was enough to easily trip the thermal throttling, with an ambient room temperature of ~21°C.

Tips

You can monitor your temperatures by modifying your prompt. Add the following to the end of your .bashrc file:

get_cpu_temp() { cpuTemp=$( /opt/vc/bin/vcgencmd measure_temp | sed "s/[^0-9.]//g" ) echo "[$cpuTemp]" } old_PS1=$PS1 PROMPT_COMMAND='PS1="$(get_cpu_temp) $old_PS1"'

What Next

I think the Raspberry Pi foundation need to look closely at what can be done to reduce power consumption from this latest generation Raspberry Pi. A 50% increase at idle, is very high. There is talk in the forums of some upcoming USB firmware which may help but doesn’t claim to solve this issue.

As always the Raspberry Pi Community is very active, and whilst they may be happy to add some passive or active cooling. This would appear to go against the simple desktop replacement it looks like the Raspberry Pi 4 was taking a stab at.

Update: 1 July 2019

The discussions have continued on the Community Forum post, but no admission yet that new case isn’t fit for purpose. As I searched for more information I found a few other sites showing the Pi 4 power consumption:

All show a significant increase in power consumption between the Pi 3 and Pi 4. It seems that to use a Pi 4 in any enclosure some active cooling will be needed, making the official case a waste of money as it is not fit for purpose in my opinion.

Update: 2 July 2019

An alpha/beta firmware for the USB3 Host controller via the forum by jdb was released with an expected reduction in power of ~300mW. There are still issues with the firmware which are being tracked in another thread. However, power consumption in my environment was reduced to ~640mA, so 3.3W from 3.6W. This reduction of 300mW is great news, but after allowing time for the board to settle. The CPU temperature was 71°C, ~47.6°C above ambient, within the noise level of the previous measurement.

Alpha USB3 Host Firmware: vl805_fw_0137a8.bin hdmi_enable_4k=0 hdmi_enable_4k=1 Original Alpha FW Original Alpha FW CPU Temperature (°C) 78 71 77 76 CPU Temp. over ambient (°C) 49 47.6 55 53 Power Consumption (W) 3.6 3.3 3.9 3.6

The lack of ventilation of the new case still means that with reduced power consumption, it may just take longer to get as hot as before.

Using an infrared thermometer I took the following measurements:

Top of the case: 40°C

Bottom of the case: 55°C

USB3 port shielding: 60°C (hot to the touch)

CPU external temperature: 68°C (Can’t hold my finger on it for more than a second)

Update: 5 July 2019

I bought another Pi 3 official case, and with the help of a Dremel I “adjusted it” to allow my Pi 4 to fit. Per https://www.raspberrypi.org/blog/raspberry-pi-4-on-sale-now-from-35/



Dremel taken to a Pi 3 case to fit a Pi 4

With the original clock speeds, USB Firmware and 4k disabled ( HDMI_ENABLE_4K=0 ) etc. I’ve left it all day with just the one side panel open where the USB-C and HDMI ports are connected. Nothing running, just idling at the desktop.

It’s still running (@ ~75°C) ~48°C above ambient temperature, which is about the same as it was in the Pi 4 when running in the same software/firmware configuration. So the open side and the small slots between the USB and NIC ports, doesn’t appear to make a meaningful difference.

I can’t decide if this means there is hope yet for the Pi 4 case, or if the Pi 4 power/thermal requirements are going to be such that this version can’t run in any enclosure without some active cooling. I guess we need to be patient and wait for some sort of official update from the Pi Team.

For completeness, removing the top white plastic top does make a bit more of a difference, with the temperature dropping to 70°C, 42°C above ambient.