TechNexion Camera Modules for Orin Nano JetPack 6.x
Instruction
TechNexion Embedded Vision Solutions provide embedded system developers access to high-performance, industrial-grade camera solutions to accelerate their time to market for embedded vision projects.
Supported Camera Modules
| Camera Series | Products |
|---|---|
| FPD Link III Series | VLS3-AR0144 VLS3-AR0145 VLS3-AR0234 VLS3-AR0521 VLS3-AR0522 VLS3-AR0821 VLS3-AR0822 VLS3-AR1335 |
| GMSL2 Series | VLS-GM2-AR0144 VLS-GM2-AR0145 VLS-GM2-AR0234 VLS-GM2-AR0521 VLS-GM2-AR0522 VLS-GM2-AR0821 VLS-GM2-AR0822 VLS-GM2-AR1335 |
More Camera Products Details...
If you want to use the TEVS camera, please refer to another guide.
Supported NVIDIA Jetson Developer Kit
Install TN Camera on Jetson Developer Kit
Adaptor for NVIDIA Jetson Orin Nano Development Kit
-
VLS3-ORIN-EVK Adaptor for VLS3 Cameras
Follow the video tutorial below to learn how to connect VLS3 cameras and the VLS3-ORIN-EVK adapter to the Jetson Orin Nano Developer Kit.
-
VL-GM2-8CAM-RPI22 Adaptor for VLS-GM2 Cameras
Follow the video to connect VLS-GM2 cameras and VL-GM2-8CAM-RPI22 adaptor to Jetson Orin Nano Developer Kit.
Method 1 - Using TechNexion pre-built modules
Jetson Orin Nano
We recommend following the Getting Started Guide for Jetson Orin Nano Developer Kit. After that, you can follow the below method to install TechNexion Cameras Driver.
-
Download pre-built modules.
JetPack 6.1
wget https://download.technexion.com/demo_software/EVK/NVIDIA/OrinNano/pre-built-modules/latest/JP61/tn_camera_modules_jp61.tar.gzJetPack 6.2
wget https://download.technexion.com/demo_software/EVK/NVIDIA/OrinNano/pre-built-modules/latest/JP62/tn_camera_modules_jp62.tar.gzJetPack 6.2.1
wget https://download.technexion.com/demo_software/EVK/NVIDIA/OrinNano/pre-built-modules/latest/JP621/tn_camera_modules_jp621.tar.gz -
Uncompress the modules.
tar -xf tn_camera_modules_<jp_ver>.tar.gz -
Run installation script.
cd tn_camera_modules_<release_time>/
./tn_install.sh -
After you agree to continue the installation, select the pre-installed modules that you want. The default module is TEVS cameras.
JetPack 6.1
$ ./tn_install.sh
****** TechNexion Camera Driver Installation ******
This installation is easy to install TechnNexion Camera Drivers for Nvidia
Jetson Development Kits. Before start to install camera driver,
You should BACKUP your image to avoid any file you lost while installing process.
Do you want to continue?[Y/n]y
Continuing with the installation...
File does not exist in /boot/dtb/
Setting REF_DTB_FILE to existing file: kernel_tegra234-p3768-0000+p3767-0005-nv.dtb
Install TN-CAM modules: max96724.ko
Install TN-CAM modules: max96716a.ko
Install TN-CAM modules: max96717.ko
Install TN-CAM modules: vls3.ko
Install TN-CAM modules: tevs.ko
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-tevs-dual.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls3.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-fsync.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-tunnel.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-tunnel-fsync.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-fsync-external.dtbo
Installed TN-CAM DTB file Done.
Select modules:
[1]: TEVS: TEVS Series MIPI Cameras with TEV-RPI22 Adaptor
[2]: VLS3: VLS3 Series Cameras with VLS3-ORIN-EVK Adaptor
[3]: VLS-GM2: VLS-GM2 Series Cameras with VL-GM2-8CAM-RPI22 Adaptor
Which modules do you select?[default:1]3
Installing module: vls-gm2
Add TN-CAM Configuration for modules: vls-gm2
Installing module: vls-gm2-fsync
Add TN-CAM Configuration for modules: vls-gm2-fsync
Installing module: vls-gm2-tunnel
Add TN-CAM Configuration for modules: vls-gm2-tunnel
Installing module: vls-gm2-tunnel-fsync
Add TN-CAM Configuration for modules: vls-gm2-tunnel-fsync
Installing module: vls-gm2-fsync-external
Add TN-CAM Configuration for modules: vls-gm2-fsync-external
Set Default Configuration for modules: vls-gm2
Install TN-CAM service...
Launch TN-CAM Service...
Finish Camera Driver Installation. Return Code:[0]
You should Reboot Device to enable vls-gm2 Cameras.
Do you want to reboot now?[Y/n]Y
Rebooting....JetPack 6.2.x
$ ./tn_install.sh
****** TechNexion Camera Driver Installation ******
This installation is easy to install TechnNexion Camera Drivers for Nvidia
Jetson Development Kits. Before start to install camera driver,
You should BACKUP your image to avoid any file you lost while installing process.
Do you want to continue?[Y/n]y
Continuing with the installation...
File does not exist in /boot/dtb/
Setting REF_DTB_FILE to existing file: kernel_tegra234-p3768-0000+p3767-0005-nv.dtb
Install TN-CAM modules: max96724.ko
Install TN-CAM modules: max96716a.ko
Install TN-CAM modules: max96717.ko
Install TN-CAM modules: vls3.ko
Install TN-CAM modules: tevs.ko
Select platform:
[1]: Jetson Orin Nano
[2]: Jetson AGX Orin (only support JP6.2.x)
Which platform do you select?[default:1]1
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-tevs-dual.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls3.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-fsync.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-tunnel.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-tunnel-fsync.dtbo
Installed TN-CAM DTB file Done.
Install TN-CAM DTBO file: tegra234-p3767-camera-p3768-vls-gm2-fsync-external.dtbo
Installed TN-CAM DTB file Done.
Select modules:
[1]: TEVS: TEVS Series MIPI Cameras with TEV-RPI22 Adaptor
[2]: VLS3: VLS3 Series Cameras with VLS3-ORIN-EVK Adaptor
[3]: VLS-GM2: VLS-GM2 Series Cameras with VL-GM2-8CAM-RPI22 Adaptor
Which modules do you select?[default:1]3
Installing module: vls-gm2
Add TN-CAM Configuration for modules: vls-gm2
Installing module: vls-gm2-fsync
Add TN-CAM Configuration for modules: vls-gm2-fsync
Installing module: vls-gm2-tunnel
Add TN-CAM Configuration for modules: vls-gm2-tunnel
Installing module: vls-gm2-tunnel-fsync
Add TN-CAM Configuration for modules: vls-gm2-tunnel-fsync
Installing module: vls-gm2-fsync-external
Add TN-CAM Configuration for modules: vls-gm2-fsync-external
Set Default Configuration for modules: vls-gm2
Install TN-CAM service...
Launch TN-CAM Service...
Finish Camera Driver Installation. Return Code:[0]
You should Reboot Device to enable vls-gm2 Cameras.
Do you want to reboot now?[Y/n]Y
Rebooting....
You should reboot the device after installation.
Method 2 - Using TechNexion disk image
This disk image file is for VLS-GM2 with JetPack 6.2 version.
-
Download disk image.
wget https://download.technexion.com/demo_software/EVK/NVIDIA/OrinNano/VL-GM2-8CAM-RPI22/DiskImage/tn-jp62-orin-nano-vls-gm2-sd-card-image.zip -
Uncompress the image.
unzip tn-jp62-orin-nano-vls-gm2-sd-card-image.zip -d ./You will see a file "tn_jp62_vls-gm2_sd_disk.img" at your specified path.
-
Flash SD Card with the image.
# ${device} is your device path name, such as /dev/sdb
umount ${device}?
sudo dd if=tn_jp621_vls-gm2_sd_disk.img of=${device} bs=1M status=progress oflag=direct
Method 3 - Build drivers from source code
Please follow the guide to build camera driver modules.
Bring up Camera
TechNexion VizionViewer
Gstreamer
If you succeed in initialing the camera, you can follow the steps to open the camera.
-
Check the supported resolutions:
$ gst-device-monitor-1.0 Video/Source
Device found:
name : vi-output, tevs 9-0039
class : Video/Source
caps : video/x-raw, format=UYVY, width=640, height=480, framerate=120/1
video/x-raw, format=UYVY, width=1280, height=720, framerate=120/1
video/x-raw, format=UYVY, width=1920, height=1080, framerate=60/1
video/x-raw, format=UYVY, width=1920, height=1200, framerate=60/1
video/x-raw, format=NV16, width=640, height=480, framerate=120/1
video/x-raw, format=NV16, width=1280, height=720, framerate=120/1
video/x-raw, format=NV16, width=1920, height=1080, framerate=60/1
video/x-raw, format=NV16, width=1920, height=1200, framerate=60/1
video/x-raw, format=UYVY, width=640, height=480, framerate=120/1
video/x-raw, format=UYVY, width=1280, height=720, framerate=120/1
video/x-raw, format=UYVY, width=1920, height=1080, framerate=60/1
video/x-raw, format=UYVY, width=1920, height=1200, framerate=60/1
properties:
object.path = v4l2:/dev/video0
device.api = v4l2
media.class = Video/Source
api.v4l2.path = /dev/video0
api.v4l2.cap.driver = tegra-video
api.v4l2.cap.card = "vi-output\,\ tevs\ 9-0039"
api.v4l2.cap.bus_info = platform:tegra-capture-vi:1
api.v4l2.cap.version = 5.15.148
api.v4l2.cap.capabilities = 84200001
api.v4l2.cap.device-caps = 04200001
device.id = 33
node.name = v4l2_input.platform-tegra-capture-vi
node.description = "vi-output\,\ tevs\ 9-0039"
factory.name = api.v4l2.source
node.pause-on-idle = false
factory.id = 10
client.id = 32
clock.quantum-limit = 8192
media.role = Camera
node.driver = true
object.id = 34
object.serial = 34
gst-launch-1.0 pipewiresrc path=34 ! ...
... -
Bring up the camera (/dev/video0) with 1280x720 by Gstreamer pipeline:
DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video0 ! \
"video/x-raw, format=UYVY, width=1280, height=720" ! xvimagesink sync=false
Troubleshooting
Cannot Find Cameras
If you cannot bring up the cameras, you can check if the video device does exist.
$ ls /dev/video* # List all video devices
/dev/video0 /dev/video1
If you cannot see the devices, you should check if the drivers have been probed.
Occur Error: Could not get EGL display connection
If you occurred the errors nvbufsurftransform: Could not get EGL display connection by rununing the Gstreamer command, you can modify the parameter 'DISPLAY' by the command:
# Check and Set environment parameter for 'DISPLAY'
$ export DISPLAY=$(w| tr -s ' '| cut -d ' ' -f 3 | grep :)
# Run Gstreamer pipeline
$ gst-launch-1.0 v4l2src device=/dev/video0 ! \
"video/x-raw, format=UYVY, width=1280, height=720" ! xvimagesink sync=false
Recover camera
This tool only support JetPack 6.2, and ensures that the tevs driver is the latest version.
If the camera firmware update fails or other factors cause the camera firmware to breakdown, you can use the recovery tool to force a firmware refresh. However, if the camera is working normally, this tool cannot be used to update the firmware.
-
Download recovery tool.
$ wget https://download.technexion.com/demo_software/EVK/NVIDIA/OrinNano/vls-gm2-recovery-tool/latest/tn_recovery_tool_orin_nano_jp62.tar.gz -
Uncompress the tool.
$ tar xf tn_recovery_tool_orin_nano_jp62.tar.gz -
Install VizionSDK.
tipIf you don't installed the VizionSDK or your installed version is lower than 26.1.1 (including this version), please install the installation file in the folder first. Otherwise, you can skip this step.
$ cd tn_recovery_tool_orin_nano_jp62
$ sudo apt install ./vizionsdk-arm64-26.1.1.deb -
Execute tool to recover camera.
$ cd tn_recovery_tool_orin_nano_jp62
$ sh recovery_tool.sh -h
Verify input argument fail!
Usage: recovery.sh [I2C_BUS] [I2C_ID] [CAM_NAME]
[I2C_BUS]: I2C bus index, 9 is a example
[I2C_ID]: I2C device address, 0x48 is a example (hex)
[CAM_NAME]: Camera product name, as follows:
- TEVS-AR0144
- TEVS-AR0145-M
- TEVS-AR0234
- TEVS-AR0521
- TEVS-AR0522
- TEVS-AR0522-M
- TEVS-AR0821
- TEVS-AR0822
- TEVS-AR0822-M
- TEVS-AR1335In Orin Nano, I2C_BUS and I2C_ID will vary depending on your device tree programing.
If you're using TechNexion's latest official device tree, the default value for I2C_BUS camera 0 to 3 is 9, and camera 4 to 7 is 10. The I2C_ID will be 0x39, 0x3a, 0x3b, 0x3c, 0x49, 0x4a, 0x4b, 0x4c depending on the camera's position (0-7).
For example, VLS-GM2-AR0144 on camera 0.$ sh recovery_tool.sh 9 0x39 TEVS-AR0144
TechNexion VLS-GM2 camera recovery tool for NVIDIA Orin Nano
TEVS firmware version 25.10.00.01
Camera0 cannot found
Camera0 found serializer adaptor
Camera1 cannot found
Camera1 cannot found serializer adaptor
Camera2 cannot found
Camera2 cannot found serializer adaptor
Camera3 cannot found
Camera3 cannot found serializer adaptor
Camera4 cannot found
Camera4 cannot found serializer adaptor
Camera5 cannot found
Camera5 cannot found serializer adaptor
Camera6 cannot found
Camera6 cannot found serializer adaptor
Camera7 cannot found
Camera7 cannot found serializer adaptor
Warning: Do not turn off power or disconnect camera during update
Info: Starting ISP firmware update with direct I2C/subdev path...
[2026-03-03 08:23:25.825] [warning] [UpgradeSensorFW][64] Recovery mode enabled: skip device MCU type check, use firmware MCU type.
[2026-03-03 08:23:25.825] [info] [UpgradeSensorFW][78] Bin Version: 25.10.0.1
[2026-03-03 08:23:25.825] [info] [UpgradeSensorFW][80] Control Addr: 0x00000000, Len: 0x00006640
[2026-03-03 08:23:25.825] [info] [UpgradeSensorFW][82] Bootdata Addr: 0x0000a800, Len: 0x00014688
[2026-03-03 08:23:25.825] [info] [UpgradeSensorFW][86] Product Info Addr: 0x0001fc00, Len: 0x00000000
Watting for the MCU's last response time
[2026-03-03 08:23:36.025] [info] [CheckDriver][139] BSL mode reset to 0 after 1 attempt(s)
Watting for the MCU's last response time
[2026-03-03 08:23:46.188] [info] [UpdateSensorFirmwareRevA][424] Start to clean sensor.
[2026-03-03 08:23:47.200] [info] [UpdateSensorFirmwareRevA][430] Clean sensor done.
Update progress: 50%[2026-03-03 08:23:49.184] [info] [UpdateSensorFirmwareRevA][441] start verification mcu control
[2026-03-03 08:23:49.999] [info] [UpdateSensorFirmwareRevA][449] Verification mcu control done
Update progress: 99%[2026-03-03 08:23:56.332] [info] [UpdateSensorFirmwareRevA][458] start verification bootdata
[2026-03-03 08:23:57.147] [info] [UpdateSensorFirmwareRevA][478] Verification bootdata done
Update progress: 100%Successfully set ISP firmware update completed 0
Info: Please restart the camera to apply changes -
Restart Orin Nano.