跳转到内容

3011 NVME to WiFi7(M.2 M to E EN

来自Mcuzone Wiki

切换语言为中文

Keywords

Raspberry Pi, CM5 Core board, RPiOS, NVME SSD, mini PCIe, WiFi7, Bluetooth

I. Introduction

NVMe to Wi-Fi 7 (M.2 M to E) adapter board converts the PCIe M.2-M interface to an M.2-E interface, allowing connection to WiFi7 modules. It also provides a 1.25mm 4-pin port for connecting the USB Bluetooth port of the WiFi7 module.

II. Matching expansion board

This module is compatible with all 2280-sized PCIe M.2-M interfaces. Our company offers a matching expansion board (CM5_Basic) as follows:

5005_CM5IO_Mini_154.jpg

III. Module testing under Raspberry Pi OS

Hardware: NVMe to WiFi7 (M.2 M to E) adapter board paired with CM5_Basic expansion board

Software: The version of Raspberry Pi OS is 2024-07-04-raspios-bookworm-arm64.img.xz

The download link is:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

On the CM5_Basic expansion board, the PCIe to M.2 interface can be connected to an SSD-to-WiFi module for expanding a WiFi7 wireless network card. This document describes the expansion using an NVMe to WiFi7 (M.2 M to E) adapter board with a BE200 wireless module.

3.1 Install driver

The BE200 wireless module requires a driver to be installed to operate on the Raspberry Pi OS.

If using a CM5 with built-in WiFi functionality, the onboard WiFi module will automatically disable itself after installing the WiFi driver, rendering it unusable. It is therefore recommended to use a CM5 without WiFi capability.

1. Update header files in the terminal:

sudo apt install -y raspberrypi-kernel-headers firmware-iwlwifi flex yacc

5001_CM5_WiFi7-PoE_19.jpg

2. Then download the source code:

mkdir wifi && cd wifi

wget http://www.mcuzone.com/wiki/2004_CM4_WiFi7/backport-iwlwifi-20231029.tar.bz2

sudo tar -xvf backport-iwlwifi-20231029.tar.bz2

5001_CM5_WiFi7-PoE_20.jpg

3. Prepare the compilation environment:

sudo make defconfig-iwlwifi-public

sudo sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config

5001_CM5_WiFi7-PoE_21.jpg

4. Compile source code:

sudo make -j 4

sudo make install

Note: If the system freezes or reports errors during compilation when using -j 4, please try compiling with -j 2 or -j 1 instead.

5001_CM5_WiFi7-PoE_22.jpg

5001_CM5_WiFi7-PoE_23.jpg

The OS is now prompting a restart. Please hold off on restarting for now.

5. Install the firmware, execute the command in terminal:

cd ..

cd Downloads

wget http://www.mcuzone.com/wiki/0011_MPW7/firmware_wifi7.zip

unzip firmware_wifi7.zip

sudo cp iwlwifi-gl-c0-fm-c0-86.ucode /lib/firmware

sudo cp iwlwifi-gl-c0-fm-c0.pnvm /lib/firmware

2004_CM4_WiFi7_06.jpg

6. Restart the OS:

sudo reboot

3.2 WiFi7 wireless network card test

Insert a WiFi 7 wireless network card (BE200) into the SSD to WiFi adapter, then connect the SSD to WiFi adapter to the M.2 M-Key slot on the back of the CM5_Basic extension board, as shown in the figure below:

【加图】

After starting the OS, we execute lspci:

5005_CM5IO_Mini_94.jpg

The red box indicates the BE200 wireless module, which then allows you to use the WiFi7 module to connect to a wireless AP in the network connections:

Note: The core board's built-in WiFi module has been automatically turned off and replaced with the WiFi7 module.

Click the network icon in the upper-right corner of the desktop - Advanced Options - Connection Information... In the network connection information, we can also see that this network connection uses the iwlwifi driver (if it's the wireless network card integrated on the core board, the driver will be displayed as brcmfmac):

Execute the command ifconfig -a in the terminal:

5005_CM5IO_Mini_96.jpg

"wlan0" refers to the WiFi7 module.

We use the network speed testing tool iperf3 for speed tests.

Download iperf3 for Windows:

http://www.mcuzone.com/down/Software.asp?ID=10000634

Install iperf3 on Linux:

sudo apt-get install iperf3

The hardware equipment used for speed testing:

The router is a Xiaomi BE6500 Pro (WiFi6/7+ 4-port 2.5G router), and the extension board is about 1 meter away from the router.

Use BE200+CM5_Basic, connect the AX210 to a WiFi6 wireless network (IP address is 192.168.8.132) and perform an iperf3 speed test with a Windows device under the same router (2.5G USB network adapter, IP address: 192.168.8.197).

Expansion board as Client, single-threaded speed test:

iperf3 -c 192.168.8.197

5005_CM5IO_Mini_97.jpg

The speed is around 481Mbps.

30-threaded speed test:

iperf3 -c 192.168.8.197 -P 30

5005_CM5IO_Mini_98.jpg

The speed is around 2.03Gbps.

Expansion board as Server, single-threaded speed test:

Execute in the CMD on the PC:

iperf3 -c 192.168.8.132

5005_CM5IO_Mini_99.jpg

The speed is around 534Mbps.

30-threaded speed test:

Execute in the CMD on the PC:

iperf3 -c 192.168.8.132 -P 30

5005_CM5IO_Mini_100.jpg

The speed is around 1.61Gbps.

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 WiFi7 (BE200) Bluetooth test

The BE200 WiFi7 module comes with a built-in USB Bluetooth port. Before use, it is necessary to connect the 1.25mm-4p USB port on the SSD-to-WiFi module to the 1.25mm-4p USB port on the CM5_Basic. Additionally, an external Bluetooth driver must be installed for the functionality to work properly.

Install Bluetooth driver:

Execute the command in the terminal:

cd Downloads

wget http://www.mcuzone.com/wiki/5001_CM5_WiFi7-PoE/intel.zip

sudo cp intel.zip /lib/firmware/intel && cd /lib/firmware/intel

sudo unzip intel.zip

If there are file name conflicts while extracting, choose "A" (replace all).

5001_CM5_WiFi7-PoE_50.jpg

Then restart the OS:

sudo reboot

Bluetooth test:

Execute commands in the terminal:

hciconfig -a

5001_CM5_WiFi7-PoE_51.jpg

There are two visible devices: hci0 is the core board's onboard Bluetooth (manufactured by Cypress Semiconductor, a UART device), while hci1 belongs to the BE200 (manufactured by Intel, a USB device). Both Bluetooth interfaces are currently active.

Note: If you find that the status of hci1 is DOWN (i.e., not enabled), you can execute the following command to remove the restriction:

rfkill unblock bluetooth

In order to test hci1, we need to disable hci0. Please execute the following command in the terminal:

sudo hciconfig hci0 down

(If you need to enable this device, please execute sudo hciconfig hci0 up)

Now, executing hciconfig -a shows that hci0 is down:

5001_CM5_WiFi7-PoE_52.jpg

Click the Bluetooth icon at the top-right of the desktop, then choose "Add Device..." from the menu:

5001_CM5_WiFi7-PoE_53.jpg

Put the target device in discoverable mode, and the Bluetooth module will scan and find it shortly. This example uses a Bluetooth mouse:

5001_CM5_WiFi7-PoE_54.jpg

Select the mouse, click "Pair", and it will connect successfully after a short wait:

5001_CM5_WiFi7-PoE_55.jpg

We can operate this mouse in the Raspberry Pi OS:

Execute the command in the terminal:

hcitool -i hci1 con

You can view the status of the devices connected to this Bluetooth.

5001_CM5_WiFi7-PoE_57.jpg

Contact Us

0001_x.jpg 0002_fb.jpg 0004_ytb.jpg 0003_bb.jpg 0005_qq.jpg QQ:8204136

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