TI Starter Kit EVMs Camera Usage Guide - Processor SDK Linux 12.01
π Introductionβ
This article guides you how to get started using TechNexion camera modules on Ti starter kit.
πΈ 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 |

Check here ! π TechNexion Embedded Vision Solutions
Find out the solution which can accelerate your time to market for embedded vision projects.
TechNexion is using ti-processor-sdk-linux with 12.01 (Jul 2026), if you need to support other versions, you can grab the source codes from π GitHub β TechNexion TI EVK camera driver and build it by yourself.
π§© Supported Ti Developer Kitβ
| SoM | Board |
|---|---|
| AM62x | Ti SK-AM62X starter kit for Sitaraβ’ processors |
π§ Hardware Setup Instructionsβ
1. Connect the Adapter Board and Camera Cableβ
With different board you need prepare match adapter board and cable for the connect pins.
Here is the table for you can easily to confirm what you need for your solution.
| Developer Kit | Adapter board | Camera Kit |
|---|---|---|
| Ti SK-AM62 | TEV-RPI15 Adaptor | TechNexion EVK RPI15 |
π§° Camera Installation Instructionsβ
Method 1 - Using TechNexion Pre-built imageβ
Prepare Yocto demo image for testing TechNexion cameraβ
To test TechNexion TEVS Series cameras, you need a demo image that includes the required Device Tree Blobs (DTBs) and camera drivers.
Download and Select the Correct Image for Your EVKβ
Prebuilt demo images can be available for download via TechNexion's server.
Download Link:β
π SK-AM62X Image Download Link
Flashing the Imageβ
You can flash the image to an SD Card using the following methods.
The capacity must be higher 16GB.
- For Windows Users
- For Linux Users
Method 2 - Build custom Linux kernel with camera driverβ
-
Download the camera driver and device tree blobs.β
$ git clone git@github.com:TechNexion-Vision/ti-evk-camera.git
$ cd ti_evk_camera/
~/ti_evk_camera$ git checkout tn-ti_6.12.35_11.01.07.05 -
Copy to your kernel source code.β
~/ti_evk_camera$ mv -r driver/media/i2c/tevs/ <fetch_kernel_folder>/driver/media/i2c/
~/ti_evk_camera$ mv arch/arm64/boot/dts/ti/k3-j721e-sk-tevs.dtso <fetch_kernel_folder>/arch/arm64/boot/dts/ti/ -
Modify makefile to add driverβ
$ cd <fetch_kernel_folder>/driver/media/i2c/
~/<fetch_kernel_folder>/driver/media/i2c/$ vi MakefileAdd this line in Makefile.
obj-$(CONFIG_VIDEO_TEVS) += tevs/Modify Kconfig to add camera config
~/<fetch_kernel_folder>/driver/media/i2c/$ vi KconfigAdd this part under "Camera sensor devices" menu in Kconfig.
config VIDEO_TEVS
tristate "TechNexion TEVS sensor support"
depends on OF
depends on GPIOLIB && VIDEO_DEV && I2C
select MEDIA_CONTROLLER
select VIDEO_V4L2_SUBDEV_API
select V4L2_FWNODE
help
This is a Video4Linux2 sensor driver for the TechNexion
TEVS camera sensor with a MIPI CSI-2 interface. -
Modify makefile to add device tree.β
$ cd <fetch_kernel_folder>/arch/arm64/boot/dts/ti/
~/<fetch_kernel_folder>/arch/arm64/boot/dts/ti/$ vi MakefileAdd this line in Makefile.
#For SK-AM62X
dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-csi2-tevs.dtbo -
Compile the kernel & module driverβ
Finally you can start compile your new Image files, then copy and replace the Image files and add camera dtb overlay file in the SD card.
πΈ Camera Testing Instructionsβ
Specify Camera DTBO in uEnv.txtβ
- Find
uEnv.txtfile in prebuild image.
# Open on SK-TDA4VM, the directory should be here:
$ /run/media/BOOT-mmcblk1p1/uEnv.txt
# Open on HOST-PC, the directory should be here:
$ /media/username/BOOT/uEnv.txt
- Add camera dtb specifies the
name_overlaysvariable inuEnv.txt.
#SK-AM62X
name_overlays= ti/k3-am625-sk-csi2-tevs.dtbo
π₯ 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:
j721e-csi2rx (platform:30102000.ticsi2rx):
/dev/video{X}
Launch GStreamer Pipelineβ
The following is example.
Disable wayland :
systemctl mask --runtime --now emptty.service
Bring up the camera (/dev/video0) with 1920x1080 at 30 FPS by Gstreamer pipeline :
media-ctl -d /dev/media0 -V \
'"tevs 4-0048":0 [fmt:UYVY8_1X16/1920x1080@1/30 field:none]'
media-ctl -d /dev/media0 -V \
'"cdns_csi2rx.30101000.csi-bridge":0 [fmt:UYVY8_1X16/1920x1080 field:none]'
media-ctl -d /dev/media0 -V \
'"30102000.ticsi2rx":0/0 [fmt:UYVY8_1X16/1920x1080 field:none]'
gst-launch-1.0 -v \
v4l2src device=/dev/video0 ! \
'video/x-raw,format=UYVY,width=1920,height=1080' ! \
fpsdisplaysink video-sink="kmssink force-modesetting=true" text-overlay=false sync=false
Bring up the camera (/dev/video2) with 4208x3120 at 5 FPS scaled to 1920x1080 by Gstreamer pipeline :
media-ctl -d /dev/media0 -V \
'"tevs 4-0048":0 [fmt:UYVY8_1X16/4208x3120@1/5 field:none]'
media-ctl -d /dev/media0 -V \
'"cdns_csi2rx.30101000.csi-bridge":0 [fmt:UYVY8_1X16/4208x3120 field:none]'
media-ctl -d /dev/media0 -V \
'"30102000.ticsi2rx":0/0 [fmt:UYVY8_1X16/4208x3120 field:none]'
gst-launch-1.0 -v \
v4l2src device=/dev/video0 ! \
'video/x-raw,format=UYVY,width=4208,height=3120' ! \
videoscale ! \
'video/x-raw,width=1920,height=1080' ! \
fpsdisplaysink video-sink="kmssink force-modesetting=true" sync=false
FPS may drop due to resolution scaling. To test without displaying the video :
gst-launch-1.0 -v \
v4l2src device=/dev/video0 ! \
'video/x-raw,format=UYVY,width=4208,height=3120' ! \
fpsdisplaysink video-sink="fakesink" sync=false
π¨ Troubleshootingβ
Take TEVS-AR1335 for example.
Find out the Cameraβ
Boot up SK-TDA4VM and check initialization of camera driver. it shows below messages, the driver is initialized correctly. If the drivers haven't been probed, please check the connector plugin correct.
$ dmesg -t | grep tevs
The message similar to the following :
root@am62xx-evm:~# dmesg -t | grep tevs
tevs 4-0048: tevs_probe() device node: camera@48
tevs 4-0048: CSI-2: 2 lanes, link 400000000 Hz, pixel rate 100000000, MIPI data rate 800 Mbps
tevs 4-0048: Version:26.6.0.1
tevs 4-0048: Product:TEVM-AR1335, HeaderVer:3, MIPI_Rate:800
tevs 4-0048: chip ID: 0x0153
tevs 4-0048: probe success
And then try to using media-ctl command to print the device topology from camera to CSI and the end to video device node.
$ media-ctl -p
We can get which v4l2-subdev is camera in this print message and then we can use v4l2-ctl by it.

Change Resolutionβ
For kernel 6.1 architecture you cannot easily change resolution in gsteamer pipeline.
You must need to using v4l2-ctl to view and set the camera's supported resolutions.
1. Check camera supported resolutions via v4l2-ctlβ
$ v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-framesize pad=0
root@am62xx-evm:~# v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-framesize pad=0
ioctl: VIDIOC_SUBDEV_ENUM_FRAME_SIZE (pad=0,stream=0)
Size Range: 640x480 - 640x480
Size Range: 1280x720 - 1280x720
Size Range: 1920x1080 - 1920x1080
Size Range: 2560x1440 - 2560x1440
Size Range: 3840x2160 - 3840x2160
Size Range: 4208x3120 - 4208x3120
2. Set Formatβ
$ media-ctl -d /dev/media0 -V \
'"tevs 4-0048":0 [fmt:UYVY8_1X16/1280x720@1/60 field:none]'
$ media-ctl -d /dev/media0 -V \
'"cdns_csi2rx.30101000.csi-bridge":0 [fmt:UYVY8_1X16/1280x720 field:none]'
$ media-ctl -d /dev/media0 -V \
'"30102000.ticsi2rx":0/0 [fmt:UYVY8_1X16/1280x720 field:none]'
