Skip to main content

vizion-ctl

vizion-ctl Functionality Overview

vizion-ctl is a command-line utility for camera inspection, configuration, and maintenance through VizionSDK. It is useful when you need a scriptable way to check camera status, tune image controls, capture frames, manage profiles, update firmware, or run platform-specific utilities such as routes, IMU, intrinsics, and GMSL link margin checks.

This page is organized as a quick reference:

  • Options lists command flags by task area.
  • Intrinsics YAML file format shows the required output structure for --get-intrin.
  • Control Parameters lists supported get/set camera controls with ranges and defaults.
  • Examples provides copy-ready command patterns for common operations.
warning

On Linux, commands that access I2C may require elevated privileges. See I2C permission troubleshooting.

Options

Most device-specific commands accept -d <num> / --device <num> to select a camera; if omitted, device 0 is used.

Help and device discovery

OptionPurposeArgument / Notes
-hDisplay available options.-
-v, --versionShow version information.-
-l, --list-devicesList connected camera devices.-
-d, --deviceSelect the target device.<num>; default is 0.
-i, --infoDisplay selected device information.-
-f, --list-formatsList supported capture formats.-
-hi, --header-infoDisplay ISP header information.-

Control and logging

OptionPurposeArgument / Notes
-g, --get-ctrlRetrieve one control value, or all control values.<name> or --all.
-s, --set-ctrlSet a control value.<ctrl=value>; for example, throughput=500.
--debugEnable debug logging.Can be combined with other commands.
--log-levelSet the VizionSDK log level.trace, debug, info, warn, error, critical, or off.
--log-pathWrite logs to a file path.Use a path with write permission for normal users.

Capture and sensor files

OptionPurposeArgument / Notes
-si, --save-imageSave camera image data.Requires --path <filepath>. Optional: --skip <n>, --store <n>.
-sc, --save-sensorSave sensor config to a binary file.<filepath>.
-sd, --sensor-decodeDecode a sensor config binary to JSON.Requires --bin <bin_file> and --json <json_file>.

OSP and BSL profiles

OptionPurposeArgument / Notes
-go, --get-ospGet the current OSP profile flag.-
-so, --set-ospSet the OSP profile flag.0 Disable, 1 Enabled, or 2 EnableAndSave.
-ro, --reset-ospReset the OSP profile to default settings.-
--list-bsl-profileList supported BSL profile keys from VxBSLMode.yaml.Optional: --bsl-profile <name>.

Firmware update and download

OptionPurposeArgument / Notes
-fu, --firmware-updateUpdate device firmware.<type=file>; type can be uvc or sensor.
--targetSelect the UVC firmware update target.SPI by default; also supports RAM and I2C.
-fd, --firmware-downloadDownload firmware interactively.Requires --path <path>.

Sensor firmware update supports direct mode, burned/recovery mode, and recondition traverse mode on Linux MIPI platforms.

Timestamp, framecount, and routing

OptionPurposeArgument / Notes
--get-timestampRetrieve timestamp.-
--reset-timestampReset timestamp.Requires streaming.
--get-framecountRetrieve framecount.-
--reset-framecountReset framecount.Requires streaming.
--reset-routeReset the active routes from the device.Linux only.
--setrouteActivate routes from a YAML file.<yaml_file_path>; Linux only.

IMU, intrinsics, and GMSL

OptionPurposeArgument / Notes
--enable-imuEnable an IMU mode.self-test or ispu.
--reboot-imuReboot an IMU mode.self-test or ispu.
--imu-accGet IMU accelerometer data.Use with --self-test: normal, positive, or negative.
--imu-gyrGet IMU gyroscope data.Use with --self-test: normal, positive, or negative.
--imu-ispuGet IMU ISPU data.Requires IMU ispu mode.
--get-intrinGet intrinsics info and save it to YAML.<filepath>.
--gmsl-lmRun the GMSL Link Margin Reverse and Forward algorithm.<iteration>.

IMU options are only available on VCM/TEVM cameras. Intrinsics options are only available on TEVS/TEVM cameras.

Intrinsics YAML file format

The YAML file used with the --get-intrin commands must follow the structure below:

cam0:
cam_overlaps: []
camera_model: pinhole
distortion_coeffs: [fx, fy, cx, cy]
distortion_model: radtan
intrinsics: [k1, k2, r1, r2]
resolution: [w, h]
rostopic: /usb_cam/image_raw
  • w, h: Image width and height in pixels.
  • fx, fy: Focal lengths along the horizontal (U) and vertical (V) axes.
  • cx, cy: Principal point coordinates along the horizontal (U) and vertical (V) axes.
  • k1, k2: Radial Distortion coefficients.
  • r1, r2: Tangential Distortion coefficients.
info

The fields cam_overlaps, camera_model, distortion_model, and rostopic are fixed.

Control Parameters

Use -g <control> / --get-ctrl <control> to read a value, and -s <control=value> / --set-ctrl <control=value> to update a value.

Image tuning controls

ControlRangeStepDefaultNotes
brightness-10 - 1010Adjust image brightness.
contrast-50 - 5010Adjust image contrast.
saturation0 - 50110Adjust color saturation.
gamma4 - 79122Adjust gamma correction.
sharpness-20 - 2010Adjust edge sharpness.
backlight-150 - 150110Adjust backlight compensation.
noise-20 - 2010Adjust noise reduction.
jpeg_quality0 - 2551233Adjust JPEG output quality.

White balance controls

ControlRangeStepDefaultNotes
white_balance_mode0 - 1110 Manual temperature, 1 Auto.
white_balance_temperature2300 - 1500015000Used when white balance is set to manual temperature mode.

Exposure and flicker controls

ControlRangeStepDefaultNotes
exposure_mode0 - 2110 Manual mode, 1 Auto mode, 2 Auto gain.
exposure_time1 - 1000000133333Manual exposure time.
exposure_min_time1 - 1000000116666Default follows the VxExposure.yaml min value.
exposure_max_time1 - 1000000166666Default follows the VxExposure.yaml max value.
exposure_gain1 - 6411Manual exposure gain.
flick_mode0 - 3100 Disable, 1 50Hz, 2 60Hz, 3 Auto.

Orientation, effect, and lens controls

ControlRangeStepDefaultNotes
special_effect0 - 4100 Normal, 1 Black white, 2 Grayscale, 3 Negative, 4 Sketch.
flip_mode0 - 3100 Normal, 1 H-Mirror, 2 V-Mirror, 3 Rotate-180.
pan_target0 - 1015Pan target position.
tilt_target0 - 1015Tilt target position.
zoom_target10 - 80110Zoom target position.

Stream and trigger controls

ControlRangeStepDefaultNotes
throughput10.0 - 1000.0--Stream throughput limit.
max_fps1 - 120--Maximum frame rate.
trigger_mode0 - 3100 Disable, 1 Sync, 2 Periodic, 3 Non Periodic. Supported on TEVS and VCS cameras.

eHDR controls

ControlRangeStepDefaultNotes
ehdr_mode0 - 1100 Enable, 1 Disable. Disable mode turns off the eHDR effect.
ehdr_exposure_min_number1 - 411Minimum eHDR exposure count.
ehdr_exposure_max_number1 - 414Maximum eHDR exposure count.
ehdr_ratio_min1 - 128112Minimum eHDR ratio.
ehdr_ratio_max1 - 128124Maximum eHDR ratio.

eHDR features are only supported on AR0821, AR0822, and AR0246 sensors.

Examples

Use these examples as quick command patterns. Short flags are shown first, with long-flag equivalents included where they add clarity.

Basic device queries

# Show version information
vizion-ctl -v
vizion-ctl --version

# List connected devices and inspect device 0
vizion-ctl -l
vizion-ctl -d 0 -i

# List supported capture formats and read ISP header information
vizion-ctl -d 0 -f
vizion-ctl -d 0 -hi

Control values and logging

warning

When using --log-path, set the destination to a location with write permissions for normal users.

# Get all controls or one specific control
vizion-ctl -d 0 -g --all
vizion-ctl -d 0 --get-ctrl throughput

# Set a control value
vizion-ctl -d 0 -s throughput=500

# Enable debug logs, set log level, or write logs to a file
vizion-ctl -d 0 -g --all --debug
vizion-ctl -d 0 -g --all --log-level warn
vizion-ctl -d 0 -g --all --debug --log-path path_to_log_file

Capture, firmware, and sensor files

warning

Set output paths to locations with write permissions for normal users.

# Save one image, or discard 5 frames before saving 3 frames
vizion-ctl -d 0 -si --path image.raw
vizion-ctl -d 0 -si --path image.raw --skip 5 --store 3

# Update UVC firmware, update UVC firmware to RAM, or update sensor firmware
vizion-ctl -d 0 -fu uvc=firmware.img
vizion-ctl -d 0 -fu uvc=firmware.img --target RAM
vizion-ctl -d 0 -fu sensor=firmware.bin

# Download firmware, export sensor config, or decode sensor config
vizion-ctl -d 0 -fd --path path_to_fw
vizion-ctl -d 0 --save-sensor config.bin
vizion-ctl --sensor-decode --bin config.bin --json config.json

Linux MIPI sensor firmware modes:

# Direct mode, burned/recovery mode, and recondition traverse mode
vizion-ctl -fu sensor=firmware.bin --i2c-bus 2 --subdev /dev/v4l-subdev2
vizion-ctl -fu sensor=firmware.bin --i2c-bus 1 --slave-id 0x48 --bsl-profile edm-g-imx8mp
vizion-ctl -fu sensor=firmware.bin --recondition --bsl-profile orinnano

OSP and BSL profiles

# Get, set, or reset the OSP profile flag
vizion-ctl -d 0 -go
vizion-ctl -d 0 -so 1
vizion-ctl -d 0 -ro

# List all BSL profile keys or filter by profile name
vizion-ctl --list-bsl-profile
vizion-ctl --list-bsl-profile --bsl-profile orinnano

Timestamp, framecount, and routes

warning

Timestamp and framecount reset commands require the camera to be streaming. Route commands are supported only on Linux.

# Read or reset timestamp and framecount
vizion-ctl -d 0 --get-timestamp
vizion-ctl -d 0 --get-framecount
vizion-ctl -d 0 --reset-timestamp
vizion-ctl -d 0 --reset-framecount

# Clear active routes
vizion-ctl --reset-route

Activate the routes

vizion-ctl --setroute routes.yaml

IMU, intrinsics, and GMSL

warning

IMU commands are only available on VCM/TEVM cameras. Intrinsics commands are only available on TEVS/TEVM cameras. Set output paths to locations with write permissions for normal users.

# Enable or reboot IMU mode
vizion-ctl -d 0 --enable-imu ispu
vizion-ctl -d 0 --reboot-imu ispu

# Read IMU self-test accelerometer/gyroscope data or ISPU data
vizion-ctl -d 0 --imu-acc --self-test normal
vizion-ctl -d 0 --imu-gyr --self-test normal
vizion-ctl -d 0 --imu-ispu

# Export intrinsics data and run GMSL Link Margin
vizion-ctl -d 0 --get-intrin calibration.yaml
vizion-ctl -d 0 --gmsl-lm 1