Перейти к основному содержимому

cm5-io Product Introduction

The cm5-io is the IO board for the ArmSoM CM5, with dimensions of 100x80x29 mm. It is a miniature AI computer designed specifically for makers, learners, and developers, enabling the rapid application of AI technology to various smart devices.

Hardware Information

Hardware Specifications

The cm5-io board is an expansion board specifically designed for the CM5 computing module, aimed at assisting in system and embedded board development.

  • 1x HDMI output, 1x DP output
  • 4x USB 3.0 Type-A
  • Gigabit Ethernet RJ45 with PoE support
  • Firmware flashing and device mode via USB Type-C
  • GPIO: 40-pin header
  • Power connector: DC Barrel jack for 12V power input
  • Expansion: M.2 (M-key, supports PCIe), microSD
  • MIPI DSI: 1x 4-lane MIPI DSI, supports up to 4K@60fps (x4)
  • MIPI CSI0: 1x 4-lane MIPI CSI, each lane up to 2.5Gbps
  • MIPI CSI1: 1x 2-lane MIPI CSI, each lane up to 2.5Gbps
  • Others: HPOUT, FAN, VRTC
  • Dimensions: 100 x 80 x 29 mm (3.94 x 3.15 x 1.14 inches)
  • Weight:

Hardware Interfaces

ArmSoM-cm5-io

подсказка

The cm5-io board uses a 12V DC power supply.

Pin Definition

40-pin header
GPIO numberFunctionPinPinFunctionGPIO number
+3.3V
1
2
+5.0V
140CAN1_RX_M2 / I2C3_SDA_M0 / UART2_RX_M1 / GPIO4_B4_d
3
4
+5.0V
141CAN1_TX_M2 / I2C3_SCL_M0 / UART2_TX_M1 / GPIO4_B5_d
5
6
GND-
20PWM0_CH0_M0 / GPIO0_C4_d
7
8
UART0_TX_M0
/ GPIO0_D4_u
28
-GND
9
10
UART0_RX_M0
/ GPIO0_D5_u
29
--
11
12
--
--
13
14
GND
--
15
16
GPIO2_D1_d / UART4_RX_M0 / I2C6_SDA_M2 / PWM2_CH1_M289
+3.3V
17
18
GPIO2_D0_d / UART4_TX_M0 / I2C6_SCL_M2 / PWM2_CH0_M288
97I2C7_SDA_M1 / SPI3_MOSI_M0 / UART3_RX_M0 / GPIO3_A1_d
19
20
GND-
98CAN1_TX_M3 / SPI3_MISO_M0 / SPDIF_RX1_M1 / UART3_CTSN_M0 / SPDIF_RX1_M1/ GPIO3_A2_d
21
22
SARADC_VIN4-
96I2C7_SCL_M1 / SPI3_CLK_M0 / UART3_TX_M0 / GPIO3_A0_d
23
24
GPIO3_A3_d / CAN1_RX_M3 / SPI3_CSN0_M0 / UART3_RTSN_M0 / SPDIF_TX1_M199
-GND
25
26
--
111I2C4_SDA_M3 / UART2_RX_M2 / GPIO3_B7_d
27
28
GPIO2_D6_d / PWM10_M0 / GPIO3_B5_d109
112I2C4_SCL_M3 / UART2_TX_M2 / GPIO3_C0_d
29
30
GND-
126SPI3_MOSI_M1 / PWM2_CH6_M3 / GPIO3_D6_d
31
32
--
--
33
34
GND-
--
35
36
--
--
37
38
--
-GND
39
40
--
FAN
0.8mm connector(CN32)
PinAssignmentDescription
1VCC_5V05V Power ouput
2GNDGND
3PWMPWM control
HPOUT
0.8mm connector(CN3)
PinAssignmentDescription
1AORright channel
2AOLleft channel
3GNDGND
VRTC

0.8mm connector(J27)

PinAssignmentDescription
1+Positive pole
2-Negative pole
PoE In(J5)
PinAssignmentDescription
1VC1TX1
2VC2RX1
3VC3TX2
4VC4RX2

Resources

Official Images

ArmSoM team uses Debian bullseye as the official operating system.

Download

The following systems have been tested and verified by ArmSoM official:

Network disk address:

Google Drive link
LogoDescriptionDownload
debian-bullseyeDebian 12 for CM5:
Debian 12 introduces thousands of new and updated packages, supporting various desktop environments and processor architectures (including 32-bit and 64-bit PCs, ARM, MIPS, and PowerPC). One of the biggest changes is the upgrade of the Linux kernel from version 5.10 to 6.1 LTS.
Google Drive link
AndroidAndroid 14 for CM5:
The latest OS upgrade makes your device more personalized, secure, and accessible. It offers improved photo quality, new themes, and AI-generated wallpapers. Privacy updates protect your health, safety, and data while expanding accessibility features.
Google Drive link

Third-Party Images

LogoDescriptionDownload
armbian-logoArmbian for CM5:
Armbian is a build framework that allows users to create ready-to-use images with a working kernel based on various user-space configurations for single-board computers. It provides a variety of pre-built images for some supported SBCs, typically based on Debian or Ubuntu.
Armbian Image
Joshua RiekUbuntu-Rockchip for CM5:
This project aims to provide the default Ubuntu experience for Rockchip RK3588 devices. Get started right away by choosing the appropriate Ubuntu server or desktop image, and enjoy a familiar environment.
Ubuntu-Rockchip Image

Hardware Resources

Get schematics, PCB, DXF, and other hardware documentation for the cm5-io development kit to quickly start your development.

Coming Soon. Please contact sales@armsom.org for more information.

Getting Started

The user manual for the CM5 development kit to help software engineers master the use of the development board.

Before starting to use the cm5-io, please prepare the following items:

Tool Preparation

  • cm5-io main board
  • Power supply (choose one of three)
    • USB Type-C PD 2.0 supporting 9V/2A, 12V/2A, 15V/2A and 20V/2A
    • DC 12V adapter, 2.5mm
    • PoE 12V
  • System installation (choose one of two)
    • MicroSD /TF card boot
      • MicroSD card/TF card, Class 10 or above, at least 8GB SDHC, and card reader
      • Here are some high speed TF cards tested and verified by the ArmSoM team:
        • SanDisk 32GB TF (MicroSD) (developer recommended)
        • SanDisk 32GB TF (MicroSD) Car Recorder & Security Monitoring Special Storage Card (recommended for long-term operation)
        • Sandisk TF 8G Class10 microSD
        • Sandisk TF 128G Class10 microSD XC TF 128G 48MB/S
    • Onboard eMMC boot
      • USB A to C data cable, to write images to the cm5-io eMMC or use fastboot/adb commands over the type C port. You need a USB A to type C data cable connecting the cm5-io and PC.

Optional Accessories

  • USB keyboard & mouse
  • HDMI display and HDMI cable
    • The cm5-io is equipped with a full-size HDMI port, with maximum support for 8K@60 display.
    • HDMI EDID is used to determine the best display resolution. This resolution will be selected on displays and TVs that support 1080p (or 4K/8K). If not for 1080p, EDID will find the next available resolution.
  • Ethernet cable
    • The cm5-io supports ethernet internet access, up to 2.5G.
    • The network cable is used to connect the cm5-io to the local network and internet.
  • Camera module
    • The cm5-io supports camera capabilities.
    • It is recommended to use the imx415 module, available through the ArmSoM Official Taobao store.
  • LCD display
    • The cm5-io supports LCD display capabilities.
    • It is recommended to use the ArmSoM Display 10.1 HD, available through the ArmSoM Official Taobao store.
  • Audio cable
    • Standard 3.5mm jack can be used to play audio via speakers or headphones.
  • WiFi/Bluetooth card
    • ArmSoM supports common wireless modules on the market, please check the Wireless section of the supported list.
    • It is recommended to use RTL8852be, AP6256
  • USB-A to USB-C data cable

Image Flashing Options

Interface Settings

For the first time using the cm5-io development kit, please first get familiar with the Peripheral Interfaces to better understand the subsequent content.

2.5G Ethernet

If you are using wired ethernet internet, please insert the network cable into the RJ45 port on the cm5-io, and then the wired connection prompt will pop up on the system desktop.

How to manually configure ethernet?

  • Switch to root user
sudo su
  • Use the command -ifconfig to check if ethernet is working properly, then showing the eth0 or enP4p65s0 network card and ethernet IP address. Also use the ping tool to test connectivity to the network.
ifconfig
ping www.baidu.com
  • If unable to ping, please try:
$ sudo dhclient eth0
or
$ sudo dhclient enP4p65s0

Audio

View the sound cards in the system.

armsom@cm5-io:/# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: rockchipes8316 [rockchip-es8316], device 0: fe470000.i2s-ES8316 HiFi es8316.7-0011-0 [fe470000.i2s-ES8316 HiFi es8316.7-0011-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 4: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

USB Interface

The cm5-io provides two USB 2.0 and two USB 3.0 ports.

Type-C

The cm5-io features a full-featured USB Type‐C 3.0 port which supports up to 8K@30fps DP display.

HDMI

The cm5-io has two HDMI output ports, both supporting CEC and HDMI 2.1, with maximum resolutions of 8Kp60 and 4Kp60 respectively.

предупреждение

Note: Please confirm the interface specifications of the HDMI cable before use.

HDMI IN

The cm5-io uses the native rk3588 hdmi rx interface.The hdmi in interface can be tested using v4l2 commands.

View all video nodes

ls /dev/video* 

Find rk hdmirx device

Execute command v4l2-ctl -d to specify video node. Execute command -D to view node info. Check for rk_hdmirx device using driver name.

armsom@cm5-io:/# v4l2-ctl -d /dev/video0 -D
Driver Info:
Driver name : rk_hdmirx
Card type : rk_hdmirx
Bus info : fdee0000.hdmirx-controller
Driver version : 5.10.66
Capabilities : 0x84201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04201000
Video Capture Multiplanar
Streaming
Extended Pix Format

Query resolution and image formats

Query current resolution and image formats:

armsom@cm5-io:/# v4l2-ctl -d /dev/video17 --get-fmt-video
Format Video Capture Multiplanar:
Width/Height : 3840/2160
Pixel Format : 'NV16'
Field : None
Number of planes : 1
Flags : premultiplied-alpha, 000000fe
Colorspace : Unknown (1025fcdc)
Transfer Function : Unknown (00000020)
YCbCr Encoding : Unknown (000000ff)
Quantization : Default
Plane 0 :
Bytes per Line : 3840
Size Image : 16588800

Capture image files

Save image files to device and view with 7yuv etc:

v4l2-ctl --verbose -d /dev/video17 \
--set-fmt-video=width=3840,height=2160,pixelformat='NV16' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.yuv \
--stream-count=5 --stream-poll

RGB LED

The cm5-io has a power LED and user LED.

  • Power Indicator LED
    The power LED is green. On the cm5-io it is solid on by default when powered.

  • User Indicator LED
    The user LED is blue. By default its blinking state shows a running kernel.

The user can control via commands:

armsom@cm5-io:/# sudo su
root@cm5-io:/# echo timer > /sys/class/leds/blue:status/trigger
root@cm5-io:/# echo activity > /sys/clas

RTC

  • The cm5-io is equipped with an RTC IC hym8563.
  • First, insert the RTC battery to power the RTC IC.
  • Note that we should keep the RTC battery in the RTC connector and confirm the rtc hym8563 device has been created
armsom@cm5-io:/#  dmesg | grep rtc
[ 6.407133] rtc-hym8563 6-0051: rtc information is valid
[ 6.412731] rtc-hym8563 6-0051: registered as rtc0
[ 6.413779] rtc-hym8563 6-0051: setting system clock to 2022-06-22T01:22:26 UTC (1655860946)
  • Locating rtc0, then use the following commands to set system time and sync to rtc0.
armsom@cm5-io:/# hwclock -r
2023-11-03 10:32:40.461910+00:00
armsom@cm5-io:/# date
11/03/2023 Friday 10:33:12 UTC
armsom@cm5-io:/# hwclock -w
armsom@cm5-io:/# hwclock -r
armsom@cm5-io:/# poweroff
  • Removing RTC battery, after 10mins or longer insert battery and boot cm5-io, check if RTC is in sync with system clock
armsom@cm5-io:/# hwclock -r
2023-11-03 10:35:40.461910+00:00
armsom@cm5-io:/# date
11/03/2023 Friday 10:36:01 UTC

FAN

The cm5-io is equipped with a 5V fan, using a 1.25mm connector

armsom@cm5-io:/# echo 0 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/export
armsom@cm5-io:/# echo 10000 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/period
armsom@cm5-io:/# echo 5000 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/duty_cycle
armsom@cm5-io:/# echo inversed > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/polarity
armsom@cm5-io:/# echo 1 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/enable
armsom@cm5-io:/# echo 0 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/enable

M.2 Interface

The cm5-io provides two M.2 connectors:

  • There is an M.2 E Key connector on the front of the board with a 2230 mounting hole, providing PCIe 2.1 single-channel, USB, SATA, SDIO, PCM and UART signals, supporting standard industrial M.2 WiFi 6 modules.
    ArmSoM recommends using RTL8852BE, AP6256. Installed in the cm5-io M.2 E slot and then it can get online after wifi setup.
# Load driver  
armsom@cm5-io:/# insmod system/lib/modules/rtkm.ko
armsom@cm5-io:/# insmod system/lib/modules/rtkm.ko
armsom@cm5-io:/# insmod /usr/lib/modules/rtk_btusb.ko
armsom@cm5-io:/# lsmod
Module Size Used by
8852be 4030464 0
rtkm 16384 1 8852be
rtk_btusb 57344 0
  • There is an M.2 M Key connector on the back of the cm5-io with a quad-channel PCIe 3.0 interface. There is a standard M.2 2280 mounting hole on board that can deploy M.2 2280 NVMe SSDs. Note: This M.2 interface does not support M.2 SATA SSDs.
armsom@cm5-io:/# mkdir temp  
armsom@cm5-io:/# mount /dev/nvme0n1 temp

WIFI

# 1. Switch to super user mode
armsom@cm5-io:/# sudo su
# 2. Open the WIFI
root@cm5-io:/# nmcli r wifi on
# 3. Scan WIFI
root@cm5-io:/# nmcli dev wifi
# 4. Connect to WIFI network
root@cm5-io:/# nmcli dev wifi connect "wifi_name" password "wifi_password"

BT

# 1. Activate bluetooth  
armsom@cm5-io:/# service bluetooth start
# 2. Enter to bluetoothctl
armsom@cm5-io:/# bluetoothctl
# 3. Input the below commands to connect
armsom@cm5-io:/# power on
armsom@cm5-io:/# agent on
armsom@cm5-io:/# default-agent
armsom@cm5-io:/# scan on
armsom@cm5-io:/# pair yourDeviceMAC

MIC Recording

armsom@cm5-io:~# arecord -D hw:1,0 -f S16_LE -t wav -c2 -r 16000 -d 3 t.wav
Recording WAVE 't.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo
armsom@cm5-io:~# aplay t.wav
Playing WAVE 't.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo

Camera

MIPI-CSI

The camera uses the IMX415 module. After connecting and powering on the camera module you can view the boot logs.

armsom@cm5-io:/# dmesg | grep imx415
[ 2.547754] imx415 3-001a: driver version: 00.01.08
[ 2.547767] imx415 3-001a: Get hdr mode failed! no hdr default
[ 2.547819] imx415 3-001a: Failed to get power-gpios
[ 2.547826] imx415 3-001a: could not get default pinstate
[ 2.547831] imx415 3-001a: could not get sleep pinstate
[ 2.547850] imx415 3-001a: supply dvdd not found, using dummy regulator
[ 2.547918] imx415 3-001a: supply dovdd not found, using dummy regulator
[ 2.547945] imx415 3-001a: supply avdd not found, using dummy regulator
[ 2.613843] imx415 3-001a: Detected imx415 id 0000e0
[ 2.613890] rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_imx415 3-001a:bus type 5
[ 18.386174] imx415 3-001a: set fmt: cur_mode: 3864x2192, hdr: 0
[ 18.389067] imx415 3-001a: set exposure(shr0) 2047 = cur_vts(2250) - val(203)

Use v4l2-ctl for image capture

armsom@cm5-io:/# v4l2-ctl -d /dev/video11 --set-fmt-video=width=3840,height=2160,pixelformat=NV12 --stream-mmap=3 --stream-skip=60 --stream-to=/tmp/cif73.out --stream-count=3 --stream-poll

Use gst-launch-1.0 for direct video recording

armsom@cm5-io:/# gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160, framerate=30/1 ! xvimagesink

armsom-w3-imx415-camera

USB3.0 Camera

After connecting the usb3.0 camera, open the Qt V4L2 test Utility app for testing

armsom-w3-usb-camera-qtv4l2

Open video node: video21

armsom-w3-usb-camera-qtv4l2-select-video

Click the camera button and you will see the camera screen

armsom-w3-usb-camera-qtv4l2-play

MIPI DSI

The cm5-io has a maximum resolution up to 4K@60Hz