Pi 4 heat and the new Flirc case

Posted on July 29, 2019

I was one of the many that made the mistake of buying the official case with the Pi 4 on launch day (I also went for the 2GB version instead of the 4GB but we won't talk about that). This case is not really fit for purpose as it is completely enclosed and leads to the Pi 4 getting uncomfortably hot.

The Pi 4 runs very hot at the best of times anyway so an enclosed plastic case is definitely not what you need. According to some of the forums active cooling is required if you are going to be carrying out heavy workloads on the Pi 4 for long periods of time but one of the main things that I like about the Pis is that they don't need fans. This is where I was hoping the new Flirc case would solve all my problems as this case acts as a large heatsink and dissipates the heat very effectively.

A few months ago, I purchased the previous generation Flirc case for the Pi 3b+ and have been very impressed with how it has controlled the temperatures of the 3b+ (back then I thought the 3b+ ran hot but the Pi 4 is in a new league of its own now). This led me to hope that the new Flirc case for the Pi 4 could help me avoid an active cooling solution.

There are a number of Pis scattered around my apartment - all doing different jobs. The job I had in mind for the Pi 4 was to act as a gitlab runner for building and testing a number of different development projects that I have ongoing. This would mean a fairly constant workload when CI pipelines are running which could last for up to an hour at a time.

The new Flirc case arrived today so I said I'd test it out and see if it can handle the heat from the Pi 4. I have a quick little script that runs a stress workload against the Pi and then checks the temperature of both the CPU and GPU of the Pi every 2 minute.

#!/bin/bash while : do echo "$(date) @ $(hostname)" echo "Performing new stress testing cycle..." stress --cpu 20 --io 20 --vm 6 --vm-bytes 25M --timeout 120s cpu=$( $(/opt/vc/bin/vcgencmd measure_temp)" echo "CPU => $((cpu/1000))'C" echo "Timeout..." sleep 3 done

To be honest, I was shocked at how well the Flirc case managed the heat from the Pi 4. While running the stress test in the Flirc case the temperature of the CPU only ever reached 61 degress celsius compared to 84 degrees celsius in the official case. The Flirc case was very warm while the test was running which showed that it was dissipating the heat. It looks like I've found my cooling solution for now anyway. We'll see how it goes over the next few months.