Cytron Heatsink Review for Raspberry Pi4 with Stressberry

The Raspberry Pi4 had some thermal issues in the past and people were advised to add at least a heatsink when running CPU intensive workloads. A firmware update has improved the situation to a great extend, but decided to attach a heatsink with a fan, just to be sure.

So let's see if the heatsink+fan from Cytron is actually doing anything good on the Raspi. So I wanted to gather stats for the following situations
  • No heatsink
  • Heatsink with fans turned of
  • Heatsink with fans turned on.
And I wanted then to look nice make sure that they also capture the temperature before and after the stress test. That's why I used Stressberry and loosely followed the tutorial from Core Eletronics.

But first things first: Update your system
sudo apt update sudo apt full-upgrade

And install Stressberry
sudo apt install stress pip3 install stressberry --user

Detour #1

Should the above command fail with an error similar to the one below, your are missing some packages to be able to build from source
src/checkdep_freetype2.c:3:6: error: #error "FreeType version 2.3 or higher is required. You may set the MPLLOCALFREETYPE environment variable to 1 to let Matplotlib download it."        3 |     #error "FreeType version 2.3 or higher is required. \          |      ^~~~~    src/checkdep_freetype2.c:10:10: error: #include expects "FILENAME" or <FILENAME>       10 | #include FT_FREETYPE_H          |          ^~~~~~~~~~~~~    src/checkdep_freetype2.c:15:9: note: #pragma message: Compiling with FreeType version FREETYPE_MAJOR.FREETYPE_MINOR.FREETYPE_PATCH.       15 | #pragma message("Compiling with FreeType version " \          |         ^~~~~~~    src/checkdep_freetype2.c:18:4: error: #error "FreeType version 2.3 or higher is required. You may set the MPLLOCALFREETYPE environment variable to 1 to let Matplotlib download it."       18 |   #error "FreeType version 2.3 or higher is required. \          |    ^~~~~    error: command 'aarch64-linux-gnu-gcc' failed with exit status 1

The packages that I had to install were libfreetype6-dev and pkg-config

Detour #2

The beauty of a stripped down system, like Ubuntu Core for the Raspberry, can sometimes also be a bit annoying. Unlike the official distribution, it does not contain the very binaries for the raspberry, like for instance the command vcgencmd. That very command is used by Stressberry to capture the temperature.

Installing the missing packages requires you to, add an additional repository
sudo add-apt-repository ppa:ubuntu-raspi2/ppa

and then revert the release to an older version of Ubuntu, because these binaries are not yet available in the repository for the newest version. Open the file /etc/apt/sources.list.d/ubuntu-raspi2-ubuntu-ppa-focal.list and change the edition from focal to bionic.
More details can be found in the Raspberry Pi Forum.

Test Results

I did run the tests with a pre-test and cool down phase of both 5mins. You can easily see this phases as the CPU does not always run at 100% speed as the load was not heavy on the system.

Without Heatsink

The first test was without any heatsink added. The Pi was in horizontal position to provide good air flow and the room temperature was around 24C.

CPU Temperature/Frequency without heatsink

The stress test utilizes all 4 cores for 30mins. As you can see, the max temperature is around 73C. Also, there is something interesting going on after 15mins of full load, I don't really know what, but it does not throttle, otherwise the CPU frequency would be lower at this point.

With Heatsink but no Fan

Next test was with the applied heatsink but the Fans were not connected. I would expect some improvement over the first text, as the heat can disperse over a larger surface with the heatsink. 

CPU Temperature/Frequency with heatsink (no fan)

In fact, the average temperature was a bit less then without the heatsink but there was not that much of a difference.

With Heatsink and Fans turned on

Connecting the fan to the Raspberry is a simple task, just follow the instructions. They are super quiet. the only think you might hear is some occasional crackling while they run. I heard it when I was around 50cm close and the aircon was turned off.

CPU Temperature/Frequency with heatsink and fans

The results speak for themselves. The average temperature is at least 16C lower than before. Also the increase of temperature is much slower, which means we have even more margin if the system is at half utilized. The cooldown period is obviously faster as well.

Update: Running the Raspberry Pi in a cabinet

A week ago, I placed the Raspberry Pi at the dedicated spot in the drawer, next to all the other networking and electrical equipment in my house. The surrounding temperature is quite a bit higher, about 29C. I run 3 additional tests to see if the heatsink/fan combo is able to deal with that. As shown below, it does it's job quite well I guess.

Test #1
Test #2
Test #3


Popular posts from this blog

Home Assistant in Docker with Nginx and Let's Encrypt on Raspberry Pi

Use Bodmer TFT_eSPI Library with PlatformIO

Migrating from Arduino IDE to Visual Studio Code to PlatformIO