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

# Flash the robotics image

> Flash the QIR SDK robotics image onto your IQ-series development kit on Ubuntu, Windows, or macOS hosts.

You can configure the development kits supported by the QIR SDK using Ubuntu, Windows, and macOS® host computers. The procedure on this page **supplements** the EVK flashing guide — it replaces only the final image-flashing step with the QIR SDK robotics image.

<Note>
  **Note**

  You can also set up a virtual machine (VM) running Ubuntu 24.04 on Microsoft® Windows® or Apple® macOS®. For details, see [Qualcomm Linux Virtual Machine Setup Guide](../../Key-Documents/Virtual-Machine-Setup/virtual-machine-setup-overview).
</Note>

## Before you begin

Pick your development kit and keep the corresponding EVK flashing guide open in another tab — you will jump in and out of it during the procedure.

<Columns cols={2}>
  <Card title="IQ-9075 EVK flashing guide" icon="flash" href="../../Linux/devices/iq9075-evk/update-software/flash-over-qli">
    Standard procedure for flashing Qualcomm Linux software to the IQ-9075 Evaluation Kit.
  </Card>

  <Card title="IQ-8275 EVK flashing guide" icon="flash" href="../../Linux/devices/iq8275-evk/update-software/flash-over-qli">
    Standard procedure for flashing Qualcomm Linux software to the IQ-8275 Evaluation Kit.
  </Card>
</Columns>

## Prerequisites

You have downloaded the QIR SDK prebuilt package according to [Download the prebuilt packages](./download-the-prebuilt-packages).

## Flash robotics image to your Dragonwing™ device

<Tabs>
  <Tab title="Ubuntu">
    <Steps>
      <Step title="Configure device for flash.">
        Complete the following configurations according to your Dragonwing device.

        <Tabs>
          <Tab title="IQ-9075 EVK">
            [IQ-9075 EVK flash guide—Ubuntu host](../../Linux/devices/iq9075-evk/update-software/flash-over-qli#ubuntu)
          </Tab>

          <Tab title="IQ-8275 EVK">
            [IQ-8275 EVK flash guide—Ubuntu host](../../Linux/devices/iq8275-evk/update-software/flash-over-qli#ubuntu)
          </Tab>
        </Tabs>

        a. Download QDL.

        b. Set up QDL driver.

        c. Set up QDL path.

        d. Put the device in EDL mode.

        e. Provision UFS.

        f. Flash SAIL firmware.
      </Step>

      <Step title="Flash the robotics image.">
        Flash the robotics image using the `qcom-robotics-proprietary-image` you downloaded in [Download the prebuilt packages](./download-the-prebuilt-packages).

        1. Navigate to the main image folder.

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     cd <path-to-image>/images/iq-9075-evk/qcom-robotics-proprietary-image-iq-9075-evk
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     cd <path-to-image>/images/iq-8275-evk/qcom-robotics-proprietary-image-iq-8275-evk
                     ```
                   </CodeGroup>

        2. Flash the robotics image:

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     <qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     <qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
                     ```
                   </CodeGroup>

           The flash is complete when the final line reads:

           ```
           partition 1 is now bootable
           ```

                   <Note>
                     * Any sector-truncation warnings during flashing are harmless.
                     * If flashing fails at any point, disconnect the USB cable and power supply, reconnect them, and retry from the EDL mode step.
                   </Note>
      </Step>

      <Step title="Boot to the device terminal. ">
        1. Turn off the `SW2-3` DIP switch by pushing it down.
        2. Power-cycle the device. It boots into the newly flashed robotics image.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Windows">
    <Steps>
      <Step title="Configure device for flash.">
        Complete the following configurations according to your Dragonwing device.

        <Tabs>
          <Tab title="IQ-9075 EVK">
            [IQ-9075 EVK flash guide—Windows host](../../Linux/devices/iq9075-evk/update-software/flash-over-qli#windows)
          </Tab>

          <Tab title="IQ-8275 EVK">
            [IQ-8275 EVK flash guide—Windows host](../../Linux/devices/iq8275-evk/update-software/flash-over-qli#windows)
          </Tab>
        </Tabs>

        a. Download QDL.

        b. Set up QDL driver.

        c. Put the device in EDL mode.

        d. Provision UFS.

        e. Flash SAIL firmware.
      </Step>

      <Step title="Flash the robotics image.">
        Flash the robotics image using the `qcom-robotics-proprietary-image` you downloaded in [Download the prebuilt packages](./download-the-prebuilt-packages).

        1. Navigate to the main image folder.

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     cd <path-to-image>/images/iq-9075-evk/qcom-robotics-proprietary-image-iq-9075-evk
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     cd <path-to-image>/images/iq-8275-evk/qcom-robotics-proprietary-image-iq-8275-evk
                     ```
                   </CodeGroup>

        2. Flash the robotics image:

                   <Note>
                     Replace `<qdl_dir>` with your QDL folder path — Windows does not support wildcards, list all files explicitly.
                   </Note>

           **Command prompt**

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     "<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch0.xml patch1.xml patch2.xml patch3.xml patch4.xml
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     "<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch0.xml patch1.xml patch2.xml patch3.xml patch4.xml
                     ```
                   </CodeGroup>

           **PowerShell**

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     & "<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch0.xml patch1.xml patch2.xml patch3.xml patch4.xml 
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     & "<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch0.xml patch1.xml patch2.xml patch3.xml patch4.xml 
                     ```
                   </CodeGroup>

           The flash is complete when the final line reads:

           ```
           partition 1 is now bootable
           ```

                   <Note>
                     If flashing fails at any point, disconnect the USB cable and power supply, reconnect them, and retry from the EDL mode step.
                   </Note>
      </Step>

      <Step title="Boot to the device terminal. ">
        1. Turn off the `SW2-3` DIP switch by pushing it down.
        2. Power-cycle the device. It boots into the newly flashed robotics image.
      </Step>
    </Steps>
  </Tab>

  <Tab title="macOS">
    <Steps>
      <Step title="Configure device for flash.">
        Complete the following configurations according to your Dragonwing device.

        <Tabs>
          <Tab title="IQ-9075 EVK">
            [IQ-9075 EVK flash guide—macOS host](../../Linux/devices/iq9075-evk/update-software/flash-over-qli#macos)
          </Tab>

          <Tab title="IQ-8275 EVK">
            [IQ-8275 EVK flash guide—macOS host](../../Linux/devices/iq8275-evk/update-software/flash-over-qli#macos)
          </Tab>
        </Tabs>

        a. Download QDL.

        b. Set up QDL path.

        c. Put the device in EDL mode.

        d. Provision UFS.

        e. Flash SAIL firmware.
      </Step>

      <Step title="Flash the robotics image.">
        Flash the robotics image using the `qcom-robotics-proprietary-image` you downloaded in [Download the prebuilt packages](./download-the-prebuilt-packages).

        1. Navigate to the main image folder.

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     cd <path-to-image>/images/iq-9075-evk/qcom-robotics-proprietary-image-iq-9075-evk
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     cd <path-to-image>/images/iq-8275-evk/qcom-robotics-proprietary-image-iq-8275-evk
                     ```
                   </CodeGroup>

        2. Flash the robotics image:

                   <CodeGroup>
                     ```bash IQ-9075 EVK theme={null}
                     <qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
                     ```

                     ```bash IQ-8275 EVK theme={null}
                     <qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
                     ```
                   </CodeGroup>

           The flash is complete when the final line reads:

           ```
           partition 1 is now bootable
           ```

                   <Note>
                     * Any sector-truncation warnings during flashing are harmless.
                     * If flashing fails at any point, disconnect the USB cable and power supply, reconnect them, and retry from the EDL mode step.
                   </Note>
      </Step>

      <Step title="Boot to the device terminal. ">
        1. Turn off the `SW2-3` DIP switch by pushing it down.
        2. Power-cycle the device. It boots into the newly flashed robotics image.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Check the Qualcomm Linux version

To check the Qualcomm Linux version, run the following command in your device shell:

```powershell theme={null}
cat /etc/os-release
```

The output shows the Qualcomm Linux version. TODO: UPDATE RELEASE INFO

```bash theme={null}
ID=qcom-robotics-distro
NAME="Qualcomm Linux Robotics Reference Distro with ROS"
VERSION="2.0"
VERSION_ID=2.0
PRETTY_NAME="Qualcomm Linux Robotics Reference Distro with ROS 2.0"
CPE_NAME="cpe:/o:openembedded:qcom-robotics-distro-catchall:2.0"
BUILD_ID="TODO: update build id based on nightly build ID if need"

```

## Result

You have flashed the robotics image onto the device and are able to connect to the device using SSH.

## Next step

[Set up for running sample applications](./set-up-env-for-sample-app)
