5002 CM5 Basic/AI/Lora/4G EN

来自Mcuzone Wiki

切换语言为中文

Keywords

Raspberry Pi, CM5 Core board, NVME SSD, AI, LoRa, 4G LTE, miniPCIe, Dual Ethernet Ports, RPiOS, Ubuntu, USB3.0, RTC, PWM, DSI, CSI

I. Introduction

CM5_Basic is a foundational expansion board designed for the Raspberry Pi CM5, equipped with standard peripherals. It additionally features a miniPCIe interface for 4G connectivity, a USB Gigabit Ethernet port, and a TF/SD card reader. Suitable for cost-effective data/image capturing, storage, processing, and transmission applications.

The expansion board features an onboard PCIe M.2 M slot, supporting NVMe SSDs as well as the Halio8 AI module. Onboard miniPCIe interface, supports multiple 4G modules, all driver-free and dial-up-free, auto-identification by the OS. The onboard circuit includes a USB TF card reader, enabling TF card storage functionality. The expansion board supports a wide voltage input range of 9-24V DC power supply, is compatible with all Raspberry Pi CM5 series core modules, and supports eMMC flashing.

II. Hardware Spec

CM5 port Applicable to all versions of the Raspberry Pi CM5 core board, with DF40HC3.0 connectors.
Ethernet ports 2*Ethernet ports: One native Gigabit Ethernet port and one 100 Mbps Ethernet port.
4G LTE 1*USB miniPCIE interface, with a Nano SIM card slot, supports 4G LTE, the 4G module optionally supports GPS functionality and an SMA antenna connector. Version R1.4: This interface can also be used to connect LoRa modules.
Storage ports 1*M.2 M-KEY slot NVMe SSD, supports PCIe x1 Gen2 and Gen3 modes, compatible with 2280/2242/2230 sizes (default mounting for 2280), does not support SATA or GNFF.

1*USB 2.0 expanded SD card slot, which can be used for external storage expansion but does not support system booting.

USB ports 2*USB 3.2-A HOST ports, suitable for connecting high-speed peripherals such as 5G devices and external hard drives.

3*USB 2.0 HOST high-speed ports, including 2*USB-A ports and 1*1.25mm-4P USB port (expandable for a secondary 4G LTE connection).

RTC 1*RTC, 1.25mm-2Pin port (Batteries not included).
Display 1*standard HDMI output port.

2*CSI/DSI combo interfaces.

Button 1*power button.
LED 1*power indicator.

2*CM5 indicator lights (power light and status light).

2*4G indicator lights (power and network registration lights).

Others 1*PWM speed-adjustable fan connector, 1.0mm pitch 4-pin.

40-pin GPIO interface, 2.54mm-2*20, fully compatible with Raspberry Pi 5's IO.

OS flashing 1*TF card slot, only for system booting on core boards without eMMC.

1*BOOT jumper for system flashing on the eMMC core board via USB-C port.

Power supply Wide voltage power supply from 9-24V, DC5.5-2.1 interface.

It also supports USB-C 5V3A power supply, with the option to choose either.

Size 110*135mm. Version R1.2 is a 4-layer PCB design, the board material is UL and RoHS certified with a flammability rating of 94V-0.
Case Full aluminum alloy casing, with mounting holes for easy installation, dimensions: 155 (inner 138) * 114 * 32 mm.

5002_CM5_Basic_76.jpg

Version Description
PCB TF LoRa
R1.1 2-layer PCB Not support, only for eMMC core boards. Not support
R1.2 4-layer PCB Support, support all versions of core boards. Not support
R1.4 4-layer PCB Support, support all versions of core boards. Support

5002_CM5_Basic_77.jpg

5002_CM5_Basic_78.jpg

5002_CM5_Basic_79.jpg

III. Flash OS

We use the Raspberry Pi OS, the system version is 2024-11-19-raspios-bookworm-arm64.img.xz.

You can download it in:

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

For core boards with eMMC, the OS is flashed onto the eMMC. If the core board does not have eMMC, the OS is flashed onto the TF card or NVMe SSD.

Use a core board with eMMC. Before flashing the OS, please connect the power USB-C interface to the computer and short the BOOT jumper on the board:

5002_CM5_Basic_100.jpg

Once the flashing process is complete, remove the shorting cap, then power on again to start the OS.

For the flashing method, please refer to:

How to flash OS

IV. Work with Raspberry Pi OS

4.1 Test USB ports

4.1.1 USB port detection test

Plug the USB device into the USB port of the expansion board, then execute the command lsusb in the terminal:

5002_CM5_Basic_82.jpg

5002_CM5_Basic_99.jpg

Recognition is normal. If there are no external devices connected to the USB ports, the corresponding device numbers will not appear—only the USB hub will be shown.

Then, execute lsusb -t to check whether the USB ports are operating in the correct mode.

5002_CM5_Basic_52.jpg

Bus 02/04: 2*USB 3.0 ports with 5000Mbps speed.

Bus 05: The expanded USB 2.0 Hub interface, 480Mbps.

4.1.2 USB 3.0 Speed test

Insert two SSD drives (both NVMe M.2 SSDs) into two SSD-to-USB 3.0 enclosures respectively, then connect these two USB 3.0 enclosures to the two USB 3.0-A ports on the expansion board. Start the OS and copy large files between these two USB hard drives and the eMMC of the core board. The file is a single ZIP file with a size of 4.22GB, i.e., 33.75Gb. The test results are as follows:

Data transfer direction Time(s) Transmission speed(MB/s) Transmission speed(Gbps)
SSD1->SSD2 15.6 270.00 2.16
SSD2->SSD1 13.27 317.50 2.54
SSD1->eMMC 35.92 117.50 0.94
eMMC->SSD1 14.01 301.25 2.41
SSD2->eMMC 36.06 117.50 0.94
eMMC->SSD2 14.13 298.75 2.39

Note: The read/write speed of the USB 3.0 interface is affected by various factors such as hard drive quality, interface condition, and file storage status on the drive. The above test results are for reference only and do not represent the final specifications of the actual product.

4.1.3 USB 2.0 Speed test

Insert two SSD drives (One is a SATA M.2 SSD, and the other is an NVMe M.2 SSD.)) into two SSD-to-USB 2.0 enclosures respectively, then connect these two USB 2.0 enclosures to the two USB 2.0-A ports on the expansion board. Start the OS and copy large files between these two USB hard drives and the eMMC of the core board. The test results are as follows:

Data transfer direction Time(s) Transmission speed(MB/s) Transmission speed(Gbps) Packet size(Mb)
NVME->SATA 46.19 200.41 1.60 9256.96
SATA->NVME 45.99 201.28 1.61 9256.96
NVME->eMMC 32.47 285.09 2.28 9256.96
eMMC->NVME 15.1 613.04 4.90 9256.96
SATA->eMMC 173.45 288.1 2.30 49971.2
eMMC->SATA 22.14 418.11 3.34 9256.96

Note: The read/write speed of the USB 2.0 interface is affected by various factors such as hard drive quality, interface condition, and file storage status on the drive. The above test results are for reference only and do not represent the final specifications of the actual product.

4.2 SSD test

4.2.1 SSD for data storage

The CM5 core board we use for testing comes with eMMC. Insert the SSD into the expansion board, power on to boot the OS, and execute lspci in the Raspberry Pi terminal to check the SSD information.

5002_CM5_Basic_23.jpg

Then you need to authorize the SSD. In File Manager, click on the SSD partition, and an authorization dialog will pop up. Enter the current account password to authorize.

Note: The first partition requires password authorization upon clicking; others only need a click.

After authorization, the partitions will appear on the desktop.

5002_CM5_Basic_20.jpg

Execute df in the terminal to view the SSD partition information.

5002_CM5_Basic_21.jpg

We can see two SSD partitions named nvme0n1p1 and nvme0n1p2.

4.2.2 Test the speed of a PCIe Gen2 SSD

The default state is that the SSD runs on PCIe Gen2.

Install the hard disk speed testing software hdparm:

sudo apt install hdparm

Execute the speed test command repeatedly to measure disk performance multiple times:

sudo hdparm -t /dev/nvme0n1

5002_CM5_Basic_73.jpg

No. Transmission speed(MB/s)
1 451.06
2 450.92
3 450.62
4 450.85
5 450.91
Avg. 450.87 (about 3.6Gbps)

4.2.3 Test the speed of a PCIe Gen3 SSD

Please execute the following command in the terminal:

sudo nano /boot/firmware/config.txt

Then, add the following code at the end of the file:

dtparam=pciex1_gen=3

5002_CM5_Basic_24.jpg

Save the changes, exit, and reboot the OS to switch to PCIe Gen3.

Execute the speed test command repeatedly to measure disk performance multiple times:

sudo hdparm -t /dev/nvme0n1

5002_CM5_Basic_74.jpg

No. Transmission speed(MB/s)
1 847.35
2 846.17
3 839.99
4 847.28
5 840.90
Avg. 844.34 (about 6.8Gbps)

It can be seen that the interface speed of an SSD under PCIe Gen3 is twice the tested value under PCIe Gen2.

4.3 USB SD card test

The CM5_Basic expansion board features a USB 2.0-expanded SD interface for external storage.

Insert an SD card, and its partitions will be detected in the Raspberry Pi OS.

5002_CM5_Basic_17.jpg

5002_CM5_Basic_18.jpg

Execute df in the terminal to view the partition information.

5002_CM5_Basic_14.jpg

We can see two SD partitions named sda1 and sda2.

Execute the speed test command repeatedly to measure disk performance multiple times:

sudo hdparm -t /dev/sda

5002_CM5_Basic_15.jpg

The SD card's interface speed is around 32MB/s.

Copy large files between an SD card and eMMC of the core board. The file is a single ZIP file with a size of 9256.96Mb. The test results are as follows:

Data transfer direction Time(s) Transmission speed(MB/s)
SD->eMMC 35.79 258.65
eMMC->SD 49.37 187.50

Note: The interface speed of the SD card is affected by various factors such as SD card quality, interface condition, and file storage status on the drive. The above test results are for reference only and do not represent the final specifications of the actual product.

4.4 Ethernet ports test

The expansion board comes with a native Gigabit Ethernet port and a 10M/100M Ethernet port. After inserting the network cable into the 10M/100M Ethernet port, executing ifconfig -a displays the following:

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

Test the speed of the expanded 10M/100Mbps Ethernet interface:

Client mode is around 93.8Mbps:

5002_CM5_Basic_05.jpg

Server mode is around 95.0Mbps:

5002_CM5_Basic_06.jpg

Test the speed of the expanded 10M/100Mbps Ethernet interface:

client模式为938Mbps左右:

Client mode is around 938Mbps:

5002_CM5_Basic_07.jpg

Server mode is around 949Mbps:

5002_CM5_Basic_08.jpg

注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。

4.5 RTC test

The CM5 core board comes with an RTC, while the expansion board requires an external battery and can be used directly under the Raspberry Pi OS . As shown in the following figure:

5002_CM5_Basic_97.jpg

After the OS starts, run the following in the Raspberry Pi terminal:

ls /dev/r*

You can see the RTC device:

5002_CM5_Basic_10.jpg

The command to display the current system time is date;

The command to write the system time to the RTC is sudo hwclock -w;

The command to read the system time from the RTC is sudo hwclock -r.

As shown below:

5002_CM5_Basic_11.jpg

If the RTC battery is correctly connected at this time, the RTC will continue to keep accurate time after power loss, and upon the next power-on, it will maintain the correct time even without internet synchronization. If the RTC battery is not properly connected, the time will reset to the default (January 1, 1970) after power loss.

4.6 PWM fan test

Installing the monitoring tool s-tui:

sudo apt install s-tui

Then, run s-tui in the Raspberry Pi terminal, and you can observe the changes in fan speed in the monitoring window.

5002_CM5_Basic_16.jpg

If you need to customize the fan speed and operating temperature range, please open the terminal and execute the following commands:

sudo nano /boot/firmware/config.txt

Insert the following lines at the end of the file:

dtparam=cooling_fan=on

dtparam=fan_temp0=50000,fan_temp0_hyst=5000,fan_temp0_speed=255

Among them:

fan_temp0=50000, where 50000 represents the temperature, here it is 50°C.

fan_temp0_hyst=5000, where 5000 denotes the hysteresis temperature, here it is 5°C.

fan_temp0_speed=255, where 255 indicates the fan speed, with the maximum being 255.

You can input multiple temperature ranges and their corresponding fan speeds, with each segment on a separate line, differentiated by unique numbering (e.g., 1., 2., 3., etc.):

dtparam=fan_temp1=36000,fan_temp1_hyst=5000,fan_temp1_speed=128

5003_CM5_Router_59.jpg

4.7 DSI test

We tested with Raspberry Pi LCD screen, which requires separate power.

4.7.1 Testing the Raspberry Pi 1st-Gen LCD Display

Connect the screen cable to the CSI/DISP 0 port on the expansion board, then power up the system. After the OS starts, open the terminal and execute the following commands.

sudo nano /boot/firmware/config.txt

Insert the following lines at the end of the file:

dtoverlay=vc4-kms-dsi-7inch,dsi0

5002_CM5_Basic_34.jpg

After saving and restarting the OS, you can use the Raspberry Pi 7-inch touchscreen. The display effect is as shown below:

5002_CM5_Basic_72.jpg

4.7.2 Testing the Raspberry Pi 2nd-Gen LCD Display

After the OS starts, open the terminal and execute the following commands:

sudo nano /boot/firmware/config.txt

Insert the following lines at the end of the file:

dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0

2009_CM4_SSD_WiFi6_21.jpg

After saving and restarting the OS, you can use the Raspberry Pi 7-inch touchscreen.

4.7.3 Notes

Note 1: If both the HDMI display and the 7-inch touchscreen are connected simultaneously, the 7-inch touchscreen may become the secondary screen. Simply power off the system, disconnect the HDMI display, and restart; the 7-inch touchscreen will then function as the primary display.

Note 2: The added command actually enables the second display, meaning a dual-screen setup. Whether the second screen's hardware is installed or not, the system may still recognize it as a dual-display configuration. If you use PrtScn (Print Screen) to take a screenshot, it may capture both screens. In some cases, this could even cause the system to fail to boot. Therefore, if you don’t need this screen, it is recommended to remove or comment out this line in config.txt.

Note 3: If you need to use CSI/DISP 1, you must change "dsi0" to "dsi1" in the statement.

4.8 CSI test

The camera used for testing here is the OV5647, and the port is CSI0. Once the OS is running, open the terminal and execute the following commands:

sudo nano /boot/firmware/config.txt

Insert the following lines at the end of the file:

dtoverlay=ov5647,cam0

(If using the CSI/DSI 1 interface, please change cam0 to cam1)

5002_CM5_Basic_36.jpg

In actual use, add according to your specific model, save the settings, and restart the OS to enable the OV5647 camera.

After the OS starts, execute the following command in terminal:

ls /dev/video*

You will then see the video0 device listed.

5002_CM5_Basic_37.jpg

Execute libcamera-hello --camera 0 in the terminal to open the corresponding camera for preview.

5002_CM5_Basic_38.jpg

If a photo is required, please eexcute:

libcamera-jpeg -o test.jpg

The photos are saved in the /home/mcuzone directory (i.e., the user's home directory). The photo effects are as follows:

5002_CM5_Basic_39.jpg

4.9 MiniPCIe 4G LTE test

Multiple 4G modules supported by our company are plug-and-play, requiring no drivers and dial-up. Our 4G models include CAT4 4G, Qualcomm 4G, Qualcomm 4G-GPS, ZTE CAT4 4G, and Quectel EC20 GPS Voice Lite Edition. Both the CAT4 4G and ZTE CAT4 4G are automatically recognized by the OS as eth devices, while the Qualcomm 4G/Qualcomm 4G-GPS and EC20 are automatically recognized as usb0.

Module NL668-EU

(soc from Qualcomm)

NL668-EAU

(soc from Qualcomm)

NL668-AM

(soc from Qualcomm)

Qualcomm 4G
BAND • LTE FDD: B 1/3/5/7/8/20

• LTE TDD: B 38/40/41

• WCDMA: B 1/5/8

• GSM/GPRS/EDGE: 850/900/1800MHz

• LTE FDD: B 1/3/5/7/8/20/28

• LTE TDD: B 38/40/41

• WCDMA: B 1/5/8

• GSM/GPRS/EDGE: 850/900/1800MHz

• LTE FDD: B2/4/5/12/13/17/66/71

• WCDMA: B2/4/5

• LTE FDD: B1/3/5/8

• LTE TDD: B34/38/39/40/41

• WCDMA: B 1/8

• EVDO/CDMA1X: BC0

• GSM/GPRS/EDGE: 900/1800MHz

Module Qualcomm 4G-GPS CAT4 4G ZTE CAT4 4G EG25-G
BAND • LTE FDD: B1/3/5/8

• LTE TDD: B34/38/39/40/41

• WCDMA: B 1/8

• TD-SCDMA: B 34/39

• EVDO/CDMA1X: BC0

• GSM/GPRS/EDGE: 900/1800MHz

• LTE FDD: B1/3/5/8

• LTE TDD: B34/38/39/40/41

• LTE FDD: B1/3/5/8

• LTE TDD: B34/38/39/40/41

TE-FDD: B1/B2/B3/B4/B5/B7/B8/B12/B13/B18/

B19/B20/B25/B26/B28

LTE-TDD: B38/B39/B40/B41

UMTS: B1/B2/B4/B5/B6/B8/B19

GSM: B2/B3/B5/B8

4.9.1 Identify 4G

For testing, using Qualcomm 4G as an example, execute ifconfig -a in the terminal:

The usb0 shown in the figure above is the 4G module, specifically the Qualcomm 4G LTE. If it is CAT4 4G or ZTE CAT4, the OS will recognize it as eth2 (the number in the "2" position may vary depending on the number of other wired networks present).

Next, we will test the 4G network connection. If both Ethernet ports are also connected to the router at this time, before testing the 4G connection, first check the routing table by executing the route command. You will see that eth1 is ranked first, so the system will prioritize internet access through the 100Mbps Ethernet port.

5002_CM5_Basic_54.jpg

We unplugged the Ethernet cable of the 100Mbps port, restarted the OS, executed the route command to check the routing table, and found usb0 ranked first, indicating that the OS was now connected to the internet via the 4G module.

5002_CM5_Basic_55.jpg

Pinging both the IP and domain succeeds now, confirming the 4G module is working correctly.

5002_CM5_Basic_28.jpg

Run a speed test at https://www.speedtest.cn/, and the results are as follows:

5002_CM5_Basic_29.jpg

Note: Network speed test results are affected by network conditions and testing methods. Actual speeds may vary. This test is for reference only.

4.9.2 GPS operation

Both the Qualcomm 4G-GPS and the EC20 GPS Voice Lite Edition support GPS functionality. 高Qualcomm 4G requires a passive GPS antenna, while the EC20 4G needs an active GPS antenna. In both cases, the GPS antenna must be extended outside the window to acquire satellite positioning.

4.9.2.1 Qualcomm 4G-GPS operation

Execute the command lsusb, as shown below:

0024_MP4GUSB_04.jpg

Record the ID value of the 4G module: 05c6 90b6

Please use the following command to open the ttyUSB serial port (the value after echo is the ID value mentioned above):

sudo modprobe option

sudo sh -c 'echo 05c6 90b6 > /sys/bus/usb-serial/drivers/option1/new_id'

After executing the above two commands, the OS should have three additional devices: ttyUSB0-2. You can check them by entering ls /dev:

0024_MP4GUSB_06.jpg

Execute minicom and open the ttyUSB0 serial port.

sudo minicom -D /dev/ttyUSB0

And execute:

at+gtgpsepo=1 //Enable AGPS

at+gtgpspower=1 //Enable GPS

Please wait a moment for the positioning to succeed, then execute:

at+gtgps? //View NMEA messages

Then you can see the GPS information output:

0012_MPUUART_MP4232_70.jpg

4.9.2.2 Quectel EC20-GPS voice lite edition operation

Execute the command lsusb, as shown below:

5002_CM5_Basic_62.jpg

Record the ID value of the 4G module: 2c7c 0125

Please use the following command to open the ttyUSB serial port (the value after echo is the ID value mentioned above):

sudo modprobe option

sudo sh -c 'echo 2c7c 0125 > /sys/bus/usb-serial/drivers/option1/new_id'

After executing the above two commands, the system should have four additional devices: ttyUSB0-3. You can check them by entering ls /dev/ttyUSB*.

5002_CM5_Basic_63.jpg

Execute minicom and open the ttyUSB3 serial port.

sudo minicom -D /dev/ttyUSB3

and execute:

AT+QGPS=1 //Enable GPS

Open ttyUSB1 serial port by minicom, and you can obtain GPS information:

sudo minicom -D /dev/ttyUSB1

5002_CM5_Basic_64.jpg

4.9.3 Other tests for 4G

For details, please click the link below:

Modification of Network Priority

AT command operation

Modify the IP address of the 4G module

4.10 Button test

CM5_Basic expansion board comes with a button that functions as a power switch. When the device is on, pressing the button once will bring up the shutdown menu:

5001_CM5_WiFi7-PoE_47.jpg

Press the button again to power off immediately.

Power on by pressing the button once while in the shutdown state (requires power connection).

4.11 HDMI test

The HDMI interface of the CM5_Basic expansion board supports 4K output, and the display effect is as shown below:

4K resolution (3840 × 2160)

Compared to standard 1080p resolution (1920×1080)

4.12 LoRa test

The expansion board R1.4 version has added support for LoRa functionality. The model of the LoRa module we used for testing is: E22 400T30E. This LoRa module supports interaction via RS232 interface, RS485 interface, and USB interface. On the CM5_Basic, you need to select the USB interface mode. Short-circuit the M0 and M1 jumpers to enter the USB interface mode. The LoRa device will appear as a USB-to-serial device (ttyUSB0) in the OS. Note that here we only demonstrate the sending and receiving operations of the ttyUSB serial port. For specific LoRa module pairing and parameter configuration, please refer to the corresponding LoRa module user manual.

5002_CM5_Basic_96.jpg

This paper demonstrates the transparent transmission mode by configuring two CM5_Basic expansion boards + LoRa modules. Assemble the LoRa modules on each of the two CM5_Basic expansion boards, then power on and start the OS.

Under any Raspberry Pi OS with a CM5_Basic expansion board, enter ls /dev/tty* to check the serial port device of the LoRa module, which is ttyUSB0.

Install the GUI serial port software CuteCom:

sudo apt install cutecom

Under a Raspberry Pi OS with two CM5_Basic expansion boards, open a CuteCom window on each board and connect to their respective OS's ttyUSB0. When information is entered in the CuteCom window of one Raspberry Pi OS with a CM5_Basic expansion board, the previously entered information will be output in the CuteCom window of the other Raspberry Pi OS with a CM5_Basic expansion board.

V. Work with Ubuntu OS

VI. Optional accessories

6.1 NVMe-WiFi7 adapter

The expansion board features an onboard M.2 M-key interface, which can be used with an NVMe to WiFi7 adapter to provide a WiFi7 interface. It supports WiFi7 (BE200), WiFi6E (AX210), and WiFi6 (AX200), and also enables Bluetooth functionality.

5002_CM5_Basic_98.jpg

The Raspberry Pi OS only supports a single WiFi connection. For the Raspberry Pi CM5 module with built-in WiFi functionality, after installing the WiFi7 driver, the CM5's WiFi will be automatically disabled. Therefore, we recommend using a CM5 module without WiFi. In our tests, we used the BE200.

In the terminal, execute lspci, and the part marked with a red box is the BE200 WiFi7 module.

5002_CM5_Basic_23.jpg

6.1.1 Test WiFi7

6.1.1.1 Install driver

(This step is applicable to both the AX200 and AX210)

Update header files in the terminal:

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

5001_CM5_WiFi7-PoE_19.jpg

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

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

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.

Install the firmware (only for BE200, AX200 or AX210, no need to install the firmware):

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

5001_CM5_WiFi7-PoE_24.jpg

Restart the OS:

sudo reboot

6.1.1.2 Test WiFi7

After restarting the OS, we can use the WiFi7 module to connect to the wireless AP.

5002_CM5_Basic_46.jpg

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

In the network connection information, we can also see that this connection uses the iwlwifi driver (if it's the wireless network card integrated on the core board, the driver will be displayed as brcmfmac):

5002_CM5_Basic_47.jpg

Execute the command ifconfig -a in the terminal:

5002_CM5_Basic_48.jpg

"wlan0" refers to the WiFi7 module.

6.1.2 WiFi7 (BE200) Bluetooth test

The BE200 WiFi7 module comes with a built-in USB Bluetooth interface, Now, plug the Bluetooth USB connector into the USB 2.0 slot on the extension board (refer to the image below), and additional Bluetooth driver installation is required for use.

5002_CM5_Basic_90.jpg

6.1.2.1 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

6.1.2.2 Bluetooth test

Execute the command in the terminal:

hciconfig -a

5002_CM5_Basic_40.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.

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 run sudo hciconfig hci0 up.)

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

5002_CM5_Basic_41.jpg

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

5002_CM5_Basic_42.jpg

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

5002_CM5_Basic_43.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.

5002_CM5_Basic_44.jpg

Execute the command in the terminal:

hcitool -i hci1 con

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

5002_CM5_Basic_45.jpg

6.2 NVMe-AI TPU adapter

5002_CM5_Basic_81.jpg

The CM5_Basic expansion board comes with an onboard M.2 M-key interface, which can be used with an NVMe to WiFi 6 adapter board to implement the TPU function. For detailed operation steps, please refer to here.

Note: The version of the Raspberry Pi OS must be 2024-11-19-raspios-bookworm-arm64.img.xz or 2024-07-04-raspios-bookworm-arm64.img.xz. If you install it under the 2025-05-13-raspios-bookworm-arm64.img.xz, the following error will occur when installing gasket-dkms_1.0-18_all.deb:

Now, just revert to the old OS version.

6.3 NVMe-AI Hailo8 adapter

5002_CM5_Basic_80.jpg

The CM5_Basic expansion board comes with an onboard M.2 M-key interface, allowing direct connection to the HAILO 8L AI module. When paired with a camera module (this article uses the OV5647 camera connected to the CSI/DISP 0 interface), it enables image recognition and detection functions. For detailed operation steps, please refer to here.

Note: The Raspberry Pi OS version must be 2024-05-13-raspios-bookworm-arm64.img.xz or 2024-07-04-raspios-bookworm-arm64.img.xz. If you install it on the 2025-11-19-raspios-bookworm-arm64.img.xz, an error will occur when executing the command hailortcli fw-control identify, and the AI module will not be recognized. Additionally, when installing on the 2025-11-19-raspios-bookworm-arm64.img.xz, firmware configuration is not required.

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