4. Linux Application

4.1 Serial Terminal

Debug

Connect the board and PC with USB Serial cable, then power on, the terminal will output boot information. The default baudrate is 115200.

Terminal_UI

Serial Terminal

4.2 Display

Display IO

IdeaT527 provides HDMI and 2x dual-LVDS output interfaces.

The IdeaT527 with Linux 5.15 natively supports dual LVDS displays (1280x800), with Dual-LVDS 0&1 configured as the primary displays in independent display mode.

Linux_Display

Dual-screen display sync

4.3 USB

USB

IdeaT527 provides 2x USB2.0 connector.

4.3.1 USB2.0 Host

After connecting the USB flash drive, it will be automatically mounted. Execute the command to view the path where the device is mounted:

1df -h
Serial terminal output
# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 1.9G    546.7M      1.4G  28% /
tmpfs                   953.4M    456.0K    952.9M   0% /tmp
tmpfs                   953.4M    336.0K    953.1M   0% /run
devtmpfs                920.5M         0    920.5M   0% /dev
/dev/mmcblk1p1           30.0G    608.0K     30.0G   0% /mnt/sdcard/mmcblk1p1
/dev/sda1                58.0G     46.6G     11.4G  80% /mnt/usb/sda1
cgroup                  953.4M         0    953.4M   0% /sys/fs/cgroup
/dev/root                 1.9G    546.7M      1.4G  28% /var/lib/docker
/dev/sdb1                30.0G     27.9G      2.1G  93% /mnt/usb/sdb

4.3.2 USB2.0 OTG

USB

USB OTG

USB0(up) is OTG-compatible and is configured as Host mode by default.

1echo usb_device > /sys/devices/platform/soc@3000000/10.usbc0/otg_role  //switch to Device mode
Serial terminal output
 # echo usb_device > /sys/devices/platform/soc@3000000/10.usbc0/otg_role
 [ 4086.462423] sunxi:sunxi_usbc:[INFO]: rmmod_host_driver
 [ 4086.462423]
 [ 4086.469865] sunxi:ehci_sunxi:[INFO]: [ehci0-controller]: sunxi_usb_disable_ehci
 [ 4086.478066] sunxi:ehci_sunxi:[INFO]: [sunxi-ehci0]: remove, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xffffffc0095477c8
 [ 4086.491063] sunxi-ehci 4101000.ehci0-controller: remove, state 4
 [ 4086.497808] usb usb5: USB disconnect, device number 1
 [ 4086.504639] sunxi-ehci 4101000.ehci0-controller: USB bus 5 deregistered
 [ 4086.512749] sunxi:ohci_sunxi:[INFO]: [ohci0-controller]: sunxi_usb_disable_ohci
 [ 4086.520969] sunxi:ohci_sunxi:[INFO]: [sunxi-ohci0]: remove, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffc009548410
 [ 4086.533949] sunxi-ohci 4101400.ohci0-controller: remove, state 4
 [ 4086.540696] usb usb6: USB disconnect, device number 1
 [ 4086.547546] sunxi-ohci 4101400.ohci0-controller: USB bus 6 deregistered
 [ 4086.555898] sunxi:sunxi_usbc:[INFO]: insmod_device_driver
1echo usb_host > /sys/devices/platform/soc@3000000/10.usbc0/otg_role  //switch to Host mode
Serial terminal output
# echo usb_host > /sys/devices/platform/soc@3000000/10.usbc0/otg_role
[ 4139.590456] sunxi:sunxi_usbc:[INFO]: rmmod_device_driver
[ 4139.590456]
[ 4139.598389] sunxi:sunxi_usbc:[INFO]: insmod_host_driver
[ 4139.598389]
[ 4139.605912] sunxi:ehci_sunxi:[INFO]: [ehci0-controller]: sunxi_usb_enable_ehci
[ 4139.614005] sunxi:ehci_sunxi:[INFO]: [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xffffffc0095477c8, 0x:ffffffc0099fd000, irq_no:86
[ 4139.630339] sunxi-ehci 4101000.ehci0-controller: supply hci not found, using dummy regulator
[ 4139.640020] sunxi-ehci 4101000.ehci0-controller: supply vbusin not found, using dummy regulator
[ 4139.651041] sunxi-ehci 4101000.ehci0-controller: EHCI Host Controller
[ 4139.658299] sunxi-ehci 4101000.ehci0-controller: new USB bus registered, assigned bus number 5
[ 4139.668114] sunxi-ehci 4101000.ehci0-controller: irq 134, io mem 0x04101000
[ 4139.690244] sunxi-ehci 4101000.ehci0-controller: USB 2.0 started, EHCI 1.00
[ 4139.698285] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[ 4139.707563] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4139.715664] usb usb5: Product: EHCI Host Controller
[ 4139.721134] usb usb5: Manufacturer: Linux 5.15.147 ehci_hcd
[ 4139.727380] usb usb5: SerialNumber: sunxi-ehci
[ 4139.733098] hub 5-0:1.0: USB hub found

4.4 Ethernet

Ethernet

Connect the board and router with an Ethernet cable.

According to the log, it can be seen that the Gigabit Ethernet recognition is successful.

Serial terminal output
# [ 4241.038554] sunxi-gmac 4500000.gmac0 eth0: Link is Up - 1Gbps/Full - flow control off
[ 4241.047361] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Ping URL/IP to test Network.

1ifconfig
2ping -I eth0 www.armdesigner.com
Serial terminal output
# ifconfig
eth0      Link encap:Ethernet  HWaddr 6A:2A:28:86:2A:12
          inet addr:192.168.0.106  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::6ab8:418f:cfdb:dc66/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:549 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:82125 (80.2 KiB)  TX bytes:1620 (1.5 KiB)
          Interrupt:171
# ping -I eth0 www.armdesigner.com
PING www.armdesigner.com (67.222.54.196): 56 data bytes
64 bytes from 67.222.54.196: seq=0 ttl=48 time=187.456 ms
64 bytes from 67.222.54.196: seq=1 ttl=48 time=187.735 ms
64 bytes from 67.222.54.196: seq=2 ttl=48 time=190.865 ms
64 bytes from 67.222.54.196: seq=3 ttl=48 time=190.774 ms
64 bytes from 67.222.54.196: seq=4 ttl=48 time=191.164 ms
64 bytes from 67.222.54.196: seq=5 ttl=48 time=187.776 ms
64 bytes from 67.222.54.196: seq=6 ttl=48 time=192.036 ms
64 bytes from 67.222.54.196: seq=7 ttl=48 time=190.969 ms
64 bytes from 67.222.54.196: seq=8 ttl=48 time=190.623 ms
^C
--- www.armdesigner.com ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 187.456/189.933/192.036 ms

4.5 4G & GPS

4G+GPS

4.5.1 4G

❶ Insert 4G module to mPCIe socket (4G model: EC20).

❷ Connect antenna and insert SIM card.

❸ Power on.

❹ Initiate the PPP connection.

1pppd call quectel-ppp &
Serial terminal output
# pppd call quectel-ppp &
[1] 809
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)
^M
OK
 -- got it

send (ATE0^M)
expect (OK)
^M
^M
OK
 -- got it

❺ Test 4G Network.

1ifconfig
2ping -I ppp0 www.armdesigner.com

4.5.2 GPS

❶ Insert 4G module to mPCIe socket.

❷ Connect GPS antenna.

❸ Power on.

❹ Enable GPS functionality.

1echo -e "AT+QGPS=1\r\n" > /dev/ttyUSB2

❺ Read GPS data

1cat /dev/ttyUSB1
Serial terminal output
# echo -e "AT+QGPS=1\r\n" > /dev/ttyUSB2
# 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

$GPRMC,,V,,,,,,,,,,N,V*29

4.6 SD Card

SD

After inserting the SD card into the slot, the system will automatically mount it.

1df -h
Serial terminal output
# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 1.9G    546.7M      1.4G  28% /
tmpfs                   953.4M    400.0K    953.0M   0% /tmp
tmpfs                   953.4M    384.0K    953.0M   0% /run
devtmpfs                920.5M         0    920.5M   0% /dev
/dev/mmcblk1p1           30.0G    608.0K     30.0G   0% /mnt/sdcard/mmcblk1p1
/dev/sda1                58.0G     46.6G     11.4G  80% /mnt/usb/sda1
cgroup                  953.4M         0    953.4M   0% /sys/fs/cgroup
/dev/root                 1.9G    546.7M      1.4G  28% /var/lib/docker

4.7 Audio I/O

Audio I/O

Audio I/O

  • Audio input: microphone, headset.

  • Audio output: Speakers(Left & right channel), headset.

The default factory setting of Boardcon’s Linux 5.15 firmware is MIC input and speaker output.

4.7.1 Headset

Headset

❶ Plug the Microphone into the 3.5mm Audio jack.

❷ Switch to headset input.

1switch_audio.sh hd_in

❸ Start recording.

1arecord -d 10 -r 48000 -f S16_LE test.wav

❹ Switch to headset output.

1switch_audio.sh hd_out

❺ Play.

1aplay test.wav

4.7.2 MIC

MIC

❶ Connect the MIC to the connector (2-pin/2.0mm pitch).

❷ Switch to MIC input if it was previously set to headset input.

1switch_audio.sh mic

❸ Start recording.

1arecord -d 10 -r 48000 -f S16_LE test.wav

4.7.3 Speaker

MIC

❶ Connect the Speaker to the connector (2-pin/2.0mm pitch).

❷ Switch to Speaker output if it was previously set to headset output.

1switch_audio.sh spk

❸ Play.

1aplay test.wav

4.8 WiFi & Bluetooth

WiFi&BT

WiFi&BT module

4.8.1 WiFi

❶ Connect the WiFi antenna.

❷ View the device information.

1ifconfig
Serial terminal output
# ifconfig
wlan0     Link encap:Ethernet  HWaddr CC:64:1A:B6:C3:1B
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan1     Link encap:Ethernet  HWaddr CE:64:1A:B6:C3:1B
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

❸ Scan for available WiFi hotspots.

1iw wlan0 scan
Serial terminal output
# iw wlan0 scan
BSS b4:f1:8c:6d:d1:24(on wlan0)
        TSF: 1833943679 usec (0d, 00:30:33)
        freq: 2462
        beacon interval: 100 TUs
        capability: ESS Privacy ShortPreamble ShortSlotTime RadioMeasure (0x1431)
        signal: -33.00 dBm
        last seen: 8 ms ago
        Information elements from Probe Response frame:
        SSID: user-SSID
        Supported rates: 1.0* 2.0* 5.5* 6.0 9.0 11.0* 12.0 18.0
        DS Parameter set: channel 11
        TPC report: TX power: 30 dBm
        RM enabled capabilities:
                Capabilities: 0x73 0x02 0x00 0x00 0x00
                        Link Measurement
                        Neighbor Report
                        Beacon Passive Measurement
                        Beacon Active Measurement
                        Beacon Table Measurement
                        Channel Load
                Nonoperating Channel Max Measurement Duration: 0
                Measurement Pilot Capability: 0
        ERP: NonERP_Present Use_Protection

❹ Connect to the hotspot.

1wifi-connect.sh SSID PSK     //input your SSID and password
Serial terminal output
# wifi-connect.sh user-SSID user-password
connect to WiFi ssid: user-SSID, Passwd: user-password
killall: wpa_supplicant: no process killed
Successfully initialized wpa_supplicant

❺ Test the WiFi network.

1ifconfig
2ping -I wlan0 www.armdesigner.com
Serial terminal output
# ifconfig
wlan0     Link encap:Ethernet  HWaddr CC:64:1A:B6:C3:1B
          inet addr:192.168.0.202  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::2f3b:744:747a:7c35/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:210 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:38518 (37.6 KiB)  TX bytes:3398 (3.3 KiB)

wlan1     Link encap:Ethernet  HWaddr CE:64:1A:B6:C3:1B
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
# ping -I wlan0 www.armdesigner.com
64 bytes from 67.222.54.196: seq=0 ttl=48 time=265.665 ms
64 bytes from 67.222.54.196: seq=1 ttl=48 time=197.480 ms
64 bytes from 67.222.54.196: seq=2 ttl=48 time=209.364 ms
64 bytes from 67.222.54.196: seq=3 ttl=48 time=193.245 ms
64 bytes from 67.222.54.196: seq=4 ttl=48 time=197.134 ms
64 bytes from 67.222.54.196: seq=5 ttl=48 time=197.025 ms
64 bytes from 67.222.54.196: seq=6 ttl=48 time=196.932 ms
64 bytes from 67.222.54.196: seq=7 ttl=48 time=212.783 ms
64 bytes from 67.222.54.196: seq=8 ttl=48 time=195.412 ms
64 bytes from 67.222.54.196: seq=9 ttl=48 time=208.516 ms
^C
--- www.armdesigner.com ping statistics ---
11 packets transmitted, 10 packets received, 9% packet loss
round-trip min/avg/max = 193.245/207.355/265.665 ms

4.8.2 Bluetooth

The audio output channel is disabled by default. When the device is used as a Bluetooth speaker, the audio output channel needs to be manually enabled.

1amixer -c 0 cset name='SPK Switch' 1
2amixer -c 0 cset name='LINEOUTL Switch' 1
3amixer -c 0 cset name='LINEOUTR Switch' 1

❶ Enable Bluetooth.

1bt-init.sh
Serial terminal output
# bt-init.sh
[   73.957054] sunxi-rfkill soc@3000000:rfkill: block state already is 1
[   74.469051] sunxi-rfkill soc@3000000:rfkill: set block: 0
[   74.487231] sunxi-rfkill soc@3000000:rfkill: bt power on success
Realtek Bluetooth :Realtek Bluetooth init uart with init speed:115200, type:HCI UART H5
Realtek Bluetooth :Realtek hciattach version 3.1.089fdb9.20220818-105858
 …

❷ View the Bluetooth device status.

1hciconfig -a
Serial terminal output
# hciconfig -a
hci0:   Type: Primary  Bus: UART
        BD Address: CC:64:1A:B6:C3:1C  ACL MTU: 1021:8  SCO MTU: 255:12
        UP RUNNING PSCAN ISCAN
        RX bytes:1295 acl:0 sco:0 events:47 errors:0
        TX bytes:2857 acl:0 sco:0 commands:47 errors:0
        Features: 0xff 0xff 0xff 0xfa 0xdb 0xbf 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: 'BlueZ 5.54'
        Class: 0x0c0400
        Service Classes: Rendering, Capturing
        Device Class: Audio/Video, Uncategorized
        HCI Version: 4.1 (0x7)  Revision: 0xbab7
        LMP Version: 4.1 (0x7)  Subversion: 0x6f72
        Manufacturer: Realtek Semiconductor Corporation (93)

❸ Allow Bluetooth to be pairable.

1bluetoothctl
Serial terminal output
# bluetoothctl
[bluetooth]# bluetoothd[684]: src/agent.c:add_default_agent() Default agent set to :1.3 /org/bluez/agent
bluetoothd[684]: src/adapter.c:set_mode() sending set mode command for index 0
bluetoothd[684]: src/agent.c:agent_ref() 0x559112d4e0: ref=1
bluetoothd[684]: src/agent.c:register_agent() agent :1.3
bluetoothd[684]: src/adapter.c:new_settings_callback() Settings: 0x00000adb
bluetoothd[684]: src/adapter.c:settings_changed() Changed settings: 0x00000010
bluetoothd[684]: src/adapter.c:settings_changed() Pending settings: 0x00000000
Agent registered
[CHG] Controller CC:64:1A:B6:C3:1C Pairable: yes
[bluetooth]#

❹ Search for Bluetooth devices.

After scanning for devices, turn off the scan, otherwise, the device will continue to search and refresh.

1scan on          //Enable scanning
2scan off         //Disable scanning
3devices          //List devices
Serial terminal output
[bluetooth]# scan on
 …
[bluetooth]# scan off
 …
[bluetooth]# devices
Device 5F:51:0C:47:90:94 5F-51-0C-47-90-94
Device E2:73:E7:E5:99:79 E2-73-E7-E5-99-79
Device 16:89:5A:4F:FE:E7 16-89-5A-4F-FE-E7
Device 43:59:74:D9:80:54 43-59-74-D9-80-54
Device 42:39:86:47:E4:96 42-39-86-47-E4-96
Device 6C:0D:C4:24:3D:12 6C-0D-C4-24-3D-12
Device 53:CA:DD:5A:23:57 53-CA-DD-5A-23-57
Device C1:14:88:1E:63:B5 Mi Smart Band 6
Device 10:0E:A1:1C:13:A8 10-0E-A1-1C-13-A8
Device A8:35:12:9A:EB:4D liuy
Device 24:E9:CA:D7:AF:49 HUAWEI FreeBuds Pro 2
Device 88:68:4B:74:39:44 OPPO K10 5G

❺ Pair the device A8:35:12:9A:EB:4D for example.

1pair A8:35:12:9A:EB:4D
Serial terminal output
[bluetooth]# pair A8:35:12:9A:EB:4D
Attempting to pair with A8:35:12:9A:EB:4D
bluetoothd[684]: src/device.c:btd_device_set_temporary() temporary 0
bluetoothd[684]: src/agent.c:agent_ref() 0x559112d4e0: ref=2
bluetoothd[684]: src/device.c:bonding_request_new() Requesting bonding for A8:35:12:9A:EB:4D
bluetoothd[684]: src/agent.c:agent_ref() 0x559112d4e0: ref=3
bluetoothd[684]: src/agent.c:agent_unref() 0x559112d4e0: ref=2
bluetoothd[684]: src/adapter.c:suspend_discovery()
bluetoothd[684]: src/adapter.c:adapter_bonding_attempt() hci0 bdaddr A8:35:12:9A:EB:4D type 0 io_cap 0x04
bluetoothd[684]: src/adapter.c:add_whitelist_complete() A8:35:12:9A:EB:4D added to kernel whitelist
[bluetooth]# bluetoothd[684]: src/adapter.c:connected_callback() hci0 device A8:35:12:9A:EB:4D connected eir_len 11
[CHG] Device A8:35:12:9A:EB:4D Connected: yes
[liuy]# bluetoothd[684]: src/adapter.c:user_confirm_request_callback() hci0 A8:35:12:9A:EB:4D confirm_hint 0
bluetoothd[684]: src/device.c:new_auth() Requesting agent authentication for A8:35:12:9A:EB:4D
bluetoothd[684]: src/agent.c:agent_ref() 0x559112d4e0: ref=3
bluetoothd[684]: src/agent.c:agent_request_confirmation() Calling Agent.RequestConfirmation: name=:1.3, path=/org/bluez/agent, passkey=658812
Request confirmation
[agent] Confirm passkey 658812 (yes/no): yes
[liuy]# bluetoothd[684]: src/agent.c:agent_ref() 0x559112d4e0: ref=4

❻ Connect the device.

1connect A8:35:12:9A:EB:4D
Serial terminal output
[bluetooth]# connect A8:35:12:9A:EB:4D
Attempting to connect to A8:35:12:9A:EB:4D
bluetoothd[684]: src/device.c:connect_profiles() /org/bluez/hci0/dev_A8_35_12_9A_EB_4D (all), client :1.3
bluetoothd[684]: profiles/audio/a2dp.c:a2dp_source_connect() path /org/bluez/hci0/dev_A8_35_12_9A_EB_4D
bluetoothd[684]: profiles/audio/avdtp.c:avdtp_ref() 0x5591141ca0: ref=1
bluetoothd[684]: profiles/audio/avdtp.c:avdtp_ref() 0x5591141ca0: ref=2
bluetoothd[684]: profiles/audio/a2dp.c:setup_ref() 0x5591148f40: ref=1
bluetoothd[684]: profiles/audio/source.c:source_set_state() State changed /org/bluez/hci0/dev_A8_35_12_9A_EB_4D: SOURCE_STATE_DISCONNECTED -> SOURCE_STATE_CONNECTING
bluetoothd[684]: profiles/audio/source.c:source_connect() stream creation in progress
bluetoothd[684]: src/service.c:change_state() 0x5591136be0: device A8:35:12:9A:EB:4D profile a2dp-source state changed: disconnected -> connecting (0)
[bluetooth]# bluetoothd[684]: src/adapter.c:connected_callback() hci0 device A8:35:12:9A:EB:4D connected eir_len 11
[CHG] Device A8:35:12:9A:EB:4D Connected: yes

4.9 IR

IR

Execute the command to retrieve the data reported by the IR module:

1hexdump /dev/input/event1

4.10 Camera

_images/4xAHD%2Bcamera.jpg

❶ Connect the camera to the development board.

❷ Capture YUV images, e.g., video0

1mkdir /tmp/csi_test
2csi_test_usrptr 0 0 1920 1080 /tmp/csi_test/ 4 2 25
Serial terminal output
# csi_test_usrptr 0 0 1920 1080 /tmp/csi_test/ 4 2 25
csi_test_usrptr version:V2.1.202[ 1107.379361] sunxi:VE:[INFO]: 912 enable_cedar_hw_clk():
20922
01-04 15:11:05.795 suxiMe[ 1107.389094] sunxi:vin:[INFO]: camera is on, close dfs
mInterface(D) : sdk_memory version:V2.1.20220906
WARNING: cedarc <getSocInfo:1253>: open plugin 'utils.so' failure. dlopen err:utils.so: cannot open shared object file: No such file or directory.

INFO   : cedarc <VeInitialize:1549>: *** ic_version = 0x3321000012011,
01-04 15:11:05.805 hwdisplay2(D) : libsdk_disp v1.version:V2.1.20221031
01-04 15:11:05.805 hwdisplay2(E) : Failed to open disp device, ret:-1, [ 1107.431648] sunxi:vin:[INFO]: [tp2815_mipi]reg 0xff = 0x55 --N
errno:2
open /dev/video0 fd = 5[ 1107.439167] sunxi:vin:[INFO]: [tp2815_mipi]reg 0xfe = 0x28 --N

fmt.fmt.pix_mp.pixelformat=825382478
resolution got from sensor = 1920*1080 num_planes = 1
VID[ 1107.454488] sunxi:vin:[INFO]: [tp2815_mipi]sensor_s_stream on = 1, 1920*1080 2006
[ 1107.465286] sunxi:vin:[INFO]: [tp2815_mipi]tp2815_hardware_init.
IOC_QUERYBUF buf.m.planes[j].len[ 1107.472299] sunxi:vin:[INFO]: [tp2815_mipi]tp2815_decoder_init
gth=3133440
VIDIOC_QUERYBUF buf.m.planes[j].length=3133440
VIDIOC_QUERYBUF buf.m.planes[j].len[ 1107.488223] sunxi:vin:[INFO]: [tp2815_mipi]tp2815_decoder_init
gth=3133440
[ 1107.501361] sunxi:vin:[INFO]: [tp2815_mipi]tp2815_decoder_init
[ 1107.512887] sunxi:vin:[INFO]: [tp2815_mipi]tp2815_decoder_init
[ 1107.526349] sunxi:vin:[INFO]: [tp2815_mipi]tp2815_mipi_out
VIDIOC_STREAMON ok
file length = 3133440 0 0
file start = 0x7f9d6be000 (nil) (nil)
[ 1107.674262] sunxi:vin:[INFO]: [tp2815_mipi]sensor_s_stream on = 0, 1920*1080 2006
VIDIOC_STREAMOFF ok
[ 1107.684893] sunxi:VE:[INFO]: 954 disable_cedar_hw_clk():
INFO   : cedarc <VeRelease:1740>[ 1107.693111] sunxi:vin:[INFO]: camera is off, open dfs
: not malloc locks

mode 4 test done at the 0 time!!
time cost 0.311202(s)
01-04 15:11:06.116 hwdisplay2(E) : aut_hwd_layer_close fail to set layer config

Command: csi_test_usrptr <videoX> <sel> <width> <height> <path> <format_mode> <test_cnt> <fps>

Parameter description

Parameter

Description

videoX

open /dev/videoX

sel

select subdev-X

width

camera capture pic width

height

camera capture pic height

path

camera capture save file path, default /tmp/tvd_test/

format_mode

capture pic format, default 4(NV21)

test_cnt

camera capture pic count, default 20

fps

camera capture fps, default 30

To capture images of video4, video8, or video12, please modify the value of videoX.

# video4
csi_test_usrptr 4 0 1920 1080 /tmp/csi_test/ 4 2 25

# video8
csi_test_usrptr 8 0 1920 1080 /tmp/csi_test/ 4 2 25

# video12
csi_test_usrptr 12 0 1920 1080 /tmp/csi_test/ 4 2 25

4.11 RS485

RS485 connect

❶ Connect PC and board with USB-to-RS485 adapter.

CAN connection

RS485 connection

❷ Open the Serial Terminal of board and RS485 adapter respectively. Set the baud rate to 115200.

_images/Linux_RS485_baudrate.png

❸ Execute command on the terminal serial ports of board.

1com /dev/ttyAS3 115200 8 0 1

❹ Input character to test RS485 communication.

_images/Linux_RS485_Test.png

4.12 CAN

CAN

The device name for CAN0 is awlink0, CAN1 is awlink1.

❶ Connect PC and board with USB-to-CAN adapter.

CAN connection

CAN connection

❷ Open the CAN application and set the baudrate to 1000000 on PC.

_images/Linux_CAN_baudrate.png

❸ Test CAN0(awlink0) for example. Execute commands on Serial Terminal to configure and start the CAN network.

1ip link set awlink0 down
2ip link set awlink0 type can bitrate 1000000
3ip link set awlink0 qlen 300
4ip link set awlink0 up
_images/Linux_CAN_config.png

❹ Configure CAN as receiver.

1candump awlink0 &
_images/Linux_CAN_receiver.png

❺ Set CAN as Transmitter.

1cansend awlink0 123#1122334455667788
_images/Linux_CAN_Transmitter.png

4.13 M.2 SSD

M.2 SSD

❶ Connect SSD to the M.2 socket, then power on.

❷ The SSD will be automatically mounted. Check the mount path of the device.

1df -h
Serial terminal output
# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 1.9G    547.2M      1.4G  28% /
tmpfs                   967.3M    320.0K    966.9M   0% /tmp
tmpfs                   967.3M    328.0K    966.9M   0% /run
devtmpfs                934.4M         0    934.4M   0% /dev
/dev/nvme0n1            228.2G      7.7G    208.8G   4% /mnt/nvme/nvme0n1
/dev/mmcblk1p1           30.0G    608.0K     30.0G   0% /mnt/sdcard/mmcblk1p1
cgroup                  967.3M         0    967.3M   0% /sys/fs/cgroup
/dev/root                 1.9G    547.2M      1.4G  28% /var/lib/docker
/dev/sda1

4.14 RTC

RTC

❶ Insert a CR1220 battery before test. It keeps the time running when the main power is off.

❷ Set date and time manually.

1su
2date -s "2025-01-03 16:10:00"           //set system date
3hwclock -w                              //set the hardware clock to current system time
4hwclock                                 //display date and time
Serial terminal output
# date -s "2025-01-03 16:10:00"
Fri Jan  3 16:10:00 UTC 2025
# hwclock -w
# hwclock
Fri Jan  3 16:10:09 2025  0.000000 seconds
# hwclock
Fri Jan  3 16:10:21 2025  0.000000 seconds
# hwclock
Fri Jan  3 16:11:32 2025  0.000000 seconds

❸ Power off. After a period of time to turn on the power again, check whether the time is saved.

Serial terminal output
# hwclock
Fri Jan  3 16:31:04 2025  0.000000 seconds
# hwclock
Fri Jan  3 16:32:00 2025  0.000000 seconds
# hwclock
Fri Jan  3 16:32:39 2025  0.000000 seconds