Skip to main content

Sige Family User Manual

The Sige user manual helps users understand the basic usage of Sige products and the necessary preparations to start using your ArmSoM-Sige๐Ÿš€

Comparison of Specifications for Sige7/5/3/1
Sige7Sige5Sige3Sige1
SoC Process8nm8nm22nm28nm
CPURockchip RK3588
Cortex-A76 x4 @2.4GHz and Cortex-A55 x4 @1.8GHz
Rockchip RK3576
Cortex-A72 x4 @2.2GHz and Cortex-A53 x4 @1.8GHz
Rockchip RK3568B2
Cortex-A55 x4 @2GHz
Rockchip RK3528
Cortex-A53 x4 @2GHz
GPUARM Mali-G610 MP4ARM Mali G52 MC3 GPUArm Maliโ€‘G52โ€‘2EEARM Mali-450 GPU
NPU6TOPS@INT8(3 NPU core)6TOPS@INT8(2 NPU core)1TOP@INT8-
RAM4GB/8GB/16GB/32GB 64-bit LPDDR4x4/8/16GB 32-bit LPDDR4x2/4GB 32-bit LPDDR4x2/4GB 32-bit LPDDR4x
eMMC64GB/128GB eMMC32/128GB eMMC32GB eMMC8 eMMC
TF CardMolex Slot, Spec Version 2.x/3.x/4.x(SDSC/SDHC/SDXC)YesYesYes
Output1x HDMI 2.1, supports 8K@60fps
1x MIPI DSI up to 4K@60fps
1x DP 1.4 up to 8K@30fps
1x HDMI 2.1, supports 4K@120fps
1x MIPI DSI, up to 2K@60fps
1x DP1.4, up to 4K@120fps
1x MIPI DSI up to 2K@60fps
1x HDMI OUT2.0, supports 4K@60fps
1x HDMI OUT2.0b, supports 4K@60fps
Decoder8K@60fps H.265/VP9/AVS2
8K@30fps H.264 AVC/MVC
4K@60fps AV1
1080P@60fps MPEG-2/-1/VC-1/VP8
H.264, H.265, VP9, AV1 and AVS2 etc. up to 8K@30fps or4K@120fps4KP60 H.265/H.264/VP9H.265, H.264, AVS2 4K@60fps
Encoder8K@30fps H.265 / H.264H.264 and H.265 up to 4K@60fps1080P60 H.264/H.265H.264 and H.265 up to1080@60fps
Wi-FiAP6275P Wi-Fi 6 Module
802.11a/b/g/n/ac/ax, 2T2R MIMO with RSDB
SYN43752 Wi-Fi 6 Module
802.11a/b/g/n/ac/ax, 2T2R MIMO with RSDB
SYN43752 Wi-Fi 6 Module
802.11a/b/g/n/ac/ax, 2T2R MIMO with RSDBs
SYN43752 Wi-Fi 6 Module
802.11a/b/g/n/ac/ax, 2T2R MIMO with RSDBs
PCIEPCIe 3.0 4-lanes
M.2 Key M 2280 NVMe SSD Supported
PCIe 3.0 1-lanes
M.2 Key M 2280 NVMe SSD Supported
PCIe 3.0 2-lanes
M.2 Key M 2280 NVMe SSD Supported
-
Ethernet2x 2.5G Ethernet2x Gigabit EthernetGigabit Ethernet & 2.5G EthernetGigabit Ethernet & 2.5G Ethernet
USB Host1x USB 3.0 & 1x USB 2.01x USB 3.0 & 1x USB 2.01x USB 3.0 & 1x USB 2.02x USB 2.0
USB-C1x USB-C Power jack & 1x USB Type-C 3.0๏ผˆDP1.4/OTG๏ผ‰1x USB-C Power jack & 1x USB Type-C 3.0๏ผˆDP1.4/OTG๏ผ‰1x USB-C Power jack & 1x USB3.0 OTG1x USB-C Power jack & 1x USB2.0 OTG
MIPI CSI/DSI2x 4-lane MIPI CSI
1x 4-lane MIPI DSI
2x 4-lane MIPI CSI
1x 4-lane MIPI DSI
1x 4-lane MIPI CSI
1x 4-lane MIPI DSI
-
40-PIN Headeryesyesyesyes
LEDs2x LEDs2x LEDs2x LEDs2x LEDs
Board Dimensions92mm ร— 62mm x 14.6mm92mm ร— 62mm x 14.6mm92mm ร— 62mm x 14.6mm92mm ร— 62mm x 14.6mm

Getting Startedโ€‹

Before starting to use the ArmSoM-Sige product, please prepare the following items:

Tools Requiredโ€‹

  • Power supply
  • System installation (choose one):
    • Onboard eMMC boot
      • USB Type-C cable for writing images to the Sige series from the typec port, you need a Type-C data cable to connect the Sige series and PC.
    • MicroSD card/TF card boot
      • MicroSD card/TF card, Class 10 or higher, with at least 8GB SDHC and a card reader
      • The following high-speed TF cards have been tested and verified by the ArmSoM team:
        • SanDisk 32GB TF (MicroSD) (recommended for developers)
        • SanDisk 32GB TF (MicroSD) for dashcams & security monitoring dedicated storage card (recommended for long-term operation)
        • SanDisk TF 8G Class 10 microSD
        • SanDisk TF 128G Class 10 microSD XC TF 128G 48MB/S

You can configure Sige as an interactive computer with a desktop or as a headless computer accessible only via network. To set up Sige as a headless computer, configure the hostname, user account, network connection, and SSH during the initial OS installation. If you want to use Sige directly, you will need the following additional accessories:

Optional Accessories

  • Keyboard & Mouse
  • HDMI Monitor and HDMI Cable
  • Ethernet Cable
  • Camera Module
  • LCD Display
  • Audio Cable, 0.8mm vertical socket.
  • RTC Battery, 0.8mm vertical socket.
  • Fan, 0.8mm vertical socket.

Power Supplyโ€‹

The table below shows the power specifications required for powering the ArmSoM-Sige series. You can use any high-quality power supply that provides the correct power mode.

ModelRecommended Power (Voltage/Current)Power Mode
Sige75V/3A, 9V/2A, 12V/2A, 15V/2AUSB-PD
Sige55V/3A, 9V/2A, 12V/2A, 15V/2AUSB-PD
Sige35V/3A, 9V/2A, 12V/2A, 15V/2AUSB-PD
Sige15V/2.5A, 12V/2ANon-PD

Insert the power supply into the port labeled "DCIN". Please make sure to use the correct port!

Image Flashingโ€‹

Interface Usageโ€‹

If you are using ArmSoM-Sige products for the first time, please familiarize yourself with the hardware interfaces of each product to better understand the following content.

Hardware InterfaceSige7Sige5Sige1

Debug Serial Portโ€‹

Connect the USB to TTL serial cable as follows:

armsom-sige7-debug

Sige7/5/3/1ConnectionSerial Module
GND (pin 6)--->GND
TX (pin 8)--->RX
RX (pin 10)--->TX

Ethernet Portโ€‹

  1. First, plug one end of the network cable into the Ethernet port of the ArmSoM-SigeX, and connect the other end to a router. Ensure that the network is functional.
  2. After the system boots, it will automatically assign an IP address to the Ethernet port via DHCP without any additional configuration.
  3. To check the IP address in the ArmSoM-SigeX Linux system, use the following command:
armsom@armsom-sige7:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enP4p65s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether c6:9c:b0:7e:2b:1f brd ff:ff:ff:ff:ff:ff permaddr aa:a6:84:1b:0d:21
inet 192.168.10.54/24 brd 192.168.10.255 scope global dynamic noprefixroute enP4p65s0
valid_lft 86221sec preferred_lft 86221sec
inet6 fe80::5bb0:d96f:926d:b334/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enP2p33s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether be:ed:22:01:47:d9 brd ff:ff:ff:ff:ff:ff permaddr a2:fb:fa:79:de:fb
4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state DORMANT group default qlen 1000
link/ether b8:2d:28:5a:52:6a brd ff:ff:ff:ff:ff:ff

There are three ways to check the IP address of ArmSoM-SigeX after it starts:

  • Connect an HDMI monitor, log into the system, and use the terminal command ip a to view the IP address.
  • Use the debug serial port terminal and enter the ip a command to check the IP address.
  • If neither the debug serial port nor HDMI monitor is available, you can check the IP address of the ArmSoM-SigeX Ethernet port through the routerโ€™s management interface. However, this method may sometimes fail to display the ArmSoM-SigeX IP address. If you cannot see it, try the following troubleshooting steps:
    • Check if the Linux system has started properly. If the green light on the ArmSoM-SigeX is steady, it generally means the system has booted correctly; if only the red light is on, the system has not booted properly.
    • Ensure the network cable is securely connected, or try a different cable.
    • Try using a different router. Common issues with routers include inability to assign IP addresses or assigning them correctly but not showing them in the router's interface.
    • If no alternative router is available, use an HDMI monitor or the debug serial port to check the IP address.
tip

Note that DHCP automatically assigning an IP address to the ArmSoM-SigeX requires no additional configuration.

  1. Use the ping tool to check network connectivity.

The command to test network connectivity is shown below. You can stop the ping command with the Ctrl+C shortcut.

armsom@armsom-sige7:~$ ping www.baidu.com
PING www.a.shifen.com (183.2.172.185): 56 data bytes
64 bytes from 183.2.172.185: icmp_seq=0 ttl=53 time=8.370 ms
64 bytes from 183.2.172.185: icmp_seq=1 ttl=53 time=8.917 ms
64 bytes from 183.2.172.185: icmp_seq=2 ttl=53 time=8.511 ms
64 bytes from 183.2.172.185: icmp_seq=3 ttl=53 time=8.673 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 8.370/8.618/8.917/0.203 ms

WIFIโ€‹

The ArmSoM-Sige series products come with an onboard WIFI module, so there's no need for external network devices. They use a standard 4th-generation antenna.

Connecting to WIFI via Command Line on Server Image

  1. First, log in to the Linux system using one of the following methods:

    • If the ArmSoM-SigeX is connected to a network cable, you can log in remotely via SSH.
    • If the ArmSoM-SigeX is connected via a debug serial port, use a serial terminal to log in to the Linux system.
    • If the ArmSoM-SigeX is connected to an HDMI monitor, you can log in to the Linux system via the HDMI display.
  2. Use the nmcli dev wifi command to scan for available WIFI hotspots:

    # 1. Enable WIFI
    armsom@armsom-sige:/# nmcli r wifi on
    # 2. Scan for WIFI
    armsom@armsom-sige:/# nmcli dev wifi
    # 3. Connect to a WIFI network
    armsom@armsom-sige:/# nmcli dev wifi connect "wifi_name" password "wifi_password"

    wifi-nmcli-scan

  3. Use the nmcli command to connect to the scanned WIFI:

    • Replace wifi_name with the name of the WIFI hotspot you want to connect to.
    • Replace wifi_password with the password for the WIFI hotspot.
    armsom@armsom-sige7:~$ nmcli dev wifi connect "ydtx_5G" password "ydtx123456"
    Device 'wlan0' successfully activated with "wlan0b6d10bba-e1d5-4b6d-a17f-7d5ab44bbb6f".
  4. Use the ip addr show wlan0 command to view the WIFI IP address:

    armsom@armsom-sige7:~$ ip addr show wlan0
    4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:2d:28:5a:52:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.9/24 brd 192.168.10.255 scope global dynamic noprefixroute wlan0
    valid_lft 86321sec preferred_lft 86321sec
    inet6 fe80::850d:3119:e0:afa3/64 scope link noprefixroute
    valid_lft forever preferred_lft forever
  5. Use the ping command to test the WIFI network connectivity. You can interrupt the ping command with the Ctrl+C shortcut:

    armsom@armsom-sige7:~$ ping www.baidu.com
    PING www.a.shifen.com (183.2.172.185): 56 data bytes
    64 bytes from 183.2.172.185: icmp_seq=0 ttl=53 time=8.370 ms
    64 bytes from 183.2.172.185: icmp_seq=1 ttl=53 time=8.917 ms
    64 bytes from 183.2.172.185: icmp_seq=2 ttl=53 time=8.511 ms
    64 bytes from 183.2.172.185: icmp_seq=3 ttl=53 time=8.673 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 8.370/8.618/8.917/0.203 ms

Connecting to WIFI via GUI on Server Image

  1. Log in to the Linux system using one of the following methods:

    • If the development board is connected to a network cable, you can log in remotely via SSH.
    • If the development board is connected via a debug serial port, use a serial terminal to log in to the Linux system (use MobaXterm for serial software, as minicom cannot display the graphical interface).
    • If the development board is connected to an HDMI monitor, log in to the Linux system via the HDMI display.
  2. Enter the nmtui command in the terminal to open the WIFI connection interface:

    wifi-nmcli

    armsom@armsom-sige7:~$ nmtui
  3. Select "Activate a connection" and press Enter:

    wifi-nmcli-connect

  4. Choose the WIFI hotspot you want to connect to and enter the password. After a successful connection, an asterisk โ€œ*โ€ will appear next to the connected WIFI name:

    wifi-nmcli-success

  5. Use the ip addr show wlan0 command to view the WIFI IP address:

    armsom@armsom-sige7:~$ ip addr show wlan0
    4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:2d:28:5a:52:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.9/24 brd 192.168.10.255 scope global dynamic noprefixroute wlan0
    valid_lft 86316sec preferred_lft 86316sec
    inet6 fe80::a422:3494:3147:92d/64 scope link noprefixroute
    valid_lft forever preferred_lft forever
  6. Use the ping command to test the WIFI network connectivity. You can interrupt the ping command with the Ctrl+C shortcut:

    armsom@armsom-sige7:~$ ping www.baidu.com
    PING www.a.shifen.com (183.2.172.185): 56 data bytes
    64 bytes from 183.2.172.185: icmp_seq=0 ttl=53 time=8.370 ms
    64 bytes from 183.2.172.185: icmp_seq=1 ttl=53 time=8.917 ms
    64 bytes from 183.2.172.185: icmp_seq=2 ttl=53 time=8.511 ms
    64 bytes from 183.2.172.185: icmp_seq=3 ttl=53 time=8.673 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 8.370/8.618/8.917/0.203 ms

Testing Method for Desktop Image

  1. Click the network configuration icon on the desktop (ensure not to connect a network cable while testing WIFI).

  2. After connecting to WIFI, open a browser to check if you can access the internet:

    wifi-desktop-set

Network Settings

BTโ€‹

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

HDMIโ€‹

ModelSige7Sige5Sige3Sige1
Resolution8Kp604Kp1204Kp604Kp60
  1. Connect the ArmSoM-Sige to an HDMI display using an HDMI cable.
  2. After booting the Linux system, if the HDMI display shows an image, the HDMI interface is functioning correctly.
tip

Note that many laptops, while having HDMI ports, typically have HDMI output only and do not support HDMI in. This means you cannot display the HDMI output from another device on the laptop's screen. Before connecting the development board's HDMI to a laptop's HDMI port, ensure your laptop supports HDMI in functionality. If there is no display, first check if your system is a desktop version; server versions might only show a terminal.

HDMI to VGA Display Testโ€‹

  1. Required accessories:
  • HDMI to VGA converter
  • A VGA cable and a display with a VGA port
  1. The HDMI to VGA display test is shown below:

sige-hdmi-vga

tip

When using HDMI to VGA conversion, no additional configuration is needed for the ArmSoM-Sige products or the Linux system. If you encounter issues, check the HDMI to VGA converter, VGA cable, and display for problems.

USBโ€‹

ModelSige7Sige5Sige3Sige1
USB1x Type-C 3.0, 1x USB3.0, 1x USB2.01x Type-C 3.0, 1x USB3.0, 1x USB2.01x Type-C 3.0, 1x USB3.0, 1x USB2.02x USB2.0
info

USB interfaces can be expanded by using a USB hub.

Testing USB Mouse or Keyboardโ€‹

  1. Insert a USB keyboard into the ArmSoM-Sige product's USB port.
  2. Connect the ArmSoM-Sige product to an HDMI display.
  3. If the mouse or keyboard operates the system normally, the USB interface is working correctly (the mouse will only work in desktop versions of the system).

Testing USB Storage Deviceโ€‹

  1. Insert a USB flash drive or USB external hard drive into the ArmSoM-Sige product's USB port.
  2. Run the following command; if you see sdX output, the USB drive is recognized successfully:
armsom@armsom-sige7:/# cat /proc/partitions | grep "sd*"
major minor #blocks name
8 0 122880000 sda
  1. Use the mount command to mount the USB drive to /mnt and view the files on the USB drive:
armsom@armsom-sige7:/# sudo mount /dev/sda1 /test/
  1. After mounting, use the df -h command to check the USB drive's capacity usage and mount point:
armsom@armsom-sige7:/test# df -h | grep "sd"
/dev/sda 4.7G 4.7G 0 100% /test

USB Cameraโ€‹

  1. Prepare a USB camera that supports the UVC protocol and connect it to the ArmSoM-Sige product's USB port.

  2. Use the v4l2-ctl command to view the USB camera's device node information, which should be /dev/video0:

armsom@armsom-sige7:/# v4l2-ctl --list-devices
Logitech HD Webcam C93 (usb-xhci-hcd.5.auto-1):
/dev/video40
/dev/video41
/dev/media4
  1. On a desktop system, you can use Cheese/V4L2 test bench to open the USB camera directly.

sige-usb-cam

You can also use terminal commands to preview the camera:

armsom@armsom-sige7:/# gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! videoconvert ! video/x-raw,format=NV12,width=1920,height=1080 ! xvimagesink;

To capture a photo:

armsom@armsom-sige7:/# gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! videoconvert ! video/x-raw,format=NV12,width=1920,height=1080 ! jpegenc ! multifilesink location=/home/armsom/test.jpg;

To record a video:

gst-launch-1.0 v4l2src num-buffers=512 device=/dev/video0 io-mode=4 ! videoconvert ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! mpegtsmux ! filesink location=/home/armsom/test.mp4

armsom-sige7-gst

M.2 Key Mโ€‹

The ArmSoM-Sige7/5/3 provides an M.2 Key M connector:

  • The product features an M.2 Key M connector on the back. The board includes a standard M.2 2280 mounting hole for deploying an M.2 2280 NVMe SSD.
    Note: This M.2 interface does not support M.2 SATA SSDs.
armsom@armsom-sige:/# mkdir temp
armsom@armsom-sige:/# mount /dev/nvme0n1 temp

Audioโ€‹

View sound cards in the system:

armsom@armsom-sige:/# 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 2: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

FANโ€‹

Sige products are equipped with a 5V fan using a 0.8mm connector.

The fan currently operates in five default states:

Temperature RangeStatePWM Speed
Less than 50ยฐC00
50ยฐC - 55ยฐC150
55ยฐC - 60ยฐC2100
60ยฐC - 65ยฐC3150
65ยฐC - 70ยฐC4200
Above 70ยฐC5250
// Check current fan speed
armsom@armsom-sige:/# cat /sys/class/hwmon/hwmon9/pwm1

40 PINโ€‹

Sige products provides a 40-PIN GPIO header, compatible with most sensors on the market.

Wiring-armbian Instructionsโ€‹

Download the wiringOP code from wiring-armbian.

  • Test the output of the gpio readall command as shown below:
 +------+-----+----------+--------+---+  ArmSoM-Sige7(BPI-M7) +---+--------+----------+-----+------+  
| GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |
+------+-----+----------+--------+---+----++----+---+--------+----------+-----+------+
| | | 3.3V | | | 1 || 2 | | | 5V | | |
| 139 | 0 | SDA.7 | IN | 1 | 3 || 4 | | | 5V | | |
| 138 | 1 | SCL.7 | IN | 1 | 5 || 6 | | | GND | | |
| 115 | 2 | PWM15 | OUT | 0 | 7 || 8 | 1 | ALT10 | GPIO0_B5 | 3 | 13 |
| | | GND | | | 9 || 10 | 1 | ALT10 | GPIO0_B6 | 4 | 14 |
| 113 | 5 | GPIO3_C1 | IN | 0 | 11 || 12 | 1 | IN | GPIO3_B5 | 6 | 109 |
| 111 | 7 | GPIO3_B7 | IN | 0 | 13 || 14 | | | GND | | |
| 112 | 8 | GPIO3_C0 | IN | 0 | 15 || 16 | 0 | IN | GPIO3_A4 | 9 | 100 |
| | | 3.3V | | | 17 || 18 | 1 | IN | GPIO4_C4 | 10 | 148 |
| 42 | 11 | SPI0_TXD | IN | 1 | 19 || 20 | | | GND | | |
| 41 | 12 | SPI0_RXD | IN | 1 | 21 || 22 | | | SARADC_IN4 | | |
| 43 | 14 | SPI0_CLK | IN | 1 | 23 || 24 | 1 | IN | SPI0_CS0 | 15 | 44 |
| | | GND | | | 25 || 26 | 1 | IN | SPI0_CS1 | 16 | 45 |
| 150 | 17 | GPIO4_C6 | IN | 1 | 27 || 28 | 0 | OUT | GPIO4_C5 | 18 | 149 |
| 63 | 19 | GPIO1_D7 | IN | 1 | 29 || 30 | | | GND | | |
| 47 | 20 | GPIO1_B7 | IN | 1 | 31 || 32 | 0 | IN | GPIO3_C2 | 21 | 114 |
| 103 | 22 | GPIO3_A7 | IN | 1 | 33 || 34 | | | GND | | |
| 110 | 23 | GPIO3_B6 | IN | 0 | 35 || 36 | 0 | IN | GPIO3_B1 | 24 | 105 |
| 0 | 25 | GPIO0_A0 | IN | 1 | 37 || 38 | 0 | IN | GPIO3_B2 | 26 | 106 |
| | | GND | | | 39 || 40 | 1 | IN | GPIO3_B3 | 27 | 107 |
+------+-----+----------+--------+---+----++----+---+--------+----------+-----+------+
| GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |
+------+-----+----------+--------+---+ ArmSoM-Sige7(BPI-M7) +---+--------+----------+-----+------+
  • Set the GPIO pin to output mode. The third parameter requires the wPi number corresponding to the pin.
root@armsom-sige7:~/wiring-armbian# gpio mode 2 out
  • Set the GPIO pin to output a low level. After setting, you can measure the voltage on the pin with a multimeter; if it reads 0V, the low level is set successfully.
root@armsom-sige7:~/wiring-armbian# gpio write 2 0
  • Set the GPIO pin to output a high level. After setting, you can measure the voltage on the pin with a multimeter; if it reads 3.3V, the high level is set successfully.
root@armsom-sige7:~/wiring-armbian# gpio write 2 1
  • The setup method for other pins is similar; just change the wPi number to the corresponding pin's number.

RGB LEDโ€‹

Sige features two user indicator LEDs: a green LED and a red LED.

  • User Green LED
    Constantly indicates running kernel by default.

  • User Red LED Off by default, can be controlled by user.

Users can control with commands:

armsom@armsom-sige:/# sudo su  
armsom@armsom-sige:/# echo timer > /sys/class/leds/red/trigger
armsom@armsom-sige:/# echo activity > /sys/class/leds/red/trigger

RTCโ€‹

  • The sige features an hym8563 RTC chip.
  • First, insert the RTC battery using the 2-pin header to supply power to the RTC IC.
  • Note that we should keep the RTC battery in the RTC connector and confirm the rtc hym8563 device which has been created.
armsom@armsom-sige:/# 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)
  • Find rtc0, then use the following commands to set system time and sync to rtc0:
armsom@armsom-sige7:/# hwclock -r  
2023-11-03 10:32:40.461910+00:00
armsom@armsom-sige7:/# date
Fri 3rd Nov 10:33:12 UTC 2023
armsom@armsom-sige7:/# hwclock -w
armsom@armsom-sige7:/# hwclock -r
armsom@armsom-sige7:/# poweroff
  • Turn off the RTC battery for 10+ minutes, insert the battery again and boot Sige7, and check if RTC synced with system clock:
armsom@armsom-sige7:/# hwclock -r  
2023-11-03 10:35:40.461910+00:00
armsom@armsom-sige7:/# date
Fri 3rd Nov 10:36:01 UTC 2023

MIPI CSIโ€‹

Using ArmSoM Camera-Module1โ€‹

The camera uses the camera-module1. After connecting and powering on the camera module, you can view the boot log.

root@armsom-sige7:/# dmesg | grep ov13850
[ 2.302905] ov13850 5-0010: driver version: 00.01.05
[ 2.302944] ov13850 5-0010: Failed to get power-gpios, maybe no use
[ 2.303067] ov13850 5-0010: supply avdd not found, using dummy regulator
[ 2.303153] ov13850 5-0010: supply dovdd not found, using dummy regulator
[ 2.303186] ov13850 5-0010: supply dvdd not found, using dummy regulator
[ 2.303213] ov13850 5-0010: could not get default pinstate
[ 2.303220] ov13850 5-0010: could not get sleep pinstate
[ 2.308532] ov13850 5-0010: Detected OV00d850 sensor, REVISION 0xb2
[ 2.332058] ov13850 5-0010: Consider updating driver ov13850 to match on endpoints
[ 2.332084] rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_ov13850 5-0010:bus type 5

Capture images using v4l2-ctlโ€‹

# MIPI-CSI1
root@armsom-sige7:/# v4l2-ctl -d /dev/video31 --set-selection=target=crop,top=0,left=0,width=2112,height=1568 --set-fmt-video=width=2112,height=1568,pixelformat=NV12 --stream-mmap=3 --stream-to=/nv12.bin --stream-count=1 --stream-poll
# MIPI-CSI0
root@armsom-sige7:/# v4l2-ctl -d /dev/video22 --set-selection=target=crop,top=0,left=0,width=2112,height=1568 --set-fmt-video=width=2112,height=1568,pixelformat=NV12 --stream-mmap=3 --stream-to=/nv12.bin --stream-count=1 --stream-poll

Record video using gst-launch-1.0โ€‹

# MIPI-CSI1
root@armsom-sige7:/# gst-launch-1.0 v4l2src device=/dev/video31 ! video/x-raw,format=NV12,width=2112,height=1568, framerate=30/1 ! xvimagesink
# MIPI-CSI0
root@armsom-sige7:/# gst-launch-1.0 v4l2src device=/dev/video22 ! video/x-raw,format=NV12,width=2112,height=1568, framerate=30/1 ! xvimagesink
root@armsom-sige3:/# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=2112,height=1568, framerate=30/1 ! xvimagesink

armsom-w3-imx415-camera

ArmSoM Camera-Module1

MIPI DSIโ€‹

The ArmSoM-Sige7/5/3 supports a maximum resolution of up to 4K@60Hz.

  1. Connect the cables as shown in the image below.

sige7-display-10-hd

  1. Configuring the 10.1-inch MIPI LCD screen
  • By default, the Linux image does not have the MIPI LCD screen configuration enabled. To use the MIPI LCD screen, you need to enable it manually.

  • Use nano to open the /boot/armbianEnv.txt file:

sudo nano /boot/armbianEnv.txt
  • In this file, find or add the keyword "overlays=".
// Choose according to your product
overlays=armsom-sige7-display-10hd // Sige7
overlays=armsom-sige5-display-10hd // Sige5
overlays=armsom-sige3-display-10hd // Sige3

Shortcut keys: Ctrl + S to save Ctrl + X to exit

After editing, restart the device to apply the Overlays settings and support Display 10 HD.

CPU/GPU/NPU/DDRโ€‹

The following example uses Sige7 to illustrate how to set the fixed frequency and performance modes for CPU, GPU, NPU, and DDR.

Fixed Frequency Settingsโ€‹

CPU Fixed Frequencyโ€‹

The ArmSoM-Sige7 CPU consists of 4 A55 cores and 4 A76 cores, managed in three separate groups. The nodes are as follows:

/sys/devices/system/cpu/cpufreq/policy0: (corresponding to 4 A55: CPU0-3)
affected_cpus cpuinfo_max_freq cpuinfo_transition_latency scaling_available_frequencies scaling_cur_freq scaling_governor scaling_min_freq stats
cpuinfo_cur_freq cpuinfo_min_freq related_cpus scaling_available_governors scaling_driver scaling_max_freq scaling_setspeed

/sys/devices/system/cpu/cpufreq/policy4: (corresponding to 2 A76: CPU4-5)
affected_cpus cpuinfo_max_freq cpuinfo_transition_latency scaling_available_frequencies scaling_cur_freq scaling_governor scaling_min_freq stats
cpuinfo_cur_freq cpuinfo_min_freq related_cpus scaling_available_governors scaling_driver scaling_max_freq scaling_setspeed

/sys/devices/system/cpu/cpufreq/policy6: (corresponding to 2 A76: CPU6-7)
affected_cpus cpuinfo_max_freq cpuinfo_transition_latency scaling_available_frequencies scaling_cur_freq scaling_governor scaling_min_freq stats
cpuinfo_cur_freq cpuinfo_min_freq related_cpus scaling_available_governors scaling_driver scaling_max_freq scaling_setspeed

root@armsom-sige7:/ # cat /sys/devices/system/cpu/cpufreq/policy6/scaling_available_frequencies // Get current supported CPU frequencies
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2400000
root@armsom-sige7:/ # cat /sys/devices/system/cpu/cpufreq/policy6/scaling_available_governors // Get CPU operating modes
conservative ondemand userspace powersave performance schedutil

The default is the automatic frequency scaling mode: schedutil (to restore, set to this mode).

Manual Fixed Frequency Settingsโ€‹
root@armsom-sige7:/ $ su
root@armsom-sige7:/ # echo userspace > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor // Manual fixed frequency mode: userspace
root@armsom-sige7:/ # echo 2016000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_setspeed // Set frequency to 2016000
root@armsom-sige7:/ # cat /sys/devices/system/cpu/cpufreq/policy6/cpuinfo_cur_freq // Verify if set successfully
2016000

The other two CPU groups can be set similarly by operating the corresponding nodes.

GPU Fixed Frequencyโ€‹

GPU Node Pathโ€‹
root@armsom-sige7:/ # ls /sys/class/devfreq/fb000000.gpu/    
available_frequencies cur_freq governor max_freq name power target_freq trans_stat
available_governors device load min_freq polling_interval subsystem timer uevent
root@armsom-sige7:/ # cat /sys/class/devfreq/fb000000.gpu/available_frequencies // Get supported GPU frequencies
1000000000 900000000 800000000 700000000 600000000 500000000 400000000 300000000 200000000
root@armsom-sige7:/ # cat /sys/class/devfreq/fb000000.gpu/available_governors // Get GPU operating modes
dmc_ondemand userspace powersave performance simple_ondemand

The default is the automatic frequency scaling mode: simple_ondemand (to restore, set to this mode).

Manual Fixed Frequency Settingsโ€‹
root@armsom-sige7:/ $ su
root@armsom-sige7:/ # echo userspace > /sys/class/devfreq/fb000000.gpu/governor // Manual fixed frequency mode: userspace
root@armsom-sige7:/ # echo 1000000000 > /sys/class/devfreq/fb000000.gpu/userspace/set_freq // Set frequency to 1000000000
root@armsom-sige7:/ # cat /sys/class/devfreq/fb000000.gpu/cur_freq // Verify if set successfully
1000000000
root@armsom-sige7:/ # cat /sys/class/devfreq/fb000000.gpu/load // Check GPU load
28@300000000Hz

DDR Fixed Frequencyโ€‹

DDR Node Pathโ€‹
root@armsom-sige7:/ # ls /sys/class/devfreq/dmc/  
available_frequencies cur_freq downdifferential load min_freq polling_interval subsystem target_freq trans_stat upthreshold
available_governors device governor max_freq name power system_status timer uevent
root@armsom-sige7:/ # cat /sys/class/devfreq/dmc/available_frequencies // Get supported DDR frequencies
528000000 1068000000 1560000000 2112000000
root@armsom-sige7:/ # cat /sys/class/devfreq/dmc/available_governors // Get DDR operating modes
dmc_ondemand userspace powersave performance simple_ondemand

The default is the automatic frequency scaling mode: dmc_ondemand (to restore, set to this mode).

Manual Fixed Frequency Settingsโ€‹
root@armsom-sige7:/ $ su
root@armsom-sige7:/ # echo userspace > /sys/class/devfreq/dmc/governor // Manual fixed frequency mode: userspace
root@armsom-sige7:/ # echo 2112000000 > /sys/class/devfreq/dmc/userspace/set_freq // Set frequency to 2112000000
root@armsom-sige7:/ # cat /sys/class/devfreq/dmc/cur_freq // Verify if set successfully
2112000000
root@armsom-sige7:/ # cat /sys/class/devfreq/dmc/load // Check DDR load
7@528000000Hz

NPU Fixed Frequencyโ€‹

NPU Node Pathโ€‹
root@armsom-sige7:/ # ls /sys/class/devfreq/fdab0000.npu/
available_frequencies cur_freq governor max_freq name power target_freq trans_stat userspace
available_governors device load min_freq polling_interval subsystem timer uevent
root@armsom-sige7:/ # cat /sys/class/devfreq/fdab0000.npu/available_frequencies // Get supported NPU frequencies
200000000 300000000 400000000 500000000 600000000 700000000 800000000 900000000 1000000000
root@armsom-sige7:/ # cat /sys/class/devfreq/fdab0000.npu/available_governors // Get NPU operating modes
dmc_ondemand userspace powersave performance simple_ondemand

The default is the automatic frequency scaling mode: simple_ondemand (to restore, set to this mode).

Manual Fixed Frequency Settingsโ€‹
root@armsom-sige7:/ $ su
root@armsom-sige7:/ # echo userspace > /sys/class/devfreq/fdab0000.npu/governor // Manual fixed frequency mode: userspace
root@armsom-sige7:/ # echo 1000000000 > /sys/class/devfreq/fdab0000.npu/userspace/set_freq // Set frequency to 1000000000
root@armsom-sige7:/ # cat /sys/class/devfreq/fdab0000.npu/cur_freq // Verify if set successfully
1000000000
root@armsom-sige7:/ # cat /sys/kernel/debug/rknpu/load // Check NPU load
NPU load: Core0: 0%, Core1: 0%, Core2: 0%,

Performance Modesโ€‹

root@armsom-sige7:/ $ su
root@armsom-sige7:/ # echo performance > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
root@armsom-sige7:/ # echo performance > /sys/class/devfreq/fb000000.gpu/governor
root@armsom-sige7:/ # echo performance > /sys/class/devfreq/dmc/governor
root@armsom-sige7:/ # echo performance > /sys/class/devfreq/fdab0000.npu/governor