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.

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.

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



Please enter your comment!
Please enter your name here

Latest posts

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...

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...

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...

Related posts