- 31 May 2023
- 2 Minutes to read
- Print
- DarkLight
- PDF
NXP 8MPLUSLPD4-EVK board TEVI Camera Usage Guide
- Updated on 31 May 2023
- 2 Minutes to read
- Print
- DarkLight
- PDF
Introduction
This article guides you how to get started using TEVI Series camera on NXP 8MPLUSLPD4-EVK board.
Supported TEVI Camera Modules
NXP EVK | Support Module |
---|---|
8MPLUSLPD4-EVK | TEVI-AR0144 TEVI-AR0234 TEVI-AR0521 TEVI-AR0522 TEVI-AR0821 TEVI-AR0822 TEVI-AR1335 TEVI-AR1820 |
Overview
- Prepare adapter board and cable for TechNexion camera
- Prepare Yocto demo image for testing TechNexion camera
- Build Yocto
- Develop Linux kernel
- Instructions for testing camera
- Trouble shooting
Prepare adapter board and cable for TechNexion camera
Prepare adapter board and cable connect to EVK board:
TEVI-NXP-EVK
After migrating to mass production stage, we suggest you to choose Technexion EDM-G-IMX8M Plus solution. It benefits for more compact size for different use cases.
WB-EDM-G-IMX8M-PLUS, (cameras support list)
Prepare Yocto demo image for testing TechNexion camera
The demo image contains the required device tree blobs and camera drivers to enable TechNexion TEVI AR Series cameras.
Choose the correct demo image that is compatible with the EVK board you have.
There are two kinds of DRAM types for i.mx8mp evk boards: it's equipped with DDR4 or LPDDR4.
Prebuilt demo images can be available for download via TechNexion's server.
Image Download Link
Flash image to SD card
Under Windows:
balena etcher
Under Linux:
bmap-tools
sudo apt-get update
sudo apt-get install bmap-tools
Ensure the boot mode is configured as boot from SD card.
getting-started-with-the-i-mx-8m-plus-evk:GS-iMX-8M-Plus-EVK
Please refer to Instructions for testing camera section for camera testing steps.
Build Yocto
Fetch Yocto source
Build Yocto
Develop Linux kernel
Fetch and compile Linux kernel
Tested under ubuntu 18.04/20.04.
Using gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu toolchain.
Supported TechNexion Linux kernel branch for TEVI AR Series cameras
Linux | branch |
---|---|
5.10.72 | tn-imx_5.10.72_2.2.0-next |
Download the source code:
$ git clone https://github.com/TechNexion/linux-tn-imx.git
$ cd linux-tn-imx
~/linux-tn-imx$
~/linux-tn-imx$ git checkout tn-imx_5.10.72_2.2.0-next
Set cross-compile environment & the kernel config:
$ export PATH=$PATH:/opt/gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu/bin
$ export ARCH=arm64
$ export CROSS_COMPILE=/opt/gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
~/linux-tn-imx$ make imx_v8_defconfig
Compile the kernel & module driver:
#compile kernel
~/linux-tn-imx$ make
#compile module driver
~/linux-tn-imx$ rm -rf ../modules/*
~/linux-tn-imx$ make INSTALL_MOD_PATH=../modules modules_install
Change kernel Image, DTB & modules:
~/linux-tn-imx/$ cp arch/arm64/boot/Image <mount_folder>/boot/Image
~/linux-tn-imx/$ cp arch/arm64/boot/dts/freescale/imx8mp-evk-tevi-ap1302.dtb <mount_folder>/boot/
~/linux-tn-imx/$ sudo cp -r ../modules/lib/modules/* <mount_folder>/root/lib/modules/
Instructions for testing camera
Specify camera DTB in u-boot
Connect debug console cable to NXP 8MPLUSLPD4-EVK.
Power on board, and enter u-boot prompt.
Specify camera dtb via 'fdtfile' u-boot environment variable
$ setenv fdtfile imx8mp-evk-tevi-ap1302.dtb
- Continue boot process.
$ saveenv
$ boot
Start camera video stream via gstreamer
We can check whether camera have been link via v4l2 control command :
$ v4l2-ctl --list-device
Get the device number of camera capture device.
mxc-isi-cap (platform:32e00000.isi:cap_devic):
/dev/video{X}
The following is example.
Specify the capture device you just get and start gstreamer to get video stream on screen :
$ gst-launch-1.0 v4l2src device=/dev/video{X} ! video/x-raw,width=<x>,height=<y> ! waylandsink
Trouble shooting
Boot up NXP 8MPLUSLPD4-EVK and check initialization of AP1302 driver.
If it shows detected tevi-ap1302 camera sensor
, the driver is initialized correcly.
$ dmesg -t | grep ap1302
tevi-ap1302 1-003d: sensor_probe() device node: tevi_ap1302@3d
tevi-ap1302 1-003d: Product:TEVI-AR0144, Version:1. Lens:S82-IR FW:428 Freq:48M MIPI:816M, Version:1
tevi-ap1302 1-003d: probe success
imx8mp-pinctrl 30330000.pinctrl: could not request pin 46 (MX8MP_IOMUXC_SD1_STROBE) from group ap1302_csi1_pwn_grp on device 30330000.pinctrl
mx8-img-md: Registered sensor subdevice: tevi-ap1302 1-003d (1)
mx8-img-md: created link [tevi-ap1302 1-003d] => [mxc-mipi-csi2.0]
Ensure camera device tree blob(DTB) is specified correctly.
$dmesg -t | grep -i model
Machine model: NXP i.MX8MPlus EVK board with TechNexion TEVI camera