Skip to main content
The IQ8-EVK supports camera sensor connectivity through three MIPI CSI interfaces, supporting both C-PHY and D-PHY modes.

Hardware Architecture

CSI Interface Mapping

CSI InterfaceAnalog SwitchCamera ConnectorB2B Connector
CSI0U45 (TMUX646ZECR)JCAM0JEXP4, Pins 111–120
CSI1U42 (TMUX646ZECR)JCAM1JEXP4, Pins 51–60
CSI2U44 (TMUX646ZECR)JCAM2JEXP4, Pins 40–49

DIP Switch Configuration

SwitchONOFF (default)
SW1-5CSI0 → GMSL mezzanineCSI0 → mainboard
SW1-6CSI1 → GMSL mezzanineCSI1 → mainboard
SW1-7CSI2 → GMSL mezzanineCSI2 → mainboard

Supported MIPI CSI Camera Sensors

ov9282 Camera Sensor

Arducam imx577 Camera Sensor

Arducam sensor requires an additional converter board(Arducam 22-pin to Qualcomm 30-pin CSI adapter) Arducam imx577 sensor + 22 pin flex cable + converter board

Arducam imx577 Camera Sensor connection to iq8275

ov9282 Camera Sensor connection to iq8275

Supported Resolutions

ResolutionAspect RatioIMX577OV9282
4000 × 30004:3YesNo
3840 × 216016:9YesNo
1920 × 108016:9YesNo
1280 × 72016:9YesYes
1024 × 7684:3YesYes
640 × 4804:3YesYes
320 × 2404:3YesYes
  • Advanced features such as SHDR, LDC, and EIS are not supported on IQ-8275.
  • There is no hardware JPEG encoder — snapshots use a software encoder running on the CPU.

Camera Streaming

Single Camera Stream

gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
  'video/x-raw,format=NV12,width=1280,height=720,framerate=30/1' ! fakesink
The above command starts the camera with 720p at 30 FPS configuration. The frame coming from the camera sensor is thrown away by fakesink. If the gst pipeline status is changed to “PLAYING” as shown below, this indicates that the camera is running. Since this command dumps camera frames to fakesink, nothing will be saved on the device. If the pipeline status changes to PLAYING, the camera is running. Press Ctrl+C to stop.
gbm_create_device(187): Info: backend name is: msm_drm
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

Video Encoding

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=/home/ubuntu/mux_avc.mp4

Object Detection Pipeline

Download required models and assets first:
cd /home/ubuntu
curl -L -O https://raw.githubusercontent.com/quic/sample-apps-for-qualcomm-linux/refs/heads/main/qualcomm-linux/scripts/download_artifacts.sh
sudo chmod +x download_artifacts.sh && sudo ./download_artifacts.sh

Multi-Camera with Offline IFE

The IQ-8275 has two IFEs for real-time bayer-to-YUV processing. The Offline IFE feature allows a single IFE to process two cameras in offline mode, enabling concurrent streaming from all four cameras.
A maximum of two cameras can operate concurrently with real-time IFE. All four cameras can operate concurrently using the Offline IFE feature.

Troubleshooting

1

Check camera module connection and DIP switch settings

2

Restart cam-server

systemctl restart cam-server
3

Run a single-stream test

gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
  video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! fakesink
journalctl -f > /home/ubuntu/log.txt
Look for: CAM_INFO: CAM-SENSOR: Probe success, slot:0, ...If no probe success appears, check the flex cable connection or camera module.
sudo su
echo 3 > /sys/kernel/debug/camera/ife/ife_csid_debug
dmesg -w > /home/ubuntu/dmesg.txt

Resources

TopicLink
Camera ArchitectureCamera Architecture
Camera Sensor Driver DevelopmentCamera Sensor Driver Development
Customize Camera Use Case and PipelineCustomize Camera Use Case and Pipeline