Today I'll be showing some of my very first interactions with a Qualcomm RB5 Robotics Kit. In their words:
The Qualcomm Robotics RB5 development kit combines the promise of 5G with the computing power for AI, deep learning, computer vision, 7-camera concurrency, rich multimedia and security
Inside the box, we get three parts:
- The board itself,
- A USB-C cable,
- A power brick.
The bringup guide tells us we'll need a Linux workstation, and a few utilities from the Android SDK: adb
& fastboot
. In short, it looks like a familiar programming model:
- Build device images on your local machine;
- Deploy and run those images on the device.
I'm on a Mac right now, so I won't have access to the full toolset needed to prepare the images. However, I've got a working adb
and fastboot
, so can easily interact with the device. This will likely continue to be my workflow, even after I get a Linux build host going in EC2.
Let's get the kit running. I connect the power brick, and then I connect the USB-C cable into my MacBook. After a bit, a green LED indicator lights up on the device:
At this point, I'm able to see the device via adb
:
$ adb devices
List of devices attached
ZTR10S1600CS device
I can even login and probe for some details:
$ adb shell
sh-4.4#
The device is running Ubuntu 18.04.05:
sh-4.4# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
The processor has 8 cores:
sh-4.4# nproc
8
It's an AArch64
:
sh-4.4# cat /proc/cpuinfo | grep ^Processor
Processor : AArch64 Processor rev 14 (aarch64)
sh-4.4# uname -a
Linux qrb5165-rb5 4.19.125 #1 SMP PREEMPT Sat Mar 20 11:48:10 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
The board has 7650MB of memory:
sh-4.4# free -m
total used free shared buff/cache available
Mem: 7650 1112 6058 12 478 6848
Swap: 3825 0 3825
There are a few USB devices on the board, an AX88179 ethernet controller, and a couple of USB hubs:
sh-4.4# lsusb
Bus 002 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Not much on the PCI bus:
sh-4.4# lspci
00:00.0 PCI bridge: Qualcomm Device 010b (rev ff)
01:00.0 Unassigned class [ff00]: Qualcomm Device 1101 (rev ff)
Lots and lots of partitions:
sh-4.4# mount
/dev/sda7 on / type ext4 (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=2671320k,nr_inodes=667830,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/schedtune type cgroup (rw,nosuid,nodev,noexec,relatime,schedtune)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/debug type cgroup (rw,nosuid,nodev,noexec,relatime,debug)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /var/volatile type tmpfs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sde9 on /dsp type ext4 (ro,nosuid,nodev,noexec,noatime,discard,noauto_da_alloc,data=ordered)
/dev/sde4 on /firmware type vfat (ro,nodev,noexec,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/sde5 on /bt_firmware type vfat (ro,nodev,noexec,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
Looks like a 128GB storage chip, split apart into different partitions:
sh-4.4# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 99G 6.0G 93G 7% /
devtmpfs 2.6G 0 2.6G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 12M 3.8G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
tmpfs 3.8G 0 3.8G 0% /var/volatile
/dev/sde9 59M 24M 34M 42% /dsp
/dev/sde4 395M 61M 335M 16% /firmware
/dev/sde5 64M 368K 64M 1% /bt_firmware
We've found some of the components in the hardware spec sheet so far, but just a few. Of particular interest, I'd like to locate some of the coprocessors (the "heterogeneous computing" bit):
- Qualcomm Adreno 650 GPU
- Qualcomm Hexagon DSP
- Qualcomm Spectra 480 image processing
- Adreno 665 VPU video encode/decode
- Qualcomm Secure Processing Unit SPU240
- Qualcomm Neural Processing unit NPU230
In an upcoming article, we'll start trying to exercise some of these components!
Top comments (1)
Dope Tech