Skip to main content

Jetson Orin Nano Developer Kit with 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 Platforms

PlatformSupported JetPackInstaller SelectionGMSL2 Adaptor
Jetson Orin Nano Developer KitJetPack 6.1, 6.2, 6.2.1, 6.2.2Not required for JetPack 6.1; Jetson Orin Nano for JetPack 6.2 / 6.2.1 / 6.2.2VL-GM2-8CAM-RPI22

Supported Camera Modules

Camera SeriesProducts
VLS-GM2
VLS-GM2-AR0144
VLS-GM2-AR0145
VLS-GM2-AR0234
VLS-GM2-AR0235
VLS-GM2-AR0246
VLS-GM2-AR0521
VLS-GM2-AR0522
VLS-GM2-AR0544
VLS-GM2-AR0821
VLS-GM2-AR0822
VLS-GM2-AR0830
VLS-GM2-AR1335
VLS-GM2-AR2020
Camera Sensor Comparison

More Camera Products Details...

info

If you want to use TEVS/TEVM MIPI CSI-2 cameras, see the MIPI CSI-2 Jetson Orin Nano JetPack 6.x guide.


Install TN Camera on Jetson Orin Nano Developer Kit

Adaptor for NVIDIA Jetson Orin Nano Developer Kit

Use the VL-GM2-8CAM-RPI22 adaptor for VLS-GM2 cameras on Jetson Orin Nano Developer Kit. For adaptor pinout and power details, see VL-GM2-8CAM-RPI22.


Method 1 - Using TechNexion pre-built modules

info

Set up the Jetson Orin Nano Developer Kit with the matching NVIDIA JetPack image first, then install the TechNexion camera driver package for that JetPack release.

  1. Download pre-built modules.
wget https://download.technexion.com/demo_software/EVK/NVIDIA/OrinNano/pre-built-modules/latest/JP61/tn_camera_modules_jp61.tar.gz
  1. Uncompress the modules.

    tar -xf tn_camera_modules_<jp_ver>.tar.gz
  2. Run the installation script.

    cd tn_camera_modules_<l4t_ver>_<release_time>/
    sudo ./tn_install.sh
  3. Select the GMSL2 camera module.

$ sudo ./tn_install.sh
****** TechNexion Camera Driver Installation ******
This installer updates TechNexion camera drivers, camera DTBOs,
and boot entries for NVIDIA Jetson Development Kits.
Back up your image before continuing.
Continue? [Y/n] Y
Camera module:
[1] TEVS - TEVS Series MIPI Cameras with TEV-RPI22 Adaptor
[2] VLS-FPD3 - VLS-FPD3 Series Cameras with VL-FPD3-8CAM-RPI22 Adaptor
[3] VLS-GM2 - VLS-GM2 Series Cameras with VL-GM2-8CAM-RPI22 Adaptor
Select camera module [1-3] (default: 1): 3
Reboot after installation? [y/N] n
Installing OrinNano JP61
Selected platform: Jetson Orin Nano
Selected module: VLS-GM2
Installation summary:
Kernel: 5.15.148-tegra
Modules installed: 5
Boot files installed: 7
Default boot entry: vls-gm2
Camera overlay: /boot/tegra234-p3767-camera-p3768-vls-gm2.dtbo
Camera boot entries: 5
Finish Camera Driver Installation.
Reboot the device when the user is ready.
tip

Reboot the device after installation.


Method 2 - Using TechNexion disk image

info

The pre-built disk image below is provided for JetPack 6.2.

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
unzip tn-jp62-orin-nano-vls-gm2-sd-card-image.zip -d ./
sudo dd if=tn_jp62_vls-gm2_sd_disk.img of=${device} bs=1M status=progress oflag=direct

Method 3 - Build drivers from source code

Please follow the JetPack 6.x build guide to build camera driver modules.


Bring up Camera

TechNexion VizionViewer

VizionViewer™

Gstreamer

If you succeed in initialing the camera, you can follow the steps to open the camera.

  1. 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 ! ...

    ...

  2. Use the Gstreamer pipeline to launch a 1280x720 resolution camera (/dev/video0) via the CPU:

    $ DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video0 ! \
    "video/x-raw, format=UYVY, width=1280, height=720" ! xvimagesink sync=false
  3. Use the Gstreamer pipeline to launch a 1280x720 resolution camera (/dev/video0) via the GPU:

    $ DISPLAY=:0 gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 ! \
    "video/x-raw(memory:NVMM), format=UYVY, width=1280, height=720" ! \
    nvvidconv ! nv3dsink 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