NVMe Base is a PCIe extension board for Raspberry Pi 5. Simply populate it with an M-key NVMe SSD (2230 to 2280 sizes supported) and mount it under your Pi for a compact and fast storage solution – It even comes with rubber feet!
It’s the perfect solution for turning your Raspberry Pi 5 into a file server, media centre, reverse proxy, etc. – really any task that benefits from large amounts of fast storage, especially with random high operations per second (IOPS) workloads. In short it’s a game changer!
NVMe base follows the new “PIP” design guidelines provided by Raspberry Pi ensuring that it will be easy to use and be supported long term by updates to Raspberry Pi OS – though it is very early days and things are improving rapidly there!
Raspberry Pi Firmware
For the most hassle-free experience, make sure your Raspberry Pi OS is up to date, and your RPi 5 firmware is updated to 2023-12-06 (Dec 6th) or newer. This supports all the features of the RPi PCIe spec and means you don’t have to mess with config files to get started.
- NVMe Base PCB with M.2 Slot (M-Key)
- ‘PCIe Pipe’ Flat Flex Cable
- 4x Rubber feet
- M2 bolt and 2x nuts for SSD mounting
- 4x 7mm M2.5 standoffs for base mounting
- 8x short M2.5 bolts for base mounting
- 4x long M2.5 bolts for ‘pass-thru’ mounting with a HAT
We have tested NVMe Base with the following M.2 NVMe drives successfully. We have usually tested one drive from one batch, so this is not comprehensive, or an ‘Approved’ list, but it’s a good guide for drives to seek out:
- AData Legend 700
- AData Legend 800
- AData XPG SX8200 Pro
- Axe Memory Generic Drive
- Crucial P2 M.2
- Crucial P3 M.2
- Crucial P3 Plus M.2
- Inland PCIe NVMe SSD
- Kingston KC3000
- Kioxia Exceria NVMe SSD
- Kioxia Exceria G2 NVMe SSD
- Lexar NM620
- Lexar NM710
- Netac NV2000 NVMe SSD
- Netac NV3000 NVMe SSD
- Origin Inception TLC830 Pro NVMe
- Patriot P300
- Patriot P310
- PNY CS1030
- Sabrent Rocket 4.0
- Sabrent Rocket Nano
- Samsung 980
- Samsung 980 Pro (500GB/1TB)
- Team MP33
- Western Digital Black SN750 SE (Phison Controller)
‘ Maybe’ List. Works with quirks/not ideal.
These drives either needed extra power, were a bit quirky when we tested them or we’ve had reports of them being problematic. It may just be the drive we had, but they’re probably best avoided.
- Kioxia BG4 2230. Performance very patchy. Runs at quite a high temp.
- Samsung 970 EVO Plus. Runs at a higher temp. Some user reports of problems under heavy load or not showing up on boot.
- Samsung 980 Pro (250GB). Reports of this size not working.
- WD Blue SN550. Our fresh unit could be used as storage but could not be booted from.
- WD Red SN700. Slow to boot first time, but worked and booted OK.
- WD SN740. Our fresh unit worked well. YMMV.
- WD Black SN770. Our fresh unit worked fine. YMMV.
‘Avoid’ List. We’ve had problems or reports of problems.
- WD Green/Blue/Red/Black not in the above list. Variable results or not working because of quirks of a SanDisk controller/firmware. Our SN350 and SN570 prevented the RPi 5 from booting at all especially.
Otherwise most M.2 NVMe drive (Not SATA!) you have lying around should work fine.
Check out our benchmark results over at pibenchmarks.net!
Make sure your Raspberry Pi OS and RPi 5 firmware are up to date and newer than December 2023. Software update on the RPi OS should do this for you, but you can force it by starting a Terminal and running
sudo raspi-config and choosing ‘latest’ under firmware options, then running
sudo rpi-eeprom-update in the Terminal. This will also tell you which firmware is running.
PCIe 3 Mode
To enable experimental and not-officially-supported PCIe 3 mode, add the follow line to the
[all] section at the end of your Raspberry Pi
/boot/firmware/config.txt file like this:
Save and reboot – your drive is ready to use!
Formatting the NVMe and booting from NVMe
If you want to boot from the NVMe drive, follow these extra steps:
- Make sure your firmware is updated as above
- Format the drive using Raspberry Pi Imager
- You can do this with your NVMe Base installed by booting the RPi 5 from SD card and running Raspberry Pi Imager from the start menu.
- Open a Terminal.
- Choose NVMe boot from the ‘Advanced’ section.
- Reboot your RPi 5.
- Always power off your RPi and disconnect the power supply before installing or uninstalling the NVMe Base.
- NVMe Base offers a general purpose PCIe x1 connection – while we know most people want to add fast storage in theory you can use other devices with it, we just can’t help you make them work! 😀 What Would Jeff (Geerling) Do?