IQ-9075 EVK

The Qualcomm IQ-9075 EVK is a powerful Linux-based evaluation kit based around the IQ-9075 SoC. It has a 6-core CPU, Adreno™ 663 GPU and 100 TOPS Hexagon™ NPU that can run 13B parameter LLM/VLM models. It's available from a variety of distributors like Lantronix.

IQ-9075 EVK

Setup

Installing Ubuntu 24.04

The IQ-9075 EVK does not come with an OS yet. You'll need to install Ubuntu 24.04 to follow the tutorials in this documentation.

  1. Connect power to the board, then connect the EVK to your computer using two USB cables.

    There are two variants of this board:

    1. Variant A:

      Connect the power adapter, then connect the EVK to your computer using both micro-USB and USB-C ports
      Connect the power adapter, then connect the EVK to your computer using both micro-USB and USB-C ports
    2. Variant B:

      TODO (asked Krishna)

  2. Toggle EDL mode on.

    • If you have board variant A: Toggle DIP switch 3 to 'ON':

      Toggle DIP switch 3 'ON' (here it's OFF)
      Toggle DIP switch 3 'ON' (here it's OFF)
    • If you have board variant B: Toggle DIP switch S2-8 to 'ON'.

      Toggle DIP switch S2-8 'ON' (here it's OFF)
      Toggle DIP switch S2-8 'ON' (here it's ON)
  3. 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. Turn your IQ-9075 EVK on via the power switch.

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

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

      Total driver packages:  1
      Added driver packages:  1
      Successfully installed: qcserlib.inf

      If you get an error, make sure DIP 3 / DIP S2-8 is switched 'ON', disconnect the power adapter and try again.

  2. Open a terminal, and run:

    Invoke-WebRequest -Uri https://cdn.edgeimpulse.com/qc-ai-docs/device-setup/iq9075-evk-ubuntu-desktop-24-windows.ps1 -OutFile "iq9075-evk-ubuntu-desktop-24-windows.ps1"
    .\iq9075-evk-ubuntu-desktop-24-windows.ps1 -FlashCdt -FlashUfs -FlashSail -FlashUbuntu
  1. Afterwards:

    • If you have board variant A: Toggle DIP switch 3 to 'OFF':

      Toggle DIP switch 3 'OFF' (here it's OFF)
      Toggle DIP switch 3 'OFF' (here it's OFF)
    • If you have board variant B: Toggle DIP switch S2-8 to 'ON'.

      Toggle DIP switch S2-8 'OFF' (here it's ON)
      Toggle DIP switch S2-8 'OFF' (here it's ON)
  2. Toggle power switch OFF, then switch it back ON. Your board will now boot up.

Configuring Ubuntu 24

Now that we have Ubuntu 24.04 installed, lets connect your IQ-9075 EVK to the internet.

  1. You need to 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
      
      # ? Which device do you want to connect to? (🔍 type to search) (Press <enter> to submit)
      # /dev/tty.usbserial-NNLRP17S001M0 (WNC)
      # /dev/tty.usbserial-NNLRP17S001M3 (WNC)
      # ❯ /dev/tty.usbserial-NNLRP17S001M1 (WNC)
      # /dev/tty.usbserial-NNLRP17S001M2 (WNC)
      
      # [SER] Connecting to /dev/tty.usbserial-NNLRP17S001M1 (baud rate 115200)
      # [SER] Connected to /dev/tty.usbserial-NNLRP17S001M1. Press CTRL+D to quit.

      The EVK exposes multiple serial ports; and it's unclear which is which (especially on Windows). On macOS it seems to be the port ending in M1. Try restarting the board while attaching to one of the ports, you should see boot messages from Ubuntu.

    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.

Your board is now ready. You can disconnect the USB-C to your computer cable (keep the micro-USB cable connected if you haven't set up SSH).

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:

    # Add the Qualcomm IoT PPA (if it doesn't exist yet)
    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

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