PCIe NVMe compatibility

So here’s what I did and it appears to be working fine…granted I’ve probably been through 30 variations of starting from scratch to figure all these steps out and what order they need to take place in).

  1. Booted into the Pi5 using RaspberryOS lite.
  2. Updated the EEPROM, switched boot order and changed PCIE speed using raspi-config.
  3. Burned Volumio image to the SSD using Pi Imager.
  4. Conceded via browser and preformed all the require configuration, including 5.5 AMOLED display

I’ve installed the following PlugIns and everything seems to be working:

  1. Touch Display
  2. Now Playing
  3. Peppy Meters
  4. Peppy Spectrum
  5. System Info
  6. Roon Bridge

Hardware:

Pi5 4MB RAM

Hey @Rochambeaux,

Thank you for the detailed report. This is significant taking that the WD SN740 series NVMe based on 20-82-10081-A1 Polaris MP16+ controller had issues in the past.

Kind Regards,

Now you have me worried :slight_smile:

What should I be on the lookout for?

Hey @Rochambeaux,

Beginning of this thread has the summary of our findings: PCIe NVMe compatibility.
Frequently it is related to the absence of lane controller on most of the HATs. Engineers from Pineberry are not taking shortcuts here. Although I can not find WD SN740 being explicitly mentioned in the eeprom releases rpi-eeprom/firmware-2712/release-notes.md at master · raspberrypi/rpi-eeprom · GitHub nonetheless could have been fixed back in January.

Kind Regards,

It’s been a while since I installed a 1TB NVMe on my RPi5 and been working flawlessly. My friend asks me to build him one set but with a 4TB NVMe, so I order all the same components except using a 4TB NVMe this time.

Components:
Raspberry Pi5/4GB
Silicon Power 4TB UD90 NVMe 4.0 Gen4 PCIe M.2
Geekworm PCIe Metal Case P579-V2 for Raspberry Pi 5
Geekworm X1001 PCIe to M.2 HAT Key-M NVMe SSD PIP PCIe Peripheral Board for Raspberry Pi 5
CanaKit 45W USB-C Power Supply with PD for Raspberry Pi 5 with PiSwitch

After inserted a Micro SD card with Volumio 3.757 and up to the point of installing to Disk NVMe, Volumio sees 3.7T (which is normal for a 4TB size) and then it says “Install to Disk failed: undefined”.


Does this mean this particular NVMe is not compatible or needs more power?

Anybody with a 4TB NVMe out there?

Andy

Hey @nerd , where did you buy this cable?

Andy

Hey Andy,

Controller: Phison E21T which should not be a problem with September’s eeprom release.

  1. Once booted to the VolumioOS, prior install to disk, please inspect early boot device discovery with dmesg and journalctl.
  2. If you can see device reported as available check reported device tree with sudo lsblk -a.
  3. Also, examine the NVMe partition layout with sudo fdisk /dev/nvme0n1 and rebuild partition table if Volumio partitions are present.
  4. Whilst you do the install please try run dmesg -w command in the background.
  5. Link to the log will help to inspect it further.

Kind Regards,

Hey Andy,

“Crimped” myself from parts. Took a generic dupont connector AWG23 wire and added 2-pin XH2.54 connector. These are easily available on Amazon.

In technical terms - “shorten the power path, less loss will…” - keep the wires reasonably short.

Kind Regards,

This is what I got. Then what?


Hey Andy,

I was expecting incompatibly from partition type with larger storage device. I do not have automated install at this time (yet).
Let me test manual steps with gparted or similar available in Buster.

Kind Regards,

1 Like

I didn’t have problem installing 2TB NVMe before.

Hey Andy,

With 512 byte sectors, this sets the maximum partition size at 2TB (512 * 232).

Kind Regards,

Hey Andy,

Edit /boot/partconfig.json on your MicroSD and locate line:

{"name":"boot_type","value":"msdos"}
change to:
{"name":"boot_type","value":"gpt"}

After booting your SBC with updated json file, run the installer again.

Once booted to NVMe update /boot/partconfig.json again. You will find that the same change is needed on every OS update.


NOTICE: This is currently unsupported and things like OTA may not work like expected.

Thank you @nerd , it works now. :slight_smile:

1 Like

Hey Andy,

This is very promising. However it will not be changed in VolumiOS before sectors alignment logic is introduced first and proven stable.

Kind Regards,

No problem. As long as it works even with some manual file editing, I’ll be okay!

So far over 50k files has been transferred to the 4TB NVMe, another 24k files (1.6T) to go. :slight_smile:

Hi @nerd! I just found a 2tb-4tb nvme m.2. Do you think it’s compatible this to my rpi5 with pcie hat?

Thanks,

Hey @Edrian_Lois_Villanue

Thanks for sharing. Based on the screenshot, you’re looking at the Silicon Power US75 NVMe M.2 SSD, which is available in 2TB to 4TB capacities and uses the Phison E18 controller with PCIe Gen4 x4 support.

Compatibility with Raspberry Pi 5 (with PCIe HAT):

Electrical Compatibility:
Yes, the drive is electrically compatible through the Raspberry Pi 5’s PCIe interface via your M.2 HAT+ or equivalent adapter.

Power Consideration (Important):
The Phison E18 controller draws a significant amount of power - up to 6-8W under load, which exceeds what the Pi5 can safely supply through PCIe. If you’re not using a powered NVMe adapter or a powered USB enclosure, the system may crash, fail to boot, or throttle.

Performance:
Raspberry Pi 5 provides only a single PCIe Gen 2 x1 lane, so your real-world speed will be limited to around 400-500 MB/s regardless of the SSD’s higher rated speeds.

Thermals:
The US75 can run hot during sustained activity. Make sure to apply a heatsink or thermal pad for safe operation, especially inside tight enclosures.

Recommendation:

If you already have a powered M.2 PCIe adapter (i.e., one that supplies 3.3V externally), then yes - this SSD should work fine. If not, I suggest using a lower-power NVMe drive (e.g., Phison E19T or SMI SM2263XT-based) to avoid instability.

Let me know what adapter you’re using and I can confirm power delivery specifics.

Kind Regards,

Sorry for the very late question.

Why did you use the external Power Plug?

Would it not be enough without the plug?

Asking because I have the same ssd and x1001 is coming.
Thanks in advance for your answer.

Hey omiez,

I think you are referring to the 2-pin XH2.54 5V power connector mating power pins from the 40 pin header with the X1001 HAT rather than an external power plug. In my lab tests I am using a Waveshare Power Over Ethernet HAT (F) with current supplied from a PoE+ (IEEE 802.3at) switch over CAT 6A RJ45 cable. The external power plug is connected to the PoE+ switch, not to the Raspberry Pi itself.

The reason for using auxiliary power over the 2-pin XH2.54 connector is simple - the SM2263XT controller on the Lexar NM610 Pro needs more power than the PCIe ribbon cable can provide on the Raspberry Pi. The PCIe interface is limited to around 3W, but NVMe SSDs like the NM610 Pro can draw more power during peak operations like sustained writes or intensive random access. A good example of such workload is building or scanning of a large music library.

Without the auxiliary power connection, you might experience:

  • Random disconnects or drive drops during heavy I/O upon scanning and rebuilding
  • Slower performance as the drive throttles due to insufficient power
  • Boot failures or the drive not being recognized consistently
  • Data corruption in worst-case scenarios

The 2-pin connector taps into the 5V rail from the 40-pin GPIO header, which can handle the additional current needed. When you get your X1001, I would strongly recommend using the auxiliary power connection, especially if you plan to do any write-intensive tasks or sustained I/O operations.

If you are not using PoE like I am, you can still use the auxiliary power connector - just make sure your Raspberry Pi power supply can handle the extra load (a good quality 5V/3A or higher USB-C power supply should work).

Kind Regards,