0010 MPSD2.5GD EN
Keywords
Raspberry Pi5, PCIe Expansion, SSD Boot, NAS, Speed Test, SSD, Switch, RTL8125, 2.5Gbps Ethernet, iperf3 Speed Test
I. Introduction
The MPSD2.5GD expansion board is designed for the Raspberry Pi 5, featuring dual SSD slots and dual 2.5Gbps Ethernet ports. It utilizes a PCIe switch chip to implement a one-to-four PCIe expansion design and connects to the Raspberry Pi 5 via a curved 16-pin shielded PCIe cable. Two of the PCIe lanes are used for M.2 M-KEY NVMe SSDs, supporting 2280/2242/2230 form factors; the other two lanes are utilized via RTL8125 to expand 2.5Gbps Ethernet connectivity.
The MPSD2.5GD expansion board requires independent power supply, which can be provided via either the USB-C port or the DC 5.5mm interface supporting wide voltage input (7-24V). It then supplies power to the Raspberry Pi 5 through a USB C-C adapter board. Onboard PD protocol chip enables 5V/5A PD handshake with Raspberry Pi 5. The MPSD2.5GD extension board is suitable for various mass storage, gateway, soft routing applications.
II. Hardware Spec
2.1 Hardware Spec
1) Using a PCIe switch chip to achieve one-to-four PCIe expansion, connected to the Raspberry Pi 5 via a curved 0.5mm 16P shielded PCIe cable.
2) Use the PCIe interface to expand two 2.5Gbps Ethernet ports (RTL8125), driver-free under the Raspberry Pi OS and OpenWrt, but requires driver installation under Ubuntu OS.
3) Expand two NVMe SSD interfaces via PCIe interface; supports 2230/2242/2280 form factors (with 2280 mounting posts pre-soldered by default), compatible only with PCIe 2.0 x1 Gen2, and does not support SATA or GNFF SSD.
4) The SSD can be used for storage expansion and also supports booting from an SSD. This requires updating the Raspberry Pi firmware to version 2024.5.13 or later.
5) It can be powered via USB-C (recommended 5V5A, minimum 5V3A) or via a DC 5.5 interface with 9-24V DC input.
6) On-board PD handshake chip, compatible with a USB C-C adapter board to power the Raspberry Pi 5 and handshake 5V/5A.
7) 1*Power button.
8) Reserve SMA antenna mount.
9) 2.54mm 2-Pin fan connector.
10) Size: 138*86*17mm
11) Optional sheet metal casing.
2.2 Power supply method
1. The expansion board requires independent power supply and can be powered by a 7-24V wide-voltage DC 5.5-2.1 input or a 5V USB Type-C port. The two power sources cannot be used simultaneously!
2. The Raspberry Pi 5 can be powered independently or directly through this expansion board.
The specific power supply methods are as follows:
1. If the Raspberry Pi 5 is not powered separately and relies solely on this expansion board for direct power supply, it must be connected to the 40-pin GPIO of the Raspberry Pi 5 via the 2.54mm-2p power port on the base board.
1) If using the onboard USB Type-C port for power supply, it must meet the requirement of 5V5A.
2) If using a DC 5.5-2.1 power supply, it supports a wide voltage range of 7-24V, for example, 12V2A.
When powered directly through the extension board, the OS will display a prompt indicating that the power supply does not support 5V5A, but this does not affect normal usage. To eliminate this OS prompt, you may connect our accessory PD Dongle adapter.
2. When the Raspberry Pi 5 is powered independently, do not connect the 2-pin wire from the expansion board to the Raspberry Pi's 40-pin GPIO. In this case, it is recommended to power the Raspberry Pi 5 with a 5V5A supply.
III. Work with Raspberry Pi OS
3.1 Flash OS
The version of Raspberry Pi OS is: 2024-07-04-raspios-bookworm-arm64.img.xz.
You can download it in:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
The OS is flashed onto the TF card or SSD.
For the flashing method, please refer to:
SSD priority for OS boot:
Flash the Raspberry Pi OS to the SSD, then remove the TF card, or set the boot order to prioritize booting from NVMe (SSD) first.
According to our tests, the OS can boot from a single SSD installed in any of the SSD slots (the horizontal slot is Slot 04, and the vertical slot is Slot 06). If both slots are equipped with SSDs and only one SSD has the OS flashed to it, the OS will boot from the SSD with the OS. If both SSDs have the OS flashed to them, the OS will prioritize booting from the Slot 04. The positions of the slots on the expansion board are shown in the following diagram:
To view detailed information about the two slots, you can enter lspci in the terminal:
3.2 SSD as storage expansion
3.2.1 Add new SSD
Using a TF card to boot the Raspberry Pi OS. In the Raspberry Pi OS, open the File Manager, and we can see the partitions of the SSD. As shown in the figure below:
If you need to operate on the SSD, click on the partition icon. At this point, you need to enter the OS password and then click "Authenticate." After successful authorization, you can proceed to operate on the SSD:
When you return to the desktop, you can see the shortcut icon for the SSD partition:
At the same time, by entering df in the terminal, we can also see the SSD partitions, and we can use this SSD as a storage device:
If you need to partition the added SSD, you can refer to the following link:
Perform partitioning and other operations on the SSD
3.2.2 Check SSD status
The expansion board is equipped with two SSD. After authorizing the SSD in the Raspberry Pi OS, we can see the partitions of the two SSDs in the File Manager (note that the number of partitions depends on the actual disk configuration, in this test, each drive had only one partition). There are also shortcut icons for the SSD partitions on the desktop. As shown in the figure below:
Execute df command in the terminal, we can also see the partition information of the two SSDs, and we can use these SSDs as storage devices:
3.2.3 Test speed of SSD
Since the MPSD2.5GD expansion board cannot operate in PCIe Gen3 mode, we do not need to change the PCIe mode and can directly test the speed using the hdparm software.
Install the hard disk speed testing software hdparm:
sudo apt install hdparm
In the partition information from the previous section, we can see two SSD partitions named nvme0n1p1 and nvme1n1p1.
▶ Test a single SSD
Insert an SSD into both SSD slots, and it can be correctly recognized in each.
Execute the speed test command repeatedly to measure SSD performance multiple times:
sudo hdparm -t /dev/nvme0n1p1
| No. | Transmission speed(MB/s) |
| 1 | 430.12 |
| 2 | 430.07 |
| 3 | 430.05 |
| 4 | 430.09 |
| 5 | 430.05 |
| Avg. | 430.08 (about 3.36Gbps) |
▶ Test two SSDs
Insert two SSDs into the two SSD slots respectively, and both can be correctly recognized.
Test the speed of both SSDs separately.
SSD1:
| No. | Transmission speed(MB/s) |
| 1 | 430.31 |
| 2 | 429.78 |
| 3 | 430.10 |
| 4 | 430.13 |
| 5 | 430.53 |
| Avg. | 430.17 (about 3.36Gbps) |
SSD2:
| No. | Transmission speed(MB/s) |
| 1 | 430.71 |
| 2 | 430.90 |
| 3 | 430.86 |
| 4 | 430.83 |
| 5 | 430.81 |
| Avg. | 430.82 (about 3.37Gbps) |
Note: The operating speed of the SSD is affected by various factors such as its quality and file storage conditions. The above test results are for reference only and do not serve as final parameters for the actual product.
Use the Linux dd command to copy a large file (a single file) between the two SSDs. The test results are as follows:
| Data transfer direction | Time(s) | Transmission speed(MB/s) | Transmission speed(Gbps) | Packet size(Mb) |
| SSD1->SSD2 | 35.89 | 278.63 | 2.18 | 10000 |
| SSD2->SSD1 | 28.04 | 356.63 | 2.79 | 10000 |
Note: The performance of an SSD's controller, its age, and its storage capacity can all affect read and write speeds. Please refer to actual results.
3.3 Test 2.5Gbps Ethernet
3.3.1 Internet test
The 2.5Gbps Ethernet on the MPSD2.5GD expansion board is plug-and-play under the Raspberry Pi OS. After the OS starts up, enter the command ifconfig -a in the terminal, and the two Ethernet ports are recognized as eth1 and eth2 respectively:
The speed test results for the two network ports connected to Internet (200M broadband) are as follows:
Note: Network speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
3.3.2 2.5Gbps Ethernet test
Install the network speed testing tool iperf3:
sudo apt install iperf3
Using iperf3 to test speed between Raspberry Pi OS and PC via a 2.5G router.
The speed test results for eth1 are as follows:
When the Raspberry Pi OS is in Client mode, the speed is about 2.02Gbps:
When the Raspberry Pi OS is in Server mode, the speed is about 1.85Gbps:
The speed test results for eth2 are as follows:
When the Raspberry Pi OS is in Client mode, the speed is about 2.02Gbps:
When the Raspberry Pi OS is in Server mode, the speed is about 1.84Gbps:
Note: Network speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
3.3.3 Fix the MAC address of the 2.5Gbps Ethernet
The 2.5G Ethernet port uses the RTL8125 network card, and during use, the MAC address is not fixed. Each time the device is powered on again, the MAC address changes randomly. The following explains how to set a fixed MAC address for the RTL8125 network card.
This explanation also applies to the Ubuntu system.
First, check the identification information of the RTL8125 network card in terminal:
ipconfig -a
Here, two RTL8125 network cards are identified as eth1 and eth2, but in practice, the names recognized by the system might be different.
Then input:
sudo mousepad /etc/systemd/system/macspoof@eth1.service
Or:
sudo nano /etc/systemd/system/macspoof@eth1.service
eth1 is the name recognized by the system for the network card shown above.
Executing the above command will create a new document, then enter the following text:
[Unit]
Description=MAC Address Change %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
ExecStart=/usr/bin/ip link set dev %i address xx:xx:xx:xx:xx:xx
ExecStart=/usr/bin/ip link set dev %i up
[Install]
WantedBy=multi-user.target
Here, "xx:xx:xx:xx:xx:xx" represents the MAC address you wish to assign. You can determine it according to the MAC address format (make sure it does not duplicate the MAC address of other network devices). After setting it, save and exit.
Then execute the following commands to enable the service:
sudo systemctl enable macspoof@eth1.service
sudo systemctl start macspoof@eth1.service
This completes the fixation of the MAC address for eth1.
For other network interfaces such as eth2, follow the same steps as described above.
After completing all operations, restart the system. Once the system has finished rebooting, execute ipconfig -a to see that the MAC address has been successfully changed:
3.4 SSD R/W speed test in 2.5Gbps Ethernet
3.4.1 Install SAMBA for file sharing
SAMBA is a software for sharing files between Windows and Linux. We can use it to transfer files between Windows and Raspberry Pi via Ethernet to test network speed.
Install SAMBA:
sudo apt install samba
Edit the SAMBA configuration file and add a shared node:
sudo nano /etc/samba/smb.conf
Add a shared node at the end of the file:
[pi5]
comment = pi5 filesystem
path = /
available = yes
browseable = yes
public = yes
guest ok = yes
writable = yes
create mask = 0644
directory mask = 0755
valid users = mcuzone
force user = mcuzone
force group = mcuzone
The "mcuzone" in the last 3 lines represents the login username for the Raspberry Pi OS. Please modify it according to the actual username.
After adding the content, save the file and quit.
Assign Samba access to the user "mcuzone: (a custom password will be required):
sudo smbpasswd -a mcuzone
Test and restart the Samba service:
sudo testparm
sudo service smbd restart
sudo service nmbd restart
After completing the setup, on a PC within the same local network as the MPSD2.5GD expansion board (taking Windows 11 as an example), enter \192.168.8.61 in File Explorer (the address is that of the expansion board and may vary in practice). Then, enter the username and password (the password is the Samba password, not the Raspberry Pi OS login password), and you will be able to see the shared directory:
Note: If "Remember my credentials" is enabled, changing the Samba password (via sudo smbpasswd -a mcuzone) will cause login failures on Windows. To resolve this, delete or update the credentials in Windows Credential Manager.
3.4.2 SSD R/W speed test
Execute the df command in the terminal, the path in the red box is the SSD's path:
Navigate to the SSD directory in Windows:
Drag any file from the SSD to the PC desktop to test the SSD's read speed, which is about 154MB/s:
Drag any file from the PC desktop to the SSD to test the SSD's write speed, which is about 209MB/s:
IV. Work with Ubuntu OS
4.1 Flash OS
The version of Ubuntu OS is: ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz.
You can download it in:
https://ubuntu.com/download/raspberry-pi
The OS is flashed onto the TF card or SSD.
For the flashing method, please refer to:
Note: The boot sequence needs to be configured in the Raspberry Pi OS. For the same Raspberry Pi board, once configured, the boot sequence does not need to be reset unless modified. The boot sequence is independent of the OS.
4.2 SSD as storage expansion
4.2.1 Add new SSD
In Ubuntu OS, unlike in Raspberry Pi OS, we can operate on the SSD without entering the password. Go to Files, click on Other Locations, and you will see the SSD partition (500GB Volume, mounted at /dev/nvme0n1p1). As shown in the figure below:
Note: If you need to operate the SSD in the terminal, you must first enter the SSD folder by following the steps above.
Additionally, you can also see the shortcut icon for the SSD partition on the desktop:
You can also see this SSD partition by executing lsblk in the terminal, and we can use this SSD as a storage device:
If you need to partition the added SSD, you can refer to the following link:
Perform partitioning and other operations on the SSD
4.2.2 Check SSD status
The expansion board is equipped with two SSDs. No authorization is required for the SSDs in the Ubuntu OS (but the two partitions need to be accessed once in Files first). Open Files, and you can see two SSD partitions under Other Locations (Note: the number of partitions depends on your actual disk configuration, in this test, each drive had only one partition). There are also shortcut icons for these two SSD partitions on the desktop. The display is shown in the following figure:
Executing the df command in the terminal, we can also see the partition information of the two SSDs. We can use this SSD as a storage device.
4.2.3 Test speed of SSD
Since the MPSD2.5GD expansion board cannot operate in PCIe Gen3 mode, we do not need to change the PCIe mode and can directly test the speed using the hdparm software.
Install the hard disk speed testing software hdparm:
sudo apt install hdparm
In the partition information from the previous section, we can see two SSD partitions named nvme0n1p1 and nvme1n1p1.
Test the speed of nvme0n1p1. Execute the speed test command repeatedly to measure SSD performance multiple times:
sudo hdparm -t /dev/nvme0n1p1
Test the speed of nvme1n1p1. Execute the speed test command repeatedly to measure SSD performance multiple times:
sudo hdparm -t /dev/nvme1n1p1
It can be seen that the operating speed of the two SSDs is around 430MB/s.
Note: The operating speed of the SSD is affected by various factors such as its quality and file storage conditions. The above test results are for reference only and do not serve as final parameters for the actual product.
4.3 SSD for OS boot
Flash the Ubuntu OS to the SSD, then remove the TF card, or set the boot order to prioritize booting from NVMe (SSD) first.
According to our tests, the OS can boot from a single SSD installed in any of the SSD slots (the horizontal slot is Slot 04, and the vertical slot is Slot 06). If both slots are equipped with SSDs and only one SSD has the OS flashed to it, the OS will boot from the SSD with the OS. If both SSDs have the OS flashed to them, the OS will prioritize booting from the Slot 06 (As opposed to Raspberry Pi OS). The positions of the slots on the expansion board are shown in the following diagram:
To view detailed information about the two slots, you can enter lspci in the terminal:
4.4 Test 2.5Gbps Ethernet
4.4.1 Install RTL8125 driver
Please refer to this link: Installation steps for dual network port drivers
4.4.2 Internet test
The speed test results for the two network ports connected to Internet (200M broadband) are as follows:
Note: Network speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
If the built-in Firefox browser in Ubuntu OS runs slowly or frequently becomes unresponsive, it is recommended to install the lightweight browser Falkon.
sudo apt install falkon
4.4.3 2.5Gbps Ethernet test
Install the network speed testing tool iperf3:
sudo apt install iperf3
Using iperf3 to test speed between Ubuntu OS and PC via a 2.5G router.
The speed test result for the first network port is as follows:
When the Ubuntu OS is in Client mode, the speed is about 2.35Gbps:
When the Ubuntu OS is in Server mode, the speed is about 1.84Gbps:
The speed test result for the second network port is as follows:
When the Ubuntu OS is in Client mode, the speed is about 2.35Gbps:
When the Ubuntu OS is in Server mode, the speed is about 1.84Gbps:
Note: Network speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
V. Work with OpenWrt
The version of the OpenWrt we tested with is: openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.6.90-USBlan-20250519.img.gz.
The MPSD2.5GD expansion board can be configured as: two 2.5Gbps Ethernet, one as WAN and one as LAN. The Gigabit Ethernet is set as LAN by default and remains unchanged, while the NAS function is enabled. This maximizes the utilization of the 2.5Gbps Ethernet for high-speed file transfers within the local network, while also fully leveraging the performance of your broadband connection.
5.1 Preparation
By default, the OpenWrt uses the Raspberry Pi 5's Gigabit Ethernet as LAN. We connect the Raspberry Pi 5's Gigabit Ethernet to PC. After the OS boots up, go to Windows Settings, find Network & Internet, and open the connected network under Ethernet to view the default gateway IP address. This address is the access address for the OpenWrt's configuration page. As shown in the figure, the tested address in this article is 192.168.198.1.
Then open a web browser, enter 192.168.198.1 to access the OpenWrt. The default username is root, and the default password is password.
5.2 Set network port
In the OpenWrt, eth0 is the Gigabit Ethernet of the Raspberry Pi 5, while eth1 (closer to the Raspberry Pi 5) and eth2 (closer to the DC 5.5 interface) are the expanded 2.5Gbps Ethernet. We now need to configure eth1 as LAN and eth2 as WAN.
Click "Network - Interfaces - Devices", then click "Configure..." after "br-lan":
In the "Bridge ports" section, select "eth0" and "eth1", then click the "Save" button:
Return to the previous page, click "Save & Apply":
Click "Add new interface...":
Set the "Name" to "WAN" (customizable), select "DHCP Client" for the "Protocol", choose "eth2" for the "Device", and then click the "Create Interface" button:
In the "Firewall Settings", set "Create/Assign firewall-zone" to "wan", then click "Save":
Save and return to the previous page, then click "Save & Apply":
The network interface has been set up.
5.3 Test 2.5Gbps Ethernet
At this point, the MPSD2.5GD expansion board is connected to the PC via a 2.5Gbps Ethernet (eth1). The IP address of the MPSD2.5GD expansion board is 192.168.198.1, while the PC's IP address, after verification, is 192.168.198.239. We used the iperf3 speed testing software to measure the network speed between the PC and the MPSD2.5GD expansion board.
Click on "Services - Terminal," then log in to the terminal. The default username is root, and the default password is password:
The OpenWrt comes with the iperf3 software. A speed test was conducted between the MPSD2.5GD expansion board and a PC using iperf3, and the results are as follows:
MPSD2.5GD expansion board in Client mode, with a speed of around 2.35Gbps:
MPSD2.5GD expansion board in Server mode, with a speed of around 1.76Gbps:
Note: 2.5Gbps Ethernet speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
5.4 SSD test
5.4.1 SSD detection and mounting
Insert two SSDs into the two SSD slots of the MPSD2.5GD expansion board respectively and start the OS.
Log in to the built-in terminal of the OpenWrt and execute lspci and lsblk. The output is as follows:
Both SSDs have been successfully recognized, but they are not mounted.
Click "System - Mount Points", check the boxes next to "Automatically mount unconfigured swap partitions" and "Automatically mount unconfigured disk partitions", then click "Save & Apply":
Wait a moment, and you will see both SSDs successfully mounted in the "mounted file systems".
Executing lsblk again in the terminal will also show that the SSDs are successfully mounted:
5.4.2 Configure and use network sharing
Click "Service - Network Sharing", then click the "Add" button under "Shared Directories":
Fill in the relevant parameters, then click "Save & Apply" (if multiple shared directories are needed, you may add them multiple times):
After completing the setup, on the PC connected to the MPSD2.5GD expansion board (using Windows 11 as an example), enter \192.168.198.1 in the File Explorer (the address is that of the expansion board and may vary in practice). Then, you will be able to see the shared directory:
Drag any file from the SSD to the PC desktop to test the SSD read speed, which is about 153MB/s:
Drag any file from the PC desktop to the SSD to test the SSD write speed, which is about 209 MB/s:
5.5 Other applications
The WiFi of the Raspberry Pi 5 can function as a wireless access point or a wireless WAN port. For implementation details of these applications, please refer to the following links:
Use the Raspberry Pi 5's WiFi as a wireless AP (in master mode)
Use the Raspberry Pi 5's WiFi as a Client
VI. Power consumption test information
This power consumption test uses a USB-C port connected to a 5V power supply:
| System standby
power consumption |
Power consumption
during use |
Modules use each other | System power
consumption | |||
| No external
devices connected |
1.27A | Connect one SSD | Reading data to PC
via 2.5Gbps Ethernet |
1.59A | ||
| Connect one SSD | 1.48A | Writing data from PC
via 2.5Gbps Ethernet |
1.77A | |||
| Connect two SSDs | 1.49A | Connect two SSDs | Reading data to PC
via 2.5Gbps Ethernet |
1.60A | ||
| Separately connect
to 2.5Gbps Ethernet |
1.32A | 1.67A(Download) | Writing data from PC
via 2.5Gbps Ethernet |
1.78A | ||
| 1.56A(Upload) | Exchanging data | 2.15A | ||||
This power consumption test uses a DC5.5 port connected to a 12V power supply:
| System standby
power consumption |
Power consumption
during use |
Modules use each other | System power
consumption | |||
| No external
devices connected |
0.52A | Connect one SSD | Reading data to PC
via 2.5Gbps Ethernet |
0.77A | ||
| Connect one SSD | 0.61A | Writing data from PC
via 2.5Gbps Ethernet |
0.84A | |||
| Connect two SSDs | 0.64A | Connect two SSDs | Reading data to PC
via 2.5Gbps Ethernet |
0.80A | ||
| Separately connect
to 2.5Gbps Ethernet |
0.56A | 0.77A(Download) | Writing data from PC
via 2.5Gbps Ethernet |
0.86A | ||
| 0.67A(Upload) | Exchanging data | 0.96A | ||||
Contact Us
Email: mcuzone@vip.qq.com
Tel: +86(0)13957118045
If there are any omissions, errors, or infringements on this page, please contact us through the above methods. Thank you!
Copyright 2004-2025 Wildchip




QQ:8204136