After being teased by Raspberry Pi in their Raspberry Pi 5 release post, 8 months and multiple revisions later we finally have the Official Raspberry Pi M.2 HAT+ available for purchase. With my phone lit up like a Christmas tree bright and early yesterday morning telling me who I could order from, it felt rude not to pull the trigger, so I placed my order and I now have the Pi 5 M.2 HAT+ in my hands, ready to put it through its paces!
It’s a top-mounted board (given it’s a HAT, or Hardware Attached on Top, that should be somewhat obvious but it’s been blurred a little recently) which means it’s limited in terms of the space it can utilise if it wants to be somewhat compatible with the official, first-party accessories such as the official Raspberry Pi 5 case.
So on that note, it can fit either an M.2 2230 or 2242-sized NVMe/M.2 drive which means it does fit in the official case. This does, however, come at the sacrifice of the included fan in the official case which may put you at a bit of a disadvantage when it comes to cooling your Raspberry Pi 5. On the flip side, you’re also unable to put the top cover/lid of the case on so maybe it won’t be as restricted.
To get around potential shortcomings, you’ll likely want to pick up the Active Cooler which will offer you a heatsink and integrated fan which will sit below the M.2 HAT+ and offer you something at least. It’s still going to be choked off a little, though so it’s something we’ll need to explore later in the review.
Table of Contents
Initial Problems: Assembling the M.2 HAT+
Upon opening the package you’re presented with the HAT+ itself which comes with 1 end of the PCIe cable pre-installed in the HAT, and the other end protected by a small piece of tape, which is a nice touch. You have 8 screws, 4 spacers, and the GPIO extension header, but it’s here that my frustration began. Though as a foreword, I’m sure this won’t be the case for everyone and I’ve been on the receiving end of a batch that’s had some poor quality control on the screw and spacer front. Yours may not have the same problem but it felt only fair to mention them.
The screws and the spacers are made of plastic and are a little fiddly. 2 of my 8 screws have manufacturing defects meaning that I can’t actually fit a screwdriver head into them without scraping away the excess material within the head of the screw. You can see from the photo above that the middle screw hasn’t been manufactured correctly and I have 2 like that.
The spacers seem fine in theory, though again, I seem to have received some with manufacturing defects. In the below photo, you can see that the spacer on the left has an off-centre hole/thread, and it’s considerably smaller than the one on the right. I again have 2 spacers like this and before I took a closer look I was struggling to understand why it was so difficult to put this thing together.
As far as the GPIO header extensions go, I guess that’s fine. If you’re not using the spacers then they rise through the HAT’s header section and they’re then accessible. If you want to use the spacers though, to give space for an Active Cooler, it’s then somewhat pointless.
Full installation instructions for the HAT+ can be found on the Raspberry Pi documentation site so I won’t reinvent the wheel there, but do make sure to double-check your screws and spacers to see if there are any issues.
Testing the Raspberry Pi M.2 HAT+
Side note before we get into the benchmarks, whilst this is advertised as also being compatible with AI accelerators, I’ll only be testing an M.2 NVMe drive in this article.
Disk Benchmarks
As it’s the only 2230/2242 M.2 NVMe drive I have available at the moment, I’ll be using the 256GB Pinedrive from Pineboards for testing which is a DRAM-less M.2 drive, though it provides up to 2250/1300MB/s read/write speeds respectively, so will be more than enough to saturate even the forced PCIe Gen 3 lane available on the Pi 5. All tests were performed times (with the average being presented here) with a 5GB test file on an ext4 filesystem running on an idle OS. I did throw in a 500GB Samsung 980 as I was testing something else with that, so I thought I might as well include the numbers for the fio testing.
fio
fio is a classic in the storage testing arsenal, and I’ll be using fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --filename=test --bs=4k --iodepth=64 --size=5G --readwrite=X
to test this at a 4K blocksize. If you want to emulate the test, replace X with read, write, randread, randwrite for the same sequential/random read and write tests.
As you can see below, at PCIe Gen 2 speeds, there’s no problem, with minor variance between the 2 drives. With Gen 3, the Pinedrive takes a bit of a hit on the random reads but we’re not testing the drives here, and you can see that we’re hitting around 830MB/s which is solid and nothing to be sniffed at.
PCIe Gen 2
PCIe Gen 3
iozone3
My iozone3 script runs through a range of block sizes (from 4KB to 16MB), with again, sequential reads, writes, and random reads and writes. The command it uses is iozone -e -I -a -s 5G -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
if you wish to compare. This section only contains Pinedrive data.
PCIe Gen 2
Block Size (KB) | Sequential Read (MB/s) | Sequential Write (MB/s) | Random Read (MB/s) | Random Write (MB/s) |
---|---|---|---|---|
4 | 60.21 | 221.86 | 58.45 | 202.97 |
16 | 212.56 | 305.11 | 211.92 | 299.49 |
512 | 425.10 | 396.09 | 425.00 | 395.67 |
1024 | 430.28 | 398.95 | 430.19 | 398.83 |
16384 | 435.28 | 394.42 | 435.24 | 401.40 |
PCIe Gen 3
Block Size (KB) | Sequential Read (MB/s) | Sequential Write (MB/s) | Random Read (MB/s) | Random Write (MB/s) |
---|---|---|---|---|
4 | 64.98 | 309.99 | 63.46 | 276.61 |
16 | 228.62 | 496.28 | 227.76 | 489.40 |
512 | 814.16 | 752.78 | 813.80 | 755.75 |
1024 | 832.02 | 761.90 | 831.89 | 769.83 |
16384 | 850.40 | 776.52 | 850.28 | 746.53 |
Speeds are looking good, so as long as you pick a semi-decent NVMe drive, you’re going to have a much better time with this HAT when compared to something like a microSD card in the Raspberry Pi 5.
Temperatures in Official Case
As I alluded to earlier, the Raspberry Pi 5 is going to take a hit in terms of thermals when you use this M.2 HAT in the official Pi 5 case due to it taking the space of the included fan.
I’ve tested several situations to see how it looks in what I believe to be the most common setups for users, though let’s clarify what I’m testing exactly.
Bare: This is just the Raspberry Pi 5 on its own with no case or cooling.
Bare with HAT: We’re just adding the Raspberry Pi M.2 HAT+ on top of the bare Pi 5 for this.
Case: No HAT, just the Raspberry Pi 5 in its official case with the heatsink and fan.
Case with HAT: Now we’ve added the hat, this figure is for a bare Raspberry Pi 5 with the HAT+ attached inside the case.
Active Cooler: This is the Raspberry Pi 5 with the official Active Cooler attached, no case, no HAT.
Active Cooler in Case with HAT We’re now using the Active Cooler on the Raspberry Pi 5, in the case, with the HAT attached.
Heatsink in Case with HAT: Raspberry Pi 5 fitted with the heatsink from the official case, with the M.2 HAT installed.
As you can see, there’s a definite temperature hit as you start to choke off the available airflow in the official case, and whilst I’m simulating worst-case scenarios here with the performance CPU governor being set (so the Pi is drawing at least another 1W or so from the wall), it’s quite a change.
Where to buy the Raspberry Pi M.2 HAT+?
As with all Raspberry Pi products, they’re available via their worldwide distributor network, so if you head over to the Raspberry Pi 5 M.2 HAT+ product page and hit Buy Now you’ll find it defaults (based on IP/location I assume) to your local distributor.
We may see it end up on Amazon through resellers at some point soon, and I’ll update this section if I spot anything!
In terms of pricing, the RRP is $12, though this is without sales tax or shipping. In the UK it looks to be around £11-12, and up here in Sweden it’s 150SEK, so when tax is considered, the pricing is pretty uniform so that’s nice. It will no doubt be a good value option for people wanting to test the waters with a brand they know, unlike the swathes of Chinese clones that have popped up over the last year.
Overall Thoughts
Other than the issue I’ve had with the screws/spacers, it looks like a well-made board that will serve you well if you’re looking for something that comes from Raspberry Pi itself.
I’m also not sure if they strictly went with this form factor to fit in the case officially, or if it was just to follow the pattern of previous HATs. In either case, I would have been happy to potentially see a modified version of the case to properly account for the hat. Perhaps they could look at releasing a modified version of the middle/top pieces to allow for room?
With it being in this form factor we’re limited to 2230/2242 M.2 drives which means you have a much smaller selection, but thanks to the growth in popularity in the handheld gaming console market that also utilises these the situation is slowly changing.
If you ignore the case compatibility, it’s a good value option for users who didn’t want to go for one of the earlier-released alternatives, either by not looking for them or just wanting to have an official option. If you didn’t know that NVMe storage on the Raspberry Pi 5 was a thing, do check out my review of the Pineboards HatDrive Bottom which offers a bottom-mounted solution with support for 2280-length M.2 drives.
For me, it’s close but no cigar. I feel like I’m holding Raspberry Pi to a higher standard than the alternatives, whether you agree or not, as they have more of an ecosystem to integrate with. Not being able to use it nicely with the official case (essentially requiring users to buy a case, discard the fan and then purchase the Active Cooler instead) is a definite negative for me and the GPIO situation feels a bit odd. Again, both of these make no difference if you don’t wish to use the case, and maybe I’m in the minority here.
Have you picked up the official Raspberry Pi M.2 HAT+ already? Did you have issues with the mounting hardware? Was I expecting too much? Too harsh? Let me know what you think in the comments!
12 comments
Very fair review I’d say!
Thanks, Michael!
I am having the same issues with the screws. None of them fit including the one for the drive
Hey! I’ve been told that they’ve actually stopped selling the HAT because of this problem and are working on replacement mounting hardware before putting them back on sale. You should contact the company you bought the HAT from to ask about information on a replacement, I know Pimoroni in the UK are already aware of this and are offering them!
Really? It took them a yeatr to develop a HAT, but the screws don’t fit?
I was wondering as well, asthe availabitity here in Germany is just sad. I hope oince they have fixed their screws, it’s going to be better
Here’s to hoping! It really is quite disappointing that nobody seemed to run checks as the problem did end up being rather widespread. I’ll have a review of a similar HAT that doesn’t have these problems (and has a couple of advantages!) published tonight so take a look at that if you’re still on the market for an M.2 HAT.
I just put the hat on my Pi-5. I agree that the stand off and screws could have been made better. The speed is good. I had to drill out the holes in the bottom of the Standard Pi case so it would fit in the case but you can;t put the top on the case with the hat attached.
I also bought a USB-3 flash drive so I could back up the Nvme drive. I also have a basic SD card and set the boot order in the eeprom to Oxf164 so it boots the SD card if it is installed first, Next it will boot the flash drive it the SD card is not installed. And if the Nvme if it is the only drive installed.
When I back up I put the SD, Flash, and nvme drive and use SD card copier to back up the Nvme drive to the Flash drive.
can we stack more hats with the m2 hat+ attached
Only if they use the GPIO pins and not the PCIe connector, oh, and you’ll need to buy a longer GPIO extension as the one included doesn’t actually go all the way through the ports on the M.2 HAT+
thanks!
I wouldn’t bother with the official Raspberry Pi case. It usually pails in comparison to a lot of third-party cases.
Perhaps, though lots of people use it and it was shown in marketing materials for the HAT+!