Instructions for setting up and connecting the camera can be found in the Camera Quick Start Guide:
MIPI-CSI Quick Start Guide
The extlinux.conf generated by this BSP's default configuration will display a menu to choose between a number of different LVDS display and MIPI-CSI camera configurations. The default can be modified by setting the pxe_label_override environment variable:
setenv pxe_label_override 'label' # Set default boot option to 'label' saveenv # Persist configuration
| Label | Display | Camera |
|---|---|---|
| default | none | none |
| dsi-rpi-7inch-panel | RaspberryPi 7“ | none |
| lvds-tm070jdhg30 | Tianma TM070JDHG30 | none |
| lvds-vesa-fhd | Generic VESA FullHD | none |
| csi0-imx327 | none | VisionComponents module with IMX327 sensor (X18) |
| csi0-ov9281 | none | VisionComponents module with OV9281 sensor (X18) |
| csi2-imx219 | none | RaspberryPi camera module with IMX219 sensor (X19) |
| csi3-imx219 | none | RaspberryPi camera module with IMX219 sensor (X20) |
| lvds-tm070jdhg30-csi0-imx327 | Tianma TM070JDHG30 | VisionComponents module with IMX327 sensor (X18) |
| lvds-tm070jdhg30-csi0-ov9281 | Tianma TM070JDHG30 | VisionComponents module with OV9281 sensor (X18) |
| lvds-tm070jdhg30-csi2-imx219 | Tianma TM070JDHG30 | RaspberryPi camera module with IMX219 sensor (X19) |
| lvds-tm070jdhg30-csi3-imx219 | Tianma TM070JDHG30 | RaspberryPi camera module with IMX219 sensor (X20) |
| lvds-vesa-fhd-csi0-imx327 | Generic VESA FullHD | VisionComponents module with IMX327 sensor (X18) |
| lvds-vesa-fhd-csi0-ov9281 | Generic VESA FullHD | VisionComponents module with OV9281 sensor (X18) |
| lvds-vesa-fhd-csi2-imx219 | Generic VESA FullHD | RaspberryPi camera module with IMX219 sensor (X19) |
| lvds-vesa-fhd-csi3-imx219 | Generic VESA FullHD | RaspberryPi camera module with IMX219 sensor (X20) |
| spe | none | none |
Simultaneous operation of multiple cameras is possible in some combinations, but no labels are defined in extlinux.conf for such configurations at the moment.
The following commands can be used to capture the camera picture and display it on the display:
For IMX327 (X18):
media-ctl -V '"30102000.ticsi2rx":0[fmt:SRGGB10/1280x720]' media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0[fmt:SRGGB10/1280x720]' media-ctl -V '"imx327 3-001a":0[fmt:SRGGB10/1280x720 field:none]' gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-bayer,format=rggb10le,bpp=10,width=1280,height=720 ! \ bayer2rgb ! waylandsink sync=false
For OV9281 (X18):
media-ctl -V '"30102000.ticsi2rx":0[fmt:Y8_1X8/1280x800]' media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0[fmt:Y8_1X8/1280x800]' media-ctl -V '"ov9281 3-0060":0[fmt:Y8_1X8/1280x800 field:none]' gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=GRAY8,width=1280,height=800 ! \ videoconvert ! waylandsink sync=false
For IMX219 (X19):
media-ctl -V '"30142000.ticsi2rx":0[fmt:SRGGB10/1920x1080]' media-ctl -V '"cdns_csi2rx.30141000.csi-bridge":0[fmt:SRGGB10/1920x1080]' media-ctl -V '"imx219 3-0010":0[fmt:SRGGB10/1920x1080 field:none]' gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-bayer,format=rggb10le,bpp=10,width=1920,height=1080 ! \ bayer2rgb ! waylandsink sync=false
For IMX219 (X20):
media-ctl -V '"30142000.ticsi2rx":0[fmt:SRGGB10/1920x1080]' media-ctl -V '"cdns_csi2rx.30141000.csi-bridge":0[fmt:SRGGB10/1920x1080]' media-ctl -V '"imx219 5-0010":0[fmt:SRGGB10/1920x1080 field:none]' gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-bayer,format=rggb10le,bpp=10,width=1920,height=1080 ! \ bayer2rgb ! waylandsink sync=false
waylandsink will render the video using Wayland by default. Alternatively, the video can be displayed in fullscreen directly on a Linux framebuffer device by stopping the Wayland compositor with systemctl stop weston.service and replacing waylandsink sync=false with fbdevsink sync=false in the gst-launch-1.0 command.
Hardware acceleration for the conversion from the Bayer pixel format to RGB is currently unsupported, resulting in very low achievable framerates with the IMX219 and IMX327 camera sensors.