Raspberry Pi CM5 review with different cooling solutions (and camera tribulations)

The day of Raspberry Pi CM5 release, I published a mini review of the Raspberry Pi Development Kit for CM5 showing how to assemble the kit and boot Raspberry Pi OS, and I also ran sbc-bench benchmark to evaluate the performance. Sadly, the Broadcom BCM2712 CPU did throttle during the test meaning cooling was not optimal when the CM5 IO board was inside the IO Case and the Compute Module 5 was only cooled by the fan. So today, I’ll repeat the same test with other cooling solutions namely the official Raspberry Pi Cooler for CM5 (that’s a heatsink only),  and EDATEC’s CM5 active cooler similar to the active cooler for the Raspberry Pi 5, but designed for the CPU module.

But before that, I’ll do some house cleaning so to speak since last time, I booted Raspberry Pi OS from an NVMe SSD and I noticed the camera did not work. So I’ll report my experience installing Raspberry Pi OS on the eMMC flash and getting the camera to work since none of which went perfectly smoothly.

Raspberry Pi CM5 IO board cooling heatsink active cooler

Installing Raspberry Pi OS to the CM5’s eMMC flash

In theory, it should be easy to install Raspberry Pi OS to the eMMC flash of the CM5 module since it’s documented.

We need to insert a jumper to the left side of the J6 header marked “Fit jumper to disable eMMC boot” and connect a USB-C cable between the IO board and the host as shown in the photo below.

Compute Module 5 IO Board Disable eMMC boot

We then need to install and run rpiboot so that the eMMC flash appears as a USB storage device on the host.


The utility was stuck waiting for the board… and I could not see anything indicating a new USB device in the system.


After several tries, I thought maybe the rpiboot version in Ubuntu 22.04 repository was too old. So I removed it, and built the utility from source:


The output of the command now looks much better…


So I started Raspberry Pi Image, selected Raspberry Pi OS 64-bit and the storage device called “Raspberry Pi multi-function USB device” with 31.3 GB capacity that corresponds to the 32GB eMMC flash on my module.

Raspberry Pi Multi Function USB device

I could flash the image to the Raspberry Pi CM5 as I would do on a microSD card.

Raspberry Pi OS installation CM5

Once done, the OS booted properly from the eMMC flash.

Raspberry Pi OS CM5 eMMC flash

We can also check the eMMC flash partitions with lsblk:

Raspberry Pi CM5 camera support

As noted in the introduction, the Raspberry Pi Camera Module 3 did not work out of the box when connected to the CAM/DISP 0 connector.


There’s documentation to enable the camera on both CAM/DISP 0 and CAM DISP 1, but it’s somewhat incomplete and a few parts are wrong.

I followed the instructions and edited /boot/firmware/config.txt to comment out the camera_auto_detect line and add the overlay for the Raspberry Pi Camera Module 3:


A reboot solved the issue.


That was easy and no issue there.

Using a second camera is similar, but the CAM/DISP 1 interface requires us to add two jumpers on J6.

Jumpers for CAM DISP 1 connector

I decided to use the Raspberry Pi AI camera for this test. I only have one Raspberry Pi Zero camera cable, so I could not try both cameras at the same time. The AI camera is not listed in the Compute Module documentation, but we can find the required overlay on GitHub:


I also installed the imx500 package just in case and rebooted the system:


But the camera was not detected, so I tried to connect the Raspberry Pi Camera Module 3 to CAM/DISP 1 and changed the config.txt files as follows:


Same as before:


So finally, I just tested the Raspberry Pi AI camera on CAM/DISP 0 using the imx500-pi5 device tree overlay, and it could be detected.


So I’m unable to use the CAM/DISP 1 connector. Either I’ve missed something, or it’s just the second connector will only work when two cameras are attached to the CM5 IO board, and won’t work with a single camera. So just in case, I connected a Raspberry Pi Touch Display 2 to CAM/DISP 0 and the AI camera to CAM/DISP 1 with the following config:


The display works fine, but the AI camera is still not working on the second connector, although the imx500 sensor does show in the kernel log…


I’ll give up for now…

Raspberry Pi Cooler and CM5 active cooler installation

Let’s go back to the main topic, and install the coolers on the Raspberry Pi CM5.

Raspberry Pi Cooler CM5 EDATEC CM5 Active Cooler

Both the official Raspberry Pi Cooler and EDATED CM5 active cooler come in a similar package and basically the same accessories namely some screws and thick washers and three thermal pads fitted to the bottom of the heatsink.EDATEC CM5 Active Cooler

The EDATEC cooler just adds a cooling fan. Let’s start with the official cooler. First, I had to peel the film protecting the thermal pad…

Raspberry Pi Cooler CM5 thermal pads

before placing it on the CM5 module making sure it’s oriented in a way that does not interfere with the built-in antenna on the CPU module.

Raspberry Pi Cooler CM5 installation

I then placed four washers between the IO board and CM5 module and secured everything with four screws.

Raspberry Pi Cooler CM5 pads screws

Raspberry Pi CM5 IO Board heatsink installation

The procedure to install the EDATEC active cooler is exactly the same, except we also need to connect the fan’s wire.

EDATEC Active Cooler installed on Raspberry Pi CM5 IO board

Benchmark and CPU temperature with Raspberry Pi Cooler for CM5

Let’s run sbc-bench.sh benchmark while monitoring the CPU temperature with rpi-monitor in the fanless configuration with the Pi Cooler:


The ambient temperature was around 26°C during the test, and no throttling was detected. However, the CPU temperature was still fairly high under load at up to 79.3°C during CPUminer.  It never went above 68.8°C during 7-zip multi-core.

CM5 IO Board Heatsink CPU temperature chart

See how it compares to the Raspberry Pi CM5 IO case with a built-in fan and no heatsink (ambient temperature: 32°C).

RPI Monitor CPU Temperature Raspberry Pi CM5

The Raspberry Pi Cooler for CM5 should be an appropriate cooling system for most people, but if you want to operate the device at higher temperatures (35°C+) or inside an enclosure trapping heat, it might not be enough.

As a side note, I left the CM5 kit to run overnight, and the chart below shows how the ambient temperature impacts idle CPU temperature.

Raspberry Pi CM5 idle temperature overnight

It went from 46°C at 16:00 to 38°C at 6:00 with the room temperature decreasing from 27°C to 19°C (estimated based on the weather report).

Benchmark and CPU temperature with EDATEC CM5 Active cooler

Let’s now run the benchmark with the active cooler:


The ambient temperature was about 25°C. No throttling occurred, and the CPU temperature maxed out at 67.2°C in CPUminer and 63.9°C in 7-zip.

Raspberry Pi CM5 CPU Temperature active cooler

It looks nice although an issue is that the fan turns at full speed when I power off the system, and there’s a 2.3 Watts power consumption at the wall…

The final test will be with the CM5 Active cooler inside the IO case. After securing the board on the bottom part with four screws, I connected the external WiFi antenna. I also removed the fan from the top part of the case.

Raspberry Pi CM5 IO Case active cooler installation

We end with a complete system with an enclosure. The fan is not perfectly centered, but it’s good enough to get an air intake for cooling.

Raspberry Pi CM5 IO Case active cooler

Time for a file run of sbc-bench.sh:


The ambient temperature was still around 25°C. The CPU temperature went up to 68.3°C in CPUminer and 65.5°C in 7-zip. or only a couple of degrees higher than when the board is not in the enclosure.

Raspberry Pi CM5 CPU Temperature active cooler IO case

Raspberry Pi CM5 cooling solutions comparison

Let’s compare the four cooling solutions we’ve tested with the Raspberry Pi CM5.

IO case with fanRaspberry Pi CoolerEDATEC active coolerEDATEC active cooler in IO case
7-zip bechmark (MIPS)9300110201116011020
Max CPU temp (7-zip)85.9°C68.8°C63.9°C65.5°C
Max CPU temp (CPUminer)86.5°C79.3°C67.2°C68.3°C
CPU throttlingYesNoNoNo
Power consumption (off)2.5W1.6W2.3W2.3W
Power consumption (idle)2.3W2.3W2.4W2.4W

CPU throttling only occurred with the IO case with a fan (and not heatsink), and it does not occur with either the Raspberry Pi Cooler for CM5 or the EDATEC CM5 active cooler with an ambient temperature of 25-26°C. Most people will do fine with passive cooling, but if your system is designed to run at higher ambient temperatures (35°C+) or you want to overclock your CM5, the active cooler may bring some benefits.

Turning off the fan when the CM5 IO board is turned off

You’ll also notice a crazy high power off consumption for actively-cooled systems, and that’s because the fan is rotating at full speed when the system is shut down. Raspberry Pi first explained that “Setting the EEPROM “POWER_OFF_ON_HALT=0″ setting should fix the fan at the expense of a bit of power consumption”. I was about to try, but after reading more of that thread, it does not work. Raspberry Pi released a fix on December 19. The new pieeprom firmware is not available through apt yet, so we’ll have to download it from Github and install it as follows:


Here’s the output from the command:


I had planned to change the EEPROM configuration too, but no need, since POWER_OFF_ON_HALT was already set to zero:


I did not work. While the new firmware version is used,  it turns out it’s because the command I used to flash the firmware used the config from the firmware…


So I had to change the config with the following command line and add “POWER_OFF_ON_HALT=0”:


We need one more reboot. Let’s check the bootloader version and config file once last time:


What’s going on here? It looks like the firmware reverted to the old one. It’s usually because there’s a problem with the new bootloader, so it’s using the recovery image, but it looks to be random here… So I flashed the image again (without using its config), and rebooted. This time everything fell in place, so we are ready for a shutdown:


The fan did turn off, and the power consumption is 1.6 Watts when the system is turned off. If you want to further lower the power consumption when powered off you’ll need to set WAKE_ON_GPIO=0 like I did with the Raspberry Pi 5 2GB. A few HAT may be incompatible with that change…

I’d like to thank Raspberry Pi for sending the Raspberry Pi Development Kit for CM5 for review, and EDATEC for sending the CM5 active cooler providing a better cooling solution. The devkit can be purchased for $130 from your favorite distributor, and the CM5 active cooler is listed on Digikey for less than $7, but is currently out of stock.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
0 Comments
oldest
newest
Boardcon Rockchip RK3588S SBC with 8K, WiFI 6, 4G LTE, NVME SSD, HDMI 2.1...