RB3 Gen 2 Vision Kit
The Qualcomm Dragonwing RB3 Gen 2 Development Kit is a powerful Linux-based development board based around the QCS6490 SoC. It has two built-in cameras, a Kryo™ 670 CPU, Adreno™ 643L GPU and 12 TOPS Hexagon™ 770 NPU. It's available for $599 from a variety of distributors (buy now).

Setup
Installing Ubuntu 24.04
The RB3 Gen 2 Vision Kit comes with the Yocto-based Qualcomm Linux by default. You'll want to switch to Ubuntu 24.04 to follow the tutorials in this documentation.
TODO: Allow server install too (so IM SDK works).
If it's on, turn your RB3 Gen 2 Vision Kit off, and disconnect the power adapter.
You'll need to connect the RB3 Gen 2 Vision Kit to your computer using two USB cables.
Connect the RB3 to your computer using a micro-USB cable (using the port highlighted in yellow):
Connect the RB3 to your computer using an USB-C cable (using the port highlighted in red):
Now, depending on your OS:
Windows:
Open a terminal, and run:
Invoke-WebRequest -Uri https://cdn.edgeimpulse.com/qc-ai-docs/device-setup/rb3-gen2-vision-kit-ubuntu24-windows.ps1 -OutFile "rb3-gen2-vision-kit-ubuntu24-windows.ps1" .\rb3-gen2-vision-kit-ubuntu24-windows.ps1
If you encounter any issues, see the debugging steps (e.g. USB driver setup) on Qualcomm docs: Flash the software images to the device (follow "Windows host" instructions).
Note (Jan): I cannot get this to work for the life of me, I keep getting "qdl: unable to open USB device".
macOS:
Open a terminal, and run:
wget https://cdn.edgeimpulse.com/qc-ai-docs/device-setup/rb3-gen2-vision-kit-ubuntu24-macos-linux.sh bash rb3-gen2-vision-kit-ubuntu24-macos-linux.sh
Linux (x86 only, arm64 hosts are not supported):
Update your udev rules. Open a terminal and run:
echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0664", GROUP="plugdev"' > /etc/udev/rules.d/51-qcom-usb.rules sudo systemctl restart udev
Disconnect and reconnect the USB cables to your RB3 development kit.
Then, from a terminal, run:
wget https://cdn.edgeimpulse.com/qc-ai-docs/device-setup/rb3-gen2-vision-kit-ubuntu24-macos-linux.sh bash rb3-gen2-vision-kit-ubuntu24-macos-linux.sh
When the script says "Waiting for EDL device":
Connect the power adapter.
Press and hold the EDL button:
FDL button While holding the EDL button, also press the power button:
Power button The script should say "waiting for programmer..." and flashing will start.
Next, either:
Hook up a display, keyboard, and mouse - and make sure you can open the terminal application on the device.
Or, connect to the device using a serial port, see Qualcomm docs: Configuring Ubuntu on the device.
When prompted to login, the default username is
ubuntu
and the default password is alsoubuntu
.From your terminal, set up WiFi:
# Connect to WiFi sudo nmcli dev wifi connect "<WiFi-SSID>" password "<WiFi-password>" # Force ntp sync so we get the correct date/time sudo systemctl restart systemd-timesyncd.service # To verify... date # ... Should return the current date
Optional: If you want to connect over SSH:
Find your IP address:
sudo apt update && sudo apt install -y net-tools ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' # 192.168.1.253
On your host machine (so not on your dev board), open a command prompt or terminal and run:
ssh ubuntu@192.168.1.253
(Replace 192.168.1.253 with the IP you found in the previous step)
Optional: Follow this guide to connect your board to Visual Studio Code via SSH for code development and deployment.
Last, install the USB / Ethernet driver:
# Download and install the driver sudo wget -O /lib/firmware/renesas_usb_fw.mem https://cdn.edgeimpulse.com/qc-ai-docs/drivers/renesas_usb_fw.mem sudo mkinitramfs -o /boot/initrd.img-$(uname -r) # To verify... lsinitramfs /boot/initrd.img-$(uname -r) | grep renesas # ... Should list "usr/lib/firmware/renesas_usb_fw.mem" # Reboot sudo reboot
TODO: The official docs force you to download renesas_usb_fw.mem
from Renesas. But on RUBIK Pi we can ship it on-device. Figure out if we can host on CDN under the same agreement before publishing these docs.
Installing drivers, AI Engine Direct and the IM-SDK
Now that we have Ubuntu 24.04 installed, let's install GPU drivers, the Qualcomm AI Engine Direct SDK (to run neural networks), and the Qualcomm Intelligent Multimedia SDK (to run computer vision pipelines on GPU or NPU).
From the terminal or ssh session on your development board, run:
Install some base packages:
sudo apt update sudo apt install -y unzip wget curl python3 python3-pip python3-venv software-properties-common
Download and install IM SDK, the AI Engine Direct SDK library and development headers:
# Add the Qualcomm IoT PPA sudo apt-add-repository -y ppa:ubuntu-qcom-iot/qcom-ppa # Install GStreamer and the IM SDK sudo apt update sudo apt install -y gstreamer1.0-tools gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-qcom-good gstreamer1.0-qcom-sample-apps # Install the AI Engine Direct SDK library and development headers sudo apt install -y libqnn1 libsnpe1 libqnn-dev libsnpe-dev
Install OpenCL GPU drivers:
sudo apt update sudo apt install -y clinfo qcom-adreno1 # Reboot the device sudo reboot # Symlink OpenCL library to /usr/lib/ if [ ! -f /usr/lib/libOpenCL.so ]; then sudo ln -s /lib/aarch64-linux-gnu/libOpenCL.so.1.0.0 /usr/lib/libOpenCL.so fi # Verify installation clinfo # ... Should return # Number of platforms 1 # Platform Name QUALCOMM Snapdragon(TM) # Platform Vendor QUALCOMM # Platform Version OpenCL 3.0 QUALCOMM build: 0808.0.7
Tips & tricks
Using the built-in cameras
Your development kit has two built-in cameras, but you can only read data from the cameras using a GStreamer pipeline with the qtiqmmfsrc
plugin (part of the IM SDK).
For a Python example, see qc-ai-docs-examples-imsdk/rb3-builtin-cameras.
Or, to stream camera to data to a file, open a terminal on your device and run:
Large camera
mkdir -p out
gst-launch-1.0 qtiqmmfsrc name=camsrc camera=0 ! video/x-raw,width=1920,height=1080 ! jpegenc ! multifilesink location=out/frame%05d.jpg
Small camera
mkdir -p out
gst-launch-1.0 qtiqmmfsrc name=camsrc camera=1 ! video/x-raw,width=1280,height=720 ! jpegenc ! multifilesink location=out/frame%05d.jpg
This writes frames to the out/
directory.
Troubleshooting
No known issues for this development board.
Last updated