Main Content

jetson

Connection to NVIDIA Jetson hardware

Add-On Required: This feature requires the MATLAB Coder Support Package for NVIDIA Jetson and NVIDIA DRIVE Platforms add-on.

Description

This object represents a connection from the MATLAB® software to the NVIDIA® Jetson™ hardware. To create this object, use the jetson function. To interact with the Jetson hardware, use this object with the functions listed in Object Functions.

Creation

Description

obj = jetson creates a connection, obj, from the MATLAB software to the NVIDIA Jetson hardware. Use this syntax to connect or reconnect to the same hardware. You do not need to supply the device address, user name, and password. The jetson object reuses these settings from the most recent successful connection to the Jetson hardware.

example

obj = jetson(deviceaddress,username,password) overrides the device address, user name, and password from the previous connection. Use this syntax to connect to hardware whose settings are different from the previous successful connection. The Jetson hardware has two default user names: 'nvidia' and 'ubuntu'. For 'nvidia', the default password is 'nvidia'. For 'ubuntu', the default password is 'ubuntu'. It is a good security practice to create a strong password after the first login. After changing the hardware password, or after connecting from the MATLAB software to a different piece of Jetson hardware, use this syntax.

After connecting to the hardware, you can use the obj object to interact with the Jetson hardware and attached peripherals such as a camera. To close the connection, use clear to remove obj and connections that use obj.

example

Input Arguments

expand all

IP address or host name of the hardware, specified as a character vector or string.

To use the host name, you must connect an Ethernet cable to the Ethernet port of the board. Use Linux® commands to configure the hardware IP address and associate the host name with the IP address.

Example: '169.254.0.2'

Example: 'jetson-board-name'

Linux user name, specified as a character vector or string.

Example: 'ubuntu'

Password associated with the Linux user name, specified as a character vector or string.

Example: 'ubuntu'

Output Arguments

expand all

A connection from the MATLAB software to the Jetson hardware, returned as a jetson object.

Properties

expand all

This property is read-only.

The numbers of the available GPIO pins on the NVIDIA Jetson hardware, returned as a vector of doubles.

Example: [7 11 12 13 15 16 18 19 21 23 24 29 31 32 33 35 36 37 38 40]

Data Types: array

This property is read-only.

The name of the target Jetson board, returned as a character vector.

Example: 'NVIDIA Jetson TX2'

This property is read-only.

Version number of the CUDA toolkit installed on the Jetson board, returned as a character vector.

Example: '9.0'

This property is read-only.

Version number of the CUDA Deep Neural Network library (cuDNN) installed on the Jetson board, returned as a character vector.

Example: '7.0'

This property is read-only.

The IP address or host name of the Ethernet port on the Jetson board, returned as a character vector.

Example: '169.254.0.2''jetson-board-name'

This property is read-only.

Additional information on the GPU of the Jetson board, returned as a 1-by-1 structure. To access this structure use objectName.GPUInfo. The structure contains the following fields:

NameDescription

Name

Name of the CUDA device.

Index

Index of the selected GPU device.

ComputeCapability

Computational capability of the CUDA device.

CUDADriverVersion

The CUDA device driver version on the board currently in use.

CUDAToolkitVersion

Version of the CUDA toolkit on the board.

MaxThreadsPerBlock

Maximum supported number of threads per block during CUDA kernel execution.

MaxSharedMemPerBlock

Maximum amount of shared memory that a thread block can use during CUDA kernel execution.

MaxThreadBlockSize

Maximum size in each dimension for thread block.

MaxGridSize

Maximum size of grid of thread blocks.

AvailableMemory

Total amount of memory (in bytes) available for data.

TotalConstMem

Total amount of constant memory (in bytes) available for data.

MultiprocessorCount

The number of vector processors present on the device.

TotalCUDACores

Total number of CUDA cores available on the target board.

MaxThreadsPerSM

Maximum number of threads per symmetric multiprocessor.

For example, a Jetson TX2 board has the following values:

hwJetson.GPUInfo

ans = 

  struct with fields:

                    Name: 'NVIDIA Tegra X2'
                   Index: 0
       ComputeCapability: 6.2000
       CUDADriverVersion: 9
      CUDAToolkitVersion: 9
      MaxThreadsPerBlock: 1024
    MaxSharedMemPerBlock: 49152
      MaxThreadBlockSize: [1024 1024 64]
             MaxGridSize: [2.1475e+09 65535 65535]
         AvailableMemory: 8.2358e+09
           TotalConstMem: 65536
     MultiprocessorCount: 2
          TotalCUDACores: 256
         MaxThreadsPerSM: 2048

This property is read-only.

Version number of the GStreamer library installed on the Jetson board, returned as a character vector.

Example: '1.14.5'

This property is read-only.

Version number of the OpenCV library installed on the Jetson board, returned as a character vector.

Example: '4.1.1'

This property is read-only.

The SSH port number on the Jetson board, returned as an integer.

Example: 22

This property is read-only.

Version number of the SDL library installed on the Jetson board, returned as a character vector.

Example: '1.2'

This property is read-only.

Version number of the NVIDIA TensorRT library installed on the Jetson board, returned as a character vector.

Example: '3.0'

This property is read-only.

Version number of the V4L2 library installed on the Jetson board, returned as a character vector.

Example: '1.14.2-1'

This property is read-only.

A list of the USB web cameras that are available, returned as a cell array of strings.

Example: {'Microsoft(R) LifeCam Cinema (TM)'}

Object Functions

configurePinConfigure GPIO pin as digital input or digital output
deleteFileDelete file on target hardware
getCameraListGet a list of available cameras on the NVIDIA hardware
getDisplayEnvironmentGet the display environment value used for redirecting the display on the target
getFileTransfer file from NVIDIA hardware to host computer
getL4TVersionGet the L4T version of the NVIDIA Jetson hardware
getLinuxVersionGet information about the Linux environment on the target
getPILPortGet the TCP/IP port number used by the PIL execution
getPILTimeoutGet the timeout value that PIL uses for reading data
imageDisplayCreate an imageDisplay object for displaying images on NVIDIA targets
killApplicationKill an application on the NVIDIA target by name
killProcessKill a process on the NVIDIA target by ID
listAudioDevicesGet a list of available audio devices on the NVIDIA hardware
openShellOpen terminal on host computer to use a Linux shell on NVIDIA hardware
putFileTransfer file from host computer to target hardware
readDigitalPinRead logical value from GPIO input pin
runApplicationLaunch an application on the NVIDIA target by name
runExecutableLaunch an executable on the NVIDIA target by name
setDisplayEnvironmentSet the display environment value used for redirecting the display on the target
setPILPortSet the TCP/IP port number used by the PIL execution
setPILTimeoutSet the timeout value that PIL uses for reading data
setupCodegenContextSelect the target hardware to build code for from multiple live connection objects
showPinsShow diagram of GPIO pins
systemRun commands in a Linux shell on the NVIDIA hardware
updatePeripheralInfoScan for and update the list of peripherals connected to the target hardware
webcamCreate webcam object to acquire images from an USB webcam attached to the NVIDIA hardware
workspaceDirGet the build directory on the NVIDIA hardware
writeDigitalPinWrite logical value to GPIO output pin

Examples

collapse all

This example shows you how to create a connection from the MATLAB software to the NVIDIA Jetson hardware. The Jetson hardware is connected to the same TCP/IP network as the host computer. This example uses the device address, user name, and password settings from the most recent successful connection to the Jetson hardware.

Create a connection, hwJetson, from the MATLAB software to NVIDIA Jetson hardware.

hwJetson = jetson
Checking for CUDA availability on the Target...
Checking for 'nvcc' in the target system path...
Checking for cuDNN library availability on the Target...
Checking for TensorRT library availability on the Target...
Checking for prerequisite libraries is complete.
Gathering hardware details...
Checking for third-party library availability on the Target...
Gathering hardware details is complete.
 Board name              : NVIDIA Jetson TX2
 CUDA Version            : 10.0
 cuDNN Version           : 7.6
 TensorRT Version        : 6.0
 GStreamer Version       : 1.14.5
 V4L2 Version            : 1.14.2-1
 SDL Version             : 1.2
 OpenCV Version          : 4.1.1
 Available Webcams       : Microsoft® LifeCam Cinema(TM)
 Available GPUs          : NVIDIA Tegra X2
 Available Digital Pins  : 7  11  12  13  15  16  18  19  21  22  23  24  29  31  32  33  35  36  37  38  40

hwJetson = 

  jetson with properties:

           DeviceAddress: 'jetson-board-name'
                    Port: 22
               BoardName: 'NVIDIA Jetson TX2'
             CUDAVersion: '10.0'
            cuDNNVersion: '7.6'
         TensorRTVersion: '6.0'
              SDLVersion: '1.2'
             V4L2Version: '1.14.2-1'
        GStreamerVersion: '1.14.5'
           OpenCVVersion: '4.1.1'
                 GPUInfo: [1×1 struct]
              WebcamList: {'Microsoft® LifeCam Cinema(TM)'}
    AvailableDigitalPins: [7 11 12 13 15 16 18 19 21 22 23 24 29 31 32 33 35 36 37 38 40]

The MATLAB Coder™ Support Package for NVIDIA Jetson and NVIDIA DRIVE® Platforms establishes an SSH connection to the Jetson hardware using the settings stored in memory. It checks for the CUDA toolkit, cuDNN, and TensorRT libraries on the target hardware and displays this information on the MATLAB Command Window. To set up the environment variables on the board for the compiler and the libraries, see Install and Setup Prerequisites for NVIDIA Boards.

To get the L4T software version on the Jetson board, use the getL4TVersion method of the jetson connection object.

getL4TVersion(hwJetson);
Jetson L4T version is: L4T R28.2.0.

To start a PuTTY SSH terminal session on the Jetson board, use the openShell method of the jetson connection object.

openShell(hwJetson);
Using username "ubuntu".
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.38-tegra aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

30 packages can be updated.
0 updates are security updates.

Last login: Sat Aug 11 19:38:08 2018 from 169.20.200.242
ubuntu@tegra-ubuntu:~$ ls
Desktop    gpucoderTX2       Music     remoteBuildDir  Videos
Documents  jetson_clocks.sh  Pictures  tegrastats      weston.ini
Downloads  MATLAB            Public    Templates
ubuntu@tegra-ubuntu:~$

After logging into the Linux shell, you execute shell commands such as ls as shown.

To close the connection, use clear to remove hwJetson and connections that use hwJetson.

clear hwJetson;

This example shows you how to create a connection from the MATLAB software to the NVIDIA Jetson hardware that has different device address, user name, and password settings from the previous successful connection.

Create a connection, hwJetson, from the MATLAB software to NVIDIA Jetson hardware. For example,

hwJetson = jetson('169.254.0.2','nvidia','nvidia');
Checking for CUDA availability on the Target...
Checking for 'nvcc' in the target system path...
Checking for cuDNN library availability on the Target...
Checking for TensorRT library availability on the Target...
Checking for prerequisite libraries is complete.
Gathering hardware details...
Checking for third-party library availability on the Target...
Gathering hardware details is complete.
Board name              : NVIDIA Jetson TX2
CUDA Version            : 10.0
cuDNN Version           : 7.6
TensorRT Version        : 6.0
GStreamer Version       : 1.14.5
V4L2 Version            : 1.14.2-1
SDL Version             : 1.2
OpenCV Version          : 4.1.1
     Available Webcams  : Microsoft® LifeCam Cinema(TM)
     Available GPUs     : NVIDIA Tegra X2
Available Digital Pins  : 7  11  12  13  15  16  18  19  21  22  23  24  29  31  32  33  35  36  37  38  40

hwJetson = 

  jetson with properties:

       DeviceAddress: '169.254.0.2'
                Port: 22
           BoardName: 'NVIDIA Jetson TX2'
         CUDAVersion: '10.0'
        cuDNNVersion: '7.6'
     TensorRTVersion: '6.0'
          SDLVersion: '1.2'
         V4L2Version: '1.14.2-1'
    GStreamerVersion: '1.14.5'
       OpenCVVersion: '4.1.1'
             GPUInfo: [1×1 struct]
          WebcamList: {'Microsoft® LifeCam Cinema(TM)'}
AvailableDigitalPins: [7 11 12 13 15 16 18 19 21 22 23 24 29 31 32 33 35 36 37 38 40]

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced in R2018b