From Geekworm Wiki
Jump to navigation Jump to search

M901 - FFC Cable Connection
M901 & M2 NVMe 2242 SSD
M901 & M2 NVMe 2280 SSD & Official Active Cooler


The M901 shield is a NVME M2 SSD PIP (PCIe Peripheral Board) for the Raspberry Pi 5 that uses the new PCIE interface of the Raspberry Pi 5 to utilise the NVME M2 SSDs for fast data transfers and ultra-fast booting.

This shield follows the new "PIP" design guideline from Raspberry Pi fundation 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!

Geekworm PCIe to NVME Sets:

Model Compatible with Position NVMe M2 SSD Support Matching Case Other
X1000 Raspberry Pi 5 Top 2230/2242 NVMe M2 SSD P579
X1001 Raspberry Pi 5 Top 2230/2242/2260/2280 NVMe M2 SSD P579
X1002 Raspberry Pi 5 Bottom 2230/2242/2260/2280 NVMe M2 SSD P580
X1003 Raspberry Pi 5 Top 2230/2242 NVMe M2 SSD P579 / P425 / Raspberry Pi 5 Official case
X1004 Raspberry Pi 5 Top Dual 2280 NVMe M2 SSD P579-V2
M300 Raspberry Pi 5 Top 2230/2242 NVMe M2 SSD P579
M400 Raspberry Pi 5 Top 2230/2242/2280 NVMe M2 SSD P579
Q100 Raspberry Pi 5 Top 2242 NVMe M2 SSD P579 With 1.3" 240x240 Color TFT

Important Note

NVMe SSD Incompatibility List:

We recommend avoiding the following NVMe SSD drives which is equipped with a Phison controller due to their proven incompatibility:

These specific models have demonstrated compatibility issues, and it is advisable to avoid them when considering NVMe SSD options for the X10xx series NVMe shield. You can run "lspci" command to check the controller brand of the SSD.

We hope the Raspberry Pi Foundation will resolve this issue soon.

Also note:

  • Compatible with M.2 NVMe SSDs
  • Not compatible with M.2 SATA SSDs, M.2 PCIe AHCI SSDs, or other M.2 non-NVMe devices
  • Older NVMe drives with less efficient flash media may not perform as well as newer drives
  • New NVMe SSDs are not partitioned and will need to be both partitioned and formatted when first connected to the Raspberry Pi before they will be accessed in the Explorer.
  • We get feedback from customers that Polaris Controller will also have compatibility problems. Please replace the other SSD test if it not work, whether it is compatible with the Raspberry Pi 5 does not depend on the X100X series boards


  • Minimalist design, easy to install
  • Compatible with other HAT shield;
  • Supports installation of official active coolers;
  • SSD ACT LED Indicators-On: Power OK/Standby, Flashing: Reading/Writing
  • Supports 2230/2242/2260/2280 NVME M2 SSD
  • Can power the M901 shield directly from the FFC PCIe ribbon (providing maximum 5W of continuous power)


  • Maximum current for pcie connector is 1A, and voltage is 5V
  • If you find that the SSD is not working properly, it is possible that the power supply of SSD is not enough, then you need to check the current requirement of your SSD to decide whether power the SSD separately.
  • The M901 hardware has no limit on NVME SSD capacity, which is dependent on the Raspberry Pi OS.

Test Reviews

By default the PCIe connector is not enabled. To enable it you should add the following option into /boot/firmware/config.txt and reboot:

sudo nano /boot/config.txt

Then add the following comment;

# Enable the PCIe External connector.
# This line is an alias for above (you can use either/or to enable the port).

Press Ctrl-O, then enter, to write the change to the file.

Press Ctrl-X to exit nano (the editor).

And the connection is certified for Gen 2.0 speed (5 GT/sec), but you can force it to Gen 3.0 (10 GT/sec) if you add the following line after:


You also can refer to official documentatio:Enabling PCIe

After I forced Gen 3.0 speeds, in my many tests I found that some NVMEs were able to run stably, but some NVMEs caused some problems: such as slow startup and running laggy, really really laggy. As the official statement says:

The Raspberry Pi 5 is not certified for Gen 3.0 speeds, and connections to PCIe devices at these speeds may be unstable.

Run the following command on Teminal window to test:

dd if=/dev/zero of=./Testingfile bs=100M count=10 oflag=direct
dd if=./Testingfile of=/dev/zero bs=100M count=10 oflag=dsync

Nomral PCIE 2.0 test data with dd command;


Forced Gen 3.0 speeds test data with dd command:


Packing List

  • 1 x M901 PCIe to M2 NVMe PIP PCIe Peripheral Board
  • 1 x PCIe FFC Cable (50mm Length)
  • 6 x M2.5*5 Screws
  • 3 x M2.5*17 Female/Female Spacers
  • 1 x M2.5 Copper Nut & Screw to fix SSD 2230 / 2242 / 2260 Length


User Manual


Add your comment
Geekworm Wiki welcomes all comments. If you do not want to be anonymous, register or log in. It is free.

Anonymous user #1

28 days ago
Score 0++
have a good day