Skip to main content

USB Camera User Guide

Introduction

This article guides you how to get started using TechNexion USB camera on Windows and Linux.


Supported Camera Modules

SensorUSB3 (VCI)USB3 (VCS, VCM)USB to FPD-Link III Frame Grabber (UVC-VLS-FPD3, UVC-VLM-FPD3)USB to GMSL2 Frame Grabber (UVC-VLS-GM2, UVC-VLM-GM2)
AR0144
AR0145
AR0234
AR0235
AR0246
AR0521
AR0522
AR0544
AR0821
AR0822
AR0830
AR1335
AR2020

More Camera Products Details...


How to use

There are several methods to use the camera when you connect it to a computer or embedded development kit via a USB cable.

Method 1 - Using TechNexion VizionViewer (Windows/Linux)

VizionViewer™

Method 2 - Using V4L2 Control (Linux)

  1. List all devices.

    $ v4l2-ctl --list-device

    VCI-AR0144-C (usb-xhci-hcd.1.auto-1.2):
    /dev/video0
    /dev/video1
    /dev/media0
  2. List camera formats.

    $ v4l2-ctl -d /dev/video0 --list-formats-ext
    ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'UYVY' (UYVY 4:2:2)
    Size: Discrete 1280x800
    Interval: Discrete 0.017s (60.000 fps)
    Interval: Discrete 0.033s (30.000 fps)
    Size: Discrete 1280x720
    Interval: Discrete 0.017s (60.000 fps)
    Interval: Discrete 0.033s (30.000 fps)
    Size: Discrete 640x480
    Interval: Discrete 0.017s (60.000 fps)
    Interval: Discrete 0.033s (30.000 fps)
    [1]: 'MJPG' (Motion-JPEG, compressed)
    Size: Discrete 1280x800
    Interval: Discrete 0.017s (60.000 fps)
    Interval: Discrete 0.033s (30.000 fps)
    Size: Discrete 1280x720
    Interval: Discrete 0.017s (60.000 fps)
    Interval: Discrete 0.033s (30.000 fps)
    Size: Discrete 640x480
    Interval: Discrete 0.017s (60.000 fps)
    Interval: Discrete 0.033s (30.000 fps)
  3. List camera v4l2 controls.

    $ v4l2-ctl -d /dev/video0 --list-ctrls

    User Controls

    brightness 0x00980900 (int) : min=0 max=32 step=4 default=16 value=16
    contrast 0x00980901 (int) : min=0 max=10 step=1 default=5 value=5
    saturation 0x00980902 (int) : min=0 max=80 step=8 default=16 value=16
    white_balance_automatic 0x0098090c (bool) : default=1 value=1
    gamma 0x00980910 (int) : min=0 max=40 step=1 default=18 value=18
    gain 0x00980913 (int) : min=1 max=48 step=1 default=1 value=1
    power_line_frequency 0x00980918 (menu) : min=0 max=2 default=0 value=0 (Disabled)
    white_balance_temperature 0x0098091a (int) : min=2300 max=15000 step=1 default=5000 value=5000 flags=inactive
    sharpness 0x0098091b (int) : min=0 max=64 step=8 default=32 value=32
    backlight_compensation 0x0098091c (int) : min=0 max=480 step=8 default=256 value=256

    Camera Controls

    auto_exposure 0x009a0901 (menu) : min=0 max=3 default=0 value=0 (Auto Mode)
    exposure_time_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=330 value=100 flags=inactive
    pan_absolute 0x009a0908 (int) : min=-648000 max=648000 step=3600 default=0 value=0
    tilt_absolute 0x009a0909 (int) : min=-648000 max=648000 step=3600 default=0 value=0
    zoom_absolute 0x009a090d (int) : min=100 max=800 step=1 default=100 value=100
  4. Camera streaming test with UYVY format.

    $ v4l2-ctl -d /dev/video0 --set-fmt-video=pixelformat=UYVY,width=1280,height=800 --stream-mmap
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 59.84 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 59.85 fps
    note

    Using "Ctrl+C " to exit v4l2 streaming.

  5. Camera streaming test with MJPG format.

    $ v4l2-ctl -d /dev/video0 --set-fmt-video=pixelformat=MJPG,width=1280,height=800 --stream-mmap
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 59.84 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 59.85 fps
    note

    Using "Ctrl+C " to exit v4l2 streaming.

Method 3 - Using GStreamer (Linux)

  1. List all devices and formats.

    $ gst-device-monitor-1.0

    Device found:

    name : VCI-AR0144-C
    class : Video/Source
    caps : video/x-raw, format=UYVY, width=1280, height=800, pixel-aspect-ratio=1/1, framerate={ (fraction)60/1, (fraction)30/1 }
    video/x-raw, format=UYVY, width=1280, height=720, pixel-aspect-ratio=1/1, framerate={ (fraction)60/1, (fraction)30/1 }
    video/x-raw, format=UYVY, width=640, height=480, pixel-aspect-ratio=1/1, framerate={ (fraction)60/1, (fraction)30/1 }
    image/jpeg, parsed=true, width=1280, height=800, pixel-aspect-ratio=1/1, framerate={ (fraction)60/1, (fraction)30/1 }
    image/jpeg, parsed=true, width=1280, height=720, pixel-aspect-ratio=1/1, framerate={ (fraction)60/1, (fraction)30/1 }
    image/jpeg, parsed=true, width=640, height=480, pixel-aspect-ratio=1/1, framerate={ (fraction)60/1, (fraction)30/1 }
    properties:
    udev-probed = true
    device.bus_path = platform-xhci-hcd.1.auto-usb-0:1.2:1.0
    sysfs.path = /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.1.auto/usb2/2-1/2-1.2/2-1.2:1.0/video4linux/video0
    device.bus = usb
    device.subsystem = video4linux
    device.vendor.id = 3407
    device.vendor.name = TechNexion
    device.product.id = 0144
    device.product.name = VCI-AR0144-C
    device.serial = TechNexion_VCI-AR0144-C_000000008E604600A159178868A11A1A
    device.capabilities = :capture:
    device.api = v4l2
    device.path = /dev/video0
    v4l2.device.driver = uvcvideo
    v4l2.device.card = VCI-AR0144-C
    v4l2.device.bus_info = usb-xhci-hcd.1.auto-1.2
    v4l2.device.version = 393527 (0x00060137)
    v4l2.device.capabilities = 2225078273 (0x84a00001)
    v4l2.device.device_caps = 69206017 (0x04200001)
    gst-launch-1.0 v4l2src ! ...
  2. Preview with UYVY format.

    $ gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800" ! videoconvert ! autovideosink sync=false
  3. Preview with MJPG format.

    $ gst-launch-1.0 v4l2src device=/dev/video0 ! "image/jpeg, width=(int)1280, height=(int)800" ! jpegdec ! autovideosink sync=false
    note

    GStreamer element
    The element depends on your system, so the example may not be suitable for your system.