DEV Community

loading...
Cover image for Unboxing the Qualcomm RB5 Robotics Kit

Unboxing the Qualcomm RB5 Robotics Kit

jameson profile image Jameson ・5 min read

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:

  1. The board itself,
  2. A USB-C cable,
  3. A power brick.

Inside the box, there's the RB5 main board, a USB-C cable, and a power brick

RB5 main board, USB-C cable, and 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:

  1. Build device images on your local machine;
  2. 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:

RB5 kit plugged in and powered up

At this point, I'm able to see the device via adb:

$ adb devices
List of devices attached
ZTR10S1600CS    device
Enter fullscreen mode Exit fullscreen mode

I can even login and probe for some details:

$ adb shell
sh-4.4# 
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

The processor has 8 cores:

sh-4.4# nproc 
8
Enter fullscreen mode Exit fullscreen mode

It's an AArch64:

sh-4.4# cat /proc/cpuinfo | grep ^Processor 
Processor   : AArch64 Processor rev 14 (aarch64)
Enter fullscreen mode Exit fullscreen mode
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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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):

  1. Qualcomm Adreno 650 GPU
  2. Qualcomm Hexagon DSP
  3. Qualcomm Spectra 480 image processing
  4. Adreno 665 VPU video encode/decode
  5. Qualcomm Secure Processing Unit SPU240
  6. Qualcomm Neural Processing unit NPU230

In an upcoming article, we'll start trying to exercise some of these components!

Discussion (1)

Collapse
hellosagar profile image
Sagar Khurana

Dope Tech

Forem Open with the Forem app