KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield

1. Overview

KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield is an NVME M2 SSD PIP (PCIe Peripheral Board) for Raspberry Pi 5, which uses the new PCIE interface of Raspberry Pi 5 to connect NVME M2 SSD for fast data transfer and ultra-fast start up.

KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield Supports:2230 / 2242 / 2260 / 2280 NVMe M2 SSD

Incompatible NVMe SSD:WD Blue SN550/SN580 series,WD Green SN350 series,WD Black SN850 series,WD Black SN770,Inland tn446 nvme drive,Corsair MP600 SSD,Other NVMe SSD drivers equipped with the same Phison controller.

For more details about SN550, refer to it: New rpi-eeprom-update 2024-01-24 WD Blue SN550 nvme works now.

KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield is only compatible with M.2 NVMe SSD. It is not compatible with M.2 SATA SSD, M.2 PCIe AHCI SSD or other M.2 non-NVMe devices.

Interface Introduction:

F44

2. Kit List

No.

Name

Picture

QTY

1

KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield

List1

1

2

16Pin FPC 30mm

List4

1

3

16Pin FPC 50mm

List5

1

4

M2.5*17mm Double-pass Copper Pillar

List2

3

5

M2.5*6mm Round Head Screw

List3

6

6

M2.5*3+3mm Single-pass Copper Pillar

List6

1

7

M2.5*3 Flat Head Screw

List7

1

8

M2.5 Nut

List8

4

9

M2.5*8+6 Single-pass Copper Pillar

img

3

10

Phillips Screwdriver

List9

1

3. Assembly

Before assembly, please check the list to see if there are any missing accessories. If so, please contact customer service.

3.1 Assemble on top of Raspberry Pi:

Required Components:

No.

Name

Picture

QTY

1

KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield

List1

1

2

16Pin FPC 30mm

List4

1

3

M2.5x17mm Double-pass Copper Pillar

List2

3

4

M2.5x6mm Round Head Screw

List3

6

5

M2.5x3+3mm Single-pass Copper Pillar

List6

1

6

M2.5x3 Flat Head Screw

List7

1

7

M2.5 Nut

List8

1

8

Phillips Screwdriver

List9

1

Assembly Steps:

1.Assemble the hard disk fixing screw position according to the size of your solid state drive: if the example uses 2280, then assemble the copper pillar in the hole of 2280.

Different hard disks can assemble copper pillars into the corresponding holes to fix the hard disk.

an2

2.Use M2.5x6 screws to assemble the M2.5x17 double-pass copper pillars on the Raspberry Pi 5 (note that the assembly hole positions must correspond to the assembly diagram).

an3

3.Assemble the 16Pin FPC 30mm to the PCIe interface of the Raspberry Pi.

3.1 First, lift up the black buckle of the Raspberry Pi 5 PCIe interface. If you do not lift the black buckle, you will not be able to insert it into the 16Pin FPC.

an4

3.2 Insert the 16Pin FPC 30mm into the PCIe port of Raspberry Pi 5 (note the direction of the FPC, with the blue end facing outward). After inserting, press the black buckle to fix the FPC.

an5

4.Use M2.5x6MM Round Head Screws to assemble the PCIe-M.2 NVMe SSD Shield to the copper pillars.

an6

5.Assemble the 16Pin FPC 30mm to the PCIe interface of the PCIe-M.2 NVMe SSD Shield.

5.1 First, flip up the black buckle of the PCIe interface.

an7

5.2 Insert the 16Pin FPC 30mm into the PCIe interface of the PCIe-M.2 NVMe SSD Shield (note that the blue side of the FPC is facing up). After inserting, press the black buckle to lock the FPC.

an8

6.Assemble the solid state drive, insert it diagonally into the solid state drive holder, then lay it flat and use the M2.5x3MM Flat Head Screw to fix it.

an9

an10

3.2 Assemble on bottom of Raspberry Pi:

Required Components:

No.

Name

Picture

QTY

1

KEYESTUDIO Raspberry Pi 5 PCIE-M.2 NVME SSD Shield

List1

1

2

16Pin FPC 50mm

List5

1

3

M2.5x6mm Round Head Screw

List3

3

4

M2.5x3+3mm Single-pass Copper Pillar

List6

1

5

M2.5x3 Flat Head Screw

List7

1

6

M2.5 Nut

List8

4

7

M2.5x8+6 Single-pass Copper Pillar

img

3

8

Phillips Screwdriver

List9

1

Assembly Steps:

Assembly on the bottom is the same as on the top.

1.Use M2.5 Nut to fix the M2.5x8+6 Single-pass Copper Pillar to the bottom of Raspberry Pi 5.

an11

2.Assemble the 16Pin FPC 50mm to the Raspberry Pi 5 and PCIe-M.2 NVMe SSD Shield. After assembling the FPC, then assemble the solid state drive (the method is the same as that in assemble on top of Raspberry Pi).

an12

3.Flip the PCIe-M.2 NVMe SSD Shield to the bottom of the Raspberry Pi 5, and then use the M2.5x6MM Round Head Screws to fix it.

an13

4. Raspberry Pi Basic Tutorial

If you are a beginner, please click on the link to view the Raspberry Pi Basic Tutorial. The basic tutorial includes how to burn the image system for Raspberry Pi and how to use various tools and download links for Raspberry Pi

Raspberry Pi basic tutorial

5. Using Method:

The Raspberry Pi 5 has an FPC connector on the side of the board,which provides a PCIe Gen 2.0 ×1 interface. This tutorial introduces and demonstrates how to use this PCIe interface to connect an M.2 solid-state drive (SSD). The SSD can be used as a boot disk or additional storage.

img

5.1 As a storage disk for Raspberry Pi 5:

Steps to use SSD firmware as a storage disk:

​ A. Modify config.txt in the SD card bootfs partition and enable the PCIe interface

​ B. Connect the solid state drive

​ C. Partition the SSD

​ D. The solid-state drive can be recognized after power-on and startup

1.1 Use Raspberry Pi Imager software to burn the Raspberry Pi 5 image system to the SD card(If you don’t know how to burn it, check out Raspberry Pi Basic Tutorial

1.2 After the system burning is completed, insert the SD card and you can see the boot disk in the SD card and enter the boot disk.

F42

1.3 Find and open config.txt

F43

add the following code at the end of the file.

dtparam=pciex1

If you are willing to use PCIe 3.0 then enter:

Note: With corresponding settings, this interface can work in PCIe Gen 3.0 ×1 mode. Raspberry Pi 5 has not been certified for Gen 3.0 speed. Connecting to PCIe devices at Gen3 speed may be unstable.

dtparam=pciex1
dtparam=pciex1_gen=3

Save content after modification.

img

1.4 Install the Raspberry pi 5 SSD Shield and SSD firmware on the Raspberry Pi 5, then insert the SD card with the burned system in, and power on. After booting successfully, find the IP address of the Raspberry Pi, and then use the “vncviewer” software to enter the remote desktop.(For more details, refer to it :RaspberryPiBasicTutorial

1.5 After entering the remote desktop, if you are using an SSD solid state drive without partitions, then you cannot see the SSD solid state drive in your file bar, then we need to partition the hard drive.

image-20240423113024478

1.6 Tapimage-20240423113245027 and input.

sudo fdisk -l

After completing the input, press the Enter key.

image-20240423113451233

1.7 Find it according to the capacity of your hard drive and remember its name. For example, mine is a 128G hard drive, and its name is “nvme0n1”. The Sector size needs to be remembered, which is 512 bytes in our place (it will be used when partitioning the hard disk).

image-20240423134426907

1.8 Now we perform partitioning operations and enter.

sudo fdisk /dev/nvme0n1

After completing the input, press the Enter key.

1.9 Type n after the Command (m for help): and press Enter.

1.10 When you see Select (default p): , just use the default settings and press Enter.

image-20240423114506674

1.11 Press the Enter key.

1.12 Press the Enter key.

1.13 This step involves calculation of capacity allocation. If you want to partition, please read it carefully. In the example we are using a 128G hard disk, and it will be divided into three 42G areas.

Note: If you do not need partitioning, just press Enter to keep the default settings, so that 128G will be divided into one area.

Calculate how many sector bytes are needed for each area. From the command line prompt, we can know that our hard disk bytes start from 2048 and end at 250069679.

Then we first need to subtract the previous 2048 to get the total number of bytes of 128G:

\[ 250069679-2048=250067631 \]

Because we want to divide 128G into 3 parts, we need to divide the total number of bytes by 3.

\[ 250067631÷3=83355877 \]

83355877 is the cutoff byte of the first area, enter 83355877 and press Enter.

Enter the command n , and press the Enter key until the byte partition appears.

Multiply 83355877 by 2 to get the byte at the end of the second area.

\[ 83355877×2=166711754 \]

Enter 166711754 and press Enter.

Then enter the n command, because this is the last area, just press Enter key.

1.14 Enter the w command to save it (Be sure to save, otherwise you will have to repartition).

1.15 After the partition is completed, enter the sudo fdisk -l command to view the partition name.

sudo fdisk -l

1.16 Partition formatting and mounting. Each partition needs to be formatted so that it can be mounted and used. You can use the mkfs command to format a partition, such as sudo mkfs.ext4 /dev/sdXY (replace sdXY with the partition number you want to format, such as /dev/nvme0n1p1). The ext4 file system is used here, but you can also choose other file systems, such as FAT32, NTFS, etc.

We format the partition as FTA32 and format the first partition nvme0n1p1.

sudo mkfs.vfat -F 32 /dev/nvme0n1p1

Format the second partition nvme0n1p2, we will format it as ext4.

sudo mkfs.ext4 /dev/nvme0n1p2

Format the third partition nvme0n1p3, we will format it as NTFS.

sudo mkfs.ntfs /dev/nvme0n1p3

1.17 Open the folder and you will see the partitioned disks.

5.2 As a boot disk for Raspberry Pi 5:

Idea:

A. Start using the SD card image first (note: modify the config.txt of the SD card first)

B. Copy the system to the SSD

C. Modify the EEPROM and enable PCIe boot mode

D. Remove the SD card and power on the Raspberry Pi

5.2.1 Use SD card to copy image system to SSD solid state drive

2.1.1 First burn the image system to the SD card, then plug and unplug the SD card reader and find image-20240424094335329 infile, and double-click to open it, then add the following code at the end of the file:

dtparam=pciex1

If you are willing to use PCIe 3.0 then enter:

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

dtparam=pciex1
dtparam=pciex1_gen=3

Save content after modification.

22

Create a text file named SSH in bootfs and delete the following .txt.

image-20240424110549877

After configuration, use puTTY software to connect and open VNC, then use VNC software to enter the remote desktop, click on the upper right corner(for entering the desktop, refer to the Raspberry Pi Basic Tutorial).

5.1.2 Tap and .

5.1.3 Click the box behind “Copy From Device” and select SD.

5.1.4 Click the box behind “copy To Device” and select our SSD.

5.1.5 Click “Start” and “YES”.

Wait for copy to complete.

image-20240423192055

Tap “OK”.

5.1.6 Set the startup sequence, enter the command and press Enter.

sudo raspi-config

b6fb09878619910b477bea7478bab110

Use img on your keyboard to select 6 Advanced Options and press Enter to confirm it.

Select A4 Boot Order and press Enter.

Select B2 NVMe/USB Boot and press Enter.

Select OK and press Enter,then press the ESC key on the keyboard to exit the settings window.

5.1.7 Turn off the power and remove the SD card, then power on the computer.