Level Up Your Homelab With The Raspberry Pi CM4 Compute Blade

Today we’re going to be taking a look at the Compute Blade, a rack-mountable PoE (Power over Ethernet) carrier board for a Raspberry Pi Compute Module 4. They are designed to allow you to stack up to 20 blades, each carrying a Pi CM4 module, into 1U of 19″ rack space. So you’re able to create a low-profile cluster with up to 80 ARM cores, 160GB of RAM and 160TB of NVMe storage.

Raspberry Pi Compute Blade

The Compute Blade has been designed by Ivan from Uptime Labs, who began working on the concept in 2020 and has now launched the Blade through a Kickstarter campaign which is due to end a little before mid-April.

Since the original version, Ivan has been through 8 iterations, taking in feedback from the community and adapting the design to suit.

While a 20-node cluster is probably overkill for most people in a home environment, a 4-node cluster in his 3D printable enclosure with two 40mm fans on the back is perfect for a home lab.

Compute Blade 3D Printable Enclosure

Here’s my video review of the Compute Blade, read on for the written review:

Purchase Links

The Compute Blade is not yet available to buy through traditional channels but is available through the Uptime Labs Kickstarter campaign. I’ll update the links below when the product is available to purchase through a web store after funding.

Equipment Used

First Look At The Compute Blade

Taking a look at the board from end to end, at the front we’ve got one of two addressable RGB LEDs which are user-programmable. Alongside that is a Gigabit Ethernet port which supports PoE or power over Ethernet at up to 30W.

We’ve got a programmable button, a second RGB LED and three other status LEDs for SSD, power and activity.

Alongside them is a UART port and a selector with hardware switchable WiFi, Bluetooth and EEPROM write protection.

Dip Switch Selector For WiFi, Bluetooth and EEPROM Write Protection

We’ve then got a full-size HDMI port, with the CM4 module area and sockets alongside it. Underneath the CM4 module is a TPM 2.0 security chip that allows you to secure-boot your Pi. This is strategically covered by the CM4 module for added security.

Infineon TPM 2.0 Security Chip

Next to the CM4 module area is the PoE power converter which steps the PoE voltage down to 5.1V.

PoE Voltage Converter

Above that is a microSD card slot and a USB A port, and next to those is an M.2 M-key slot which supports NVMe SSDs up to 22110.

M.2 M-Key Port For NVME Drive

Below that is an expansion port for some optional add-ons like a real-time clock module or a Zymbit hardware security module that Ivan has been working on.

Expansion Module Port

Then we’ve got a USB C port and boot button which can be used to flash the boot loader on the CM4 module and finally there is a fan port on the back. The fan port is designed to be used with his fan modules that the blade will slide to plug into.

On the back of the blade, we’ve just got some manufacturing details on the PCB silkscreen.

Raspberry Pi Computer Blade Back

Preparing The Compute Blade For First Boot

To get the Blade ready to boot up, we need to install a Raspberry Pi CM4 module and a boot drive. I’m using a CM4 Lite module, meaning that it doesn’t have onboard eMMC storage and this one also doesn’t have onboard WiFi or Bluetooth. This is perfect for the blade since we’re going to be booting from the NVMe drive in any case and we’re going to be using the Ethernet port on the front.

Raspberry Pi Compute Module 4

For the boot drive, I’m using a 1TB NVMe drive which I’ve preloaded with Raspberry Pi OS Lite. I pre-configured the operating system to enable SSH and I added myself as a user. You can also boot from a microSD card plugged into the slot on the blade if you don’t want to use an NVMe drive, or if you want to use the NVMe drive as a storage drive only, but I prefer the reliability of using it as the boot drive.

Crucial 1TB NVME SSD

We can then install this awesome custom red heat sink over the CM4 module which has cooling pads for the CPU and RAM chips.

Putting The Compute Blade Into A Ventilated Enclosure

Before I power up the Blade, I’m going to make up an enclosure to hold it along with a 40mm fan at the back. This will be similar to Ivan’s 3D printable design for 4 blades but this one will be for one or two Blades and it’ll be made out of clear laser-cut acrylic.

Compute Blade 3D Printable Enclosure

One of the primary drivers behind the Blades design is that Ivan wanted to make them easy to swap out or replace if there is an issue with one. You can simply turn off power to the device and then slide it out of the chassis without affecting the surrounding blades or having to remove the whole rack – so we’re going to retain that in this enclosure design.

Laser Cutting A Clear Acrylic Enclosure

I laser cut the enclosure components from 2mm clear acrylic and glued them together along the edges.

I’m using the same Noctua fan that the Uptime Labs fan module uses but I’m just going to mount this directly onto the back of the enclosure.

Noctua PWM Fan For Back Of Blade

I’ll plug it into 5V and GND, so it’ll be running at full speed all the time. The Blade does have two of the Pi’s GPIO pins available on the fan connector, so you can implement PWM control if you’d like to, that way the Blade or cluster of Blades will run a lot quieter.

Plugging Fan Into Compute Blade

With that done, let’s boot up the Blade and try running some tests on it.

Blade In Enclosure With Noctua Fan

Compute Blade First Boot

If you’re using an older CM4 module like I am, then it probably has a bootloader version on it that doesn’t support booting from the NVMe drive. You’ll need to update the boot loader otherwise your Pi will just get stuck saying that no SD Card or Network boot location was found.

CM4 modules shipped out after July 2021 should have the new boot loader installed, but you can see this one’s boot loader version is from February 2021.

Fortunately, this is quite easy to do right on the Compute Blade, you just need to boot it up with the button next to the USB port pressed, then connect it to another computer using a USB C cable (I used another Raspberry Pi) and then follow a few command prompts to reflash the boot loader.

After that, the Compute Blade should boot up from the NVMe drive and will then be accessible on your network.

Compute Blade Booting Up

I’m using a second Pi to SSH into the Compute Blade to do some testing.

If we use the command lsblk, we can see our connected NVME drive.

NVME Drive Recognised By Pi CM4 Module

Running A Drive Speed Test

With the Compute Blade now booted, lets install hdparm to run a drive speed test.

sudo apt-get install hdparm

We can run the test by entering this command with the drive name that showed up when we ran lsblk.

sudo hdparm -tT /dev/nvme0n1
Testing Raspberry Pi NVME Drive Speed

I’m going to run this test three times as it might change a little each time we run the test.

So we get a cached sequential read speed of a little over 1000 MB/s and a sequential read speed a little over 375 MB/sec. This is much lower than what the drive is capable of but it isn’t a limitation of the Blade, but actually of the Pi CM4 module which only has a PCIe Gen 2 x1 bus available.

Thermal Testing The Compute Blade

Next, let’s try running some thermal tests.

I’ll do two tests on the Pi, both using a utility called CPU Burn, the first running in the enclosure with the fan running, and then with the Blade out of the enclosure and without a fan, so just passively cooled by the large heat sink.

To install CPU Burn, enter the following commands:

wget https://raw.githubusercontent.com/ssvb/cpuburn-arm/master/cpuburn-a53.S
gcc -o cpuburn-a53 cpuburn-a53.S

Let’s try the test with the fan first. We can run the test by entering:

while true; do vcgencmd measure_clock arm; vcgencmd measure_temp; sleep 10; done& ./cpuburn-a53

After running the test for a little over 20 minutes, the CPU temperature stabilised at around 37 degrees, which is really low for all four cores being maxed out continuously.

Thermal Testing Compute Blade Running CPU Burn

Looking at the heat sink through a thermal camera, we can see that it is heating up but it’s also not much over 32 degrees.

Thermal Camera Look At Heatsink In Enclosure

Now let’s take the blade out of the enclosure and run the test again.

After 20 minutes outside of the case, with only passive cooling, the CPU temperature has stabilised at around 56 degrees, which is still quite good considering this is under full load continuously.

Thermal Testing Compute Blade Running CPU Burn

Looking at the heatsink through a thermal camera, we can see that it has heated up quite a lot more than when it was in the enclosure, it is now around 52 degrees.

Thermal Camera Look At Heatsink On Pi Compute Blade

So you’ll be able to get away without a fan if your Blade isn’t running in a confined space but you’ll most likely need a fan if you rack mount it as intended.

The Compute Blade’s Power Consumption

Power consumption when idle is around 4W, so it doesn’t use much more than the CM4 module uses alone.

Energy Consumption Of Compute Blade No Load

With all four cores maxed out, consumption goes up to around 7W, which is still really power efficient. Even with a 20-node cluster with all 80 cores maxed out, you’d be using less than 150W.

Energy Consumption Of Compute Blade Full Load

Final Thoughts On The Compute Blade

There are also some other features of the Blade that I haven’t yet tried out. You can turn off the status LEDs if you aren’t a fan of flashing lights by entering some commands in the terminal. The two addressable LEDs are connected to GPIO18 on the Pi and are programmable, so you can use your own scripts to get them to indicate specific metrics or errors. Similarly, the button on the front of the Blade is connected to GPIO20, so you can program that to do whatever you’d like as well, like initiate a safe shutdown.

Activity LEDs On Front Of Compute Blade

So the Compute Blade is a feature-rich board that is going to be great for a home lab or to pack a significant amount of computing power into a single unit of rack space. There are a lot of benefits to running individual smaller computing nodes rather than a number of virtual machines on a single more powerful computer.

Let me know what you think of the Compute Blade in the comments section below and let me know if there is anything you’d like to see me try on it. Also, check out the Kickstarter page if you’re interested in getting one, Ivan has already blown past his first funding milestone.

Michael Klements
Michael Klements
Hi, my name is Michael and I started this blog in 2016 to share my DIY journey with you. I love tinkering with electronics, making, fixing, and building - I'm always looking for new projects and exciting DIY ideas. If you do too, grab a cup of coffee and settle in, I'm happy to have you here.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest posts

Raspberry Pi 5 Case With An Integrated Water-Cooling Loop

A while back, I built a water-cooled Raspberry Pi 4 computer using a Pi CM4 module and the official IO board. This computer and...

Add an OLED Stats Display to Raspberry Pi OS Bookworm

Raspberry Pi OS Bookworm has been out for a little over a year now. It comes with a few visual changes like a Wayland...

Gweike G2 Pro 30W Fibre Laser Unboxing & Review

I've been using diode and CO2 lasers in my home workshop for quite some time. Combined with a 3D printer, they've been fantastic for...

Related posts