# User guide
- noautosectionlabel:
-
## Dashboard
The dashboard page acts as the landing page for the extension. It allows a user to view the *active device*, the *ai models*, the recent *projects* as well as *downloads*. It provides a snapshot of the device, the host as well as the extension in a single page.
### Active Device
The device pane shows the device connected to the host. It allows a user to view device metadata and sample (i.e. preinstalled) apps available on the device. It also allows users a convenient way to execute these apps and view the output. For example, a user will be able to execute the *gst-ai-face-detection* GStreamer application to test face detection on RB3 Gen2 Vision kit. The pane also provides a convenient mechanism to lookup apps available on the device within the extension.

### Projects pane
The projects section shows the recent projects the user has worked on. Users can open projects, create new ones and view all the projects from this section.

### AI models pane
The AI models section lists the models that have been recently used. It also lists the models available on [Qualcomm AI Hub](https://aihub.qualcomm.com/).

### Downloads
The downloads section displays software being downloaded / installed on the host. This allows a user to tracks downloads in progress while they continue to use other functionality available in the extension.

The section also lists software already downloaded / installed on the host.

#### Device flashing
Device flashing allows a user to load a new platform image onto the device. Platform images are available inside the downloaded SDK. After the SDK has been installed, the *Flash* button is enabled.

Clicking on *Flash* sets the device to Emergency download (EDL) mode. It also starts the device flash process.

The extension uses [Qualcomm Device Loader (QDL)](https://softwarecenter.qualcomm.com/catalog/item/Qualcomm_Device_Loader) to flash the platform image onto the device. The progress is shown in the VSCode terminal. Once the flashing is complete, the device reboots and is available in the [Active Device](https://docs.qualcomm.com/doc/80-79972-1/topic/user_guide.html#active-device) pane.

## Projects
Projects enable the software development workflow within the extension. It allows you to manage your projects as well as import sample projects supported by the SDK. The user can start with a blank template by selecting *New Project* option. The user can choose a folder on his local host to setup the project.

After the project has been setup, the VSCode workspace is opened with the project folder. This allows a user to start developing the application, build & deploy it on the device.

Recent projects can be accessed from the grid in the projects section.

### Sample Projects
- The extension also lists project templates that are available in the SDK. These templates can be imported and allow users to build apps similar to ones pre-installed on the device.

- Once you import a project, it is available on disk and can be opened in VSCode.

Note
Please ensure you click ‘Yes, I trust the authors’ and accept ‘Resetting the workspace configuration’ dialogs.
- After a project is opened, developers can explore the source code of the sample applications, modify and experiment with it. The Auto-configured VSCode Workspace ensures that intellisense capabilities are enabled, making it easier for developers to navigate the source code.

Tip
Workspace configuration files in .vscode folder are auto-generated by extension to enable various functionalities of VSCode.
- Sample projects have an ‘application configuration’ file using which application behavior can be configured.
- Sample projects can be reset to their original state using the ‘Reset Project’ command in the project context menu. This allows developers to revert any changes made to the project and start fresh.

## Devices
The **Devices** screen allows you to manage devices linked to the extension. This includes devices that are connected to the host as well as remote devices.
Tip
Soon, users will be able to attach devices hosted on Qualcomm Device Cloud to their extension.
The devices page is divided into 2 sections:
**Available devices**
When a device is plugged into the host system, it will show up in this section. Device metadata including development kit type, the serial number, connection status and connection mode (USB, WiFi, etc.) are displayed.

There can be more than one available device. Users can **Activate** a device to work on it. This action moves the device to the *Active device* section.
**Active device**
This section shows the device that is currently set in the VSCode global context. All actions will be carried out against this device. In addition to displaying device metadata (serial number, connected status, etc.), it also shows the connected mode. In the context of the extension, a device can be in one of 2 modes:
1. - ADB:
- In this mode, the device has booted into Android. Users will be able to run applications, deploy projects, etc. This is the normal operating status of the device.
2. - EDL:
- Also known as *Emergency Download Mode*, a device enters this state when it crashes (or through a user initiated action). A user will be able to load new firmware images in this mode. A user can power cycle the device to exit the EDL mode.
The applications pane shows the various sample / preinstalled applications on the device.

Note
Currently, only one device can be \_active\_ in the extension.
The user can remove the active device which results in the device being reset from the global context.
### Device connectivity
A user can connect a device to WiFi using the extension. To being with, a user has to select the connectivity options menu from the active device pane.

This displays the WiFi networks that are available to the device connected to the extension. The networks are sorted based on signal strength.

The user can select one of the WiFi networks and connect the *device* to it by providing the network credentials. Once a connection is established, the connectivity status is listed next to the device.

### SSH Setup
You can set up SSH connections for remote debugging on Ubuntu and QLI devices. Before starting, ensure you have:
>
>
> - Target device (Ubuntu or QLI) powered on and accessible
> - Host machine with SSH client installed
> - Both machines connected to the same network
> - Administrative access to both machines
#### Device Setup
You’ll need two pieces of information from your target device:
>
>
> 1. **IP Address**: Run the appropriate command based on your device type. Look for the IP address under your network interface (usually wlan0 for Wi-Fi or eth0 for Ethernet). The IP will be in the format 192.168.x.x or 10.x.x.x.
>
>
>
>
> >
> >
> > ip addr show # For Ubuntu devices via UART
> > adb shell ip addr show # For QLI devices via ADB shell
> > Copy to clipboard
>
>
> 2. **Username**: You can pick a customized user that you may have setup on the device or use the default username (**ubuntu** for Ubuntu or **root** for QLI).
#### Host Setup
- **Step 1**: Navigate to the devices page in your development environment and open the dialog to setup SSH.

- **Step 2**: Create a secure SSH key pair for authentication and replace <key_name> with a descriptive name
ssh-keygen -f ~/.ssh/ -t ecdsa -b 521
Copy to clipboard
Note
If you use an SSH Passphrase, record this passphrase as you’ll need it later during connection setup.
Please install sshpass on your host machine if you plan to use passphrase: `sudo apt install sshpass`
- **Step 3**: Copy your public key to the target device and replace the placeholders: <key_name>, <username>, and <host_ip>
ssh-copy-id -i ~/.ssh/.pub @
Copy to clipboard
- **Step 4**: Verify that your SSH connection works correctly after replacing the placeholders as you did previously:
ssh -i ~/.ssh/ @
Copy to clipboard
Once connected successfully, you should be logged into the remote device without entering a password. You may be prompted to accept the device’s fingerprint upon first connection. If you are unable to connect to the device, double-check IP address, username, and key file path.
#### Extension Configuration
In the “Connect device via SSH” dialog, complete the connection form:

- **Form fields:**
- - **Private Key File**: Use the file picker to select your private SSH key file path (~/.ssh/<key_name>)
- **Passphrase**: Enter the passphrase you created during key generation (if applicable)
- **Host IP**: Enter the device IP address from Device Setup
- **Username**: Enter the device username from Device Setup
- **Port**: Use 22 (default SSH port) unless your device uses a custom port
A successful connection will look like the following:

Next, activate your device which is now connected via Wi-Fi.

### Ubuntu Device Setup
To configure a Rubik Pi or IQ-9075 EVK device with an Ubuntu image, please follow these steps:
1. From the Dashboard page, navigate to the **Operating Systems** tab and click **Flash** to begin flashing the OS image to your development kit. A dialog will appear directing you to [EDL Switch instructions](https://www.thundercomm.com/rubik-pi-3/en/docs/rubik-pi-3-user-manual/1.0.0-u/set-up-your-device#enter-into-edl-mode) for connecting your Rubik Pi device and entering Emergency Download (EDL) mode.

2. Once your device enters EDL mode, the VSCode extension will detect it in the **Available Devices** section on the Devices page. Activate the device to enable automatic OS image flashing, then go back to the Dashboard page and click **Flash** to proceed.

3. Upon completion of flashing, the VSCode extension will display a dialog with [WiFi Connectivity and SSH instructions](https://www.thundercomm.com/rubik-pi-3/en/docs/rubik-pi-3-user-manual/1.0.0-u/set-up-your-device#power-on-the-device) for resetting the Ubuntu password and connecting your device to WiFi.
4. Use [SSH Setup](https://docs.qualcomm.com/doc/80-79972-1/topic/user_guide.html#ssh-setup) to add the device. The device will appear in the Available Devices section where you can activate it.
5. After the device is flashed and shows as **Active** in the Devices section, click the **SDKs** tab in the Downloads section of the dashboard to configure your device with all required packages. This process takes approximately 15-20 minutes.

## Status bar
The extension supports a status bar which allows a user to carry out various actions on a device. The status bar is integrated with VSCode’s global context and allows a user execute various actions (build, run, etc.) outside the context of the extension. For example, a user can debug a project from the workspace menu on the *active device* by selecting the appropriate action on the status bar.
>
>
> 
The details for each of these actions is given below:
>
>
> 1. - Build:
>
> - Compile & build the project loaded into the workspace.
> 2. - Deploy:
>
> - Deploy the project (i.e. executable) built from the project on the active device. The executable is copied to */usr/local/bin*. This action also builds the project.
> 3. - Run:
>
> - The run action executes the project on the device. The execution is facilitated through the *adb shell* command. The shell output is displayed in the VSCode terminal.
> 4. - Preset:
>
> - *(Deprecated)* The preset command is used to setup preinstalled applications on the device. This includes downloading & deploying various AI models, updating configuration files, etc.
>
>
>
> Warning
>
>
> This action is deprecated and will be removed in future releases.
>
> 5. - Refresh device:
>
> - This action scans the USB ports to detect any new connected devices.
>
>
>
> Note
>
>
> The extension listens to device events to automatically identify connected Qualcomm devices.
>
> 6. - Device identifier:
>
> - This section shows the name of the active device.
## AI Models
This section allows a user to manage the AI model catalog. It allows a user to download models, flash them onto the device and browse the AI catalog.
### My Models
The my models section lists the models that have been downloaded to the host. It also includes models that have been quantized. These models can be flashed on the device associated with the extension. The models are uploaded to the */etc/models* folder on the device. The models uploaded to the device are tracked by the extension and shown with a *Flashed* label.

### Model catalog
The model catalog allows a user to browse all models that available in Qualcomm AI Hub. It provides an option to download these models on the host.

The catalog supports filtering based on device & model type.

Users can download the AI Models simply by clicking the “Download” button on the AI model card. The models will be downloaded to a default location: ~/.qualcomm/qvsce/tmp/ai-models.

### Model Profiling
Profiling a model refers to analyzing the performance and behavior of the model under different conditions. It provides the user feedback on the model’s inference time and memory usage. Profiling can be done on AI Hub or on the user’s connected device.

Note
To access profiling and customizing functionalities on the AI Hub, the user must obtain an [AI Hub token](https://app.aihub.qualcomm.com/account/) under the “Your Account” section
To profile, the user will be prompted to input the device type.

Users can then view the most recent profiling results on the IDE in the dropdown shown in the “Functionality” section above once they are available.

### Model Customization
Customizing an AI model entails modifying or adapting an existing model for a more specific use case or environment. If the imported model file is a .pt or .onnx file, the customize button on the AI model card allows user to input parameters for the model to compile on the AI hub, resulting in a .tflite file for that imported model. .tflite files are not available for compilation on AI Hub. Users can also update the model name and description to help identify the model and distinguish it from the downloaded model.

### BYOM (Bring your own model)
The bring your own model workflow allows users to upload their own AI models for profiling and customizing, which allows sensitive data to stay within their infrastructure and specialized tuning for models tailored to the user.

Users can import AI models in .tflite, .onnx, and .pt (PyTorch) formats. Supported model formats have different functionalities, as summarized in the table below:
| Model Type | Flash to Device | Profile on AI Hub | Profile on Local Device | Customize on AI Hub |
| --- | --- | --- | --- | --- |
| .tflite | Yes | Yes | Yes | No |
| .onnx | No | Yes | Yes | Yes |
| .pt | No | No | Yes | Yes |
The AI model card displays the full path of the AI Model, including file path and extension, so the user can differentiate between AI Models with the same name but different extension.
Last Published: Oct 22, 2025
[Previous Topic
Quick Start](https://docs.qualcomm.com/bundle/publicresource/80-79972-1/topics/quick_start.md)