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

# Camera QuickStart Guide

> Connect camera sensors to your reference hardware platform and stream using GStreamer and V4L2 APIs — QCS6490, IQ-9075-EVK, IQ-8275-EVK, and IQ615.

<div style={{display:'flex',gap:'8px',flexWrap:'wrap',marginBottom:'16px'}}>
  <span style={{background:'#ede9fe',color:'#5b21b6',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>QCS6490</span>
  <span style={{background:'#ede9fe',color:'#5b21b6',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>IQ-9075-EVK</span>
  <span style={{background:'#ede9fe',color:'#5b21b6',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>IQ-8275-EVK</span>
  <span style={{background:'#ede9fe',color:'#5b21b6',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>IQ615</span>
  <span style={{background:'#f0fdf4',color:'#166534',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>Stable</span>
</div>

<CardGroup cols={4}>
  <Card title="MIPI CSI" icon="camera">Multi-platform support</Card>
  <Card title="GStreamer" icon="microchip">Primary API</Card>
</CardGroup>

***

This page describes how to connect camera sensors to your reference hardware platform and make it up and running in 3 Simple steps.

***

<Tabs>
  <Tab title="QCS6490">
    ### 📸 Get QCS6490 Camera Up and Running in 3 Simple Steps

    <Steps>
      <Step title="🔌 Plug & Play: Camera Hardware Setup">
        <Accordion title="Camera Setup">
          QCS6490 ships with both IMX577 and OV9282 pre-connected, as shown below.

          <div className="flex flex-col items-center gap-2">
            <img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Camera/images/camera_module_connection_2.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=d50769e4ebb4c48fe5122e28ae30bdea" width="411" height="297" data-path="archives/2.1/Technologies/Camera/images/camera_module_connection_2.png" />
          </div>
        </Accordion>
      </Step>

      <Step title="🧰 Ready Check: Prerequisites">
        <Accordion title="Prerequisites">
          <Note>
            Connect to the device console using SSH. <br />
            See [How To SSH?](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh) for instructions.
          </Note>

          <Steps>
            <Step title="Enable camera functionality">
              <Tip>
                We recommend using the [Qualcomm Launcher](https://dragonwingdocs.qualcomm.com/Tools/Qualcomm-Launcher/flash-os#flashing-steps) tool for build flashing, as it handles all required configurations internally. If you are not using Qualcomm Launcher, follow the manual steps below to enable camera functionality.
              </Tip>

              Flash the Config2 image to use gst-launch-1.0 and the GStreamer plugins.
              On Qualcomm Linux 2.0, qcom-multimedia-proprietary-image includes the downstream camera packages by default, but camera functionality is not enabled automatically.
              Enable camera support on qcom-multimedia-proprietary-image by running the following command in the device shell:

              ```bash Terminal theme={null}
              echo -n "camx" > /var/data
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
              sync
              reboot
              ```

              <Note>
                **To switch back from the Config2 image to the Config1 image, pass the `null` string to the `efivar` overlay instead of `camx`, then reboot the device:**

                ```bash Terminal theme={null}
                echo -n "null" > /var/data
                efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
                sync
                reboot
                ```
              </Note>
            </Step>

            <Step title="Clear GStreamer registry (if needed)">
              If a GStreamer command was executed before enabling the camera overlay, the GStreamer registry must be cleared after enabling the camera overlay. Run the following command to clear the registry:

              ```bash Terminal theme={null}
              rm ~/.cache/gstreamer-1.0/registry.aarch64.bin
              ```
            </Step>

            <Step title="Log Level Tuning (if needed)">
              Camera use-cases are expected to run on a performance (perf) build for optimal results. On default builds, reduce the kernel console log level as shown below:

              ```bash Terminal theme={null}
              echo 4 > /proc/sys/kernel/printk
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>

      <Step title="🎥 Action! Start Video Capture">
        <Accordion title="Capture Video">
          #### Video encoding

          <Steps>
            <Step title="Run the pipeline">
              Run the following command in the device terminal:

              ```bash GStreamer (MP4 Record) theme={null}
              gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
              video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,\
              interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
              capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
              video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/mux_avc.mp4
              ```

              This command starts the camera with 720p at 30 FPS configuration and saves it as a video file after h264 video encoding. If the gst pipeline status is changed to "PLAYING", this indicates the camera is running.

              To stop the camera, press **CTRL+C**.
            </Step>

            <Step title="Pull recorded content">
              `/opt/mux_avc.mp4` is generated on the device. The recorded content can be pulled from the device by running the following scp command on the host PC:

              ```bash SCP (SSH) theme={null}
              $ scp -r root@[ip-addr]:/opt/mux_avc.mp4 .
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>
    </Steps>
  </Tab>

  <Tab title="IQ-8275-EVK">
    ### 📸 Get IQ-8275-EVK Camera up and running in 3 Simple steps.

    <Steps>
      <Step title="🔌 Plug & Play: Camera Hardware Setup">
        <Accordion title="Camera Setup">
          Connect the IMX577 MIPI camera sensor to any of the MIPI CSI slots of the IQ-8275-EVK device.

          <div className="flex flex-col items-center gap-2">
            <img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Camera/images/rb4_core_kit_mipi_connectors.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=1f746a687b95c215861fde948cce35ec" width="409" height="284" data-path="archives/2.1/Technologies/Camera/images/rb4_core_kit_mipi_connectors.png" />
          </div>
        </Accordion>
      </Step>

      <Step title="🧰 Ready Check: Prerequisites">
        <Accordion title="Prerequisites">
          <Note>
            Connect to the device console using SSH. <br />
            See [How To SSH?](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh) for instructions.
          </Note>

          <Steps>
            <Step title="Enable camera functionality">
              <Tip>
                We recommend using the [Qualcomm Launcher](https://dragonwingdocs.qualcomm.com/Tools/Qualcomm-Launcher/flash-os#flashing-steps) tool for build flashing, as it handles all required configurations internally. If you are not using Qualcomm Launcher, follow the manual steps below to enable camera functionality.
              </Tip>

              Flash the Config2 image to use gst-launch-1.0 and the GStreamer plugins.
              On Qualcomm Linux 2.0, qcom-multimedia-proprietary-image includes the downstream camera packages by default, but camera functionality is not enabled automatically.
              Enable camera support on qcom-multimedia-proprietary-image by running the following command in the device shell:

              ```bash Terminal theme={null}
              echo -n "camx" > /var/data
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
              sync
              reboot
              ```

              <Note>
                **To switch back from the Config2 image to the Config1 image, pass the `null` string to the `efivar` overlay instead of `camx`, then reboot the device:**

                ```bash Terminal theme={null}
                echo -n "null" > /var/data
                efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
                sync
                reboot
                ```
              </Note>
            </Step>

            <Step title="Clear GStreamer registry (if needed)">
              If a GStreamer command was executed before enabling the camera overlay, the GStreamer registry must be cleared after enabling the camera overlay. Run the following command to clear the registry:

              ```bash Terminal theme={null}
              rm ~/.cache/gstreamer-1.0/registry.aarch64.bin
              ```
            </Step>

            <Step title="Log Level Tuning (if needed)">
              Camera use-cases are expected to run on a performance (perf) build for optimal results. On default builds, reduce the kernel console log level as shown below:

              ```bash Terminal theme={null}
              echo 4 > /proc/sys/kernel/printk
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>

      <Step title="🎥 Action! Start Video Capture">
        <Accordion title="Capture Video">
          #### Video encoding

          <Steps>
            <Step title="Run the pipeline">
              Run the following command in the device terminal:

              ```bash GStreamer (MP4 Record) theme={null}
              gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
              video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,\
              interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
              capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
              video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/mux_avc.mp4
              ```

              This command starts the camera with 720p at 30 FPS configuration and saves it as a video file after h264 video encoding. If the gst pipeline status is changed to "PLAYING", this indicates the camera is running.

              To stop the camera, press **CTRL+C**.
            </Step>

            <Step title="Pull recorded content">
              `/opt/mux_avc.mp4` is generated on the device. The recorded content can be pulled from the device by running the following scp command on the host PC:

              ```bash SCP (SSH) theme={null}
              $ scp -r root@[ip-addr]:/opt/mux_avc.mp4 .
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>
    </Steps>
  </Tab>

  <Tab title="IQ-9075-EVK">
    ### 📸 Get IQ-9075-EVK Camera up and running in 3 Simple steps.

    <Steps>
      <Step title="🔌 Plug & Play: Camera Hardware Setup">
        <Accordion title="Camera Setup">
          Connect the IMX577 MIPI camera sensor to any of the MIPI CSI slots of the IQ-9075-EVK device.

          <div className="flex flex-col items-center gap-2">
            <img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Camera/images/mipi_hardware_connectivity.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=0604b7969b3d46b244175b0330c89c1b" width="424" height="324" data-path="archives/2.1/Technologies/Camera/images/mipi_hardware_connectivity.png" />
          </div>
        </Accordion>
      </Step>

      <Step title="🧰 Ready Check: Prerequisites">
        <Accordion title="Prerequisites">
          <Note>
            Connect to the device console using SSH. <br />
            See [How To SSH?](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh) for instructions.
          </Note>

          <Steps>
            <Step title="Enable camera functionality">
              <Tip>
                We recommend using the [Qualcomm Launcher](https://dragonwingdocs.qualcomm.com/Tools/Qualcomm-Launcher/flash-os#flashing-steps) tool for build flashing, as it handles all required configurations internally. If you are not using Qualcomm Launcher, follow the manual steps below to enable camera functionality.
              </Tip>

              Flash the Config2 image to use gst-launch-1.0 and the GStreamer plugins.
              On Qualcomm Linux 2.0, qcom-multimedia-proprietary-image includes the downstream camera packages by default, but camera functionality is not enabled automatically.
              Enable camera support on qcom-multimedia-proprietary-image by running the following command in the device shell:

              ```bash Terminal theme={null}
              echo -n "camx" > /var/data
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
              sync
              reboot
              ```

              <Note>
                **To switch back from the Config2 image to the Config1 image, pass the `null` string to the `efivar` overlay instead of `camx`, then reboot the device:**

                ```bash Terminal theme={null}
                echo -n "null" > /var/data
                efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
                sync
                reboot
                ```
              </Note>
            </Step>

            <Step title="Clear GStreamer registry (if needed)">
              If a GStreamer command was executed before enabling the camera overlay, the GStreamer registry must be cleared after enabling the camera overlay. Run the following command to clear the registry:

              ```bash Terminal theme={null}
              rm ~/.cache/gstreamer-1.0/registry.aarch64.bin
              ```
            </Step>

            <Step title="Log Level Tuning (if needed)">
              Camera use-cases are expected to run on a performance (perf) build for optimal results. On default builds, reduce the kernel console log level as shown below:

              ```bash Terminal theme={null}
              echo 4 > /proc/sys/kernel/printk
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>

      <Step title="🎥 Action! Start Video Capture">
        <Accordion title="Capture Video">
          #### Video encoding

          <Steps>
            <Step title="Run the pipeline">
              Run the following command in the device terminal:

              ```bash GStreamer (MP4 Record) theme={null}
              gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
              video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,\
              interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
              capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
              video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/mux_avc.mp4
              ```

              This command starts the camera with 720p at 30 FPS configuration and saves it as a video file after h264 video encoding. If the gst pipeline status is changed to "PLAYING", this indicates the camera is running.

              To stop the camera, press **CTRL+C**.
            </Step>

            <Step title="Pull recorded content">
              `/opt/mux_avc.mp4` is generated on the device. The recorded content can be pulled from the device by running the following scp command on the host PC:

              ```bash SCP (SSH) theme={null}
              $ scp -r root@[ip-addr]:/opt/mux_avc.mp4 .
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>
    </Steps>
  </Tab>

  <Tab title="IQ615">
    ### 📸 Get IQ615 Camera up and running in 3 Simple steps.

    <Steps>
      <Step title="🔌 Plug & Play: Camera Hardware Setup">
        <Accordion title="Camera Setup">
          Connect the IMX577 MIPI camera sensor to the CAM1 slot of the IQ615 device.

          <div className="flex flex-col items-center gap-2">
            <img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Camera/images/615-board-connectors.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=36706f55b34451146bb02e77abef7446" width="681" height="358" data-path="archives/2.1/Technologies/Camera/images/615-board-connectors.png" />
          </div>
        </Accordion>
      </Step>

      <Step title="🧰 Ready Check: Prerequisites">
        <Accordion title="Prerequisites">
          <Note>
            Connect to the device console using SSH. <br />
            See [How To SSH?](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh) for instructions.
          </Note>

          <Steps>
            <Step title="Enable camera functionality">
              <Tip>
                We recommend using the [Qualcomm Launcher](https://dragonwingdocs.qualcomm.com/Tools/Qualcomm-Launcher/flash-os#flashing-steps) tool for build flashing, as it handles all required configurations internally. If you are not using Qualcomm Launcher, follow the manual steps below to enable camera functionality.
              </Tip>

              Flash the Config2 image to use gst-launch-1.0 and the GStreamer plugins.
              On Qualcomm Linux 2.0, qcom-multimedia-proprietary-image includes the downstream camera packages by default, but camera functionality is not enabled automatically.
              Enable camera support on qcom-multimedia-proprietary-image by running the following command in the device shell:

              ```bash Terminal theme={null}
              echo -n "camx" > /var/data
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
              sync
              reboot
              ```

              <Note>
                **To switch back from the Config2 image to the Config1 image, pass the `null` string to the `efivar` overlay instead of `camx`, then reboot the device:**

                ```bash Terminal theme={null}
                echo -n "null" > /var/data
                efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
                sync
                reboot
                ```
              </Note>
            </Step>

            <Step title="Clear GStreamer registry (if needed)">
              If a GStreamer command was executed before enabling the camera overlay, the GStreamer registry must be cleared after enabling the camera overlay. Run the following command to clear the registry:

              ```bash Terminal theme={null}
              rm ~/.cache/gstreamer-1.0/registry.aarch64.bin
              ```
            </Step>

            <Step title="Log Level Tuning (if needed)">
              Camera use-cases are expected to run on a performance (perf) build for optimal results. On default builds, reduce the kernel console log level as shown below:

              ```bash Terminal theme={null}
              echo 4 > /proc/sys/kernel/printk
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>

      <Step title="🎥 Action! Start Video Capture">
        <Accordion title="Capture Video">
          #### Video encoding

          <Steps>
            <Step title="Run the pipeline">
              Run the following command in the device terminal:

              ```bash GStreamer (MP4 Record) theme={null}
              gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
              video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,\
              interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
              capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
              video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/mux_avc.mp4
              ```

              This command starts the camera with 720p at 30 FPS configuration and saves it as a video file after h264 video encoding. If the gst pipeline status is changed to "PLAYING", this indicates the camera is running.

              To stop the camera, press **CTRL+C**.
            </Step>

            <Step title="Pull recorded content">
              `/opt/mux_avc.mp4` is generated on the device. The recorded content can be pulled from the device by running the following scp command on the host PC:

              ```bash SCP (SSH) theme={null}
              $ scp -r root@[ip-addr]:/opt/mux_avc.mp4 .
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>
    </Steps>
  </Tab>

  <Tab title="IQx7181">
    ### 📸 Get IQx7181 Camera up and running in 3 Simple steps.

    <Steps>
      <Step title="🔌 Plug & Play: Camera Hardware Setup">
        <Accordion title="Camera Setup">
          Connect the IMX577 MIPI camera sensor to the CAM1 (CSI1 22-pin) slot of the IQx7181 device.

          <div className="flex flex-col items-center gap-2">
            <img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Camera/images/x7181-board-connectors.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=897993ccfb5e44dc5f316e0210bf5d4c" alt="IQx7181 EVK CSI connector locations" width="501" height="718" data-path="archives/2.1/Technologies/Camera/images/x7181-board-connectors.png" />
          </div>
        </Accordion>
      </Step>

      <Step title="🧰 Ready Check: Prerequisites">
        <Accordion title="Prerequisites">
          <Note>
            Connect to the device console using SSH. <br />
            See [How To SSH?](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh) for instructions.
          </Note>

          <Steps>
            <Step title="Enable camera functionality">
              <Tip>
                We recommend using the [Qualcomm Launcher](https://dragonwingdocs.qualcomm.com/Tools/Qualcomm-Launcher/flash-os#flashing-steps) tool for build flashing, as it handles all required configurations internally. If you are not using Qualcomm Launcher, follow the manual steps below to enable camera functionality.
              </Tip>

              Flash the Config2 image to use gst-launch-1.0 and the GStreamer plugins.
              On Qualcomm Linux 2.0, qcom-multimedia-proprietary-image includes the downstream camera packages by default, but camera functionality is not enabled automatically.
              Enable camera support on qcom-multimedia-proprietary-image by running the following command in the device shell:

              ```bash Terminal theme={null}
              echo -n "camx" > /var/data
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
              sync
              reboot
              ```

              <Note>
                **To switch back from the Config2 image to the Config1 image, pass the `null` string to the `efivar` overlay instead of `camx`, then reboot the device:**

                ```bash Terminal theme={null}
                echo -n "null" > /var/data
                efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
                sync
                reboot
                ```
              </Note>
            </Step>

            <Step title="Clear GStreamer registry (if needed)">
              If a GStreamer command was executed before enabling the camera overlay, the GStreamer registry must be cleared after enabling the camera overlay. Run the following command to clear the registry:

              ```bash Terminal theme={null}
              rm ~/.cache/gstreamer-1.0/registry.aarch64.bin
              ```
            </Step>

            <Step title="Log Level Tuning (if needed)">
              Camera use-cases are expected to run on a performance (perf) build for optimal results. On default builds, reduce the kernel console log level as shown below:

              ```bash Terminal theme={null}
              echo 4 > /proc/sys/kernel/printk
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>

      <Step title="🎥 Action! Start Video Capture">
        <Accordion title="Capture Video">
          #### Video encoding

          <Steps>
            <Step title="Run the pipeline">
              Run the following command in the device terminal:

              ```bash GStreamer (MP4 Record) theme={null}
              gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
              video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,\
              interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
              capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
              video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/mux_avc.mp4
              ```

              This command starts the camera with 720p at 30 FPS configuration and saves it as a video file after h264 video encoding. If the gst pipeline status is changed to "PLAYING", this indicates the camera is running.

              To stop the camera, press **CTRL+C**.
            </Step>

            <Step title="Pull recorded content">
              `/opt/mux_avc.mp4` is generated on the device. The recorded content can be pulled from the device by running the following scp command on the host PC:

              ```bash SCP (SSH) theme={null}
              $ scp -r root@[ip-addr]:/opt/mux_avc.mp4 .
              ```
            </Step>
          </Steps>
        </Accordion>
      </Step>
    </Steps>
  </Tab>
</Tabs>
