1. 快速开始

1.1. 准备工作

在使用旭日X3派开发板前,需要做下述准备工作:

供电
旭日X3派开发板通过USB Type C接口供电,需要使用支持5V 3A的电源适配器为开发板供电,推荐使用官方认证列表中的适配器型号。

注意,请不要使用电脑USB接口为开发板供电,否则会因供电不足造成开发板异常断电、反复重启等异常情况。

存储
旭日X3派开发板采用Micro SD存储卡作为系统启动介质,推荐至少8GB容量的存储卡,以便满足Ubuntu系统、应用功能软件对存储空间的需求。

显示
旭日X3派开发板支持HDMI显示接口,通过HDMI线缆连接开发板和显示器,支持图形化桌面显示。

网络连接
旭日X3派开发板支持有线以太网、无线WiFi两种网络接口,用户可通过任意接口实现网络连接功能。

常见问题
用户首次使用开发板时的常见问题如下:

  • 上电不开机:请确保使用支持5V/3A的适配器供电;请确保开发板使用烧录过Ubuntu镜像的Micro SD存储卡

  • USB Host接口无反应:请确保开发板Micro USB接口没有接入数据线

  • 使用中热插拔存储卡:开发板不支持热插拔Micro SD存储卡,如发生误操作请重启开发板

更多问题的处理,可以查阅 FAQ 章节,同时可以访问 地平线开发者官方论坛 获得帮助。

1.2. 安装系统

旭日X3派开发板支持Ubuntu 20.04 Desktop、Server两个系统版本,推荐用户使用支持图形化桌面的Ubuntu Desktop版本,以获得更方便的图形化交互体验。如果用户更熟悉命令行交互操作方式,可以使用不带图形化桌面的Ubuntu Server版本。

Ubuntu Desktop版本系统启动完成后,会通过HDMI接口在显示器上输出系统桌面,如下图:

image-desktop_display.png

Ubuntu Server 版本系统启动完成后,会通过HDMI接口在显示器上输出地平线Logo图标,如下图:

image-server_display.png

开发板Ubuntu镜像文件可从资源中心栏目中获取,如下图:
image-20220609102955046

1.2.1. 烧录准备

在烧录Ubuntu系统镜像前,用户需要做如下准备:

  • 准备至少8GB容量的Micro SD卡

  • SD 读卡器

  • 下载Ubuntu镜像压缩包,并解压出Ubuntu系统镜像文件:system_sdcard.img

  • 下载镜像烧录工具balenaEtcher,下载链接:https://www.balena.io/etcher/

1.2.2. 烧录系统

balenaEtcher是一款支持Windows/Mac/Linux等多平台的PC端启动盘制作工具,制作SD启动卡流程如下:

  1. 打开balenaEtcher工具,点击Flash frome file按钮,选择解压出来的system_sdcard.img文件作为烧录镜像

    image-X3-Update-balena1

  2. 点击Select target按钮,选择对应的Micro SD存储卡作为目标存储设备

    image-X3-Update-balena3

  3. 点击Flash按钮开始烧录,待工具提示Flash Complete时,表示镜像烧录完成,您可以关闭balenaEtcher工具并取出存储卡

    image-X3-Update-balena4

    image-X3-Update-balena5

    image-X3-Update-balena5

如Micro SD存储卡烧录过程发生中断,用户需要按照上述步骤重新进行。

1.2.3. 启动系统

首先保持旭日X3派开发板断电,然后将制作好的存储卡插入开发板的Micro SD卡槽,并通过HDMI线缆连接开发板与显示器,最后给开发板上电。用户可通过指示灯判断开发板状态,指示灯说明如下:

  • 红色指示灯:点亮代表硬件上电正常

  • 绿色指示灯:点亮代表系统启动中,熄灭代表系统启动完成

系统首次启动时会进行默认环境配置,整个过程持续45秒左右,配置结束后会在显示器输出Ubuntu系统桌面(Ubuntu Server显示logo图标)。

如果开发板上电后长时间没有显示输出(2分钟以上),说明开发板启动异常。此时用户可通过指示灯确认系统状态,方法如下:

  • 绿灯常亮:说明系统启动失败,可检查使用的电源适配器是否满足5V3A的要求,可尝试重新制作Micro SD卡系统镜像

  • 绿灯熄灭:说明系统启动成功,但显示服务启动失败,请确认连接的显示器符合支持列表规格

1.3. 远程登录

本章节旨在向需要通过个人电脑(PC)远程访问开发板的用户介绍如何通过串口、网络(VNC、SSH)方式进行远程登录。

注意,通过网络方式远程登录前,开发板需要通过有线以太网或者无线WiFi方式接入网络,配置好开发板IP地址。对于两种连接方式下的IP地址信息可参考如下描述:

  • 有线以太网:开发板默认采用静态IP模式,IP地址为192.168.1.10,掩码255.255.255.0,网关 192.168.1.1

  • 无线WiFi:开发板IP地址一般由路由器分配,可在设备命令行中通过ifconfig命令查看wlan0网络的IP地址

1.3.1. 串口登录

在使用串口登录前,需要确认开发板串口线跟电脑正确连接,连接方法可参考调试串口章节。串口登录需要借助PC终端工具,目前常用的工具有PuttyMobaXterm等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm为例,介绍新建串口连接过程:

  • 当串口USB转接板首次插入电脑时,需要安装串口驱动。驱动程序可从资源中心的工具子栏目获取。驱动安装完成后,设备管理器可正常识别串口板端口,如下图:
    image-20220416105939067

  • 打开MobaXterm工具,点击Session,然后选择Serial

  • 配置端口号,例如COM3,实际使用的串口号以PC识别到的串口号为准

  • 设置串口配置参数,如下:

    • 波特率(Baud rate):921600

    • 数据位(Data bits):8

    • 奇偶校验(Parity):None

    • 停止位(Stop bits):1

    • 流控(Flow Control):无

  • 点击OK,输入用户名:root、密码:root登录设备
    image-Uart-Login

此时,可使用ifconfig命令查询开发板IP地址,其中eth0、wlan0分别代表有线、无线网络:

root@ubuntu:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::211:22ff:feaa:7637  prefixlen 64  scopeid 0x20<link>
        ether 00:11:22:aa:76:37  txqueuelen 1000  (Ethernet)
        RX packets 767  bytes 54006 (54.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5766  bytes 246466 (246.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 43  base 0xa000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3847  bytes 339115 (339.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3847  bytes 339115 (339.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 08:e9:f6:ae:f8:8a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

1.3.2. 网络状态确认

在使用远程登录前,需要确保电脑、开发板网络通信正常,如无法ping通,需按如下步骤进行确认:

  • 确认开发板、电脑IP地址配置,一般前三段需要是一样的,例如开发板:192.168.1.10 电脑:192.168.1.100

  • 确认开发板、电脑的子网掩码、网关配置是否一致

  • 确认电脑网络防火墙是否处于关闭状态

开发板有线以太网默认采用静态IP模式,IP地址为192.168.1.10。对于开发板、电脑网络直连的情况,只需要将电脑配置为静态IP,保证跟开发板处于同一网段即可。以WIN10系统为例,电脑静态IP修改方法如下:

  • 在网络连接中找到对应的以太网设备并双击打开

  • 找到Internet协议版本4选项并双击打开

  • 在下图红框位置填入对应的网络参数,点击确定

image-20220416110242445

如需将开发板有线网络配置为动态获取DHCP模式,可参考有线网络章节进行配置。

1.3.3. VNC登录

本章节面向使用Ubuntu Desktop系统版本的用户,介绍如何通过VNC Viewer实现远程桌面登录功能。VNC Viewer是一个图形桌面共享软件,可在电脑上实现设备远程登录和控制桌面。该软件可以通过电脑显示器预览开发板系统桌面,并使用电脑的鼠标、键盘进行远程操作。用户通过VNC Viewer操作,可以获得跟开发板本地操作相同的效果,下载链接VNC Viewer

连接开发板
目前VNC支持直接、云端两种连接方式,用户可以根据自身情况选择。本文推荐使用直接连接方式,连接步骤如下:

  • 输入设备ip地址,例如:192.168.1.10
    image-20220610160658103

  • 输入IP地址后回车,弹出链接未加密的提示,点击 Continue
    image-20220610160715916

  • 输入密码 sunrise,勾选 Remember password, 点击 OK连接
    image-20220610160928136

1.3.4. SSH登录

除了VNC登录远程桌面外,还可以通过SSH连接登录开发板。下面分别介绍终端软件、终端命令行两种方法的创建步骤。

终端软件
目前常用终端工具有PuttyMobaXterm等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm为例,介绍新建SSH连接过程:

  • 打开MobaXterm工具,点击Session,然后选择SSH

  • 输入开发板IP地址,例如192.168.1.10

  • 选中specify username,输入sunrise

  • 点击OK后,输入用户名(sunrise)、密码(sunrise)即可完成登录

image-Network-Login

电脑命令行
用户也可通过命令行方式进行SSH登录,步骤如下:

  • 打开终端窗口,输入SSH登录命令,例如ssh sunrise@192.168.1.10

  • 弹出连接确认提示,输入YES

  • 输入密码(sunrise)即可完成登录

image-Cmdline-Linux

1.4. 快速体验

开发板系统默认预置了LED控制、GPIO操作、图像采集、算法推理等多个功能示例,用于帮助用户快速确认开发板环境安装的完整性。

1.4.1. LED指示灯控制

此示例中使用绿色LED工作指示灯,在启动过程中绿色工作指示灯常亮,启动完成后熄灭。本节将通过运行程序控制这个LED的闪烁状态,作为使用开发板的hello world程序。

  • 环境准备:无

  • 运行方式:执行 led_blinks 程序,以启动指示灯控制程序

sunrise@ubuntu:~$ sudo led_blinks
  • 预期效果:开发板的绿色指示灯按照2s的频率开始闪烁。

led_blinks是一个shell脚本程序,通过控制GPIO管脚状态来控制指示灯的亮灭。此外,程序还支持以下三个参数选项:

1. normal:默认效果,不加参数运行时使用此模式,按照2s的频率开始闪烁
2. fast:指示灯按照300毫秒的频率快速闪烁
3. slowly:指示灯亮灭按照4秒的频率慢速闪烁

normal模式的闪烁效果如下:

img

1.4.2. GPIO读写操作

开发板 /app/40pin_samples/ 目录下,预置了多种40PIN管脚的功能测试代码,包括gpio的输入/输出测试、PWM、I2C、SPI、UART等测试。所有测试程序均使用python语言编写,详细信息可以查阅 40PIN 功能使用

/app/40pin_samples/button_led.py为例,该程序配置38号管脚为输入,配置36号管脚配置为输出,并根据38号管脚的输入状态来控制36号管脚的输出状态。

  • 环境准备:使用杜邦线连接38号管脚到3.3v or GND,以控制其高低电平。

  • 运行方式:执行 button_led.py 程序,以启动GPIO读写程序

    sunrise@ubuntu:~$ cd /app/40pin_samples/
    sunrise@ubuntu:/app/40pin_samples$ sudo python3 ./button_led.py
    
  • 预期效果:通过控制38号管脚的高低电平,可以改变 36号管脚的输出电平值。

    sunrise@ubuntu:/app/40pin_samples$ sudo python3 ./button_led.py
    Starting demo now! Press CTRL+C to exit
    Outputting 0 to Pin 36
    Outputting 1 to Pin 36
    Outputting 0 to Pin 36
    

1.4.3. 图像分类算法示例

开发板上安装了test_mobilenetv1.py 程序用于测试mobilenet v1图像分类算法功能,该程序读取 zebra_cls.jpg 静态图片作为模型的输入,并在命令行终端输出分类结果cls id: 340 Confidence: 0.991851

  • 环境准备:无

  • 运行方式:执行 test_mobilenetv1.py 程序

    sunrise@ubuntu:~$ cd /app/ai_inference/01_basic_sample/
    sunrise@ubuntu:/app/ai_inference/01_basic_sample$ sudo ./test_mobilenetv1.py
    
  • 预期效果:输出图像分类算法的预测结果,id和confidence。

zebra_cls.jpg是一张斑马的图片,按照ImageNet数据集的分类,返回结果id为340, 置信度为0.991851。

========== Classification result ==========
cls id: 340 Confidence: 0.991851

zebra_cls

1.4.4. USB摄像头使用

开发板上安装了 usb_camera_fcos.py 程序用于测试USB摄像头的数据通路,该示例会实时采集USB摄像头的图像数据,然后运行目标检测算法,最后把图像数据和检测结果融合后通过HDMI接口输出。

  • 环境准备:

    • USB摄像头接入到开发板上,确认生成/dev/video8设备节点

    • 通过HDMI线缆连接开发板和显示器

  • 运行方式:按照以下命令执行程序

    sunrise@ubuntu:~$ cd /app/ai_inference/02_usb_camera_sample/
    sunrise@ubuntu:/app/ai_inference/02_usb_camera_sample$ sudo python3 ./usb_camera_fcos.py
    
  • 预期效果:程序执行后,显示器会实时显示摄像头画面及目标检测算法的结果(目标类型、置信度),如下所示: image-20220612110739490

详细代码实现说明请查阅基于USB摄像头推理章节。

1.4.5. MIPI摄像头使用

开发板上安装了mipi_camera.py程序用于测试MIPI摄像头的数据通路,该示例会实时采集MIPI摄像头的图像数据,然后运行目标检测算法,最后把图像数据和检测结果融合后通过HDMI接口输出。

  • 环境准备:

    • 将MIPI摄像头模组连接到开发板MIPI CSI接口,具体连接方法可以参考MIPI摄像头连接教程章节

    • 通过HDMI线缆连接开发板和显示器

  • 运行方式:按照以下命令执行程序

    sunrise@ubuntu:~$ cd /app/ai_inference/03_mipi_camera_sample/
    sunrise@ubuntu:/app/ai_inference/03_mipi_camera_sample$ sudo python3 ./mipi_camera.py 
    
  • 预期效果:程序执行后,显示器会实时显示摄像头画面及目标检测算法的结果(目标类型、置信度),如下所示: image-20220503221020331

详细代码实现说明请查阅基于MIPI摄像头推理章节。

1.5. 硬件接口说明

1.5.1. 接口总览

旭日X3派开发板提供了网口、USB、摄像头、LCD、HDMI、40PIN等功能接口,方便用户进行图像多媒体、深度学习算法等应用的开发和测试。开发板接口布局如下: image-20220802160110194

序号
功能
序号
功能
序号
功能
1 USB Type C 供电接口 6 USB 3.0 Type A接口 11 Wi-Fi天线接口
2 MIPI CSI 摄像头接口 7 千兆以太网口 12 TF卡接口(底面)
3 调试串口 8 40PIN接口 13 MIPI 接口的LCD屏接口
4 Micro USB 2.0 接口 9 HDMI接口 14 触摸屏接口
5 USB 2.0 Type A接口两路 10 电源和状态LED指示灯

1.5.2. 电源接口

开发板提供一路USB Type C接口(接口1),作为供电接口,需要使用支持5V/3A的电源适配器为开发板供电。将电源适配器接入开发板后,开发板红色电源指示灯亮起,说明开发板供电正常。

注意,请不要使用电脑USB接口为开发板供电,否则会因供电不足造成开发板异常断电、反复重启等情况。

1.5.3. 调试串口

开发板提供一路调试串口(接口3),以实现串口登录、调试功能。电脑串口工具的参数配置如下:

  • 波特率(Baud rate):921600

  • 数据位(Data bits):8

  • 奇偶校验(Parity):None

  • 停止位(Stop bits):1

  • 流控(Flow Control):无

串口连接时,需要将杜邦线接入开发板接口3,串口USB转接板接入电脑。连接完成后如下图:
image-20220612121707048

1.5.4. 有线网口

开发板提供一路千兆以太网接口(接口7),支持1000BASE-T、100BASE-T标准,默认采用静态IP模式,IP地址192.168.1.10。如需确认开发板IP地址,可通过串口登录设备,并用ifconfig命令进行查看 eth0网口的配置:

sunrise@ubuntu:/# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::211:22ff:fe6f:de17  prefixlen 64  scopeid 0x20<link>
        ether 00:11:22:6f:de:17  txqueuelen 1000  (Ethernet)
        RX packets 112  bytes 7327 (7.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 197  bytes 8678 (8.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 39  base 0xc000 

开发板插入网线后,以太网驱动会建立连接,如果系统有如下打印,说明网线连接正常:

[13293.952661] st_gmac a5014000.ethernet eth0: Link is Down
[13295.062996] st_gmac a5014000.ethernet: Link is Up - 1000/Full 
[13296.000750] st_gmac a5014000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

1.5.5. HDMI接口

开发板提供一路HDMI(接口9)显示接口,最高支持1080P分辨率。开发板通过HDMI接口在显示器输出Ubuntu系统桌面(Ubuntu Server版本显示logo图标)。此外,HDMI接口还支持实时显示摄像头、网络流画面功能,具体可以参考Sample示例章节。

目前HDMI接口支持的显示分辨率如下:

  • 1920x1080

  • 1280x720

  • 1024x600

  • 800x480

1.5.6. USB接口

由于X3芯片只提供一路USB接口,开发板通过硬件电路实现了多路USB接口扩展,满足用户对多路USB设备接入的需求,接口描述如下:

接口类型 接口序号 接口数量 接口描述
Micro USB 2.0 接口4 1路 USB Device模式,用于连接主机实现ADB、Fastboot、UVC等功能
USB 2.0 Type A 接口5 2路 USB Host模式,用于接入USB 2.0外设
USB 3.0 Type A 接口6 1路 USB Host模式,用于接入USB 3.0外设

USB主从模式切换完全由硬件电路实现,用户只需按照上表的逻辑连接设备即可。

开发板USB Host、Device功能互斥,Device接口接入设备后,Host接口会自动失效。

接入U盘

开发板USB Type A接口(接口5和6),支持U盘功能,可自动检测U盘接入并挂载,默认挂载目录为/media/sda1。用户可通过touch命令确认U盘工作正常,如下:

sunrise@ubuntu:/media/sda1$ sudo touch test
[sudo] password for sunrise: 
sunrise@ubuntu:/media/sda1$ ls -l test 
-rwxr-xr-x 1 root root 0 Apr 30 21:19 test
sunrise@ubuntu:/media/sda1$

接入USB串口转接板

开发板USB Type A接口(接口5和6),支持USB串口转接板功能,可自动检测USB串口转接板接入并创建设备节点/dev/ttyUSB* 或者 /dev/ttyACM*(星号代表0开始的数字)。用户可参考 使用串口 章节对串口进行使用。

1.5.7. USB摄像头

开发板USB Type A接口(接口5和6),支持USB摄像头功能,可自动检测USB摄像头接入并创建设备节点/dev/video8。用户可通过v4l2命令确认USB摄像头工作正常,如下:

sunrise@ubuntu:/media/sda1$ sudo v4l2-ctl -d /dev/video8 --all
Driver Info:
        Driver name      : uvcvideo
        Card type        : FHD Camera: FHD Camera
        Bus info         : usb-xhci-hcd.0.auto-1.2
        Driver version   : 4.14.87
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : uvcvideo
        Model            : FHD Camera: FHD Camera
        Serial           : 12345
        Bus info         : 1.2
        Media version    : 4.14.87
        Hardware revision: 0x00000020 (32)
        Driver version   : 4.14.87
Interface Info:
        ID               : 0x03000002
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : FHD Camera: FHD Camera
        Function         : V4L2 I/O
        Pad 0x01000004   : Sink
          Link 0x0200000a: from remote pad 0x1000007 of entity 'Processing 2': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 1920/1080
        Pixel Format      : 'MJPG' (Motion-JPEG)
        Field             : None
        Bytes per Line    : 0
        Size Image        : 4147200
        Colorspace        : Default
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             : 
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 1920, Height 1080
        Default     : Left 0, Top 0, Width 1920, Height 1080
        Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0

1.5.8. MIPI摄像头

开发板提供1路MIPI CSI接口(接口2),可实现MIPI摄像头的接入。目前开发板适配了多种规格的摄像头模组,模组型号、规格如下:

序号 Sensor 分辨率 FOV I2C 设备地址
1 GC4663 400W H:104 V:70 D:113 0x29
2 JXF37 200W H:62 V:37 D:68 0x40
3 IMX219 800W H:62 V:37 D:68 0x10
4 IMX477 1200W H:62 V:37 D:68 0x1a
5 OV5647 500W H:62 V:37 D:68 0x36

摄像头模组通过FPC排线跟开发板连接,注意排线两端蓝面向上插入连接器。

重要提示:严禁在开发板未断电的情况下插拔摄像头,否则非常容易烧坏摄像头模组。

以JXF37摄像头模组为例,安装完成后如下图:
image-X3-PI-Camera

安装完成后,用户可以通过i2cdetect命令确认模组I2C地址能否正常检测到。如检测不到,用户需要检查FPC排线连接是否正常。成功探测到I2C地址时,log打印如下所示:

# 首先使能sensor的24MHz主时钟
sunrise@ubuntu:~# sudo bash -c "echo 1 > /sys/class/vps/mipi_host0/param/snrclk_en"
sunrise@ubuntu:~# sudo bash -c "echo 24000000 > /sys/class/vps/mipi_host0/param/snrclk_freq"
# 执行 i2cdetect 命令探测, 其中显示的 40 即JXF37这颗sensor的i2c设备地址,说明摄像头连接正常
sunrise@ubuntu:~# sudo i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

1.5.9. Micro SD接口

开发板提供1路Micro SD存储卡接口(接口12)。推荐使用至少8GB容量的存储卡,以便满足Ubuntu操作系统及相关功能包的安装要求。

开发板使用中禁止热插拔TF存储卡,否则会造成系统运行异常,甚至造成存储卡文件系统损坏。

1.5.10. 无线连接

1.5.10.1. Wi-Fi

开发板的无线网络支持板载和外置天线两种配置,通常情况下板载天线可以满足使用需求。当开发板安装金属材质外壳后,需要连接外置天线到(接口11),以增强信号强度。

1.5.10.2. 蓝牙

初始化

开发板蓝牙功能默认没有开启,需要执行 /usr/bin/startbt6212.sh脚本进行初始化,脚本执行成功后的log如下:
image-20220601172145987

此时,通过ps可看到蓝牙进程已经运行:

root@ubuntu:~# ps ax | grep "/usr/bin/dbus-daemon\|brcm_patchram_plus\|/usr/lib/bluetooth/bluetoothd"
   2695 ?        Ss     0:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
   2963 ?        Ss     0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
   3241 ?        Ss     0:00 /usr/lib/bluetooth/bluetoothd
   5717 pts/0    S+     0:00 grep --color=auto /usr/bin/dbus-daemon\|brcm_patchram_plus\|/usr/lib/bluetooth/bluetoothd

配置连接

  • 执行sudo bluetoothctl进入交互模式下的蓝牙配置界面,可以通过show命令查看蓝牙信息,如下:

    root@ubuntu:~# sudo bluetoothctl
    Agent registered
    [bluetooth]# show
    Controller E0:75:26:E3:8F:CF (public)
            Name: ubuntu
            Alias: ubuntu
            Class: 0x00100000
            Powered: yes
            Discoverable: yes
            DiscoverableTimeout: 0x000000b4
            Pairable: yes
            UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
            UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
            UUID: Message Access Server     (00001132-0000-1000-8000-00805f9b34fb)
            UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
            UUID: Phonebook Access Server   (0000112f-0000-1000-8000-00805f9b34fb)
            UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
            UUID: OBEX Object Push          (00001105-0000-1000-8000-00805f9b34fb)
            UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
            UUID: OBEX File Transfer        (00001106-0000-1000-8000-00805f9b34fb)
            UUID: Vendor specific           (00005005-0000-1000-8000-0002ee000001)
            UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
            UUID: IrMC Sync                 (00001104-0000-1000-8000-00805f9b34fb)
            Modalias: usb:v1D6Bp0246d0535
            Discovering: no
    Advertising Features:
            ActiveInstances: 0x00
            SupportedInstances: 0x05
            SupportedIncludes: appearance
            SupportedIncludes: local-name
    [bluetooth]# 
    
  • 执行 power on 使能蓝牙,如下:

    [bluetooth]# power on
    Changing power on succeeded
    
  • 执行 discoverable on 使能蓝牙并打开蓝牙可发现属性,如下:

    [bluetooth]# discoverable on
    Changing discoverable on succeeded
    
  • 使用手机或者电脑扫描蓝牙,可以搜索到名为 ubuntu 的蓝牙设备,如下图:

    image-20220601175322650

  • 如需开启蓝牙的主动扫描功能,可在bluetoothctl的交互界面输入scan on打开主动扫描,此时蓝牙会周期性地扫描附近的可用设备,如下图:

    image-20220601154131158

  • 如需关闭蓝牙的主动扫描功能,可通过 scan on 命令关闭

  • 蓝牙设备配对

    • 配对命令:pair [targetMAC] ,输入该命令后,根据提示输入yes,并在对端蓝牙设备选择配对选项完成配对

    • 配对成功后,可以使用trust [targetMAC]将设备加入配对列表,下次使用时自动链接
      image-20220601154414717

如需使用更多功能,可查阅 BlueZ的官方帮助说明。

1.5.11. 40PIN

旭日X3派开发板提供40PIN标准接口,方便用户进行外围扩展,其中数字IO采用3.3V电平设计。40PIN接口定义如下:

image-20220501181722851

开发板40PIN接口位置提供了丝印网表,方便用户对照操作,PIN1、PIN40位置如下:

image-X3-PI-40Pin_Index

40PIN各功能的使用方法请查看 40PIN 功能使用 章节。

1.5.12. 音频接口

开发板40PIN接口上有两路I2S接口,通过连接音频子板,可以实现音频采集和播放功能。本示例采用的音频子板,支持4MIC录音和3.5mm播放功能,具体信息可参考音频子板

在断电状态下,将音频子板对齐开发板40PIN排针后插入,即可完成组装,如下图:

image-20220803113006285

1.5.12.1. 驱动加载

首先,给开发板上电,运行 sudo i2cdetect -r -y 0 命令检查设备是否连接正常,如果命令返回如下信息,说明连接正常:

image-20220803120213807

其次,使用如下命令,加载音频驱动

sudo modprobe es7210
sudo modprobe es8156
sudo modprobe hobot-i2s-dma
sudo modprobe hobot-cpudai
sudo modprobe hobot-snd-7210 snd_card=5

最后,运行 ls  /dev/snd 命令查询新创建的声卡设备节点,如下图:

image-20220831111825812

1.5.12.2. 录音、播放

录制4通道麦克风音频数据到4chn_test.wav文件,持续5S:

tinycap ./4chn_test.wav -D 0 -d 0 -c 4 -b 16 -r 48000 -p 512 -n 4 -t 5

录制2通道麦克风音频数据到2chn_test.wav文件,持续5S:

tinycap ./2chn_test.wav -D 0 -d 0 -c 2 -b 16 -r 48000 -p 512 -n 4 -t 5

播放录制好的2通道音频2chn_test.wav,声音会通过音频板3.5mm耳机孔播放。

tinyplay ./2chn_test.wav -D 0 -d 1

注意,播放功能最多支持两通道音频。

1.5.12.3. Ubuntu系统音频配置

如果需要将Ubuntu Desktop的播放器、浏览器的音频,通过音频子板播放,可按如下方式配置:

安装播放软件

安装smplayer播放软件

sudo apt update
sudo apt-get install smplayer

安装pulseaudio声音服务器

sudo apt install pavucontrol
sudo apt install pulseaudio

修改音频配置 完成以上软件安装后,需要修改如下配置项:

  • 打开文件 /etc/pulse/default.pa, 找到.ifexists module-udev-detect.so 这一行,修改为如下内容:

    ### Automatically load driver modules depending on the hardware available
    .ifexists module-udev-detect.so
    #load-module module-udev-detect
    load-module module-alsa-source device=hw:0,0
    load-module module-alsa-sink device=hw:0,1 mmap=false tsched=0 fragments=2 fragmm
    ent_size=960 rate=48000 channels=1 rewind_safeguard=960
    .else
    ### Use the static hardware detection module (for systems that lack udev supportt
    )
    
  • 打开文件/etc/rc.loacl, 在文件末尾添加音频驱动的加载命令:

    modprobe es7210
    modprobe es8156
    modprobe hobot-i2s-dma
    modprobe hobot-cpudai
    modprobe hobot-snd-7210 snd_card=5
    
  • 重启开发板让配置生效。

注意事项
使用不同音频子板时,驱动加载后生成的音频节点可能存在差异。此时需要根据实际节点修改配置,方法如下:

  • 通过命令aplay -l确认实际的设备节点配置,例如card 0、device 1

    root@ubuntu:~# aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: hobotsnd5 [hobotsnd5], device 1: (null) es8156.0-0008-1 []
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    
  • 修改/etc/pulse/default.pamodule-alsa-sink的设备节点到device=hw:0,1

    load-module module-alsa-sink device=hw:0,1 mmap=false tsched=0 fragments=2 fragmm
    

1.6. 认证配件清单

认证配件清单是指经过地平线官方认证,可以适配旭日X3开发板的第三方配件配件清单。主要包含基础配件(电源、外壳、散热器)、摄像头、显示屏等类别,清单内容会不定期更新,逐步添加更多的配件型号。

1.6.1. 基础配件

类型 供应商 型号 描述 购买链接
电源 微雪 ORD-PSU-5V3A-USB-C-US Type-C接口 5V/3A 定制电源 购买链接
电源 亚博 T03F-050300Z Type-C接口 5V/3A 定制电源 购买链接
外壳 亚博 N/A 铝合金定制外壳 购买链接
外壳 轮趣 N/A 铝合金定制外壳 购买链接
散热器 微雪 N/A 散热风扇扩展板 购买链接
散热器 亚博 N/A 主板风扇,支持OLED显示 购买链接
Wi-Fi天线 微雪 ORD-CM4-ANTENNA SMA天线 支持2.4G/5G WiFi频段 购买链接

1.6.2. 摄像头

类型 供应商 型号 描述 购买链接
MIPI 微雪 OV5647摄像头 OV5647传感器,500W像素,FOV 对角160度 购买链接
MIPI 微雪 IMX219摄像头 IMX219传感器,800W像素,FOV 对角200度 购买链接
MIPI 微雪 IMX477摄像头 IMX477传感器,1230W像素,FOV 对角160度 购买链接
MIPI 微雪 摄像头转接板 搭配微雪摄像头使用,15pin转24pin 转接板 购买链接
MIPI 亚博 IMX219摄像头 IMX219传感器,800W像素,FOV 对角77度 购买链接
USB 亚博 USB摄像头 免驱USB麦克风摄像头,720p 购买链接
USB 轮趣 USB摄像头 免驱USB摄像头,金属外壳,1080p 购买链接

1.6.3. 显示屏

类型 供应商 型号 描述 购买链接
HDMI 微雪 5英寸触控屏 分辨率800×480,钢化玻璃面板,支持触控 购买链接
HDMI 微雪 7英寸触控屏 分辨率1024x600,钢化玻璃面板,支持触控 购买链接
HDMI 微雪 10英寸触控屏 分辨率1280x800,钢化玻璃面板,高色域触控屏 购买链接
HDMI 微雪 13.3英寸触控屏 分辨率1920x1080,钢化玻璃面板,高色域触控屏 购买链接
MIPI 微雪 4.3英寸MIPI LCD 分辨率800×480,IPS广视角,MIPI DSI接口 购买链接