5002 CM5 Basic/AI/Lora/4G EN
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. |
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 |
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:
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:
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:
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.
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.
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.
Execute df
in the terminal to view the SSD partition information.
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
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
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
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.
Execute df
in the terminal to view the partition information.
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
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:
Server mode is around 95.0Mbps:
Test the speed of the expanded 10M/100Mbps Ethernet interface:
client模式为938Mbps左右:
Client mode is around 938Mbps:
Server mode is around 949Mbps:
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
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:
After the OS starts, run the following in the Raspberry Pi terminal:
ls /dev/r*
You can see the RTC device:
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:
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.
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
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
After saving and restarting the OS, you can use the Raspberry Pi 7-inch touchscreen. The display effect is as shown below:
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
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)
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.
Execute libcamera-hello --camera 0
in the terminal to open the corresponding camera for preview.
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:
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.
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.
Pinging both the IP and domain succeeds now, confirming the 4G module is working correctly.
Run a speed test at https://www.speedtest.cn/, and the results are as follows:
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:
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
:
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:
4.9.2.2 Quectel EC20-GPS voice lite edition operation
Execute the command lsusb
, as shown below:
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*
.
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
4.9.3 Other tests for 4G
For details, please click the link below:
Modification of Network Priority
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:
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.
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.
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.
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
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
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
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.
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
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.
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):
Execute the command ifconfig -a
in the terminal:
"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.
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).
Then restart the OS:
sudo reboot
6.1.2.2 Bluetooth test
Execute the command in the terminal:
hciconfig -a
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.
Click the Bluetooth icon at the top-right of the desktop, then choose "Add Device..." from the menu.
Put the target device in discoverable mode, and the Bluetooth module will scan and find it shortly. This example uses a Bluetooth mouse:
Select the mouse, click "Pair", and it will connect successfully after a short wait.
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.
6.2 NVMe-AI TPU adapter
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
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
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