5. Buildroot Application
5.1 Serial Terminal
Connect the board and PC with USB Serial cable, then power on, the terminal will output boot information. The default baudrate is 1500000.
5.2 Display
Idea3588S supports MIPI LCD, HDMI and Type-C(DP Alt Mode) display synchronization.
Warning
MIPI LCD hot swapping is not allowed.
5.3 USB Type-C
Features Supported by the Type-C Interface:
Reversible Design: Allows insertion in either orientation for user convenience.
Data Transmission Roles: Supports flexible designation of host and device roles.
Multiple Protocol Support: Compatible with USB 3.0 and DisplayPort, enabling high-speed data transmission.
5.3.1 ADB
ADB is the command-line debugging tool. It can use for system logs, uploading and downloading the files, installing the applications, etc.
❶ Connect the board and PC host with Type-C cable.
❷ Install ADB driver on Windows system.
❸ Press Windows + R to open the Run program. Type cmd and press Enter
❹ Execute command to enable ADB.
1adb shell
5.3.2 Type-C to USB3.0
Idea3588S supports Type-C to USB3.0. The device can use directly without install any driver.
After inserting the USB3.0 flash drive, the terminal will print the corresponding information.
#Serial terminal output
root@rk3588s-buildroot:/# [ 1030.426917] dwc3 fc000000.usb: request 000000002fed0401 was not queued to ep0out
[ 1030.426994] android_work: did not send uevent (0 0 0000000000000000)
[ 1030.533049] xhci-hcd xhci-hcd.10.auto: xHCI Host Controller
[ 1030.533367] xhci-hcd xhci-hcd.10.auto: new USB bus registered, assigned bus number 7
[ 1030.533526] xhci-hcd xhci-hcd.10.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000800002010010
[ 1030.533570] xhci-hcd xhci-hcd.10.auto: irq 140, io mem 0xfc000000
[ 1030.533720] xhci-hcd xhci-hcd.10.auto: xHCI Host Controller
[ 1030.533899] xhci-hcd xhci-hcd.10.auto: new USB bus registered, assigned bus number 8
[ 1030.533919] xhci-hcd xhci-hcd.10.auto: Host supports USB 3.0 SuperSpeed
[ 1030.534060] usb usb7: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[ 1030.534079] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1030.534093] usb usb7: Product: xHCI Host Controller
[ 1030.534106] usb usb7: Manufacturer: Linux 6.1.75 xhci-hcd
[ 1030.534118] usb usb7: SerialNumber: xhci-hcd.10.auto
[ 1030.534770] hub 7-0:1.0: USB hub found
[ 1030.534808] hub 7-0:1.0: 1 port detected
[ 1030.535138] usb usb8: We don't know the algorithms for LPM for this host, disabling LPM.
[ 1030.535229] usb usb8: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.01
[ 1030.535247] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1030.535261] usb usb8: Product: xHCI Host Controller
[ 1030.535273] usb usb8: Manufacturer: Linux 6.1.75 xhci-hcd
[ 1030.535285] usb usb8: SerialNumber: xhci-hcd.10.auto
[ 1030.535709] hub 8-0:1.0: USB hub found
[ 1030.535737] hub 8-0:1.0: 1 port detected
[ 1030.869287] usb 8-1: new SuperSpeed USB device number 2 using xhci-hcd
[ 1030.901207] usb 8-1: New USB device found, idVendor=0dd8, idProduct=3b00, bcdDevice= 0.02
[ 1030.901291] usb 8-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1030.901325] usb 8-1: Product: OnlyDisk
[ 1030.901354] usb 8-1: Manufacturer: Netac
[ 1030.901381] usb 8-1: SerialNumber: 0A6544CD10427AB2
[ 1030.904019] usb-storage 8-1:1.0: USB Mass Storage device detected
1df -h //view USB device
#Serial terminal output
root@rk3588s-buildroot:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 14G 696M 13G 6% /
devtmpfs 3.9G 8.0K 3.9G 1% /dev
tmpfs 3.9G 140K 3.9G 1% /tmp
tmpfs 3.9G 496K 3.9G 1% /run
tmpfs 3.9G 208K 3.9G 1% /var/log
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/mmcblk0p7 123M 12M 108M 10% /oem
/dev/mmcblk0p8 15G 332K 15G 1% /userdata
/dev/sda1 58G 47G 12G 81% /mnt/udisk
root@rk3588s-buildroot:/#
5.3.3 DP Alt Mode
DisplayPort Alternate Mode (DP Alt Mode) is a technology that facilitates the transmission of DisplayPort video signals through a USB Type-C interface. It enables devices to output video and audio via a USB-C connection without requiring a dedicated DisplayPort connector. This allows users to connect a display using a single USB-C port while transmitting video, audio, and additional data.
Boardcon has conducted the testing at Type-C to HDMI/DP (3840x2160 @ 60Hz).
5.4 Ethernet
Connect the Board and router with an Ethernet cable.
1ifconfig //view the status of the network interfaces
2ping -I eth0 www.armdesigner.com //ping URL to test Network
#Serial terminal output
root@rk3588s-buildroot:/# ifconfig
eth0 Link encap:Ethernet HWaddr 3A:3B:7B:E4:37:FA
inet addr:192.168.0.133 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a3f:1281:d504:ef04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:341 errors:0 dropped:29 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:57389 (56.0 KiB) TX bytes:3126 (3.0 KiB)
Interrupt:69
root@rk3588s-buildroot:/# ping -I eth0 www.armdesigner.com
PING www.armdesigner.com (67.222.54.196) from 192.168.0.133 eth0: 56(84) bytes of data.
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=1 ttl=48 time=180 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=2 ttl=48 time=179 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=3 ttl=48 time=180 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=4 ttl=48 time=180 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=5 ttl=48 time=179 ms
5.5 USB Host
The USB Host can be used to connect USB mouse, USB keyboard, U-Disk or other USB devices.
After inserting the USB flash drive, it will be automatically mounted.
The USB3.0 default support Superspeed.
#Serial terminal output
root@rk3588s-buildroot:/# [ 1035.478880] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[ 1035.509738] usb 2-1: New USB device found, idVendor=0dd8, idProduct=3b00, bcdDevice= 0.02
[ 1035.509830] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1035.509864] usb 2-1: Product: OnlyDisk
[ 1035.509894] usb 2-1: Manufacturer: Netac
[ 1035.509923] usb 2-1: SerialNumber: 0A6544CD10427AB2
[ 1035.512815] usb-storage 2-1:1.0: USB Mass Storage device detected
[ 1035.514233] scsi host0: usb-storage 2-1:1.0
[ 1036.737179] scsi 0:0:0:0: Direct-Access Netac OnlyDisk 8.01 PQ: 0 ANSI: 6
[ 1036.739801] sd 0:0:0:0: [sda] 121610240 512-byte logical blocks: (62.3 GB/58.0 GiB)
[ 1036.739984] sd 0:0:0:0: [sda] Write Protect is off
[ 1036.740180] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1036.743249] sda: sda1
[ 1036.743811] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 1036.923425] FAT-fs (sda1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
5.6 WiFi & Bluetooth
5.6.1 WiFi
❶ Connect the WiFi antenna.
❷ Check whether the wifi device wlan0 exists.
1ifconfig
❸ Search for available WiFi hotspots.
1iwlist wlan0 scan
❹ Connect hotspot.
1wifi-connect.sh SSID PSK //'SSID': user SSID, 'PSK': password
After connected, ping URL/IP at terminal to test network.
1ifconfig
2ping -I wlan0 www.armdesigner.com
5.6.2 Bluetooth
1hciconfig -a //view device status
2hciconfig hci0 piscan //allow Bluetooth to be searched
3bluetoothctl //allow Bluetooth to be pairable
4scan on //search for Bluetooth devices
After scanning for devices, turn off the scan, otherwise, the device will continue to search and refresh
1scan off
#Serial terminal output
root@rk3588s-buildroot:/# hciconfig hci0 piscan
root@rk3588s-buildroot:/# bluetoothctl
hci0 new_settings: powered connectable discoverable bondable ssp br/edr le secure-conn
Agent registered
[CHG] Controller D4:9C:DD:F5:E7:23 Pairable: yes
[bluetooth]#
[bluetooth]# scan on
SetDiscoveryFilter success
hci0 type 7 discovering on
Discovery started
[CHG] Controller D4:9C:DD:F5:E7:23 Discovering: yes
[NEW] Device E2:73:E7:E5:99:79 E2-73-E7-E5-99-79
[NEW] Device 53:FD:A2:C5:B0:85 53-FD-A2-C5-B0-85
[NEW] Device 10:0E:A1:1C:13:A8 MC1C13A8
[NEW] Device 55:81:3C:08:98:17 55-81-3C-08-98-17
[NEW] Device 40:F3:BF:B5:58:9C 40-F3-BF-B5-58-9C
[NEW] Device 6D:13:2D:1F:AE:96 6D-13-2D-1F-AE-96
[NEW] Device 88:68:4B:74:39:44 OPPO K10 5G
[NEW] Device A8:35:12:9A:EB:4D liuy
[NEW] Device 30:4F:00:36:98:04 OPPO K9 Pro 5G
[bluetooth]# scan off
hci0 type 7 discovering off
Discovery stopped
[CHG] Device 30:4F:00:36:98:04 RSSI is nil
[CHG] Device A8:35:12:9A:EB:4D RSSI is nil
[CHG] Device 88:68:4B:74:39:44 RSSI is nil
[CHG] Device 6D:13:2D:1F:AE:96 RSSI is nil
[CHG] Device 40:F3:BF:B5:58:9C RSSI is nil
[CHG] Device 55:81:3C:08:98:17 TxPower is nil
[CHG] Device 55:81:3C:08:98:17 RSSI is nil
[CHG] Device 10:0E:A1:1C:13:A8 RSSI is nil
[CHG] Device 53:FD:A2:C5:B0:85 TxPower is nil
[CHG] Device 53:FD:A2:C5:B0:85 RSSI is nil
[CHG] Device E2:73:E7:E5:99:79 RSSI is nil
[CHG] Controller D4:9C:DD:F5:E7:23 Discovering: no
[bluetooth]#
1pair A8:35:12:9A:EB:4D //Pair the device
#Serial terminal output
ttempting to pair with A8:35:12:9A:EB:4D
hci0 device_flags_changed: A8:35:12:9A:EB:4D (BR/EDR)
supp: 0x00000000 curr: 0x00000000
hci0 A8:35:12:9A:EB:4D type BR/EDR connected eir_len 11
[CHG] Device A8:35:12:9A:EB:4D Connected: yes
Request confirmation
[agent] Confirm passkey 107811 (yes/no): yes
hci0 new_link_key A8:35:12:9A:EB:4D type 0x08 pin_len 0 store_hint 1
[CHG] Device A8:35:12:9A:EB:4D Bonded: yes
[CHG] Device A8:35:12:9A:EB:4D Modalias: bluetooth:v010Fp107Ed1436
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 0000046a-0000-1000-8000-00805f9b34fb
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 00001105-0000-1000-8000-00805f9b34fb
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 00001112-0000-1000-8000-00805f9b34fb
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 11c8b310-80e4-4276-afc0-f81590b2177f
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 8ce255c0-200a-11e0-ac64-0800200c9a66
[CHG] Device A8:35:12:9A:EB:4D UUIDs: 9664aa26-d76c-43ad-9775-d310f253a408
[CHG] Device A8:35:12:9A:EB:4D ServicesResolved: yes
[CHG] Device A8:35:12:9A:EB:4D Paired: yes
Pairing successful
hci0 A8:35:12:9A:EB:4D type BR/EDR disconnected with reason 3
[CHG] Device A8:35:12:9A:EB:4D ServicesResolved: no
1connect A8:35:12:9A:EB:4D //Connect the device
#Serial terminal output
[bluetooth]# connect A8:35:12:9A:EB:4D
Attempting to connect to A8:35:12:9A:EB:4D
hci0 A8:35:12:9A:EB:4D type BR/EDR connected eir_len 11
[CHG] Device A8:35:12:9A:EB:4D Connected: yes
[NEW] Endpoint /org/bluez/hci0/dev_A8_35_12_9A_EB_4D/sep1
[NEW] Endpoint /org/bluez/hci0/dev_A8_35_12_9A_EB_4D/sep2
[NEW] Endpoint /org/bluez/hci0/dev_A8_35_12_9A_EB_4D/sep3
[NEW] Endpoint /org/bluez/hci0/dev_A8_35_12_9A_EB_4D/sep4
[NEW] Transport /org/bluez/hci0/dev_A8_35_12_9A_EB_4D/sep1/fd0
Connection successful
[liuy]# [ 3762.663001] input: liuy (AVRCP) as /devices/virtual/input/input9
[NEW] Player /org/bluez/hci0/dev_A8_35_12_9A_EB_4D/player0 [default]
[liuy]# [09:54:12.292] event9 - liuy (AVRCP): is tagged by udev as: Keyboard
[09:54:12.292] event9 - liuy (AVRCP): device is a keyboard
[09:54:12.292] libinput: configuring device "liuy (AVRCP)".
[09:54:12.292] associating input device event9 with output DSI-1 (none by udev)
[liuy]#
5.7 Audio I/O
❶ Plug the headset into the Audio jack
❷ View sound card
1cat /proc/asound/cards
#Serial terminal output
root@rk3588s-buildroot:/# cat /proc/asound/cards
0 [rockchipes8388 ]: rockchip-es8388 - rockchip-es8388
rockchip-es8388
1 [rockchipspdiftx]: simple-card - rockchip,spdif-tx0
rockchip,spdif-tx0
2 [rockchipdp0 ]: rockchip_dp0 - rockchip,dp0
rockchip,dp0
3 [rockchiphdmi0 ]: rockchip-hdmi0 - rockchip-hdmi0
rockchip-hdmi0
❸ Record
1arecord -Dhw:0,0 -f cd record.wav //-Dhw:0,0 is card0 and device0
❹ Playback
1aplay -Dhw:0,0 record.wav //Adudio output via headset
#Audio output instructions
aplay -Dhw:0,0 record.wav //output via Headset
aplay -Dhw:2,0 record.wav //output via Type-C display
aplay -Dhw:3,0 record.wav //output via HDMI
5.8 4G & GPS
5.8.1 4G
❶ Insert 4G module to mPCIe socket (4G model: EC20).
❷ Connect antenna and insert SIM card.
❸ Power on.
❹ Execute commands to connect 4G network.
1mkdir -p var/run/pppd/lock
2pppd call quectel-ppp & //Initiate the PPP connection
#Serial terminal output
root@rk3588s-buildroot:/# pppd call quectel-ppp &
[1] 1251
root@rk3588s-buildroot:/# pppd options in effect:
debug # (from /etc/ppp/peers/quectel-ppp)
nodetach # (from /etc/ppp/peers/quectel-ppp)
dump # (from /etc/ppp/peers/quectel-ppp)
noauth # (from /etc/ppp/peers/quectel-ppp)
user test # (from /etc/ppp/peers/quectel-ppp)
password ?????? # (from /etc/ppp/peers/quectel-ppp)
remotename 3gppp # (from /etc/ppp/peers/quectel-ppp)
/dev/ttyUSB3 # (from /etc/ppp/peers/quectel-ppp)
115200 # (from /etc/ppp/peers/quectel-ppp)
lock # (from /etc/ppp/peers/quectel-ppp)
connect chat -s -v -f /etc/ppp/peers/quectel-chat-connect # (from /etc/ppp/peers/quectel-ppp)
disconnect chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect # (from /etc/ppp/peers/quectel-ppp)
nocrtscts # (from /etc/ppp/peers/quectel-ppp)
modem # (from /etc/ppp/peers/quectel-ppp)
hide-password # (from /etc/ppp/peers/quectel-ppp)
novj # (from /etc/ppp/peers/quectel-ppp)
novjccomp # (from /etc/ppp/peers/quectel-ppp)
ipcp-accept-local # (from /etc/ppp/peers/quectel-ppp)
ipcp-accept-remote # (from /etc/ppp/peers/quectel-ppp)
ipparam 3gppp # (from /etc/ppp/peers/quectel-ppp)
noipdefault # (from /etc/ppp/peers/quectel-ppp)
ipcp-max-failure 30 # (from /etc/ppp/peers/quectel-ppp)
defaultroute # (from /etc/ppp/peers/quectel-ppp)
usepeerdns # (from /etc/ppp/peers/quectel-ppp)
noccp # (from /etc/ppp/peers/quectel-ppp)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
AT^M^M
OK
-- got it
send (ATE0^M)
expect (OK)
^M
ATE0^M^M
OK
-- got it
send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel^M
EC25^M
Revision: EC25EUXGAR08A17M1G^M
^M
SubEdition: V01^M
^M
+CSQ: 29,99^M
^M
+CPIN: READY^M
^M
+COPS: 0,0,"Suning\00",7^M
^M
+CGREG: 0,1^M
^M
OK
-- got it
send (AT+CGDCONT=1,"IP","3gnet",,0,0^M)
expect (OK)
^M
^M
OK
-- got it
send (ATD*99#^M)
expect (CONNECT)
^M
^M
CONNECT
-- got it
Script chat -s -v -f /etc/ppp/peers/quectel-chat-connect finished (pid 1252), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
[ 33.251065] vcc3v3_lcd0_n: disabling
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x48fac697> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xd0e8f901> <pcomp> <accomp>]
sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xd0e8f901> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x48fac697> <pcomp> <accomp>]
rcvd [LCP DiscReq id=0x1 magic=0xd0e8f901]
rcvd [CHAP Challenge id=0x1 <be01c6b58be7f76108de235a666b87b1>, name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 <f56b5be22e595e9a7654ed95b297326b>, name = "test"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPV6CP ConfReq id=0x1 <addr fe80::70a4:49ab:e234:75c9>]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.67.179.95> <ms-dns1 120.80.80.80> <ms-dns2 221.5.88.88>]
sent [IPCP ConfReq id=0x2 <addr 10.67.179.95> <ms-dns1 120.80.80.80> <ms-dns2 221.5.88.88>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x2 <addr 10.67.179.95> <ms-dns1 120.80.80.80> <ms-dns2 221.5.88.88>]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 10.67.179.95
remote IP address 10.64.64.64
primary DNS address 120.80.80.80
secondary DNS address 221.5.88.88
sent [IPV6CP ConfReq id=0x1 <addr fe80::70a4:49ab:e234:75c9>]
❺ Test network.
1ifconfig //Check network status
2ping -I ppp0 www.armdesigner.com
5.8.2 GPS
❶ Plug the EC20 module to mPCIe socket.
❷ Connect GPS antenna.
❸ Power on.
❹ Execute commands to test GPS.
1echo -e "AT+QGPS=1\r\n" > /dev/ttyUSB2
2cat /dev/ttyUSB1
#Serial terminal output
root@rk3588s-buildroot:/# echo -e "AT+QGPS=1\r\n" > /dev/ttyUSB2
root@rk3588s-buildroot:/# cat /dev/ttyUSB1
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
$GPRMC,,V,,,,,,,,,,N,V*29
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGGA,,,,,,0,,,,,,,,*66
5.9 SD Card
Insert the SD card into the development board, and it will be automatically mounted..
1df -h //View the device mount path
#Serial terminal output
root@rk3588s-buildroot:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 14G 701M 13G 6% /
devtmpfs 3.9G 8.0K 3.9G 1% /dev
tmpfs 3.9G 140K 3.9G 1% /tmp
tmpfs 3.9G 568K 3.9G 1% /run
tmpfs 3.9G 216K 3.9G 1% /var/log
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/mmcblk0p7 123M 12M 108M 10% /oem
/dev/mmcblk0p8 15G 464K 15G 1% /userdata
/dev/sda1 58G 47G 12G 81% /mnt/udisk
/dev/sdb2 448M 327M 121M 74% /media/udisk1
/dev/sdb1 28G 143M 28G 1% /media/udisk2
/dev/mmcblk1p1 30G 3.1G 27G 11% /mnt/sdcard
5.10 RS485
❶ Connect PC and board with USB-to-RS485 adapter.
❷ Open the Serial Terminal and set baud rate for the board and RS485 adapter respectively.
Baud rate: board - 1500000; RS485 adapter - 115200
❸ Execute command on the terminal serial port of board.
1com /dev/ttyS8 115200 8 0 1
❹ Input character to test RS485 communication.
5.11 CAN
❶ Connect PC and board with USB-to-CAN adapter.
❷ Open the CAN application and set the baudrate to 500000 on PC.
❸ Execute commands on Serial Terminal to configure CAN.
1ip link set can0 down
2ip link set can0 type can bitrate 500000
3ip link set can0 up
❹ Configure CAN as receiver.
1candump can0
❺ set CAN as Transmitter.
1cansend can0 123#DEADBEEF
5.12 UART
❶ Connect RX and TX of UART.
❷ Execute command and input character to test
1com /dev/ttyS0 115200 8 0 1 //UART0
#Serial terminal output
root@linaro-alip:/# com /dev/ttyS0 115200 8 0 1
port = /dev/ttyS0
baudrate = 115200
cs = 8
parity = 0
stopb = 1
555555555555555
RECV: 555555555555555
ooooooooo
RECV: ooooooooo
Tests for UART1 and UART2 are similar to UART0.
com /dev/ttyS7 115200 8 0 1 //UART1
com /dev/ttyS4 115200 8 0 1 //UART2
5.13 IR
❶ Turn on IR debugging log.
1echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print
❷ Press the Infrared controller, you can view the received datas on the terminal.
#Serial terminal output
/code_prints-buildroot:/# echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/
root@rk3588s-buildroot:/#
[ 3281.083515] USERCODE=0xfe01
[ 3281.110596] RMC_GETDATA=b9
[ 3282.706699] USERCODE=0xfe01
[ 3282.733781] RMC_GETDATA=ea
[ 3284.132270] USERCODE=0xfe01
[ 3284.159348] RMC_GETDATA=b8
[ 3284.901483] USERCODE=0xfe01
[ 3284.928566] RMC_GETDATA=e9
[ 3286.041610] USERCODE=0xfe01
[ 3286.068714] RMC_GETDATA=bf
[ 3289.001204] USERCODE=0xfe01
[ 3289.028287] RMC_GETDATA=ef
[ 3291.313516] USERCODE=0xfe01
[ 3291.340599] RMC_GETDATA=eb
5.14 RTC
❶ Insert a CR1220 battery before test. It keeps the time running when the main power is off.
❷ Set date and time manually.
1date "2024-11-07 19:56:00" //set system date
2hwclock -w //set the hardware clock to current system time
3hwclock //display date and time
#Serial terminal output
root@rk3588s-buildroot:/# date -s "2024-11-07 19:56:00"
Thu Nov 7 19:56:00 UTC 2024
root@rk3588s-buildroot:/# hwclock -w
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 19:56:10 2024 0.000000 seconds
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 19:57:52 2024 0.000000 seconds
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 19:58:29 2024 0.000000 seconds
❸ Power off. Wait for a moment, power on again, and then execute the command hwclock
, you will find that the time is saved.
#Serial terminal output
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 20:09:08 2024 0.000000 seconds
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 20:10:49 2024 0.000000 seconds
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 20:12:07 2024 0.000000 seconds
root@rk3588s-buildroot:/# hwclock
Thu Nov 7 20:13:14 2024 0.000000 seconds
5.15 FAN
Connect FAN (12V, 2-pin/2.0mm pitch connector) to the board. Boardcon firmware has preset that the fan works when the CPU temperature exceeds 45° C.
5.16 Camera
❶ Connect the camera module (DC-IM415-1214V1) to the development board before power on. Idea3588S Camera0 and Camera1 share the signal I2C2, Boardcon firmware default camera0 is enabled.
❷ View the device channel
1grep "" /sys/class/video4linux/v*/name | grep mainpath
2grep "" /sys/class/video4linux/v*/name | grep selfpath
#Serial terminal output
root@rk3588s-buildroot:/# grep "" /sys/class/video4linux/v*/name | grep mainpath
/sys/class/video4linux/video11/name:rkisp_mainpath4linux/v*/name | grep mainpath
root@rk3588s-buildroot:/# grep "" /sys/class/video4linux/v*/name | grep selfpath
/sys/class/video4linux/video12/name:rkisp_selfpath4linux/v*/name | grep selfpath
❸ Preview/ record video/ take photos
1gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=1920,height=1080, framerate=30/1 ! waylandsink //Preview
2gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=100 ! video/x-raw,format=NV12,width=1920,height=1088,framerate=30/1 ! videoconvert ! mpph264enc ! h264parse ! mp4mux ! filesink location=/tmp/h264.mp4 //Record
3gst-launch-1.0 -v v4l2src device=/dev/video11 num-buffers=10 ! video/x-raw,format=NV12,width=1280,height=800 ! mppjpegenc ! multifilesink location=/tmp/test%05d.jpg //take photos
5.17 Video Playback
5.17.1 Built-in playback
The script instruction directory is in /rockchip-test/video/
, just run it.
#Serial terminal output
root@rk3588s-buildroot:/# ls /rockchip-test/video/
test_gst_multivideo.sh test_gst_video_fps.sh video_stresstest.sh
test_gst_video.sh test_gst_video_maxfps.sh video_test.sh
root@rk3588s-buildroot:/# cd /rockchip-test/video/
root@rk3588s-buildroot:/rockchip-test/video# ls
test_gst_multivideo.sh test_gst_video_fps.sh video_stresstest.sh
test_gst_video.sh test_gst_video_maxfps.sh video_test.sh
root@rk3588s-buildroot:/rockchip-test/video# ./test_gst_video.sh
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
mpp[1392]: mpp_info: mpp version: d4d20417 author: ctf 2024-06-20 chore[cmake]: compile both dynamic and static libraries
mpp[1392]: mpp_platform: client 12 driver is not ready!
mpp[1392]: mpp_info: mpp version: d4d20417 author: ctf 2024-06-20 chore[cmake]: compile both dynamic and static libraries
mpp[1392]: mpp_info: mpp version: d4d20417 author: ctf 2024-06-20 chore[cmake]: compile both dynamic and static libraries
mpp[1392]: mpp_info: mpp version: d4d20417 author: ctf 2024-06-20 chore[cmake]: compile both dynamic and static libraries
mpp[1392]: mpp_info: mpp version: d4d20417 author: ctf 2024-06-20 chore[cmake]: compile both dynamic and static libraries
Redistribute latency...
mpp[1392]: h264d_api: is_avcC=1
Pipeline is PREROLLED ...
Prerolled, waiting for async message to finish...
Setting pipeline to PLAYING ...
Redistribute latency...
New clock: GstSystemClock
0:00:13.5 / 0:00:29.5 (45.9 %)
5.17.2 Browser playback
1 chromium /mnt/udisk/video/4KP60/4KP60-exist.mp4
Command explanation:
chromium
Launches the Chromium browser.
/mnt/udisk/video/4KP60/4KP60-exist.mp4
The media file path to be played.
5.17.3 Command line
1gst-play-1.0 --videosink="waylandsink fullscreen=true" /mnt/udisk/video/8KP30/H265_8KP30-2.mp4 --audiosink="alsasink device=hw:0,0"
Command explanation:
/mnt/udisk/video/8KP30/H265_8KP30-2.mp4
the media file path to be played.
--audiosink="alsasink device=hw:0,0"
specifies the audio output device as hw:0,0