> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Devices

> Connect and manage Qualcomm® dev kits — activate, flash, and communicate via ADB or SSH.

## Connecting a Device

The extension supports two connection protocols:

<CardGroup cols={2}>
  <Card title="ADB" icon="usb">
    Standard Android Debug Bridge connection over USB. Device must be connected
    and [udev rules](../setup/udev-rules) must be configured.
  </Card>

  <Card title="SSH" icon="terminal">
    Network-based connection. Supported on both Qualcomm Linux and Ubuntu. Add
    any device by IP address — useful for headless setups or devices on the same
    network.
  </Card>
</CardGroup>

## Available Devices

When a device is plugged into the host, it appears in the **Available Devices** section along with metadata such as dev kit type, serial number, connection status, and mode (USB, WiFi, etc.).

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/devices_available.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=86c20a8929cc42318d85393ed1b54212" alt="Available devices list" width="670" height="199" data-path="Tools/QVSCE/images/devices_available.png" />

## Activating a Device

1. Open the **Dashboard → Devices** section.
2. Locate your device in the **Available Devices** list.
3. Click **Activate**.

The activated device becomes the **Active Device** — the target for builds, deploys, flashes, and debug sessions. It shows connection mode (ADB or EDL) and available sample applications.

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/devices_active.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=22d4796b9b434d0a565d33420f4fc6fa" alt="Active device pane" width="654" height="346" data-path="Tools/QVSCE/images/devices_active.png" />

<Note>
  Only one device can be active at a time. Switching the active device
  automatically retargets all build and deploy operations.
</Note>

## Device Connectivity — WiFi

To connect a device to WiFi, open the connectivity options menu from the active device pane.

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/devices_connectivity_option.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=c090f14cf55dbe97615d00efed0b66c5" alt="Connectivity options menu" width="763" height="129" data-path="Tools/QVSCE/images/devices_connectivity_option.png" />

The extension lists available WiFi networks sorted by signal strength.

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/devices_available_networks.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=012b6f89db1cc37ec23d33a004bb39db" alt="Available WiFi networks" width="449" height="273" data-path="Tools/QVSCE/images/devices_available_networks.png" />

Select a network and enter the credentials. Once connected, the connectivity status appears next to the device.

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/devices_wifi_connected.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=6428f36d6112180f1290ff1b7a0fc5cb" alt="Device connected via WiFi" width="364" height="155" data-path="Tools/QVSCE/images/devices_wifi_connected.png" />

## Adding a Device by IP Address (SSH)

1. In the Devices section, click **Add Device**.
2. Enter the device IP address.
3. Select **SSH** as the connection method.
4. Click **Connect**.

## SSH Setup

SSH connections are supported for both Ubuntu and Qualcomm Linux devices. You will need:

* Target device powered on and accessible on the network
* SSH client installed on the host
* Both machines on the same network

### Device Setup

Get the device's IP address and username:

```bash theme={null}
ip addr show        # Ubuntu devices via UART
adb shell ip addr show   # QLI devices via ADB
```

Default usernames: **ubuntu** (Ubuntu OS) or **root** (Qualcomm Linux).

### Extension Configuration

Navigate to the Devices page and click the **Connect device via SSH** button to open the dialog.

<img src="https://mintcdn.com/qualcomm-prod/ajmq44Q1W0vLtUT4/Tools/QVSCE/images/ssh-setup-devices-page.png?fit=max&auto=format&n=ajmq44Q1W0vLtUT4&q=85&s=c35d8719441702988a082b51b0c0b393" alt="SSH setup — Devices page" width="650" height="507" data-path="Tools/QVSCE/images/ssh-setup-devices-page.png" />

There are two tabs:

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/ssh-setup-generate-key.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=24ee86dd3fb9e1629cd9e1059b3e8562" alt="SSH setup — Generate New SSH Key tab" width="1822" height="992" data-path="Tools/QVSCE/images/ssh-setup-generate-key.png" />

**Generate New SSH Key** — creates a new key pair on the host:

* **SSH Key Name** — name for the generated key file
* **SSH Key Folder** — directory to save the key (defaults to `~/.ssh`)
* **Private SSH Key Passphrase** — optional passphrase
* **Device Identifier** — enter either an IP Address (e.g. `10.92.162.215`) or Device Name (e.g. `mydevice.local`)
* **Device Username** — username on the device (e.g. `ubuntu`)
* **Device Password** — device password (used to copy the public key)
* **Port** — `22` (default)

Click **Create and Connect** to generate the key, copy it to the device, and connect.

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/ssh-setup-connection.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=3c603826c4b0a0c22ed3f82a8ca34a31" alt="SSH setup — Use Existing SSH Key tab" width="1842" height="1005" data-path="Tools/QVSCE/images/ssh-setup-connection.png" />

**Use Existing SSH Key** — connects with a key already on the host:

* **Private SSH Key File Path** — path to your existing private key (e.g. `~/.ssh/my-ssh`)
* **Private SSH Key Passphrase** — optional passphrase
* **Device Identifier** — IP Address or Device Name
* **Device Username** — username on the device
* **Device Password** — device password
* **Port** — `22` (default)

Click **Connect** to establish the SSH connection.

A successful connection looks like this:

<img src="https://mintcdn.com/qualcomm-prod/ajmq44Q1W0vLtUT4/Tools/QVSCE/images/ssh-setup-connection-successful.png?fit=max&auto=format&n=ajmq44Q1W0vLtUT4&q=85&s=5832e3874dfb26bf934b3779618e3be0" alt="SSH connection successful" width="577" height="650" data-path="Tools/QVSCE/images/ssh-setup-connection-successful.png" />

Activate the device to set it as the active target:

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/ssh-setup-active-device.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=8b65e088039f1168af3aec4613f62ee7" alt="SSH device activated" width="650" height="504" data-path="Tools/QVSCE/images/ssh-setup-active-device.png" />

## Flashing Device Software

<Steps>
  <Step title="Navigate to Downloads">
    Go to **Dashboard → Downloads → Device Software tab**.
  </Step>

  <Step title="Select the image">
    Choose the firmware image that matches your dev kit and OS.
  </Step>

  <Step title="Click Flash">
    Click the **Flash** button next to the image.

    <Warning>
      **Do not disconnect the device during flashing.** An interrupted flash can destabilize the device. Recovery may require multiple power-cycle + manual EDL + reflash cycles.
    </Warning>
  </Step>

  <Step title="Verify EDL mode (if flash fails)">
    If flashing fails, verify the device is in EDL mode:

    ```bash theme={null}
    lsusb
    ```

    Look for:

    ```text theme={null}
    Bus 002 Device 002: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
    ```
  </Step>
</Steps>

## Ubuntu Device Setup

For Rubik Pi and IQ-9075 EVK devices with Ubuntu OS, follow these steps after flashing:

1. From the Dashboard, navigate to the **Operating Systems** tab and click **Flash** to begin flashing the OS image. A dialog will direct you to EDL mode instructions.

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/dashboard-os-tab.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=18cf0b12bbdc4fd43c22db6192598292" alt="Dashboard — Operating Systems tab" width="650" height="357" data-path="Tools/QVSCE/images/dashboard-os-tab.png" />

2. Once the device enters EDL mode, it appears in the Available Devices section. Activate it, then go back to Dashboard and click **Flash**.

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/flash-dialog.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=34724c6c5b0402be0405beada756ff1f" alt="Flash dialog" width="598" height="172" data-path="Tools/QVSCE/images/flash-dialog.png" />

3. After flashing completes and the device shows as **Active**, click the **SDKs** tab in the Downloads section to configure the device with all required packages (approximately 15–20 minutes).

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/dashboard-sdk-tab.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=72eab2e8f90b4ea6d21334a2368860ec" alt="Dashboard — SDK tab" width="650" height="268" data-path="Tools/QVSCE/images/dashboard-sdk-tab.png" />

<Warning>
  If flashing fails, the device may need to be recovered. Do not disconnect the
  device during flashing.
</Warning>

### UFS Provisioning

If you encounter UFS-related issues, consult the provisioning guide for your specific hardware:

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/UFS.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=f8398cf49fb917c5ef726b881e3dc23f" alt="UFS provisioning" width="917" height="450" data-path="Tools/QVSCE/images/UFS.png" />

### CDT Configuration

Custom Device Tree (CDT) configuration may be required for some hardware setups:

<img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Tools/QVSCE/images/CDT.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=03eb09f46cd7ca8621a5aaccda521bab" alt="CDT configuration" width="917" height="451" data-path="Tools/QVSCE/images/CDT.png" />

## Change Overlay Configuration

The **Change Overlay Configuration** feature lets you switch the software overlay stack on your active device between Qualcomm Open Source and Qualcomm Proprietary implementations for individual hardware subsystems. This is useful when evaluating open-source drivers, testing proprietary optimized stacks, or reproducing issues specific to one software path.

<Note>
  Supported only on devices running **Qualcomm Linux 2.0**. Operates on the
  currently **active** device only. Ensure the correct device is set as active
  before applying changes.
</Note>

### Accessing the Feature

The **Change Overlay Configuration** option is in the three-dot overflow menu (⋮) on the active device card in the Dashboard.

1. Open the **Dashboard** and locate the **Active Device** section.
2. Click the **⋮** (More options) button on the right side of the active device card.
3. Select **Change Overlay Configuration** from the dropdown.

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/overlay_menu.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=3df5f3369f8313b0281ef19f76cff48c" alt="Active device card — ⋮ menu with Change Overlay Configuration option" width="1833" height="972" data-path="Tools/QVSCE/images/overlay_menu.png" />

### The Configuration Dialog

The dialog shows the currently running OS and a table with three columns:

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/overlay_dialog.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=25f0026625d00fa2987c4b000d8aad12" alt="Change Overlay Configuration dialog" width="1834" height="1014" data-path="Tools/QVSCE/images/overlay_dialog.png" />

| Column                   | Description                                                                 | Example values                                                 |
| ------------------------ | --------------------------------------------------------------------------- | -------------------------------------------------------------- |
| **Overlay**              | The hardware subsystem being configured                                     | Graphics, Video, Camera, Audio, Sensors                        |
| **Qualcomm Open Source** | Open-source driver/stack. Click to select. A dash (–) means none available. | Freedreno Graphics, Video, Libcamera Camera, ASoC Audio        |
| **Qualcomm Proprietary** | Qualcomm-optimized proprietary stack. Click to select.                      | Adreno Graphics, Video, CamX Camera, AudioReach Audio, Sensors |

The currently active selection for each row is visually highlighted.

**Available overlay rows:**

* **Graphics** — *Freedreno* (open-source Mesa/DRM) vs. *Adreno* (Qualcomm proprietary GPU driver)
* **Video** — Open-source vs. Qualcomm proprietary video stack
* **Camera** — *Libcamera* (open-source) vs. *CamX* (Qualcomm proprietary pipeline)
* **Audio** — *ASoC* (Linux ALSA/ASoC) vs. *AudioReach* (Qualcomm proprietary audio)
* **Sensors** — No open-source option (shown as –); Qualcomm proprietary stack only

**Bulk selection shortcuts** at the bottom of the table:

* **All Qualcomm Open Source** — Sets every configurable overlay to its open-source variant
* **All Qualcomm Proprietary** — Sets every configurable overlay to its Qualcomm proprietary variant

### Applying the Configuration

After making your selections, click **Apply Configuration** in the bottom-right corner. The dialog closes and the extension begins applying the overlays to the device.

The active device card immediately shows a progress bar:

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/overlay_refreshing.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=5e6cc8864b4e5f1974ad54029918f960" alt="Device card — refreshing package index" width="1847" height="1024" data-path="Tools/QVSCE/images/overlay_refreshing.png" />

<Warning>
  Do not disconnect the device or close VS Code while this step is in progress.
</Warning>

Depending on the number of overlays changed and network conditions, this may take several minutes.

### Post-Apply Status

**Success:** The device card shows **Overlay configuration applied successful** in green and returns to **Active – SSH** (or **Active – ADB**) status. A notification confirms: *Overlay configuration applied successfully.*

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/overlay_success.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=ce574dc0b5982cbe081f6db8176a922a" alt="Device card — overlay configuration applied successfully" width="1847" height="1060" data-path="Tools/QVSCE/images/overlay_success.png" />

<Tip>
  The device may reboot automatically after a successful overlay application. If
  it does, the device disappears from the Active Device card. Reconnect via SSH
  and reactivate it from the Available Devices section. To verify which overlays
  are applied, reopen the **Change Overlay Configuration** dialog from the ⋮
  menu.
</Tip>

**Failed application:** If the overlay could not be verified after installation, the device card shows **Overlay apply failed** in red:

<img src="https://mintcdn.com/qualcomm-prod/C3kDUdllcH5eq3jY/Tools/QVSCE/images/overlay_failed.png?fit=max&auto=format&n=C3kDUdllcH5eq3jY&q=85&s=9d5bbc91796b9acf41f21c71e9eef1c5" alt="Device card — overlay apply failed" width="1848" height="1050" data-path="Tools/QVSCE/images/overlay_failed.png" />

A notification toast provides additional detail: *Overlay installation successful! Failed to verify Overlay(s).*

## Verify Device in EDL mode

```bash theme={null}
lsusb
```

Expected output when in EDL / QDL mode:

```text theme={null}
Bus 002 Device 002: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
```
