Home Blog Page 5

Mixtile Core 3588E Review

Today we’re taking a look at the Mixtile Core 3588E. This is a new system on a module, based on the Rockchip RK3588. It’s in the same 69.6 x 45mm form factor as the NVIDIA Jetson TX2 NX module and uses the same 260-pin edge connector – so is compatible with many of the same carrier boards.

Here’s my video review and testing of the Core 3588E, read on for my written review and results:

Where To Buy The Mixtile Core 3588E

Equipment Used

Taking A Look At The SOM & Carrier

In the centre of the module, we’ve got the Rockchip RK3588 processor. This is an 8-core, 64-bit processor that consists of a 4-core Cortex A76 processor running at 2.4GHz and a 4-core Cortex A55 processor running at 1.8GHz. In addition to this, it’s got an Arm Mali G610 GPU.

Alongside it is the eMMC storage module and on the other side of the CPU are the LPDDR4 RAM chips.

The Core 3588E comes in three configurations;

  • 4GB of RAM and 32GB of storage selling for $132
  • 16GB of RAM and 128GB of storage selling for $190
  • 32GB of RAM and 256GB of storage selling for $329

This is quite pricey for a module with this processor on it, given that you can buy a full SBC with ports broken out for this price. But they are fairly close to the pricing on the Turing RK1 modules with the same SOC, so let’s see how it performs.

Mixtile-Core-3588E-Back

On the bottom is the 260-pin SO-DIMM connector which allows it to be plugged into devices and carrier boards.

The carrier board that you use will obviously determine which ports and interfaces are available, but the 3588E supports the following basic IO;

  • HDMI and display port interfaces up to 8K60
  • USB3.0
  • USB2.0
  • PCIe 3.0
  • PCIe 2.1
  • UART, SPI, I2C, CAN, I2S, PWM and
  • Digital IO pins

The carrier board that I’m going to be using with the Core 3588E is the A206, which is designed for NVIDIA Jetson modules.

Core-3588E-In-Carrier-Board

The main IO is all brought out on one side, with a power input on the left that supports a 9 to 19V DC supply. Alongside it, we’ve got a display port and HDMI port, 4 x USB 3.0 ports, and a Gigabit Ethernet port. The microUSB port at the end is for reflashing the boot loader.

A206-Carrier-Board-Ports

On the top of the carrier board, it has a set of GPIO pins along the right side, a set of pins for buttons and the CAN interface at the back and two camera inputs on the left.

A206-Carrier-Board-Top

On the bottom is a M.2 E key port as well as an M.2 M key port, an RTC battery holder and a microSD card slot.

A206-Carrier

Also available for the Core 3588E is an optional heatsink with a built-in PWM fan which plugs into the carrier board. The heatsink is attached directly to the Core 3588e with some small screws that go into thread inserts on the SOM. They provide thermal paste to apply between the CPU and heatsink for improved conductivity.

First Boot & Testing

The board comes preloaded with a custom Ubuntu desktop image, so it’s ready to run right out of the box. You can also compile your own images for Debian and Android.

Ubuntu-Desktop-Running

I’m going to test this board in a similar way to other SBCs that I’ve tried on this channel. I’ll also show you it running a pre-trained AI model to recognise objects in images as this is primarily what these modules are intended to be used for.

We’ll first test some video playback at 1080P, then try to run a Sysbench benchmark, then run a storage speed test, then the AI object detection model and finally we’ll take a look at power consumption.

Mixtile-Core-3588E-Booted-Up

After the Mixtile Core 3588e has booted up, if we open up HTOP, we can see we have 8 processor cores and our 16GB of RAM. The processor is currently under very little load, being idle on the desktop.

HTOP-Running-On-Ubuntu

Video Playback At 1080P

First let’s try playing back a YouTube video in Chromium, which I’m going to do at 1080P. We can open up Chromium, go to YouTube and play Big Buck Bunny. I’ll open up stats for nerds and set the playback resolution to 1080P as well.

Big-Buck-Bunny-Running-At-1080P

Video playback in the window is pretty good. We dropped quite a few frames in the beginning but after that playback settles and is very stable and usable.

Big-Buck-Bunny-1080P-Window-Dropped-Frames

It’s also pretty good running full screen. It again dropped quite a few frames in the beginning and then settled down.

If we open up HTOP, we can see that we’re averaging less than 30% CPU utilisation on the first 4 cores, which is relatively low compared to the other RK3588 boards that I’ve tested.

Big-Buck-Bunny-HTOP-Review

The optional heat sink and fan do a good job at keeping the Core 3588E cool. After 20 minutes of 1080P video playback on YouTube, the CPU was only at 47 degrees and the heatsink was at 38 degrees.

Core-3588E-Thermal-Camera-View

Sysbench CPU Benchmark

Next let’s do a CPU performance comparison with the Mixtile Blade 3, Rock 5 B and Orange Pi 5 Plus which all run the same RK3588 SOC. We’ll do this by running the Sysbench CPU benchmark.

Sysbench-CPU-Benchmark-Running

After 10 seconds we have processed a little under 5400 events per seconds and we get a total score of 54,089. Over three tests we get an average score of 54,083.

Sysbench-CPU-Benchmark-Complete

For comparison, also over three consecutive tests;

  • Mixtile Blade 3 managed an average of 54,025
  • Rock 5 B managed an average of 53,642
  • Orange Pi 5 Plus managed an average of 53,436

So the results from the Core 3588e are slightly higher than the other boards I’ve tested but this is not a significant improvement. It is likely because we’re running a different OS this test was run on Ubuntu and all of the others were tested on Debian.

eMMC Storage Benchmark

Next, we’ll run James Chamber’s Pi Benchmarks script to test the speed of the onboard eMMC storage. This benchmark favours better random read/write performance because this is a good representation of how the storage or drive would typically be used as an OS drive rather than just reading or writing single large files to it.

On completion of the test, we get a total score of 9,822. The individual test results are also listed in the image below.

James-Chambers-Pi-Benchmarks-EMMc-Benchmark

The results aren’t great, sequential read speeds are around 264MB/s and writes are around 225MB/s. Random reads and writes are 13 times and 5 times slower respectively. A better option would probably be to boot from an NVMe drive on the carrier board, but the eMMC storage is ok for an onboard solution if you aren’t transferring large amounts of data.

AI Object Detection Model

Now let’s try an AI object detection model. This is a pre-trained model that you send an image to and it then analyses the image to see if any objects that it has been trained to identify are present.

Here is a list of the objects that the model can detect (each row being a category);

person
bicycle, car, motorbike, aeroplane, bus, train, truck, boat
traffic light, fire hydrant, stop sign, parking meter, bench
cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe
backpack, umbrella, handbag, tie, suitcase, frisbee, skis, snowboard, sports ball, kite, baseball bat, baseball glove, skateboard, surfboard, tennis racket
bottle, wine glass, cup, fork, knife, spoon, bowl
banana, apple, sandwich, orange, broccoli, carrot, hot dog, pizza, donut, cake
chair, sofa, pottedplant, bed, diningtable, toilet, tvmonitor, laptop, mouse, remote, keyboard, cell phone, microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors, teddy bear, hair drier, toothbrush

We need to run the below commands to download the code, install the dependencies and build the YOLOV5 demo code;

sudo apt install cmake
git clone https://github.com/rockchip-linux/rknpu2
cd rknpu2/examples/rknn_yolov5_demo/
./build-linux_RK3588.sh

Once installed, the model can be run using the below commands;

pushd /home/"Username"/rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux/
./rknn_yolov5_demo ./model/RK3588/yolov5s-640-640.rknn "Image Name".jpg

I’ve got five test images prepared. We’ll try to put each of these through the model and it’ll produce an output image that shows any detected objects and the model’s confidence in its classifications.

AI-Object-Detection-Model

Image 1 is a photograph of 3 elephants;

test1 - elephant

The image took 18 ms to process, which is impressively fast. It would be able to process around 55 frames per second at this speed.

Object-Detection-Running

And this is the result. It got all three correct with a fairly high level of confidence.

test1 out

Image 2 is a woman in front of a pedestrian crossing with some traffic in the background.

test2

This too took 18 ms to process and the results are pretty good. There is a lot going on in the background but the main elements in the foreground and centre are all correct. Even some of the more obscure background objects are correct.

test2 out

Image 3 is a similar traffic image.

test3

This has got most of the main elements correct and even a number of the partially obscured cars are correctly identified.

test3 out

Image 4 is a basket of vegetables with some oranges in front of them.

test4

It made a few mistakes here. I’m not even sure why – these look nothing like an apple or carrot. The confidence levels are pretty low so it clearly had trouble working through these areas.

test4 out

The last image is a dinner table.

test5

Again this image is mostly correct, even recognising that the whole image is of a dinner table. The knives on either side have been missed and have jointly been labelled a spoon with the spoons next to them. The fork on the far side it got right despite the low confidence.

test5 out

Power Consumption

Lastly, let’s take a look at power consumption. To measure the Core 3588E’s power consumption, I used a mains power meter. This indicates that the Core 3588E uses about 4W when idle and this goes up to 9W when loaded.

This is a bit higher than the Blade 3 but it does have an active cooler on it and a few extra circuits on the carrier board as well, so is expected but still quite power efficient.

Final Thoughts On The Mixtile Core 3588E

Overall I think that, similar to the Blade 3, the Core 3588E is quite expensive, especially considering it is a bare module and you’d still need to add a carrier board or have a device to plug it into to use it. They have again used good quality components, so you should get good reliability and life out of it, and the module is similarly priced to some alternatives like the Turing RK1 modules.

With the RK3588 SOC, performance is really good, especially considering its low power consumption. This module is ideal for applications like live object detection or motion tracking on a video feed.

Core-3588E-Running-With-Fan

Let me know what you think of the Mixtile Core 3588E in the comments section below and if there is anything else that you’d like me to try on it.

I Built A 4-Bay Raspberry Pi 5 Based NAS

Last year, I built a Pi-based NAS as cheaply as possible using a Raspberry Pi Zero 2W. It was a great project to learn what a NAS is and how to set one up, but it was obviously limited by the capability of the Zero 2W and the cheap storage hardware that was used. So, today we’ll be building a more functional and powerful NAS using a Raspberry Pi 5.

Here’s my video of the build, read on for the write-up;

What You Need To Build Your Own 4-Bay NAS

Equipment Used

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting this channel, at no additional cost to you.

Hardware Used To Build The NAS

The primary piece of hardware that we’ll be using to build the NAS, apart from the Pi 5, is this new Penta SATA hat from Radxa. This hat allows up to 5 SATA drives to be connected to a Raspberry Pi 5 or Rock 5A via their PCEe port.

Radxa Penta SATA Hat

It’s got 4 SATA ports on the top, which drives plug into top-down, and one eSATA port on the front. Radxa include a cable to plug a fifth drive into this port with the hat. The spacing between the SATA ports allows for 2.5″ drives to be plugged directly into it, but you can also connect 3.5″ drives to it with some extension cables.

Radxa Hat From SATA Port

Power is supplied to the hat through either a 12V barrel jack on the side or a standard ATX Molex connector on the top. Additionally, you don’t need a second power supply for your Raspberry Pi 5 – the hat will supply 5V to the Pi through the GPIO pins. That’s a really handy feature!

The Penta SATA Hat has got a couple of other ports on it too, like an expansion port for a fan and OLED display on top and an additional fan port at the bottom.

Additional Fan and OLED Connector

Before mounting the hat onto the Pi 5, we need to add a cooling solution for the Pi’s CPU. I’m going to use a Pi 5 active cooler.

Raspberry Pi Active Cooler

There is one issue with using this cooler and that’s that the end three fins on the heatsink clash with the barrel jack port on the hat. This seems like a bit of an oversight by Radxa but hopefully, they’ll come up with a solution to correct this in future revisions.

Power Port In The Way

My first thought was to add some 6mm spacers between the hat and Pi so that there is a larger air gap between them. This however isn’t possible without also requiring an adaptor for the GPIO pins to still plug into the hat.

The only easy solutions are to either get rid of the cooler or modify the cooler to fit in underneath the connector. Modifying the cooler can be done relatively easily by removing the last three fins, which you can break off with needle nose pliers.

For storage, we’ll use some Crucial BX500 drives as I think these strike a reasonable balance between cost and quality. We’re going to be bottlenecked by the single PCIe lane shared between the drives so there isn’t much point in getting the fastest drives available, any reasonably good quality 2.5″ SSDs would work for the build.

Lastly, we need a microSD card for the operating system. We’ll use a 32GB Sandisk Ultra card for this. I’ve been using these for my Pi projects for years and have had very few issues with them.

Sandisk MicroSD Card

I flashed the microSD card with Raspberry Pi OS Lite using Raspberry Pi Imager. This is the base operating system onto which we’ll be installing the NAS software Open Media Vault or OMV. When flashing the operating system image, you may want to change the name of your NAS and you’ll need to enable SSH so that you can log into the Pi remotely once it has booted up to install OMV onto it.

Flashing Raspberry Pi OS Lite

Radxa include hardware with the hat to secure the drives to each other. These make the drive stack a bit more secure, but I’d like to build the stack into an enclosure to better protect the Pi and Penta SATA hat, and provide some cooling to the drives.

SSD Spacers For Drives

Designing The Enclosure

To design the enclosure, I used Fusion360. I started out with a model of the Rapsberry Pi 5, then added the Radxa SATA hat and drives and then modelled the enclosure around them.

My initial thought was to lay the stack down horizontally like a traditional 4-bay NAS, but the Ethernet port on the Pi, the power port on the side of the hat and the power button and activity LEDs on the opposite side mean that it would be oddly proportioned and difficult to get cables plugged into.

So, I decided to keep the vertical arrangement and rather have the drives plug in to the hat through the top. I designed a tray to hold each drive with a pull tab to make it easier to swap out individual drives if needed.

Pi 5 NAS Design Front

To cool the drives I’ve included a cutout for a 40mm 5V fan on the side which blows air across the four drives and the air then comes up and out the gaps between the drives at the top of the enclosure.

Pi 5 NAS Design Back

I also added an LED bar to bring the drive activity lights onto the side of the case as well as a button adaptor to allow the Pi’s power button to be pressed and its activity LED to be visible. I’ve included an optional window on the side of the NAS to look into the case to see the drives. I decided on including options with and without this window in the set of print files as I know most people don’t have the tooling required to make the window up but I think it makes the NAS look quite cool.

LED Bar and Button Adaptor

The enclosure is split into two halves which screw together around the stack, making it easy to pre-assemble and install.

With the design complete, let’s get the components printed out.

Making The NAS Enclosure

I imported the models into Bambu Slicer and set them up to print the main components out in aluminium-coloured PLA with black text. The button adaptor and LED bar are printed in translucent PLA with black sections between the LEDs to separate them. I also added a black accent to the pull tab on each tray.

Download the 3D Print Files

Slicer For 3D Printing The Components

I then sent them to my 3d printer to print out across four build plates.

3D Printing The Components

While the parts are being printed, let’s make up the side panel. This is laser cut from a piece of 2mm clear acrylic and we then use a bending tool to put the 90-degree bend into it.

The window is 108mm x 83mm and the bend line is placed 45mm from the edge. There are notches in the template below to guide placing the bend.

We now have all of the components required for the enclosure.

3D Printed Components

To finish off the 3D-printed parts, we need to add some M2.5 brass inserts for the screws to screw into. I’ve also included an option that doesn’t require these inserts in the print files to make it easier to make up but these inserts make the joints a lot more durable so I’d recommend using them if you plan on taking the enclosure apart more than a couple of times.

We also need to glue the window into place using a few drops of superglue or CA glue in the corners.

Mounting The Components Into The Enclosure

Now we can start mounting the components into the enclosure. Let’s start with the fan, which we can mount onto the side with some M3x12mm button head screws. I’m using a 40mm 5V Noctua fan with a thin dust filter between it and the case.

Before mounting the Pi assembly into the enclosure, we need to add the button adaptor to this corner standoff. It just pushes on around the standoff with a very light interference fit so that it is held in place securely but the button is still able to be pushed.

Button Adaptor Added To Leg

We also need to plug the FPC cable into the hat and the Pi.

FPC Ribbon Cable Plugged Into Pi and Hat

We can then mount the stack to the bottom half of the enclosure using some M2.5x6mm screws through the base.

The status led bar is mounted to the back of the Radxa hat and is held in place with the Radxa hat’s standoffs.

Activity Light Bar Mounted

I was going to power the fan using the port on the Pi or the Radxa hat but Noctua don’t have an adaptor to plug into these, so instead I soldered the included adaptor lead to the 3.3V and GND pins on top of the hat. The fan can then plug into this adaptor for power. I chose 3.3V so that the fan runs a bit quieter since it is not a PWM-controlled fan and will be running continuously.

The top half of the enclosure then screws onto the bottom half using six M2.5x6mm screws, three on each end.

Closing Up Enclosure With M2.5 Screws

We’re now ready to plug our drives in and get our NAS booted up. Each drive is mounted into a tray using four drive screws provided with the Radxa Hat.

Mounting Drives Into Trays

Completed Pi 5 NAS Enclosure

With that, our Pi 5 NAS is complete and ready for its first boot and setup.

First Boot & Software Setup

We only need power and a network connection to set up our NAS as we’ll be running it headless – meaning we’ll set it up through another computer. So let’s plug the 12V power supply and Ethernet cable into the NAS and it’ll be ready to boot up.

Plugged In Power and Ethernet

Once power has been turned on, leave the NAS for a few minutes to boot. It usually takes a bit longer to boot up the first time. We can then try to find it’s IP address. This can be done through your network’s DHCP table by logging into your router or by using a utility like Angry IP Scanner. We’re looking for a device called Pi NAS that has recently joined the network.

Finding NAS IP Address Using DHCP Table

We can then SSH into the Pi using its IP address to continue setting it up. I’m using Putty on my Windows PC to do this.

Now we need to copy and run this line from the OMV installation instructions GitHub repository to run a script to install OMV on our Pi:

sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
Installing OMV Using Script

The installation script takes about 5 minutes to complete and, if successful, should take you to a screen similar to this telling you that the pi is rebooting and your SSH session will be terminated.

When your Pi has rebooted, there is one more thing we need to do before opening up OMV to set up the software. We need to enable the PCIe port on the Pi as this is disabled by default. None of the connected drives will show up until we edit the config file below;

sudo nano /boot/firmware/config.txt 

We need to add the below two lines and then reboot the Pi.

# Enable PCIe Port and Set to Gen 3 Speed
dtparam=pciex1
dtparam=pciex1_gen=3
Enabling PCIe Port On Pi 5

You should then start seeing the activity lights on the drives light up and they’ll show up in the terminal.

Now that all of the installation and configuration work is done, we can access the OMV workbench through a browser by entering the Pi’s IP address. The default login is admin and openmediavault, which you’ll want to change immediately.

OMV Running On NAS

There are loads of good guides on setting up OMV, so I’m not going to go through it here in detail but these are the steps I followed:

  • Set up my four drives in a RAID 5 configuration to balance storage capacity and redundancy. This gives me a total usable storage capacity of 3GB.
  • Create a storage volume on the array.
  • Create a shared folder on the storage volume.
  • Enable SMB file sharing for Windows.
  • Create a user account with permission to access the shared folder.

With that complete, we can map the network drive to our PC and can then start using it.

Mapped Storage Drive To Windows PC

So now let’s see how good it is.

Testing The NAS’ Speed

Copying a single large video file to the NAS, we get an average speed of about 112MB/s which is about 900Mb/s.

Copying Video To NAS 1G Ethernet

A folder of 4,500 smaller files and directories is obviously a lot slower than the single large file but is comparatively as fast as copying them locally.

Copying Folder To NAS 1G Ethernet

Copying the large video file from the NAS, we get a similar average speed of about 110-112MB/s.

Copying Video From NAS 1G Ethernet

This looks like we’re saturating the gigabit Ethernet port on the Pi, so next I tried plugging a 2.5G Ethernet adaptor into one of the USB 3 ports on the front.

Adding A 2.5G Ethernet Adaptor To Pi 5

This made a significant improvement. I instantly got an average of 260MB/s copying files to the NAS although there were a few dips down to about 120MB/s and spikes a little over 270MB/s , so that’s close to saturating the 2.5G ethernet connection which is a great.

Copying Video To NAS 2.5G Ethernet

Copying the same large video file from the Pi to my PC, I got a little under 200MB/s.

Copying Video From NAS 2.5G Ethernet

Given the significant speed increase, this is a worthwhile upgrade for less than $20. It really is a bit disappointing that the Pi 5 doesn’t come with 2.5G Ethernet as this makes a big difference to performance for projects that require a large amount of data to be transferred.

Pi 5 NAS With 2.5G Ethernet Adaptor

Power Consumption

Power consumption is where this NAS shines, especially with its solid-state storage. At idle, the NAS uses a miniscule 9W and consumption only goes up to around 12 under load. This is significantly less than the 30-40 watts that a typical 4-bay home or small office NAS uses. My Asustor NAS uses about 18w at idle with the drives spun down.

Final Thoughts On My Raspberry Pi 5 Based NAS

So that’s my new 4-bay Pi 5 NAS complete. I’m really impressed with the speeds that I managed to get using the 2.5G Ethernet adaptor. This highlights one of the weaknesses in the Pi 5, which really should have been designed with a 2.5G Ethernet port given its relatively recent release date.

Drive Activity Lights Flashing

Cost-wise, this is not the most affordable NAS on the market but it’s also not particularly expensive considering it is very versatile and customisable, running open-source hardware.

The main NAS components, being the Pi ($80), Radxa Penta SATA Hat ($45), Cooler ($5), Power Supply ($15), MicroSD Card ($5) and Fan ($15) come to $165 – which is around the lower end of what a commercially available 4-bay NAS would cost, albeit without the DIY work required.

Pi 5 NAS Running On Desk

The NAS is really power efficient for those who live in an area or country where power is expensive. Running this NAS 24/7 for a year would cost less than a third of what a traditional NAS would cost to run.

Let me know what you think of it in the comments section below and feel free to send photos through of your build if you 3D print your own.

Is The New Orange Pi 5 Pro A Good Raspberry Pi 5 Alternative?

Today we’re going to be taking a look at the Orange Pi 5 Pro. This is a new SBC from Orange Pi that is based on the Rockchip RK3588S SOC. The RK3588S is largely similar to the RK3588, with the main difference being a reduction in PCIe lanes from 4 to just 1.

Given the form factor, IO and port layout, the Orange Pi 5 Pro is clearly targeted as an alternative to the Raspberry Pi 5. So let’s see how it’s price, performance and usability stack up.

Orange Pi 5 Pro vs Raspberry Pi 5

Here’s my video of the Orange Pi 5 Pro, read on for the written review:

Where To Get The Orange Pi 5 Pro

  • Orange Pi 5 Pro (Amazon) – Buy Here
  • Orange Pi 5 Pro (Aliexpress) – Buy Here

Equipment Used

Unboxing & First Look At The Orange Pi 5 Pro

The Orange Pi 5 Pro comes in the usual transparent plastic sleeve with an Orange Pi branded sleeve around it. Within the case, the 5 Pro is protected by an anti-static sealed bag. It includes a WiFi antenna but I’m going to remove this for testing as I’ll be using a wired connection.

Orange Pi 5 Pro With Packaging

Taking a look around the board, the RK3588S processor is in the middle. This is an 8-core, 64-bit processor that consists of a 4-core Cortex A76 processor running at 2.4GHz and a 4-core Cortex A55 processor running at 1.8GHz. In addition to this, it’s got an Arm Mali G610 GPU. So we should get really good performance from it with double the CPU cores of the Raspberry Pi 5, although four cores are running at a lower clock speed.

Rockchip RK3588S

Alongside the processor is the RAM chip. The Orange Pi 5 Pro comes in a 4GB, 8GB and 16GB variant, all with LPDDR5 RAM, which is a step up from the LPDDR4 RAM on the non-pro version of the Orange Pi 5.

RAM Chips on Orange Pi 5 Pro

Above that is the WiFi 5 and Bluetooth 5 chip, with a DSI port alongside it.

Similar to the Raspberry Pi 5, the Orange Pi 5 Pro, has a Gigabit Ethernet port on one side alongside four USB ports. Notably, three of these are USB 2.0 and only one is USB 3.0, unlike the Raspberry Pi’s two USB 3.0 ports.

Ethernet and USB Ports

They have also included a header for additional USB 2.0 ports behind the physical ports, which could be useful for building the Orange Pi 5 Pro into an enclosure.

Additional USB Header

Along the other side is an HDMI 2.0 port, an audio port, an HDMI 2.1 port and a USB C power port. The HDMI 2.1 port can do up to 8K 60 and the HDMI 2.0 port up to 4K 60. I like that they’ve made space for full-size HDMI ports, I don’t really like how fragile the micro HDMI ports on the Raspberry Pi 4 and 5 are, often requiring adaptors or special cables to plug into them rather than commonly available full-size HDMI cables. Interestingly, they’ve chosen to keep the audio port since the Raspberry Pi 5 did away with it.

HDMI, Audio and Power Ports

On the opposite side is a 40-pin GPIO header which follows the same pinout as the Raspberry Pi boards, it’s also colour-coded which makes it a bit easier to locate the 5V, 3.3V and ground pins. Next to the pins are a 5V fan connector and an RTC connector.

Orange Pi 5 Pro GPIO Pins

Underneath the board is a prominent M.2 M-key port which allows you to connect an NVMe SSD to it. This is only a PCIe gen 2 x 1 port, so won’t be that fast by today’s standards. It’s also got a connector for additional eMMC storage, a microSD card slot and two camera ports.

Bottom of Orange Pi 5 Pro

To power the Orange Pi 5 Pro, you can get a 5V 5A USB C power supply from Orange Pi’s Aliexpress store. This has the same specs as the Raspberry Pi 5’s official power supply so you can use one of those too.

5V 5A USB C Switching Power Supply

So that’s an overview of the hardware. As you can see, the IO is somewhat limited due to the single PCIe lane on the RK3588S, but you’ve still got a range of options and support for an NVMe drive without an adaptor. Hopefully, the power of the CPU and improved RAM will make up for some of the IO limitations. So let’s get it booted up to find out.

Orange Pi 5 Pro Side

Operating System Options For The 5 Pro

Like with other Orange Pi boards, they have a number of operating system images available to run on the 5 Pro, including the usuals like Ubuntu, OpenWRT, Debian and Android. The main OS that they want you to run on it is called Orange Pi OS and they also have a couple of options for this, including an Arch Linux and Android version as well.

Official Orange Pi Images

At the time of writing this review, not all of the above images are available, but I’ll be using the Debian image for testing as this is what I’ve tested other SBCs on. This allows the results of my other tests to be a bit easier to compare to.

Installing an operating system is really simple. You just download the relevant image from their website and then flash it onto a microSD card using a utility like Balena Etcher.

NVMe Drive and MicroSD Card Installed

I’ve got the OS flashed onto a microSD card which the Orange Pi 5 Pro will be booting off and I’ve also added an NVMe storage drive to do a benchmark on as well.

Testing The Orange Pi 5 Pro’s Performance

I’m going to test the Orange Pi 5 Pro in the same way I usually test SBCs, by running the following tests:

  • Video playback at 1080P
  • Video playback at 4K
  • Sysbench CPU benchmark
  • NVMe drive speed test
  • Measure power consumption

The first boot on a new operating system takes a little longer than subsequent boots but we’re still on the desktop in under a minute.

Orange Pi OS Debian Boot

If we open up HTOP, we can see we have our 8 processor cores listed. They’re all relatively idle without any applications running, and we can see our 16GB of RAM.

HTOP Showing Low CPU Usage After Boot

We can also see that our NVMe drive is connected, which is also apparent through the desktop icon.

NVMe Drive Showing Up

Video Playback At 1080P and 4K

First, let’s try playing back a YouTube video in the default browser Chromium. I’m going to do this at 1080P and then at 4K.

We’ll set the display resolution to 1080P. Then let’s open up the browser, go to YouTube and open up Big Buck Bunny. I’ll set the playback resolution to 1080P and then open up stats for nerds.

Video playback in the window drops a few frames in the beginning but after that is near perfect.

Big Buck Bunny 1080P Window

Playback is ok in full screen, but it does drop a couple of frames every so often which is noticeable and does become annoying. You can see example video clips in my video linked at the beginning of the post.

Big Buck Bunny 1080P Fullscreen

Now let’s step it up to 4K. There was a bit of weird behaviour when changing to 4K – the display wouldn’t refresh when the setting was applied and you could clearly see that the resolution hadn’t changed, although it indicated that it had. A reboot after changing the resolution setting seemed to fix the issue and it then booted up in 4K.

Now we can reopen the browser and Big Buck Bunny. We’ll set the playback resolution to 4K as well.

Big Buck Bunny 4K Window

In 4K, playback gets off to a pretty poor start. We dropped a large number of frames in the beginning and continue to drop frames throughout playback. Opening up to full screen is even worse, to the point where it is basically unusable.

Big Buck Bunny 4K Fullscreen

So this board does a fair bit worse at 4k playback than the Orange Pi 5 Plus. This is probably a software issue with the board using software decoding instead of hardware decoding. Opening up HTOP while the video playing back, the CPU is at about 40-50% utilisation across all cores which is a lot more than the 20-30% CPU utilisation on only 4 cores that we had on the 5 Plus playing back the same video.

HTOP Running Over Big Buck Bunny

To jump in here, if you’re going to be primarily using the Orange Pi 5 Pro as a media device then you’ll likely want to go with the Android image as this tends to perform better for video playback.

Sysbench CPU Benchmark

Next, let’s check the performance of the 5 Pro by running the Sysbench CPU benchmark.

Sysbench CPU Benchmark Running

After 10 seconds we have processed a little under 5,350 events per seconds and we get a total score of 53,519. Over three tests, the Orange Pi 5 Pro managed an average of 53,520.

Sysbench Benchmark Results

For comparison, and also over three consecutive tests;

  • The Rock 5 B managed an average of 53,642
  • The Khadas Edge 2 managed an average of 51,568
  • The Orange Pi 5 Plus managed an average of 53,436
  • The Raspberry Pi 5 manages an average of 35,000

So the results of the Orange Pi 5 Pro are a bit better than the Khadas Edge 2 with the same SOC. They’re actually very similar to the Rock 5 B and Orange Pi 5 Plus which have the better RK3588 CPU and they’re significantly higher than the Raspberry Pi 5, with an over 50% improvement.

Thermally, you’ll probably need to use a heatsink on the CPU if you’re running CPU-intensive tasks. After playing back 4K video for around 15 minutes, the Orange Pi 5 Pro’s CPU was at over 70°C and the surface of the CPU was at 55°C. This was in a relatively cool room with an ambient temperature 20°C.

NVMe Drive Speed

Next, let’s look at the NVME drive speed. For this test, I’m going to be using James Chambers PiBenchmarks script. I’ve used this script recently to benchmark a few different NVMe hats for the Raspberry Pi 5.

James Chambers PiBenchmarks Script Running

I ran the test three times, with very consistent results across the three tests and an average total score of a little over 16,000. The Pi 5 had results slightly under 60,000, so the Orange Pi 5 Pro is significantly slower than the Raspberry Pi 5, which is likely mainly due to the one-generation reduction on the PCIe port.

PiBenchmarks Script Results NVMe Test

Power Consumption

Lastly, let’s take a look at power consumption. To measure the 5 Pro’s power consumption, I used a USB power meter cable that supports power delivery.

This showed that the Orange Pi 5 Pro uses about 3w when idle and this goes up to 6-8w when loaded, with peaks of up to 9w. So fairly similar to the Raspberry Pi 5 and a bit more power-hungry than the Khadas Edge 2 with the same SOC.

Final Thoughts On The Orange Pi 5 Pro

In terms of cost, only the 16GB variant of the Pi 5 Pro is currently available at the time of writing this review, and it retails for $109. This is about $30 more than the best variant of Raspberry Pi, the 8GB version, but you’re getting double the RAM, double the CPU cores and onboard NVMe support which means you won’t need to buy an additional hat for it.

So, I think that the price is fair in terms of value for money.

Running Video Playback

Overall I think that the Orange Pi 5 Pro is a great alternative to the Raspberry Pi 5 if your project favours raw CPU or GPU performance – so for computationally intensive projects and simulations. It offers much better raw performance than the Raspberry Pi 5 and has a decent set of built-in IO.

It is limited by the single PCIe lane, so you don’t get two USB 3 ports, and the NVME drive is only running at gen 2 speeds. Depending on your project, this is might be something that you can live with.

Orange Pi App Store

The main reason why you’d want to get a Raspberry Pi 5 over the Orange Pi 5 Pro is for the software support. Orange Pi is one of the best-supported alternate SBC manufacturers, but even so, their community software support is quite far behind that of the Raspberry Pi 5. Raspberry Pi have fostered a large community around their products and this community is really good at working together to develop software and troubleshoot issues.

The Orange Pi 5 Pro is a great board if there is a software package or OS image built for it or if you have a good understanding of software and programming, but for the average hobbyist or tinkerer, if you’re trying a project that hasn’t been tried before, or you’re running a project that utilises the GPIO pins then you’re probably better off with the Raspberry Pi 5.

Let me know what you think of the Orange Pi 5 Pro in the comments section below and if you’ve got anything else that you’d like me to try run or test on it.

Which NVMe Hat Is The Best For A Raspberry Pi 5

If you don’t know already, I’ve been selling these 3D printed cases for Raspberry Pi’s online for a few years now. With the launch of a number of NVMe drive hats for the Pi 5’s PCIe port, I get asked quite a lot which hat is best for it and which case to choose. So today, I set out to find out.

Here’s my video of the test, read on for the write-up and detailed results:

These NVMe hat’s have a few common features, so let’s have a look at those first.

They all connect to the Pi 5 through an impedance-controlled ribbon cable at the back of the Pi and then either sit on top of or underneath it. They feature an M.2 M-Key port that the drive plugs into and although the Pi supplies power to them directly through the ribbon cable, they often have an option for an external power source as well.

To accommodate these hats, I’ve got two case designs. One which takes the Pineberry HatDrive! Top and another which takes either the Pimoroni NVMe Base or the Pineberry HatDrive! Bottom.

Purchase Links For Components Used In This Test

NVMe Hats Tested:

Test Components & Equipment Used:

Is A Top or Bottom Mount Hat Better?

In terms of which physical layout is best, I have a preference for the top-mounted hat but there are a lot of benefits to the bottom-mount as well.

The top mount allows you to fit a Pi 5 active cooler in between the hat and the Pi, so that takes care of cooling, and you’ve then got the hat and NVMe drive on the top. This leaves you plenty of room to add a heatsink to the NVMe drive and it stays reasonably cool without a heatsink just because it isn’t boxed in underneath another board. Its also quick and easy to swap the drive out for a different one if you’re switching operating systems or storage.

Raspberry Pi 5 Active Cooler

The drawbacks of the top-mounted NVMe drive are that the Pineberry version is limited to a more compact 2230 and 2242 size drive. These are a little bit less common and more expensive. You also don’t have access to the Pi’s CPU to put a larger cooler like an Ice Tower onto it and it blocks some of the GPIO pins.

NVMe Drive Accessible Through The Top Of The Stack

The bottom mount has the NVMe drive underneath the Pi which means you can now access all of the GPIO pins and add a larger cooler onto the CPU. You can now also use 2280 size drives, and in the case of the Pimoroni NVMe base, 2260 drives as well.

NVMe Drive Between Pi and Base

The drawbacks of the bottom mount are that the NVMe drive is covered and is in a relatively small space, so it gets hot. You’re also quite limited in options for a heatsink since it has to be very compact. As someone who experiments quite a bit with different operating systems, I find having to disassemble the stack to get to the drive the biggest drawback and the main reason why I prefer the top mounted hat.

Larger Cooler Able To Be Fitted

So that’s an overview of the physical differences, pros and cons. I’d say that if you tend to need to swap NVMe drives around often then you’d probably prefer the top-mounted hat but if you’re happy to install a drive and leave it in place long-term then the bottom mount is probably the more versatile option.

Performance Testing The NVMe Drive Hats

I’m going to be testing three different NVME drive hats.

Three Different Pi 5 NVMe Hat Options

First up is the Pineberry HatDrive. The HatDrive Top and Bottom have the same onboard components and circuitry, just a different layout, so I’ll use the HatDrive Top for testing and the results as a representation of both.

Pineberry HatDrive Top Test 1

Next is the Pimoroni NVMe Base. This offers a wider range of drive size options than the HatDrive options but only comes in a bottom mount variant.

Pimoroni NVMe Base Test 2

Lastly, we’ve got the Geekworm X1001 NVMe shield. You don’t get any additional PCB for your money with this board, they’re really kept it as compact as possible. Similar to the Pimoroni base, it supports four different size drives, but is a top-mount hat.

Geekworm X1001 Hat

In terms of cost, from the manufacturer’s official websites, converted to US dollars and excluding shipping;

  • The HatDrive Top costs $21 and the bottom variant is a bit more, costing $24.
  • The Pimoroni NVMe base is a bit cheaper at only $14.
  • The Geekworm X1001 is a dollar more than the Pimoroni hat at $15.

So Pineberry’s boards are a fair bit more expensive than the other two.

Three Hat Options For Testing

Next, let’s take a look at the performance of each hat.

For this, I’m going to use the same Raspberry Pi 5 with an active cooler installed, and the same NVMe drive for each test which I’ll swap between the hats.

Pi 5 Active Cooler Fitted

I’m using a Sabrent Rocket 4.0 as this drive is listed as officially supported on all of the hat’s product pages. It’s also known to be a reliable and fast drive. It is probably a little overkill as it’s a Gen 4 drive and the Pi only supports up to Gen 3, but at least we’ll know that the drive isn’t the bottleneck. I’m using a 2230 size drive so that it is compatible with all of the hats since the Pineberry HatDrive! Top only supports 2230 and 2242 size drives.

To test performance, I’m going to be using James Chamber’s PiBenchmarks script. This benchmark favours better random read/write performance, but this is a much better representation of how the drive would typically be used as a OS drive rather than just reading or writing single large files to it. This benchmark will run on SBCs running most Linux distributions, so you can try it out on your setup as well.

PiBenchmarks Script By James Chambers

As I mentioned earlier, the Pi only supports PCIe Gen 3, but this is not supported by default so we’ll need to modify the Pi’s config file to enable it. We just need to add the below line to the config file [/boot/firmware/config.txt] and then reboot the Pi.

dtparam=pciex1_gen=3
Enabling PCIex1_gen=3

Let’s start testing with the Pineberry HatDrive! Top, which I’ve now got connected up.

Test On The HatDrive Top

With the Pi rebooted, we can obviously see our NVMe drive.

NVMe Drive Detected By Pi 5

Running the benchmark is as simple as copying the below single line into your terminal and hitting enter.

sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
Terminal Line To Run PiBenchmarks Script
PiBenchmarks Script Running On Pi

I ran the test three times and got the following average results with an average total score of 60,011.

Next up is the Pimoroni NVMe base.

Test On Pimoroni NVMe Base

Running the same script three times, I got the following average results with an average total score of a fractionally lower 59,875.

Lastly, I tested the Geekworm X1001 hat.

Test On The Geekworm X1001

I got the following average results with an average total score of 59,950.

You can download a full table of the results here:

Summary Of All Results

Looking at the combined results, they all performed quite similarly, with almost all results being within 1% of each other and most within 0.5%. The only result that was outside of this was the Disk Write speed, which was within 3%. This had the Pineberry HatDrive! performing the fastest and the Geekworm X1001 performing the slowest.

Final Thoughts On The NVMe Drive Hats

The similar results are not all that surprising, since the NVMe controller is physically located on the NVMe drive, which we’re swapping between hats. These hats with a single M.2 port are actually quite simple and most of the onboard components are for the power to the drive and status LED circuitry. There could have been design issues like incorrect impedance matching that may have affected the results, so it was worthwhile doing the test to demonstrate that we’re getting similar results from each of them.

Geekworm X1001 On Raspberry Pi 5

I guess the takeaways from the results are that the most significant considerations in deciding between the NVMe drive hats are the cost and whether to go with a top or bottom hat.

From my hands-on experience with all three of these hats, the Pineberry Hat and the Pimoroni Hat seem to be better quality than the Geekworm one. The Pimoroni one is the best value for money, so go with that one if you are happy with a bottom mount hat.

Pineberry and Pimoroni Options Are Better Quality

If you want a top mount hat then you’ll need to decide whether you value the lower price of the Geekworm one or favour the slightly better performance and quality of the Pineberry hat.

Pineberry and X1001 Options For Top Mount Hat

Let me know which hat you prefer or if there are some other drives you’d like to see me test with them in the comments section below.

Track Aircraft In Real-time With Your Raspberry Pi Using The FlightAware Pro

0

Have you ever seen a flight overhead and wondered where it is going? Or seen a unique-looking aircraft and wondered what type or model it was? Well, today I’ve got something exciting to share with the aviation enthusiasts out there. We’re going to set up our own flight tracker using the FlightAware Pro USB stick and a Raspberry Pi. This is a really easy and fun project that allows you to track aircraft in your area in real-time.

Here’s my video of the project, read on for the write-up;

What You Need To Build Your Own FlightAware Tracker

What Is A FlightAware Tracker?

First things first, let’s talk about the FlightAware Pro USB stick. This little device is a dedicated ADS-B, or Automatic Dependent Surveillance-Broadcast, receiver that simply plugs into a free USB port on your Pi.

FlightAware Pro USB Stick

ADS-B is a technology that enables aircraft to determine their position via satellite and then broadcast it. This information can be received by ground stations, like the one we’re going to be building, and this enables aircraft to be tracked. Using an antenna with the FlightAware USB stick, you can track aircraft up to 400km or 250 miles away.

FlightAware Antenna

Before we jump into the assembly and setup process, let’s take a look at what FlightAware actually is. FlightAware is an online platform that provides real-time flight tracking, and not just the flight information like departure and estimated arrival time that you can find on Google, this gives you full flight tracking of airspeed and altitude, flight paths, aircraft information and historical data.

Flights Overhead Australia

You’re also not limited to only commercial aircraft, you can track commercial and private traffic and even the occasional military aircraft. By creating your own tracker, which is called a PiAware tracker, you’re contributing to FlightAware’s network of over 30,000 ground stations, enhancing the accuracy of global flight tracking.

FlightAware Stations Worldwide

In exchange for this, they provide you with a free Enterprise user account which gives you full access to their platform, so you can see flights that are out of range of your receiver as well!

Assembling Your PiAware Tracker

To build your own FlightAware flight tracker you’ll need to add a Raspberry Pi, microSD card and power supply to the FlightAware USB stick and antenna.

FlightAware Components Required

Next, let’s dive into setting one up, and there really isn’t a whole lot to it. First, we need to flash the operating system to our microSD card. This is done by downloading the prepared OS image from the FlightAware website and then burning it to the microSD card using an imaging utility like Etcher.

The image is ready to run so you don’t need to do anything else if you’re using a wired Ethernet connection like I’m going to. If you want to use WiFi then you’ll need to follow their configuration steps (under item 3) to add your WiFi network’s information to the card so that your Pi knows how to connect to it.

Once your card has been flashed, plug it into your Pi’s microSD card slot.

Plug MicroSD Card Into Pi

To complete the assembly, we need to plug the components into the Pi. The Flight Aware USB stick goes into one of the USB ports – you’ll need to use the USB 2.0 ports as the USB 3.0 ports are too close to the Ethernet port to allow a cable to plug in next to it.

Plug FlightAware Into Pi

The antennae plugs into the USB stick and a little retaining nut locks it into place.

Screw Antenna Onto FlightAware Stick

Then add the Ethernet cable and plug in the power supply to boot it up.

Plug In Ethernet & Power

First Boot & Associating It With Your Account

It’ll take a couple of minutes for the first boot and while that’s happening, let’s head over to FlightAware’s website to sign up for a free account.

Once that is done we need to find our tracker’s IP address on our local network. There are a few ways to do this, you can use a utility like Angry IP Scanner or your can look at your network’s DHCP table. I’ve looked in my DHCP table and found my PiAware device and IP address.

Find IP Address

We can then enter the IP address into a browser on the same network to access the Pi. From here you’ll be asked to associate your PiAware tracker with your account by logging into it. Once you’ve done that, you’re now officially part of the FlightAware network and you’ll see your account has been upgraded to an enterprise account.

Your Pi will then immediately start contributing data to the FlightAware network.

My PiAware Stats Page

What You Can See Through The FlightAware Web Interface

I’ve had my Pi running now for a little under three months. From the FlightAware site, you can see your feeder’s status and when last information was received from it. You can also see stats and graphs for the number of aircraft reported throughout the past 24 hours, which direction they were reported from and even the type of aircraft positions received.

PiAware Stats After 3 Months

They also give you a ranking that ranks your FlightAware feeder against other contributors. I’m still not too sure how they arrive at the total rank position but they give you some stats on your reported positions relative to others. Obviously, if you’re in a busier airspace then you’re going to be contributing far more to the network than others, but the network relies on having contributors in remote locations too.

Ranking and Stations Nearby

You can also see the flights that have been tracked by your feeder in the last hour and the sites around you, including when last they reported positions.

The really exciting stuff is on the SkyAware Anywhere page. Here you can watch flights around the world in real-time. This is the area around Sydney where my feeder is based and the aircraft are coloured according to their altitude.

Flights Around Sydney

You can see a summary of those in view on the right but you can also click on aircraft to get more detailed information on them and show their flight path since you opened the window. We can also visit an aircraft’s flight page to show even more information about it.

Qantas Flight To Hong Kong

At the top of the page is the flight information that you’d typically see if you did a Google search for the particular flight number.

Below that is a map showing the planned flight path and the planned and actual altitude and airspeed.

Qantas Flight To Hong Kong Starting

The flight that I chose has only recently taken off, flying to Hong Kong. Let’s pick a different flight that looks like it is coming in to land and we’ll be able to see the altitude and airspeed history for the flight.

Regional Domestic Flight

The next one that I chose is a regional domestic flight by REX from Coffs Harbour to Sydney. Now we can see the actual flight path taken alongside the plan and also the altitude and airspeed history – we can see that it is in its descent phase and coming in to land soon.

REX Regional Domestic Flight

For each aircraft, you can also see its planned upcoming flights, the current flight in progress and a log of past flights. You can click on any of these to see the flight plan and/or actual flight data.

Upcoming, Current and Past Flights

On the right-hand side are the aircraft details like the owner and operator, registration details and the current flight data. They also give you a gallery showing images of that aircraft type.

So on the top right is a similar aircraft by the same carrier but with a different tail number.

Gallery Showing Aircraft Types

FlightAware doesn’t only track commercial aircraft, we can also see small private aircraft. Here is one doing circuits around a small airport, so it’s probably a flight training exercise.

Local Private Aircraft Doing Training

You can also go into an aircraft’s flight history and have a look at the details from any past flights. This will show the flight path taken, airspeed and altitude and you can even open up a full log and see all of the position reports and which facility reported them.

There is also a mobile app for iOS and Android that offers the same information as the web page but in a mobile-friendly format. I actually prefer using the app and find it a bit more intuitive.

FlightAware Mobile App

Final Thoughts On The FlightAware Tracker

So this is an exciting way to dive into the world of aviation tracking and contribute to a global network of aviation enthusiasts. It is a relatively inexpensive project that can even be set up on a Pi Zero W or Zero 2 W to save costs and you get a lot out of it, especially if you have an interest in aircraft.

Mine has been running flawlessly for 3-4 months now and I’ve really enjoyed routinely hopping onto the app when I see an aeroplane or helicopter overhead and wonder what it is doing or where it is going. It’s also amazing to have access to detailed flight logs for any flight or aircraft number.

Let me know what you think of the FlightAware tracker in the comments section below and if you’ve got any questions on what it can and can’t do.

Pi 5 Desktop Case For NVMe Base or HatDrive! Bottom

Today we’re going to be assembling a 3D-printed case for the Raspberry Pi 5 and Pimoroni’s NVMe Base or Pineberry’s HatDrive! This is an adaptation of my standard desktop case for the Raspberry Pi 5, with adjustments made for the bottom-mounted NVMe hat. This case also includes an adaptor so that you can still use the power button on the back of the Pi 5.

What You Need To Assemble Your Case

  • Raspberry Pi 5 – Buy Here
  • MicroSD Card – Buy Here
  • Pi 5 Power Supply – Buy Here
  • Case Kit (3D Printed Parts & Screws) either of the below:
    • Pimoroni NVMe Base Case Kit – Buy Here
    • HatDrive! Bottom Case Kit – Buy Here
  • NVMe Hat, either of the below:
  • Ice Tower Cooler (for the Pi 5) – Buy Here
  • 2280 NVMe Drive – Buy Here
  • Or Alternate Cooling Solution Below
  • Raspberry Pi 5 Active Cooler – Buy Here
  • 40mm 5V Fan – Buy Here

Ensure that you get the Ice Tower cooler for the Raspberry Pi 5, the cooler for the Pi 4 will not fit.

Assembling The Raspberry Pi 5 NVMe Base Case

To start, we need to install the M2.5x6mm brass standoffs that come with the case kit on the bottom of the case. These are installed with the male thread facing upwards into the case and are each held in place with an M2.5 button head screw through the base of the case.

Next, install your NVME SSD onto your hat. I’m using a Crucial drive on mine. Both Pimoroni and Pineberry also have a list of compatible drives that have been tested on their website. Plug your PCIe ribbon cable into the socket on the hat as well – make sure that the orientation is correct.

Place the assembled shield onto the brass standoffs and then use the M2.5x7mm brass standoffs supplied with your Ice Tower cooler to hold it in place. Don’t install an Ice Tower standoff on the hole nearest to the power port, this is where the button adaptor will go. Instead, install one of the female-to-female standoffs from your hat kit. If you are using the Pineberry HatDrive! then you’ll need to install a small 1mm black spacer from the case kit underneath this standoff as it is 1mm shorter than the Pimoroni ones.

Install NVMe Base and NVMe Drive - With Ice Tower

If you are not using an Ice Tower cooler with your hat, then install four female-to-female standoffs to hold the hat in place. You’ll then use the short screws included with your hat kit to hold the Pi in place on the hat. If you’re using the Pineberry Hat, you’ll need to use the four 1mm black spacers supplied with the case kit underneath the hat as the standoffs are slightly shorter than the ones supplied with the Pimoroni kit.

Install NVMe Base and NVMe Drive - No Ice Tower

Next place the Raspberry Pi on top of the hat and secure it with three of the M2.5x7mm brass standoffs that came with the Ice Tower cooler. Don’t install a standoff on the hole nearest to the power port, this is where the button adaptor will go.

Hold Pi In Place

Plug the PCIe cable into the Pi. The tab on the connector can be pushed down to secure the cable through the microSD card slot. Likewise, to release it, the tab can be pushed up through the slot as well.

Next, we can position the button adaptor over the remaining mount. Slide the button adaptor into position through the microSD card slot at the back of the case in the orientation shown below. It should go in easily – do not force it past the LED or button as you may damage them. If you feel resistance, rather try to remove and reposition it until it slides into place without interfering with the surrounding components.

Add Button Adaptor

Now we can install our Ice Tower cooler. Before we install it, we need to remove the fan by removing the four M3 screws in the corners. We’re going to be installing the fan onto the side panel.

Remove Fan From Ice Tower Cooler

Remember to add the thermal pad to the CPU before putting the cooler into place. Secure the cooler with three M2.5 thumb screws, one into each of the brass standoffs. Again leave the button adaptor unsecured for this step.

Install Ice Tower and Secure with Standoffs

Now use the M2.5x12mm button head screw that was supplied with the case kit to hold the button adaptor in place. You’ll need to add the thicker black spacer supplied with the kit between the button adaptor and the leg of the Ice Tower cooler as well.

Do not overtighten the screw as you need the button adaptor to be able to still move slightly to push and release the button. You should be able to feel the button press and release easily through the button adaptor.

To install the fan, we’re going to use the same method that I used on my other case designs where the screws do not go all the way through to the back of the fan. We instead press the M3 nuts into the front of the fan and the screws then hold these in place against the side panel.

It is easiest to press these into place by placing the nuts onto a flat surface and then pushing each pocket in the corner of the fan down onto the nut. The nut is in position when it is flush with the face of the fan.

Install M3 Nuts Into Fan

Screw the fan to the side panel using four of the included M3x8mm button head screws.

Then plug the fan into your Raspberry Pi’s fan port or GPIO pins (if you’re using your own fan) before screwing the side panel into place.

Close up the case with the two side panels and four M3x8mm button head screws on each side.

Your case is now complete and ready to run. Follow Pineberry’s documentation or Pimoroni’s documentation for instructions on booting your Pi from the NVME drive.

Is It Worth Water Cooling A Raspberry Pi 5?

Today we’re going to be taking a look at a new water-cooling kit that has been designed for a Raspberry Pi 5. We’ll see how its custom water block and performance stack up against the DIY solution that I built for my Pi 4 a few years ago. I also used this solution on my Pi cluster, cooling 8 Raspberry Pi 4s at once. It worked really well for that too, so I expect it’ll also work well on the more powerful Pi 5.

Here’s my video of the comparison, read on for my write-up:

Purchase Links For Parts & Equipment Used

Tool & Equipment Used:

Unboxing The Seeed Studio Water Cooling Kit

The water cooling kit that we’re going to be using has just been launched, it is available from Seeed Studio’s web store and currently costs $120.

It includes a fan and water pump assembly, a cooling block, a 12V power adaptor, the installation hardware like some thermal pads and screws as well as some flexible tubing to run to the water block.

Water Cooled Pi 5 Kit

The water block is a custom design for the Pi 5 and the kit comes with a black aluminium heatsink for the bottom of the Pi as well.

Kit Components

Outlining The Thermal Testing Process

To test the thermal performance of the manufactured water cooling option, we need something to compare it to. For that, I’m going to try two different cooling solutions. The first is the active cooler that is designed for the Pi 5. This is a cheap and simple solution, costing just $5, and is also commonly available. It’s got an aluminium heatsink covering the CPU and surrounding heat-generating components with a small PWM fan on it.

Pi 5 Active Cooler

The second is my original water cooling setup from my Pi 4. I’ve had to make some changes to it to work with the Pi 5 – I’ve redesigned the heatsink bracket for the new CPU location and I’ve strengthed the legs and holder for the Pi as these were a little flimsy on the original. Other than that it’s pretty much the same set of components, especially in the cooling loop.

I’m going to use the same Raspberry Pi 5 with each cooling solution for consistency and I’ll just switch it between each solution for the test. I’m also going to be using the official Pi 5 power supply so that we don’t run into any power or undervoltage issues.

Raspberry Pi 5 For Testing

To test the thermal performance of each solution, I’m going to use a utility that I used to test my previous setup called CPU burn. It can be installed on your Pi using the following commands:

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

gcc -o cpuburn-a53 cpuburn-a53.S

It is then run in the terminal with the below command, which will also display the CPU temperature and clock frequency:

while true; do vcgencmd measure_clock arm; vcgencmd measure_temp; sleep 10; done& ./cpuburn-a53
CPU Burn Utility For Testing

This utility fully loads each of the CPU cores. I’ll leave this running for about 10 minutes on each so that we reach the point of equilibrium every time. I expect both of the water cooling setups to perform quite well, so we’ll also try overclocking the Pi to 2.8GHz and see how each handles the additional overclocking heat as well.

Overclocking Pi 5 To 2.8Ghz

I did try to get my Pi overclocked to 3Ghz but I couldn’t get it to be stable enough to survive a 10-minute stress test with CPU Burn at this CPU frequency.

I’m going to set up a thermal camera to watch each solution during the test so that we can see any hot spots. The thermal camera doesn’t work on metallic surfaces, so it will be a bit limited but we should still be able to see any significant issues.

Just out of interest, I ran the test first without any cooling solution connected and ran into thermal throttling after about half a minute. Thats evident by the drop in CPU clock frequency once we hit 85°C.

Results Pi 5 Without Cooling

Thermal Testing The Three Cooling Solutions

Testing The Raspberry Pi 5 Active Cooler

I’m going to start with the Pi 5 Active cooler as a baseline.

Pi 5 Active Cooler Installed

With the active cooler installed on the Pi, running CPU burn at the base CPU frequency of 2.4Ghz, the starting temperature is 41°C and the temperature climbs pretty quickly. Starts to stabilise after about 5 minutes and we have an average stabilised temperature of about 66°C.

Results Pi 5 Active Cooler Base

With the Pi overclocked to 2.8GHz, the temperature starts at about 54°C and climbs a bit faster. This time it stabilises after about 4 minutes at an average of 74°C. At this temperature, the fan steps up to its highest rpm and this actually brings the pi down to about 71°C quite quickly and it then floats between 71°C and 74°C depending on the fan speed.

Active Cooler Overclocked
Pi 5 Active Cooler With Thermal Image

I’m actually quite impressed by this result, I didn’t expect this $5 cooler to handle a fully loaded overclocked Pi without thermal throttling.

Testing The Seeed Studio Manufactured Water Cooling Kit

Next, let’s get the Pi fitted to the water cooling kit. Assembly is pretty straightforward, the water block obviously goes onto the top of the Pi with the thermal pad between it and the CPU and surrounding chips.

Water Cooling Kit Block

The aluminium heatsink goes underneath the Pi. This provides a bit of additional cooling but also protects the Pi and prevents any shorts on the contacts on the bottom if you’ve got it on a desk or workbench.

Water Cooling Kit Bottom Heatsink

We then connect up the flexible tubing between the water block, pump and radiator. There isn’t a place to mount the Pi to the assembly, so we’ll just leave it on the desk alongside it. This is by design though as the kit can be used with multiple Pi’s running in a cluster as well.

Installing Tubing On Heat Block

I have to say that this custom water block with a copper base does look pretty good on the Pi, even if it’s a bit unnecessary. It fits well around the taller components and still looks like it will allow you to hook up an SSD to the PCIe port.

Tubing Installed On Pi

Next, let’s fill up the loop with coolant (don’t use water – more on that in my final thoughts) and then boot up the Pi and start our tests.

Water Cooling Kit Testing

This block handles the base frequency of 2.4Ghz really well. We start off at about 30°C, then there is a small spike in temperature when the test ramps up but the temperature doesn’t climb much after that. It stabilises after around one and a half minutes at a temperature of about 45°C.

Water Cooling Kit Results Base

With the Pi overclocked to 2.8GHz, we now get a marginally higher starting temperature of 33°C and again it stays relatively flat, stabilising after a minute and a half at about 51°C.

Water Cooling Kit Results Overclocked
Water cooling Kit Thermal Image

So this cooling solution works really well and we’re still way under the thermal throttling limit for the Pi. Now let’s see if my DIY version can compete with it.

Testing My DIY Water Cooling Kit

I used thermal paste for my original Pi 4 build, but I want to try to keep the comparison to the manufactured option fair, so I’m using a thermal pad between the CPU and heatsink as well.

Pi 5 Installed In DIY Kit

I like that my solution has a place to mount the Pi but the kit’s custom cooling block looks a lot better than my simple square block and bracket.

Testing DIY Water Cooling Kit

Through testing, similar to the previous solution, this block handles the base frequency really well. We start with a slightly lower temperature of 29°C, then there is a small spike in temperature when the test is started but again, the temperature doesn’t climb much under full load. It stabilises after about one and a half minutes at a temperature of about 42°C. So actually around 2-3°C lower than the kit.

DIY Water Cooling Kit Results Base

With the Pi overclocked to 2.8GHz, we again get a higher starting temperature of 35°C and it stabilises after a minute and a half at about 49°C, also about 2°C lower than the kit.

DIY Water Cooling Kit Results Overclocked
DIY Water Cooling Kit Thermal Image

Testing Results Discussion and Final Thoughts

Both the water cooling kit and my DIY solution work significantly better than the active cooler on an overclocked Pi. That’s not to say that the active cooler isn’t a good option, it is actually quite capable of cooling an overclocked Pi at full load as well.

All Cooling Options Comparison

I’m a little surprised that my DIY solution with the simple aluminium block performed better than the kit’s copper-based block. I assume this is most likely because of a difference in the thermal pads, mine has a really thin and good-quality pad. Another possible reason may be that mine has a greater metallic surface area with the water whereas the kit’s block only has a copper surface on the bottom. The acrylic is a poor conductor of heat.

I think the main benefit of a water cooling setup, besides looking cool, is that they have the capacity to cool a few more than one Pi. Typically a good 120mm radiator can dissipate over 200W. Given that the Pi 5 uses about 12W, even if all of this energy was being converted into heat, we’d still be able to cool over 16 Raspberry Pi 5’s with one pump and radiator set. So while these are overkill for a single Pi, they’re actually quite a good cooling solution for clusters.

Pi 5 Water Cooling Options, BUY vs DIY

There are a couple of things that I like about each water-cooling solution over the other;

The manufactured option has a really good-looking water block and it offers better coverage to the surrounding components.

Water Cooling Kit Block With Coolant

The cooling block from the manufactured kit is also available individually so it’s possible to buy one pump and radiator set and use it across multiple Pis, which is great!

I do have some concerns that they’ve used copper for the cooling block and supplied an aluminium radiator, so you may run into issues with galvanic corrosion in your loop long term. So, I’d definitely stay away from using water in the loop and I’d use proper coolant to try and assist in limiting this.

My only other comment on it is that the included reservoir’s return line pushes a lot of air back into the loop which makes it noisy. My DIY solution is significantly quieter and you only really hear the fan noise.

Water Cooling Kit Radiator

I think my stand looks better overall and offers a place to mount the Pi but I am probably a bit biased. I’ve said a water-cooling solution is really better suited for a cluster, so the stand is unnecessary in any case.

DIY Water Cooling Stand Pi 5

Let me know in the comments section below which solution you prefer and also if there is something else you’d like me to test it on.

The New Geekom IT13 Mini PC is Awesome with an External GPU

Today we’re going to see if we can game on the new Geekom IT13 mini PC. This mini PC is powered by a 13th Gen Intel Core i9 13900H with 14 cores – 6 performance cores running at up to 5.4Ghz and 8 efficiency cores running at up to 4.1Ghz. It has 32GB of DDR4 RAM running at 3200Mhz and a 2TB NVMe SSD, so while not the latest generation of components it should still be a fairly powerful mini PC.

Where To Buy The Geekom IT13

The Geekom IT13 is currently available from their official web store or on Amazon in the following countries;

I’ve also used the below components for this project;

Unboxing & First Look At The Geekom IT13 Mini PC

The Geekom IT13 Mini PC comes in a black branded box and is fairly well protected. The PC is at the top as you open the box and the manuals and cables are beneath it.

In the box, you get the Geekom IT13 mini PC, a 120W power adaptor, HDMI cable and vesa mount.

Geekom IT13 Box Contents

Graphics are likely to be the bottleneck when gaming as we’ll be relying on integrated Intel Iris Xe graphics, but we’ll see how this performs.

Taking a look around the PC, on the front we’ve got two USB 3.2 gen 2 ports, a 3.5mm audio port and the power button.

IT13 Front IO

The sides are mainly just ventilation holes but we do have a full size SD card slot on the right-hand side.

SD Card Slot

On the back, we’ve got the main set of IO, including the DC input, two HDMI 2.0 ports and two USB 4 ports. So you can connect up to four displays, two 4k displays through HDMI and two 8k displays through USB 4. We’ve also got a 2.5G Ethernet port in the middle as well as one USB 3.2 gen 2 port and one USB 2.0 port. Adding to connectivity, internally we’ve got WiFi 6e and Bluetooth 5.2.

IT13 Rear IO

First boot & Initial Performance Tests

Next, let’s get it booted up. I’m pleased to say that the Geekom IT13 comes with a fresh install of Windows 11 Pro and it doesn’t have any pre-installed bloatware, which is good to see.

Geekom IT13 First Boot

If we open up the performance monitor, we can see our CPU is a 13th Gen i9, we’ve got 16GB of RAM running at 3200Mhz, the 2TB SSD is showing up and the GPU is the integrated GPU with shared memory.

Next, I want to run two benchmarks, Furmark to test the GPU and thermals and CPU Z to test the CPU.

Running the 1080p Furmark benchmark, under full load, the IT13’s fan does get quite loud. I’ve provided a clip of the fan noise in my Youtube video. The smaller cooler also probably doesn’t have enough thermal capacity to handle a sustained full load indefinitely.

IT13 Fan Noise

On completion, we get a score of 2,336 and an average over three tests of 2,338. This is not great but is fair for a PC that is relying on integrated graphics.

Next, let’s open up CPU Z. Here we can see a bit more information than we could in the performance monitor but it all looks as expected.

CPU Z CPU Details

Running a CPU benchmark, similar to the Furmark benchmark, the fan ramps up quite quickly. The score does also drop on consecutive tests and under a sustained load so it looks like the cooling solution is fine for a small base load and for short spikes in load but doesn’t handle a full sustained load for a long period of time. We’ll look at this a bit closer when we open it up.

CPU Z Benchmark Running

Over three tests we get an average multithread score of 7,618, which is pretty good for the Geekom IT13’s low-power CPU.

Now that we’ve done some benchmarking, let’s try gaming on it. I’m going to open up Counterstrike and see how it performs.

Counterstrike 2 Running On Integrated Graphics

We’re not off to a good start, on the Home Screen we’re already at a dismal 9-10 fps. This is with the graphics set to “Very High” but the integrated GPU is really struggling.

In the game, the performance is oddly a little better but still hovers around 10-15 fps. I guess technically I could play like this but it gives me a headache after a few minutes and it’s almost impossible to aim at anything.

In Game Graphics Performance

With the graphics set down to “Low” we get over 90 fps, which is much more playable. It looks terrible, but at least we can now participate in the game.

On “Medium” settings there is a fair balance between playability and appearance. I feel like you wouldn’t be disappointed playing on these settings given that the Geekom IT13 can fit into your pocket.

In Game Graphics Performance Medium

But I don’t want to leave it at that, let’s open it up and see what’s on the inside and what we can do to improve the GPU performance.

Opening Up The Geekom IT13

I think the best place to start is by removing the screws at the bottom.

Screws To Remove Bottom Panel

Under the bottom cover, we’ve got a bay for a 2.5” drive.

2.5 Drive Bay

On the motherboard, we’ve got a 2TB Lexar NVMe drive and two sticks of DDR4 RAM. We’ve also got an M.2 SATA port. They claim that the Geekom IT13 is user-friendly to upgrade and it certainly looks that way. You could easily swap out the RAM, replace the NVMe drive or add additional storage through the second M.2 port or 2.5″ drive bay.

Internal Motherboard & Components

I presume we’ll need to remove the screws on the top to get the motherboard out and I want to take a look at the cooling solution so let’s get that done.

Top Screws To Remove Fan

Under the fan, the heatsink has a very small contact area with the CPU so I wonder if trying to replace the thermal paste with some better quality paste will make any improvement.

CPU Cooling Solution

With the heatsink removed, the thermal paste looks like it is applied evenly but looks a little dry so I’m going to try clean it off with some alcohol and then use better quality thermal paste on it.

After re-applying the thermal paste, I think that’s about all we can do to the cooling setup without replacing it.

Cooling Solution Being Reinstalled

Next, I’m going to try a bit of a hack job. I’ve got a small M.2 adaptor that’ll plug into the port that the NVME drive is in. If we swap that out then this adaptor allows us to use an Oculink cable to plug in an external GPU.

The adaptor is a bit small so I’ve 3d printed another adaptor for the adaptor so that it’ll fit into the same slot.

This now allows us to use a GPU which will dramatically improve gaming performance but we don’t have a boot drive anymore. If I had an M.2 SATA drive I could plug that into this port, but I don’t, so I’m going to instead use the SATA port on the 2.5” bay to add a 2.5” SSD.

Crucial 2.5 SATA SSD

If I put the drive into place over the motherboard then it’s going to block access to the Oculink port so I’m going to remove the drive from its enclosure as well and this will make the whole build more compact.

And that’s the hardware complete and ready for a second round of tests.

SSD Plugged Into IT13

Designing & 3D Printing A New Case For The Geekom IT13

I obviously can’t put the computer back into the Geekom IT13 case as the Oculink port would be facing the bottom and there isn’t a cutout for it. So, rather than have a Frankenstein mix of computer parts on my desk, I’ve designed and 3D printed a new case for it.

New Enclosure Designed In Fusion360

I printed it out of copper, black and blue PLA. I initially wanted to print the case on it’s side to reduce the number of supports required but this then required a large number of filament changes to get the copper and black colour scheme. I rather printed the case in the vertical orientation which significantly reduced the number of filament changes and the associated print time.

This case stands the Geekom IT13 upright and allows easy access to the Oculink port on one side. It’s also got space to mount the SSD and has a lot of airflow on both sides through the hexagon mesh for cooling.

It’s probably difficult to tell on camera but this computer is tiny. It is even dwarfed by my recent mini-ITX computer build which I thought was quite small.

Geekom IT13 Size Compared to Mini ITX Computer

Testing My Modifications To The Geekom IT13

Next, let’s get it booted up and then see what kind of performance we get from it with the new thermal paste, new SSD and the external GPU. With the Oculink cover removed, we can plug our external GPU in.

External GPU Plugged Into Geekom IT13

I can’t tell much difference in the boot time with the SATA SSD instead of the NVMe drive, but honestly I’m just happy that this setup actually boots.

Boot Time Doesn't Seem To Be Very Different

Opening up Task Manager, we can now see our Radeon RX 6600 GPU connected.

GPU Now Showing Up As Radeon RX6600

In CPU-Z we can see the same, but I’m really interested to see if the thermal paste makes any difference to the CPU benchmark figures. So let’s try that.

CPU Z Benchmark Running On IT13 with GPU

It still seemed to thermal throttle but it felt like it took a bit longer for the fans to spin up this time around. Again, you can hear the fans running in my Youtube video.

IT13 Enclsoure With External GPU

After a few seconds, the result was 7,756 and an average of three tests was 7,749. So we got a little over 100 extra points. This is only a bit over a 1% improvement so probably not worth removing the heatsink for if you pick one up, but I think it was worth trying out.

Next, let’s try Furmark and see what the new external GPU does.

Even a few seconds in, the external GPU is obliterating our previous score. We’re getting significantly better performance with a new average of 123 fps.

Over three tests I got an average score of 7,411 – which is over three times better than what we got with the integrated GPU.

Furmark Results

Lastly, let’s see if we can do better than 10 fps in Counterstrike.

With graphics set to “Very High” we’re now getting around 110-120fps in the home screen. This is already an order of magnitude better than what we got with the integrated graphics.

Counterstrike 2 Performance With External GPU

In-game is even better, we now get around 180-200fps.

Final Thoughts On The Geekom IT13

I knew that adding an external GPU would give us a big improvement, but I didn’t expect it to be an improvement of almost 13 times the original fps. I guess that’s what happens when your GPU is bigger than the computer.

New 3D Printed Enclosure With GPU

I think this is a really cool little PC. It’s ultra-portable when you need it to be. You can just unplug the GPU and it’ll revert back to the integrated graphics if you need to take it somewhere, but you’ve still got the power of a dedicated GPU at home when you need it. The base Geekom IT13 is a really powerful mini PC that’ll tackle a wide range of workloads, it’s upgradable in future, and you can even add a GPU to it to significantly improve gaming performance if you really want to but it’ll handle mid-tier games on medium 1080p settings without any issues.

Check out Geekom’s web store to get your own IT13. Let me know what you think of it and my case design for it in the comments section below.

Geekom IT13 With 3D Printed Enclosure

Pi 5 Desktop Case For Pineberry HatDrive!

Today we’re going to be assembling a 3D-printed case for the new Raspberry Pi 5 and Pineberry’s HatDrive! This is an adaptation of my standard desktop case for the Raspberry Pi 5, with adjustments made for the top and bottom hat versions of the HatDrive! This case also includes an adaptor so that you can still use the power button on the back of the Pi 5.

What You Need To Assemble Your Case

If Building HatDrive! Top:

  • Case Kit (3D Printed Parts & Screws) HatDrive! Top – Buy Here
  • 2230 NVMe Drive – Buy Here
  • Raspberry Pi 5 Active Cooler – Buy Here
  • 40mm 5V Fan – Buy Here

If Building HatDrive! Bottom:

  • Case Kit (3D Printed Parts & Screws) HatDrive! Bottom – Buy Here
  • Ice Tower Cooler (for the Pi 5) – Buy Here
  • 2280 NVMe Drive – Buy Here
  • Or Alternate Cooling Solution Below
  • Raspberry Pi 5 Active Cooler – Buy Here
  • 40mm 5V Fan – Buy Here

Ensure that you get the Ice Tower cooler for the Raspberry Pi 5, the cooler for the Pi 4 will not fit.

Assembling The Raspberry Pi 5 HatDrive! Case

To start, we need to install the M2.5x6mm brass standoffs that come with the case kit on the bottom of the case. These are installed with the male thread facing upwards into the case and are each held in place with an M2.5 button head screw through the base of the case.

HatDrive! Top Installation

If you are using a top-mounted HatDrive!, the next step is to install your Raspberry Pi. Position the Pi onto the standoffs and secure it with three M2.5 brass standoffs (female to female) that came with the HatDrive.

Don’t install a standoff on the hole nearest to the power port, this is where the button adaptor will go.

Pi 5 Secured With Brass Standoffs On Three Points

Next, install the button adaptor. Guide the adaptor into position from the inside of the case through the larger SD card slot area. Then move it across into the narrower button slot area and over the threads on the standoff.

Position Button Adaptor Over Corner Screw Hole

Screw the fourth standoff through the button adaptor and onto the brass standoff. This will now hold the button adaptor in place but still allow the power button to be pressed.

Hold Button Adaptor In Place With Standoff

Press your Pi Active cooler into place with the two included plastic studs, these go through the holes in the Pi’s PCB. Remember to add the thermal pad or remove the film from the included thermal pad first.

Plug the fan into the fan port between the GPIO pins and the USB ports.

Press Pi5 Active Cooler Into Place

Next, install your NVME SSD onto your HatDrive! I’m using a Sabrent Rocket drive on mine, Pineberry also have a list of compatible drives that have been tested on their website.

Next, add the GPIO extensions through the HatDrive if you’re using them for an accessory like a second fan.

Add GPIO Extensions To Hat Drive

Add your HatDrive with SSD installed, plugging in the PCIe cable into the Pi first. The tab on the connector can be pushed down to secure the cable through the microSD card slot. Likewise, to release it, the tab can be pushed up through the slot as well.

Secure the HatDrive! with the screws included with it.

Install Hat Drive And Secure

HatDrive! Bottom Installation

If you are using a bottom-mounted HatDrive!, the first step is to install your NVME SSD onto your HatDrive! I’m using a Sabrent Rocket drive on mine, Pineberry also have a list of compatible drives that have been tested on their website.

Place it onto the brass standoffs and then use the female-to-female brass standoffs supplied with the HatDrive! to hold it in place. Next place the Raspberry Pi on top of the HatDrive! and secure it with three of the M2.5x7mm brass standoffs that came with the Ice Tower cooler. Don’t install a standoff on the hole nearest to the power port, this is where the button adaptor will go.

Plug the PCIe cable into the Pi. The tab on the connector can be pushed down to secure the cable through the microSD card slot. Likewise, to release it, the tab can be pushed up through the slot as well.

Next, we can position the button adaptor over the remaining mount. Slide the button adaptor into position through the microSD card slot at the back of the case in the orientation shown below. It should go in easily – do not force it passed the LED or button as you may damage them. If you feel resistance, rather try to remove and reposition it until it slides into place without interfering with the surrounding components.

Button Adaptor In Position

Now we can install our Ice Tower cooler. Before we install it, we need to remove the fan by removing the four M3 screws in the corners. We’re going to be installing the fan on the side panel.

Remove Fan From Ice Tower Cooler

Remember to add the thermal pad to the CPU before putting the cooler into place. Secure the cooler with three M2.5x6mm screws that are supplied with the cooler (I’ve used thumb screws in the below image), one into each of the brass standoffs. Again leave the button adaptor unsecured for this step.

Install Pi & Ice Tower Cooler

Now use the M2.5x12mm button head screw that was supplied with the case kit to hold the button adaptor in place. You’ll need to add the small black spacer (shown in red below) between the button adaptor and the leg of the Ice Tower cooler as well.

Do not overtighten the screw as you need the button adaptor to be able to move to push and release the button. You should be able to feel the button press and release easily through the button adaptor.

Fan & Side Cover Installation

Install the fan onto the side cover with its included screws or rubber mounts.

If you are using the fan from an Ice Tower cooler, we’re going to use the same method that I used on my other case designs where the screws do not go all the way through to the back of the fan. We instead press the M3 nuts into the front of the fan and the screws then hold these in place against the side panel.

It is easiest to press these into place by placing the nuts onto a flat surface and then pushing each pocket in the corner of the fan down onto the nut. The nut is in position when it is flush with the face of the fan.

Press Nuts Into Fan Pockets

Then plug the fan into your Raspberry Pi’s GPIO pins before screwing the side panel into place.

Close up the case with the two side panels and four M3x8mm button head screws on each side.

Your case is now complete and ready to run. Follow Pineberry’s documentation for instructions on booting your Pi from the NVME drive.

Can I Design & Print A Mini ITX Computer With One Charge Of The Jackery Solar Generator 2000 Plus?

Jackery recently asked if I’d like to try out their new Solar Generator 2000 Plus portable power station. It’s got some great features like 3000W continuous output and a 2042Wh capacity. I’ve done a full review on it if you’d like to check that out for some more of the technical specs and my thoughts on it – full review. The Solar Generator 2000 Plus is a kit that is made up of the Explorer 2000 Plus portable power station and a 100W SolarSaga solar panel.

The review got me thinking, could I design, 3D print, laser cut and assemble a Mini ITX computer using a single charge of the Explorer 2000 Plus? 2042Wh is a lot for a portable power station, but would that be enough to last when using my computer for a couple of hours worth of design time, possibly a full day of 3D printing and then to power the tools and computer through assembly and setup?

Here’s my video of the project, read on for the write-up;

What You Need To Build Your Own Mini ITX Computer

Tool & Equipment Used:

Setting The Ground Rules

Before starting with the design, I need to set some ground rules for the project.

I’m going to be limited to a single charge of the Explorer 2000 Plus. I’ll charge it up at the beginning of the project and I can only use power from it to power any computer equipment, printers, tools or chargers that I need to get the mini ITX computer designed, printed, assembled and booted up.

Jackery Explorer 2000 Plus

I also can’t use previously stored power in battery-powered devices. If I have to use a battery-powered device like my laptop then I’ll drain it completely before starting and I’ll need to use the Explorer 2000 Plus to charge it as well.

Charging The Jackery Solar Generator 2000 Plus

To start, let’s get the power station charged up.

Jackery Ways To Charge

There are three ways to charge it, the fastest is going to be plugging it into mains power, which will fully charge it from empty in just 2 hours.

The second way is through solar power. This varies by how many panels you connect to it and how strong the sun is, but with 6 of their 100W panels, you can get it fully charged in just 5.5 hours.

The third is through a car’s 12V DC socket. This is the slowest option and will take around 20-22 hours to get it fully charged.

We’re heading into summer here and we have nice bright long days, so I’m going to use the solar option.

Jackery In Sun Charging

The SolarSaga 100 panel is a 100W foldable design that is IP65 waterproof and includes integrated USB ports for charging directly from the panel.

SolarSaga Panel IP65

I’ve got the panel hooked up to the Explorer 2000 Plus and it’s set up outside in full sun to charge. In the morning sun it’s outputting around 60-70W, by midday it was outputting around 83W. Even at 83W, it’s still going to be a while but that’s an improvement on the morning results and it’s essentially free energy.

After two days of charging, it’s now full and ready to start the challenge.

Solar Generator 2000 Fully Charged

Mini ITX PC Components Chosen For The Build

Next, let’s take a look at the components that I’ve chosen for the PC build.

MiniITX PC Build Components

I want this to be a compact but still reasonably powerful computer so I’ve gone with this ASRock B550M-ITX Mini ITX form factor motherboard.

ASRock B550M-ITX

For the processor, the Ryzen 5 5500 is a good balance between value for money and performance. It also doesn’t require a large amount of power so we can get away with a compact power supply. It also comes with a basic cooler to keep the cost down.

For graphics, since the Ryzen 5 5500 doesn’t have integrated graphics, I’ve got a dedicated Radeon RX 6600 GPU. This card also strikes a good balance between value for money and performance.

Lastly, I’ve got two 8GB sticks of DDR4 RAM and a 1TB NVME SSD. To power the computer I’ve got a 500W Silverstone TFX power supply.

This setup should be perfect to run most modern games at 1080P and reasonably high settings.

Designing The Mini ITX Computer Case

In terms of layout, I’m going to go with the power supply beneath the motherboard as it’s got a fan on the top and I’ll mount the GPU vertically on the back of the motherboard to save space. The GPU is quite big so is going to be the limiting factor in how compact we can get the case.

Let’s get started with the CAD design and for that, I’m going to use my Macbook which is now dead. So let’s plug it into a USB C port on the Explorer 2000 Plus and use that to charge and power it. My Macbook uses around 90W when charging up from dead but this should settle to under 10W once charged. Then we can open up Fusion360 to do the design.

I’m going to go with an almost square design that’ll just fit onto my 3D printer’s 256 x 256mm print bed. I drew inspiration from my Raspberry Pi mini desktop case design that I did a couple of years ago.

The main body of the mini ITX case will be a single part for rigidity. I’ll then laser-cut an acrylic panel for the middle which will be used to mount the motherboard and GPU. The side panels will each be removable with cutouts for the fans. I’m going to pattern the side panels with a hexagon mesh but I’ll do this with an infill trick in the slicer rather than try to do it in Fusion360. I also want to add some text cutouts to the side panels which I think will look pretty cool once the hexagon mesh is in place.

MiniITX Case Partially Modelled

Halfway through the design I’ve used about 5% of the capacity, which is a bit less than I was expecting.

To make the front panel more appealing, I’ve added an insert that will have the same hexagon mesh pattern as the sides and there’s a cutout for the power button as well.

The back has cutouts for the power supply, motherboard IO shield and the GPU. The GPU mounting arrangement is a little bit unconventional as the case already takes up the whole print bed, so there is a small bracket that will need to be screwed onto the back of the case during assembly. I’ve also added some legs that screw onto the underside of the case.

MiniITX Case Complete

And that’s the mini ITX computer design complete. We’ve used 9% of the total charge, which is about 184Wh. That leaves quite a lot for printing and laser cutting but as with most projects, there is a strong possibility that I’ll need to come back and make tweaks to the model. I may even have to reprint parts of it at a later stage.

Jackery Battery Status After Modelling

Slicing The Mini ITX Case For 3D Printing

With the design done, we need to export the model files for the components and then open them up in the slicer software. I’m using Bambu slicer and I’m going to use black PLA for the body of the case and red PLA for the sides, legs and front accent.

As I mentioned before, the case and side panels only just fit onto my print bed. On the Bambulab P1S, we need to make some modifications to the G-code and use a 3D printed adaptor to block off the cutting arm to be able to use the full bed.

Bambu Slicer Before 3D Printing

With all of the slicing done, we’ve now got 86% of the capacity available for printing and laser cutting, so let’s get started.

Jackery Status After Slicing

Making Up The Case Components

My P1S 3D printer uses a lot of power to warm up – just under 1000W. This will drop down to about 150 to 200W once warm and will remain at this level for the duration of the print.

3D Printer Runing On Jackery Solar Generator 2000

While the printer is running, I’m going to use the second AC output on the Explorer 2000 to power my laser cutter. We’ll use this to cut out the acrylic internal panel to mount the motherboard and GPU onto. I’m cutting this panel from a piece of 3mm grey tinted acrylic. I’ve included a 3D printable version in the design files if you don’t have a laser cutter but acrylic works well as a backing plate because it’s quite rigid.

Laser Cutting Centre Panel

The laser uses about 500W, which is added to the 150 to 200W that the 3D printer is already using. The laser is only running for a very short period so it won’t make much difference to the remaining capacity.

With the panel cut, we can move back to finishing off the 3D printing.

After a full day of 3D printing, all of the components are printed out. We’re now down to just 44% capacity. That’s quite a lot left to get through for what we still need to do, but that’s if we don’t have to re-print anything. I hope the parts all fit together properly and that the PC components fit into the case!

To complete the case components, we need to add a couple of M3 brass inserts into the main body of the case. To melt these into place I’m using a soldering iron with a brass insert tip and this too is running off the Explorer 2000.

We also need to add two to each of these graphics card support brackets.

Melting Inserts Into Brackets

We need four on each side to mount the side panels onto, four to hold the acrylic panel in the middle and three to hold the graphics card at the back.

Assembling The Mini ITX Computer

The front grill is press-fitted into place and we can add a couple of drops of superglue to secure it. I didn’t want to put any screws through it as it doesn’t need to be removable.

In keeping with the rules, I charged my USB C screwdriver on the power station, so that’s ready to go.

Charging USB C Screwdriver

I’m going to add some M3x6mm nylon standoffs to the acrylic centre panel before I install it to mount the motherboard onto. You could use brass standoffs as an alternative, but I like nylon’s black appearance and we won’t have to worry about shorting components if they come loose.

Nylon Standoffs On Centre Panel

We can then install the acrylic centre panel with some M3x8mm button head screws.

Centre Panel Installed

Next, we can assemble and add our motherboard.

First, let’s install the processor and heatsink. The heatsink comes with thermal compound pre-applied, so we don’t need to add any onto the CPU.

Then we can add our RAM to the two RAM slots, and add our SSD.

We can then push our faceplate into the case cutout and mount the motherboard on the standoffs, securing it with some M3 nylon screws.

Before we add in the power supply, we need to install the legs and add the riser cable for the GPU. The legs are held in place with some M3x12mm button head screws and M3 nuts which go through some rubber feet for vibration isolation. The head of the M3 button head screw sits in the recess in the base of the case and the nut goes on the underside of each foot.

The riser cable plugs into the PCIe slot and then runs under the centre panel and to the GPU side of the case.

GPU Riser Cable Installed On Case

The power supply goes in underneath the motherboard and is held in place with four included screws at the back.

Problems…

With the motherboard and power supply in place, the graphics card gets mounted on the opposite side.

Riser Cable Plugged Into GPU

At this stage, I found my first issue. I hadn’t considered that the PCIe riser cable has quite a large plug on it and this makes the depth of the card a lot more than what I had allowed for. Even if I remove part of the centre panel, there isn’t even enough room between the card and the motherboard for this size plug.

I ordered a second one with a straight connector instead of a 90-degree one. This improved the depth issue but was then too wide for the space in the case. I removed the plastic shroud around the PCB joints and this allowed just enough room for it to fit into the case. This obviously puts strain on the soldered joints, which is not ideal, but I don’t plan on moving the computer around much so it shouldn’t be an issue.

I’m going to leave it like this in my build as changing the card position would mean having to reprint all of the case components and I’m pretty sure I don’t have enough power left for that. The best solution would be to find a more compact 90-degree riser and allow for a cutout in the centre panel behind the motherboard for some additional clearance.

Installing GPU In Case

The card is held in place with a few brackets. The main one at the back is secured with two M3x16mm screws and then the card is screwed onto the bracket with M3x8mm screws. Then the one at the top clamps the card with another M3x16mm screw.

I was going to put this inside support in place with some M3x8mm screws and have the GPU rest on it. But I’m rather going to use these holes to zip-tie the GPU to pull it down into the case.

GPU Held Into Place

We can also plug our power supply into it.

Plug Power Into GPU

It’s a tight fit, the graphics card only just makes it into the case but I like that it’s a nice compact build.

GPU Installed In Case

Lastly, let’s add the power button to the front of the case. I’ve pre-soldered leads to it and we can plug them into the motherboard pins.

Power Button Installed

Now we can plug the power supply connections into the motherboard and close it up.

Plugging Power Supply Into Motherboard

The side panels are also both held in place with some M3 button head screws. The graphics card side aligns really well with the fans but it looks like my guess on the motherboard side was a little off.

I’m going to tweak that by a few millimetres and get it printed again with my remaining charge, I’ve got 39% left and these panels used less than 10% each to print so I think that’s worthwhile.

Jackery Charge Before Additional Panel

The new panel is now made up and we’ve only used an additional 7% so I’m really happy with that. It looks like it lines up perfectly this time.

Assembly Of The Mini ITX PC Is Complete

With the side panels in place, the assembly of the mini ITX computer is now complete and I think it has come out looking great!

Setting Up & Testing The Computer

Now we need to set up the BIOS and install windows. I’ll do that with the computer running off the Explorer 2000 as well. In the BIOS, we can see we’ve got our Ryzen 5 processor detected as well as our two 8GB sticks of RAM and we can see our 1TB SSD.

We’ve got 32% remaining and I’m drawing about 50W with the computer and monitor running off it but it is essentially at idle without an OS running.

Power Draw In BIOS

With Windows installed on the mini ITX computer, let’s try running Furmark at 1080P.

I get a score of 7691, with a maximum GPU temperature of 57 degrees and a total system power draw of about 160-170W. So there’s definitely a lot of room for overclocking. I ran the test two more times and still got an average score of around 7700 and the GPU temperature increased to a maximum of 64 degrees.

Running Counterstrike 2 at 1080P with all settings on Very High, we get between 150 and 200 fps. This is pretty good for this size computer. The power draw is also a little under 180W.

Final Thoughts On The Project & Jackery Solar Generator 2000 Plus

So I managed to design, print, assemble and configure a mini ITX computer using a single charge of the Solar Generator 2000 Plus. I even had 17% to spare, and better yet, the charge was free using solar power.

Ryzen Side Panel On Mini ITX PC

Check out Jackery’s web store if you’re interested in getting your own Solar Generator 2000 Plus kit. I think they’re really useful to have around the house or to take on day trips or camping trips for portable power. It’s quiet and clean, and power is essentially free with the solar panel.

Jackery In Sun Charging

Let me know what you think of the computer build in the comments section below. Let me know if you have a go at printing and building your own mini ITX PC as well. I’ve tried to keep the design generic enough that you’ll be able to use different components if you’d like to. I’ve included solid side panels as an option if you use a different cooler or GPU so that you don’t have the fan cutouts in the wrong places.