Will Whang’s RPI5-SDexpress-Hat is a small HAT+ for the Raspberry Pi 5, adding a microSD Express card slot for ultrafast storage, an eject button, and two Qwiic connectors, probably because there was still some spare space on the board…
As a reminder, microSD Express cards can deliver SSD performance thanks to the use of of PCIe interface and NVMe commands. The standard was first introduced in 2019, and even earlier (2018) for full-size SD cards, but manufacturers have not exactly rushed to release compatible hardware. A major change this year is the launch of the Nintendo Switch 2 portable game console, one of the first mass market devices with a microSD Express slot, and this was partially why Will created the microSD Express HAT+ for the Raspberry Pi 5.
RPI5-SDexpress-Hat board specifications:
- MCU – WCH CH32V003 RISC-V microcontroller for hotplugging and unmount
- Host interface – PCIe Gen3 x1 FFC connector
- Expansion – 2x Qwiic connectors
- Misc – Eject button, Power LEDs, Mounted LED
- Power Management
- 5V supply via 40-pin GPIO header (6-pin header used)
- 1.8V/3.3V fixed output
- LP5907 voltage
- PAM2306 step-down DC convertor for 1.8V voltage
- Dimensions – Small
The good news is that it just works:
Here are some storage benchmarks using PiBenchmarks.com with the Raspberry Pi 5 configured to use PCIe Gen3 x1:
Category Test Result HDParm Disk Read 631.68 MB/sec HDParm Cached Disk Read 699.12 MB/sec DD Disk Write 169 MB/s FIO 4k random read 48761 IOPS (195047 KB/s) FIO 4k random write 26290 IOPS (105160 KB/s) IOZone 4k read 22803 KB/s IOZone 4k write 137502 KB/s IOZone 4k random read 31366 KB/s IOZone 4k random write 178701 KB/s |
The read speed is indeed better than a typical microSD card (630MB/s+), but the sustained write speed is closer to a high-end traditional Class A1/A2 microSD card at under 200 MB/s. Random I/IOs are much better, too.
You may wonder why a microcontroller is needed here. As one reader explained in our article about a microSD Express to M.2 NVMe SSD for the Nintendo Switch 2, some logic is required (update: maybe not):
It will not work without a proper SD handshake and CMD8 command response with PCIe flags as SD host controller needs to enable and reset PCIe side for this to work…
The design is fully open-source with KiCad schematics and BoM available on GitHub, where you’ll also find the firmware binary for the STM8S CH32V003 MCU, but no source code. The project is based on Will’s earlier RPi5-CFE-Hat CFexpress Card hat for Raspberry Pi 5, whose firmware’s source code is available, so it’s probably just a matter of time.
Sadly, having a microSD Express card slot on the Raspberry Pi 5 does not make a lot of sense at this point due to the cost of MicroSD Express card. An M.2 NVMe SSD is cheaper, and so is a CFexpress Type B card. For reference, the Samsung 256GB microSD Express card used in the demo sells for $59.99 on Amazon, while a similar SSD goes for about $25, and an M.2 SSD in a CFExpress Type B card is also slightly cheaper.
For those reasons, Will will not manufacture the HAT, but the design is released under a permissive MIT license, so anybody could manufacture it if needed. Maybe a microSD Express slot will make sense in a future Raspberry Pi 6, as prices come down.
Update: The article was updated to change STM8S (as in the PDF schematics) to CH32V002 as reported on X, and a few other details.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.