I’d heard rumours on the grapevine that official Raspberry Pi microSD cards were on the way, but my crazy busy August/September meant that I’d completely forgotten to keep an eye out for them. Luckily for me, UK distributor ThePiHut sent out their newsletter alerting me to their presence!
I wrote a news post on the new Raspberry Pi microSD cards and their own blog post had some interesting points. They’d been working on command queuing within the Raspberry Pi OS for a while and at the time of ordering my own cards for testing, it was enabled by default on the latest kernel. For now, a bug has meant it’s now disabled and we need a dtparam to get it going again.
Was it all worth it? Are the Raspberry Pi microSD Cards everything they’re cracked up to be? Let’s see..
NOTE: This post contains a few affiliate links. If you click on those and later make a purchase, I may receive a small commission. These commissions allow me to purchase items like these microSD cards for review, so I hope you don’t mind!
Table of Contents
Initial Thoughts
As with most Raspberry Pi product launches these days, not everything was available everywhere on day one. The UK vendors understandably had the most luck, though both UK ones I checked were only offering 32/64GB variants and you had to take them with Raspberry Pi OS pre-installed. I can understand that these must be low-margin products and the pre-installation can add some value and boost margins but compared to other distributors I found, it’s quite a hefty markup for something that can be done quickly at home. I appreciate the service, but it would be nice to have the option to buy blank ones too.
Packaging is minimal, and from what I can gather, distributors are likely packing these into whatever they have themselves as there’s no official Raspberry Pi packaging, and mine from BERRYBASE came in a simple plastic bag with their own labels attached. I’m OK with this though, as having gone through my fair share of microSD cards over the years, the excessive cardboard and plastic are a bit over the top and immediately discarded.
The final thing I’ll touch on here is that Raspberry Pi have partnered with Longsys for the manufacturing of these Raspberry Pi microSD cards and this is the same manufacturer that Amazon chose for their Amazon Basics line. In theory, they’re both rated at the same levels so on paper, they should be the same, right?
Command Queuing
This was the focal point of the initial blog post from Raspberry Pi, and for good reason. Command queuing support for microSD cards is something that’s been lacking from the Raspberry Pi kernel, and work on it has been ongoing for a while on and off. I won’t pretend I know the inner workings of the feature, but on a high level, it’s allowing the microSD card to queue commands/tasks and perform them in the most efficient way possible. This allows it to perform many tasks faster than it would without it, where it would perform one task, complete it, move to the next one and so on.
In reality, you should be seeing the most gains on the random read/write benchmarks as these are what benefit from the command queuing the most, but we may see a bump around the board. It’s also going to be very dependent on your workload.
If you want to read more about this, the announcement blog and the related forum post cover quite a lot in terms of the whys and the development process. The forum thread also has information on whether it’s been disabled/enabled based on the current state of development. As of writing this (evening of the 15th of October ’24) it looks like a potential bug fix has been pushed, so we should see that soon. There’s also talk of a turbo button!
Raspberry Pi microSD Card Pricing and Availability
I touched on this a little in my initial thoughts, but as a quick recap, I’m not a big fan of distributors only stocking pre-installed microSD cards. I get that it’s good for margins and it’s a value-added service that may be beneficial to many, but please offer the rest of us options to buy them without! I don’t want to spend nearly twice as much (in some distributor cases) just to flash it again myself when it arrives.
That said, I’m not entirely sure what the recommended retail price (RRP) on the Raspberry Pi microSD cards themselves is, or if there is one even. In the EU we can buy from vendors at around $4-5 (plus VAT), but in the US they seem to start at around $10 (plus VAT). The pricing between the various sizes varies just as much and if you throw those with pre-installed OS into the mix, it becomes even wilder so I’m not going with a table this time, you can just head to the Raspberry Pi microSD Card product page and find your local distributor(s) and go from there!
Pre-Flight Checks
Before I started testing, I wanted to check the situation in the operating system and see if all cards were capable of operating in the same way with command queuing enabled.
I eluded to it a little further up by saying “they should be the same, right?” about the Amazon and Raspberry Pi microSD cards as they’re both manufactured by Longsys but sadly that’s not the case. Out of the 4 alternatives tested, only the 2 Sandisk microSD cards made use of command queuing when it was available.
Example of the dmesg
output when initialising the Raspberry Pi 128GB SD Card with command queueing enabled:
[ 2.482766] mmc0: CQHCI version 5.10
[ 2.522192] mmc0: SDHCI controller on 1000fff000.mmc [1000fff000.mmc] using ADMA 64-bit
[ 2.673634] mmc0: Command Queue Engine enabled, 31 tags
[ 2.678892] mmc0: new ultra high speed SDR104 SDXC card at address 544c
[ 2.685839] mmcblk0: mmc0:544c USD00 117 GiB
[ 2.698175] mmcblk0: mmc0:544c USD00 117 GiB
And the same output for the Amazon Basics 64GB SD card. You can see that whilst command queuing is available (CQHCI version 5.10
) it’s not being used.
[ 2.467698] mmc0: CQHCI version 5.10
[ 2.515726] mmc0: SDHCI controller on 1000fff000.mmc [1000fff000.mmc] using ADMA 64-bit
[ 2.618042] mmc0: new ultra high speed SDR104 SDXC card at address 59b4
[ 2.624927] mmcblk0: mmc0:59b4 USD00 58.9 GiB
[ 2.633341] mmcblk0: mmc0:59b4 USD00 58.9 GiB
Raspberry Pi microSD Card Benchmark Results
Getting into the meat of the article, we have the results. I’ve plucked out the other A2-rated microSD cards from my collection to see how they compare to these newcomers. Given the marketing hype in the blog, I was expecting big things. My darling Amazon Basics cards have been at the top of the pile for a long time but perhaps it’s time for them to be dethroned?
Alongside the Raspberry Pi 32, 64, and 128GB variants, and the Amazon Basics 64GB card, I’m testing the Sandisk Extreme 64GB, Sandisk Extreme PRO 128GB, and the Samsung PRO Plus 128GB.
My test suite today is brought to you by fio
(read, write, random read, and random write speeds are all tested across 4KB, 8KB, 64KB, 512KB, 1MB, and 16MB block sizes) and then the sdtest.sh
script that comes with the agnostics
package available on Raspberry Pi OS via apt
. The sdtest.sh
script is the same thing that runs under the hood in the graphical version in Raspberry Pi OS with a desktop in case you want to compare, though I’ll be linking to those results (from sdtest.sh
in an external GitHub page rather than this article to keep it as brief as I possibly can.
We’ll stick with 4K for the initial graph(s) here, as the review would get a bit unwieldy otherwise, so without further ado, the 4K results! Oh, everything is being run on the latest version of Raspberry Pi OS Lite 64bit, updated to kernel 6.6.51+rpt-rpi-2712
with dtparam=sd_cqe=on
set in /boot/firmware/config.txt
for tests where command queuing is enabled (it’s off
when it’s.. well.. off) and the command used for my own fio
testing was: XXXXX
Sequential Read with fio (4K Blocksize)
Sequential Write with fio (4K Blocksize)
Random Read with fio (4K Blocksize)
Random Write with fio (4K Blocksize)
Straight away we can see that the lack of command queuing on the Amazon and Samsung cards is holding them back in a way, as we see no difference in the results when CQ is enabled or not. Don’t get me wrong, they’re still very performant overall (I tested them alongside many other microSD cards in the Raspberry Pi 5 previously) but the lack of CQ now puts it at a disadvantage when it comes to the official Raspberry Pi lineup.
The 32GB Raspberry Pi microSD card sees the most benefit from command queuing, but when we move up to the 64 and 128GB capacities, we’re already seeing them perform close to their limits, and in a way, enabling CQ becomes a bit of a “problem”.
Not a big one per sé, though enabling CQ consistently ends up with the 64 and 128GB models performing 2-3% slower than with it off. It’s very nitpicky and usually, I’d chalk it up as being with a margin of error, but I went back and re-tested multiple times and it was always the same. I brought this up in the related forum thread and received confirmation from a Raspberry Pi engineer, jdb, that they do indeed push the limits of what’s possible already and that it then runs into “deliberate software choices for CQ that have the effect of reducing peak throughput for random write workloads.”
That said, on these 64 and 128GB models, we’re seeing a nearly 3x improvement over my previous Amazon Basics king with both CQ enabled and disabled, which leads me nicely into the next section..
If you’d like the full data from these tests (each value is the average of 5 runs) then that’s available over on my GitHub repo for SBC benchmarks.
Do They Beat Amazon Basics? Should I Run To Buy One?
Ah.. The question I was scared to answer before I came into this. I’ve been enamoured with the Amazon Basics cards for a couple of years now thanks to their great value and high performance but I think they may have to move aside now..
At the time of writing, in the US, a 2-pack of 64GB Amazon Basics cards is $11.49 (plus VAT) and a single Raspberry Pi 64GB microSD card is around $15. In sequential read/write tests the speeds are very similar, however on the random read/writes you’re seeing 3x the performance. You’re going to have to make a judgement yourself as to whether your use case can make use of that or not. If it can, great! If it can’t, the Amazon options may work for you.
In the EU though things are a little different. If we take Germany (and we include VAT this time as is standard there) the 2-pack of Amazon Basics microSD cards is €18.64, whereas the 64GB Raspberry Pi microSD card offering is €6.70 at BERRYBASE. You can almost get 3 of the faster Raspberry Pi cards for the same price as the Amazon ones. We may have bottle caps that are stuck to the bottles but you’re going to have to suck it this time, USA..
So yes, I think they do beat out the Amazon Basics options at the moment, and whilst I wouldn’t say run out and replace your existing cards immediately, if you’re in the market for some, definitely give the Raspberry Pi models a shot!
Wrapping Things Up
I’ll be starting on some endurance testing soon (for a range of the most popular microSD cards used in the Raspberry Pi) so we’ll also see how much abuse these can take in comparison to the best-sellers as endurance is also key. There’s no point driving at 200mph if you break down after 50 miles after all.
That said, they’re very good microSD cards in terms of raw speed and offer great value compared to the alternatives (at least in the EU, less so in the US currently) so at present, I have no problem with recommending them for your next Pi 5 setup. If you care or need storage performance, however, you’re probably better off with an NVMe drive in an M.2 HAT but I digress, Pi microSD card = good.
2 comments
Solely based on your non-CQ results for 64/128GB models, would we see similar results (in relative numbers, not absolute since the HW is different) on an RPi 4? Would you care enough to perform benchmarks also for RPi 4.
Hmm, it’s not something I’d really considered given the performance on the Pi 4 on other cards buuut never say never. I’ll add it to my “potential” column in the to-do list and let you know if I get a chance :D