IMX8MP Camera Usage Guide
π Introductionβ
This article guides you how to get started using TechNexion camera modules on IMX8MP development kits.
You must have the background knowledge to modify the kernel configuration, rebuild, and replace the kernel and the device tree source (DTS).
This article uses the EDM-G-WB and AXON-WIZARD baseboards as examples.
This article is based on the π Yocto 4.2 (Mickledore) 2024Q3 Release.The corresponding Linux kernel version is 6.1.55-2.2.0.
πΈ Supported Camera Modulesβ
- TEVS Series
- TEVM Series
| Camera Series | Products |
|---|---|
| TEVS | TEVS-AR0144 TEVS-AR0145 TEVS-AR0234 TEVS-AR0235 TEVS-AR0246 TEVS-AR0521 TEVS-AR0522 TEVS-AR0544 TEVS-AR0821 TEVS-AR0822 TEVS-AR0830 TEVS-AR1335 TEVS-AR2020 |
| Camera Series | Products |
|---|---|
| TEVM | TEVM-AR0144 TEVM-AR0145 TEVM-AR0234 TEVM-AR0235 TEVM-AR0246 TEVM-AR0521 TEVM-AR0522 TEVM-AR0544 TEVM-AR0821 TEVM-AR0822 TEVM-AR0830 TEVM-AR1335 TEVM-AR2020 |

TEVI-OV5640 and TEVI-AR Series Cameras are deprecated starting from Yocto 4.2
Support for TEVI-OV5640 and TEVI-AR Series Cameras is available only up to Yocto 4.0.
If you need to use these camera modules, please refer to the π Yocto 4.0 (Kirkstone) 2024Q1 Release.
π§© Supported Boardsβ
| SoM | Board |
|---|---|
| EDM-G-IMX8MP | EDM-G-WB EDM-G-WIZARD |
| AXON-IMX8MP | AXON-WIZARD |
π§ Hardware Setup Instructionsβ
1. Power Supply Preparationβ
- Use a DC 5V or 12V power cable to supply power to the board.
- EDM-G-IMX8MP
- AXON-IMX8MP
Connect the power adapter via the barrel jack connector.

The EDM-G-WB can also be powered via USB Type-C (5V).
Connect the power adapter via the 2-row pin header.
The AXON-WIZARD can also be powered via USB Type-C (5V).
2. Debug Console Connectionβ
- EDM-G-IMX8MP
- AXON-IMX8MP
Prepare a USB-to-UART cable if you're connecting to a PC.
Connect the cable to the debug console port on the EDM-G-WB board.
Prepare a USB Micro-B to USB-A UART cable if you're connecting to a PC.
Connect the cable to the debug console port on the AXON-WIZARD board.
3. Camera Interface (CSI) Overviewβ
- The board features two MIPI CSI-2 interfaces, referred to as CSI1 and CSI2.
- These use 70-pin board-to-board connectors manufactured by Hirose.
- The image below shows a TEVS camera connected to the CSI1 interface.
- EDM-G-IMX8MP
- AXON-IMX8MP


π» Prepare Yocto demo image for testing TechNexion cameraβ
To test TechNexion cameras, you will need a Yocto-based demo image that includes the necessary device tree blobs and camera drivers.
π½ Downloading the Demo Imageβ
Prebuilt demo images are available for download on TechNexion's official server.
Download Link:β
- EDM-G-IMX8MP
- AXON-IMX8MP
πΎ Flashing the Imageβ
You can flash the image to either e.MMC or an SD Card using one of the following methods:
1. Using uuu Tool (Universal Update Utility)β
TechNexion provides a guide to flash the image using the uuu tool:
π How to Flash with UUU
- EDM-G-IMX8MP
- AXON-IMX8MP
Before flashing, ensure the board is set to Serial Download Mode in the boot configuration. You can refer to π Boot Mode Selection of EDM-G-WB for more details.
Before flashing, ensure the board is set to Serial Download Mode in the boot configuration.
2. Using ums Command in U-Boot (USB Mass Storage)β
Alternatively, you can write the image directly to flash storage over USB-OTG using U-Bootβs ums command:
π Using UMS in U-Boot
The board must be booted with a version of U-Boot that supports the ums command. Typically, this is done from the existing e.MMC.
π οΈ Build Yoctoβ
TechNexion supports building a Yocto-based Linux image tailored for camera modules using the following kernel and branch.
π¦ Supported Linux Kernelβ
| Linux Kernel Version | Yocto Branch |
|---|---|
| 6.1.55 | tn-imx_6.1.55_2.2.0-stable |
π Source and Build Instructionsβ
π Fetch Yocto Source
- EDM-G-IMX8MP
- AXON-IMX8MP
πΈ Camera Testing Instructionsβ
Specify Camera DTBO in U-Bootβ
If you are using TEVI AR series or TEVS cameras, you can skip this step. These models support automatic camera detection in U-Boot.
Manual DTBO Setupβ
-
Connect the debug console cable to the baseboard (via UART/USB).
-
Power on the board and interrupt the boot process. Keep pressing
Enterwhen the following message appears:Hit any key to stop autoboot: -
Set the correct camera overlay (DTBO) using the U-Boot environment variable:
- TEVS Cameras
u-boot=> setenv dtoverlay tevs
- Save and continue the boot process:
u-boot=> saveenv
u-boot=> boot
π₯ Start Camera Video Stream via GStreamerβ
Check Camera Availabilityβ
Use the v4l2-ctl tool to list connected video devices.
$ v4l2-ctl --list-device
Example output:
- EDM-G-IMX8MP
- AXON-IMX8MP
():
/dev/v4l-subdev0
():
/dev/v4l-subdev1
FSL Capture Media Device (platform:32c00000.bus:camera):
/dev/media0
mxc-isi-cap (platform:32e00000.isi:cap_device):
/dev/video0
mxc-isi-cap (platform:32e02000.isi:cap_device):
/dev/video1
():
/dev/v4l-subdev0
():
/dev/v4l-subdev1
FSL Capture Media Device (platform:32c00000.bus:camera):
/dev/media0
mxc-isi-cap (platform:32e00000.isi:cap_device):
/dev/video0
In this example, /dev/video0 is the capture device connected via CSI1.
Launch GStreamer Pipelineβ
Replace <res_w>, <res_h>, <x>, and <y> with your desired resolution and screen dimensions:
$ gst-launch-1.0 v4l2src device=/dev/video0 ! \
video/x-raw, width=<res_w>, height=<res_h> ! \
imxvideoconvert_g2d ! \
waylandsink window-width=<x> window-height=<y> sync=false
imxvideoconvert_g2d is optimized for the i.MX8MP platform and leverages ISI hardware for format conversion.
You may optionally use videoconvert, but it is typically unnecessary.
π¨ Troubleshootingβ
Ensure camera device tree blob overlay(DTBO) is specified correctly in u-boot.
- TEVS Cameras
u-boot=> printenv dtoverlay
dtoverlay=tevs
We can check whether camera have been initialized correctly.
For TEVS cameras:
$ dmesg -t | grep tevs
tevs 1-0048: tevs_probe() device node: tevs@48
tevs 1-0048: Version:24.9.0.1
tevs 1-0048: Product:TEVS-AR0144, HeaderVer:3, MIPI_Rate:800
tevs 1-0048: probe success
mx8-img-md: Registered sensor subdevice: tevs 1-0048 (1)
mx8-img-md: created link [tevs 1-0048] => [mxc-mipi-csi2.0]
Ensure camera device tree blob(DTB) is specified correctly.
- EDM-G-IMX8MP
- AXON-IMX8MP
$ dmesg -t | grep -i model
Machine model: TechNexion EDM-G-IMX8MP and WB baseboard
$ dmesg -t | grep -i model
Machine model: TechNexion AXON-IMX8MP and WIZARD baseboard