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

# 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-prod/PyJ823JBh-_RDtS4/Technologies/Camera/images/camera_module_connection_2.png?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=4caacb8995de6f68bb6fa0028f903e16" width="411" height="297" data-path="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
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
              sync
              reboot
              ```
            </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-prod/mGpYCfBsZaJSFIEo/Technologies/Camera/images/rb4_core_kit_mipi_connectors.png?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=ac20d4ecda703883b2fce9854222cda4" width="409" height="284" data-path="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
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
              sync
              reboot
              ```
            </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="Known Issue: Camera basic use-case on IQ8">
              <Warning>
                Camera basic use-case is not working on IQ8. Refer to the known [camera issue](https://dragonwingdocs.qualcomm.com/Key-Documents/Software-Release-Notes/limitations#iq8) in the IQ8 limitations section.
              </Warning>

              **To resolve this issue, apply the following fix:**

              **For build users:** Run the following commands:

              ```bash Terminal theme={null}
              git clone https://github.com/qualcomm-linux/meta-qcom -b qli-2.0
              cd meta-qcom
              git fetch origin pull/2619/head
              git cherry-pick 1e885404be0191a7b89bd853aba4ef6c28b9295f^..2a1a38963d40b8da079a7b640b363070d9eee18f
              cd ..
              kas build meta-qcom/ci/iq-8275-evk.yml:meta-qcom/ci/qcom-distro.yml
              ```

              **For prebuilt users:** Run the following command before running the Camera use-case:

              ```bash Terminal theme={null}
              cp /usr/share/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp/libbitml_nsp_73nb_skel.so /usr/share/qcom/qcs8300/Qualcomm/IQ8275-EVK/dsp/cdsp/.
              ```
            </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-prod/mGpYCfBsZaJSFIEo/Technologies/Camera/images/mipi_hardware_connectivity.png?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=5c2d8b2dc97512cbcd666c7aa93bad52" width="424" height="324" data-path="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
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
              sync
              reboot
              ```
            </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-prod/PyJ823JBh-_RDtS4/Technologies/Camera/images/615-board-connectors.png?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=4614ca26870a941b06f7f1ef2a9a150b" width="681" height="358" data-path="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
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
              sync
              reboot
              ```
            </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-prod/mGpYCfBsZaJSFIEo/Technologies/Camera/images/x7181-board-connectors.png?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=6f91ef25bc1cbeac3d62d0ef0951d215" alt="IQx7181 EVK CSI connector locations" width="501" height="718" data-path="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
              efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
              sync
              reboot
              ```
            </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>
