AXON-IMX8MP TEVS Camera Usage Guide
π Introductionβ
This article guides you how to get started using TechNexion camera modules on AXON-IMX8M PLUS board.
You must have the background knowledge to modify the kernel configuration, rebuild, and replace the kernel and the device tree source (DTS).
πΈ Supported Camera Modulesβ
- TEVS Series
- VLS3 Series
Camera Series | Products |
---|---|
TEVS | TEVS-AR0144 TEVS-AR0145 TEVS-AR0234 TEVS-AR0521 TEVS-AR0522 TEVS-AR0821 TEVS-AR0822 TEVS-AR1335 |
Camera Series | Products |
---|---|
VLS3 | VLS3-AR0144 VLS3-AR0145 VLS3-AR0234 VLS3-AR0521 VLS3-AR0522 VLS3-AR0821 VLS3-AR0822 VLS3-AR1335 |
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 |
---|---|
AXON-IMX8M-PLUS | AXON-WIZARD |
π§ Hardware Setup Instructionsβ
1. Power Supply Preparationβ
- Use a DC 5V or 12V power cable to supply power to the board.
- If you're using FPD-Link III SerDes, a 12V power adapter (minimum 3A) is required. Connect it via the 2-row pin header.
The AXON-WIZARD can also be powered via USB Type-C (5V).
2. Debug Console Connectionβ
- 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.

π» 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:β
πΎ 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
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
π Build Yocto (Instructions for 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
Enter
when the following message appears:Hit any key to stop autoboot:
-
Set the correct camera overlay (DTBO) using the U-Boot environment variable:
- TEVS Cameras
- VLS3 Cameras
u-boot=> setenv dtoverlay tevs
u-boot=> setenv dtoverlay vls
- 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:
():
/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
- VLS3 Cameras
u-boot=> printenv dtoverlay
dtoverlay=tevs
u-boot=> printenv dtoverlay
dtoverlay=vls
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.
$ dmesg -t | grep -i model
Machine model: TechNexion AXON-IMX8MP and WIZARD baseboard