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

RB3 Gen 2 Vision Kit

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.

  1. If it's on, turn your RB3 Gen 2 Vision Kit off, and disconnect the power adapter.

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

  3. While flashing you'll need the 'F_DL' and 'Power' buttons. They are here:

    F_DL button
    F_DL button
    Power button
    Power button
  4. Now, depending on the OS on your computer:

  1. You need to swap out the Qualcomm USB driver for a WinUSB driver, otherwise you cannot flash the board.

    1. Download and unzip QDL:

    2. Disconnect the power adapter to your RB3 Gen 2 Vision Kit.

    3. Connect power adapter.

    4. Hold down the 'F_DL' button, and press the power button for 2 seconds (while you keep holding F_DL).

    5. In the QDL folder, find install_driver.bat. Right-click, and select "Run as administrator".

      QDL: install_driver.bat
    6. This should print something akin to:

      Total driver packages:  1
      Added driver packages:  1
      Successfully installed: qcserlib.inf
  2. Open a terminal, and run:

    Invoke-WebRequest -Uri https://cdn.edgeimpulse.com/qc-ai-docs/device-setup/rb3-gen2-vision-kit-ubuntu-desktop-24-windows.ps1 -OutFile "rb3-gen2-vision-kit-ubuntu-desktop-24-windows.ps1"
    .\rb3-gen2-vision-kit-ubuntu-desktop-24-windows.ps1

Configuring Ubuntu 24

Now that we have Ubuntu 24.04 installed, lets connect your RB3 Gen 2 Vision Kit to the internet.

  1. Either:

    • Hook up a display, keyboard, and mouse - and make sure you can open the terminal application on the device.

      When prompted to login, the default username is ubuntu and the default password is also ubuntu. You'll need to change these on first login.

    • Or, connect to the device using a serial port. You can either use your favorite serial terminal application (use baud rate 115200) or, on your computer:

      1. Install Node.js (on Windows: make sure to enable 'Tools for Native Modules').

      2. Install the Edge Impulse CLI by opening a command prompt or terminal window, and running:

        npm install -g edge-impulse-cli

        Issues with installing the Edge Impulse CLI? See the install instructions.

      3. You can now connect to your board via:

        edge-impulse-serial-terminal
        
        # [SER] Connecting to COM11 (baud rate 115200)
        # [SER] Connected to COM11. Press CTRL+D to quit.
      4. Once you are connected to the board, and you don't see any log messages anymore; press ENTER and log in with username ubuntu, password ubuntu:

        # Ubuntu 24.04.3 LTS ubuntu ttyMSM0
        #
        # ubuntu login: ubuntu

        To disconnect, press CTRL+D.

  2. 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
  3. Optional: If you want to connect over SSH:

    1. 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
    2. 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)

    3. Optional: Follow this guide to connect your board to Visual Studio Code via SSH for code development and deployment.

  4. 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

Installing drivers, AI Engine Direct and the IM-SDK

Now that we have Ubuntu 24.04 installed and connected to a network, let's install GPU drivers and the Qualcomm AI Engine Direct SDK (to run neural networks).

From the terminal or ssh session on your development board, run:

  1. Install some base packages:

    sudo apt update
    sudo apt install -y unzip wget curl python3 python3-pip python3-venv software-properties-common
  2. Download and install the AI Engine Direct SDK library and development headers:

    if [ ! -f /etc/apt/sources.list.d/ubuntu-qcom-iot-ubuntu-qcom-ppa-noble.list ]; then
        sudo apt-add-repository -y ppa:ubuntu-qcom-iot/qcom-ppa
    fi
    
    # Install the AI Engine Direct SDK library and development headers
    sudo apt install -y libqnn1 libsnpe1 libqnn-dev libsnpe-dev
  3. Install OpenCL GPU drivers:

    sudo apt update
    sudo apt install -y clinfo qcom-adreno1
    
    # 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
    
    # Reboot the device
    sudo reboot
    
    # 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-test-docs-examples/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

qdl: unable to open USB device

If you see qdl: unable to open USB device when flashing the board (on Windows) then make sure to update the driver using QDL's install_driver.bat (see above).

Last updated