< Jetson
Revision as of 01:50, 1 December 2017 by AnithaJp (talk | contribs) (USB 3.0 webcams known to be working)
Jump to: navigation, search

Camera interfaces on Jetson Platform

The Jetson boards provide several different interfaces that allow camera input:

  • USB 3.0 port (supports many USB 2.0 or USB 3.0 webcams). Additional USB 3.0 ports can be added through mini-PCIe, eg: mini-PCIe (untested).
  • USB 2.0 port (through a micro-B to female USB-A adapter, that is sometimes included with Jetson).
  • Gigabit Ethernet port. Additional Gigabit or Dual-Gigabit Ethernet ports can be added through mini-PCIE, eg: mini-PCIe (untested).
  • MIPI CSI-2 camera ports (up to 12 lanes at 2.5Gbps each)
  • Firewire (available through mini-PCIe), eg: mini-PCIe (untested).
  • Analog video capture cards, available through mini-PCIe (eg: mini-PCIe (untested)), USB 3.0 (eg: USB 3.0 (untested)), or USB 2.0 (eg: USB 2.0 (untested)).

It is also possible to use Multiple cameras, Stereo cameras, or Specialized camera sensors as discussed further below.

Many of these cameras can be accessed by following the Camera access section, also further bellow.

Interface details

USB 2.0

USB 2.0 (480 Mbps) is the most common & cheapest method for camera input, since USB 2.0 webcams range from $5 - $200. However, USB 2.0 is the slowest of the possible camera interfaces, so it usually only supports upto 720p 30fps (eg: Logitech C310 $45 (untested)), (except for the few USB 2.0 cameras supporting 1080p video compression, such as Logitech C910 (untested)). Logitech C910 is known to work on Jetson TK1 in uncompressed modes but has not been tested in 1080p compressed mode.

Typically, webcams are successfully giving the same frame-rates & resolutions on Jetson TK1 as on an x86 desktop running Linux (eg: 640x480 @ 30 FPS, 960x720 @ 15 FPS, and 1920x1080 @ 15 FPS). Note that many webcams will run slower if there is low lighting, so for example, it might be 30 FPS when pointed at a bright light but only 10 FPS when pointed at a shadow.

Disabling USB auto-suspend

Some USB devices & cameras have problems on Jetson TK1 due to automatic suspending of inactive USB ports in L4T 19.2 OS to save power. So you might need to disable USB auto-suspend mode. This will disable it temporarily until you reboot:

sudo bash -c 'echo -1 > /sys/module/usbcore/parameters/autosuspend'

To automatically disable USB auto-suspend on bootup, follow the instructions to Run a command automatically on bootup.

Or edit kernel parameters in /boot/extlinux/extlinux.conf to add usbcore.autosuspend=-1. (usbcore is built in the kernel so modprobe method would not work.)

USB 2.0 webcams known to be working

USB 2.0 webcams with known problems

Note: If a webcam or video capture card is supported by UVC or Video4Linux (see examples) then it will probably work the same on Jetson TK1 as on a desktop, but there is a possibility that it requires the firmware to be copied to your "/lib/firmware" folder or potentially even compiling & flashing your own custom Linux kernel with appropriate drivers enabled.

USB 3.0

USB 3.0 (5 Gbps "SuperSpeed") on the full-sized USB port (J1C2 connector) has enough bandwidth to allow sending uncompressed 1080p video streams. But USB 3.0 hasn't reached the mass consumer market like USB 2.0 has, so USB 3.0 cameras are mostly still limited to expensive professional-grade cameras. eg: PointGrey Flea3 1080p @ 60 FPS (working!) or e-Con See3CAM_CU130 1080p @ 60 FPS (working!) or Ximea MQ003CG-CM 480p @ 500 FPS (not tested).

Enabling support for USB 3.0 on the full-sized USB port

Note that early versions of Linux4Tegra didn't come with USB 3.0 support enabled, and thus you might need to enable USB 3.0 support and re-flash your whole L4T system. According to the L4T R19.2 Release Notes, you should modify the odmdata settings (in "pm375_release_armhf/Linux_for_Tegra/jetson-tk1.conf") to enable USB 3.0:

# Use ODMDATA=0x6009C000 for USB 2.0 operation or for use as a root device.
# Use ODMDATA=0x6209C000 for USB 3.0 operation. Requires firmware loaded from userspace or initial ramdisk.

Then flash your L4T system and reboot.

Enabling USB 3.0 support on L4T 21.2 is easier. You only have to change one parameter in:






and reboot.

USB 3.0 webcams known to be working

Supplier Product Image Sensor Sensor Type Format Resolution Frame


e-con Systems See3CAM_CU130 AR1820 COLOR,


YUYV 4224x3156 4 NT NT
640x480 60 NT NT
MJPEG 1920x1080 18 NT NT
4224x3156 4 NT NT
640x480 60 NT NT
1280x720 45 NT NT
e-con Systems See3CAM_130 AR1335 COLOR,


UYVY 640x480 60 60 NT
1280x720 29 29 NT
1920x1080 29 29 NT
3840x2160 7 7 NT
4096x2160 7 7 NT
4208x3120 4 4 NT
MJPEG 640x480 90 40 NT
1280x720 35 35 NT
1920x1080 15 15 NT
e-con Systems See3CAM_CU30 AR0330 COLOR,


MJPEG 1280x720 42 42 NT
1920x1080 20 20 NT
UYVY 1280x720 30 30 NT
1920x1080 13 13 NT
e-con Systems See3CAM_30 AR0330 COLOR,


MJPEG 1280x720 42 42 NT
1920x1080 20 20 NT
UYVY 1280x720 30 30 NT
1920x1080 13 13 NT
e-con Systems See3CAM_CU50 OV5640 COLOR,


YUYV 2592x1944 8 NT NT
1920x1080 30 NT NT
1280x720 30 NT NT
640x480 30 NT NT
MJPEG 2592x1944 15 NT NT
1920x1080 30 NT NT
1280x720 30 NT NT
640x480 60 NT NT
e-con Systems See3CAM_12CUNIR AR0130 MONOCHROME,


Y16 1280x960 40 NT NT
1280x720 55 NT NT


45 NT NT


60 NT NT
e-con Systems See3CAM_11CUG AR0134 COLOR,


YUYV 1280x960 20 NT NT
1280x720 30 NT NT


30 NT NT


60 NT NT
e-con Systems See3CAM_10CUG_C AR0134 COLOR,


BA8 1280x960 45 NT NT
1280x720 60 NT NT
640x480 45 NT NT
e-con Systems See3CAM_10CUG_M AR0134 MONOCHROME,


GREY 1280x960 45 NT NT
1280x720 60 NT NT
640x480 45 NT NT
e-con Systems See3CAM_80 OV8825 COLOR,


YUYV 1920x1080 30 NT NT
1280x720 30 NT NT
640x480 30 NT NT
e-con Systems See3CAM_CU135 AR1335 COLOR,


UYVY 640x480 118 118 118
1280x720 29 29 29
1920x1080 29 29 29
3840x2160 6 6 6
4096x2160 6 6 6
4208x3120 3 3 3
MJPEG 640x480 100 119 119
1280x720 38 46 59
1920x1080 18 21 36
e-con Systems See3CAM_81 OV8865 COLOR,


YUYV 640x480 30 30 NT
1280x720 30 30 NT
1920x1080 12 12 NT
3264x2448 5 5 NT
PointGrey BlackFly Example 1624x1224 15 fps Jetson TX1/TX2
PointGrey Flea3 Example Example Example Example
PointGrey Example Example Example Example Example
PointGrey Example Example Example Example Example
PointGrey Example Example Example Example Example
PointGrey Example Example Example Example Example
PointGrey Example Example Example Example Example
  • NT - Not Tested
See3CAM_CU130 USB 3.0 1920x1080 Camera

e-con Systems have tested many of their USB 3.0 cameras with [[Jetson TK1] [Jetson TX1] Jetson TX2. They require flashing a custom Linux kernel that has the CONFIG_HIDRAW setting enabled, by following their tutorial, or using the The Grinch kernel by Korneliusz Jarzębski.

PointGrey USB 3.0 camera with standard lens mount

Several PointGrey USB 3.0 cameras with CS-mount lens and Global Shutter have been tested as working on Jetson TK1:

Setup steps for the PointGrey Flea3 camera to work on Jetson TK1:




IDS uEye cameras

  • UI-3241LE tested on L4T 21.3, can capture at full frame rate and resolution (1280x1024, 60fps, 8bit mono) through native USB3 port. Experienced very poor performance when connected through this mini-PCIe USB3 adapter, (see forum).

Gigabit Ethernet

TRENDnet IP camera for just $120

"IP Cameras" are fairly easy to find and are a good option for single or multiple cameras. Gigabit Ethernet (1 Gbps) has enough bandwidth for uncompressed 1080p video streams. eg: GigE cameras (untested) or regular IP network cameras. Nico notes that older GigE cameras typically do not apply any compression, since compression is a feature of the newer GigE Vision 2 standard, and thus most industrial GigE cameras for computer vision don't have compression and send Bayer images instead. IP cameras typically have M-JPEG compression as well as a video streaming server such as by providing a URL where M-JPEG or JPEG frames are available.

Gigabit network cameras known to be working


DFK31BF03 Firewire camera

Firewire has been used for professional video capture for a long time, since Firewire cameras do a lot of both the compression and the data transmission in hardware and thus don't put nearly as much stress on the host CPU compared to USB.


13MP MIPI CSI-2 Camera Module for Jetson TK1

CSI-2 MIPI is the method used for smartphone cameras and is the most efficient method for camera input, since the cameras are tiny (just a few millimeters in size!) and the images can be processed directly by the ISP rather than needing to be stored into the computer's DRAM first before processing. However using a raw CSI MIPI camera sensor directly requires much more work than using a USB, Ethernet or Firewire camera. If you are designing your own custom embedded product for mass-production then CSI MIPI is the recommended camera solution. Luckily, for hobbyists & DIY there are now some MIPI CSI camera modules starting to appear for Jetson TK1, that are fairly plug & play.

MIPI CSI-2 sensors known to be working

  • e-con Systems e-CAM130_CUTK1: a 13 MP 4-lane MIPI CSI-2 Camera Module (eg: VGA @ 90FPS or 13MP @ 14FPS). It is made specifically for Tegra K1 / Jetson TK1, so it can just be plugged straight into a Jetson TK1 for easy testing, and allows standard S-mount lenses to be attached.
  • e-con Systems e-CAM30_CUTK1: a 3.4 MP colour camera with the S-mount (also known as M12 board lens) lens holder. It contains a 1/3” AR0330 CMOS image sensor from ON Semiconductor and can be interfaced to the J3A2 connector on the Jetson TK1 directly. It supports 3.4MP at 30 fps in uncompressed YUV format. Also VGA, HD and Full HD are other supported resolutions. It has good low light sensitivity which can be useful in night vison applications as well as in robotics.
  • e-con Systems e-CAM40_CUTK1: a 4.0 MP 4-lane MIPI CSI-2 RGB IR Camera Module (eg: VGA @ 330FPS or 4MP @ 40FPS). It is made specifically for Tegra K1 / Jetson TK1, so it can just be plugged straight into a Jetson TK1 for easy testing, and allows standard S-mount lenses to be attached. Watch OV4682 camera module introduction video:
  • e-con Systems e-CAM80_MI8825_MOD: an 8 MP MIPI CSI-2 sensor (eg: 720p @ 55FPS or 8MP @ 11FPS) has been tested on the Jetson TK1 but needs a custom connector. This article shows a demonstration of the module streaming uncompressed YUV2.
  • full function expansion board: a full function expansion board designe by, have tested using the OV5640 module.

Building your own custom MIPI CSI-2 camera module

Some embedded systems engineers may wish to design their own MIPI CSI-2 camera boards. This is not an easy task, but it is possible by using the information shown in the Tegra K1 Embedded Platform Design Guide (Chapter 3.6: Video Input Interfaces) and taking care of the following guidelines:

  1. GPIO/Pinmux selection, take care of the same power rail level and on/off power domain in different use case
  2. Take care of the FPC and connector quality
  3. EMI isolation from the nearby source
  4. Suggest independent LDO source for sensitive rails
  5. Check the I2C speed of the clients on the same I2C bus, which impact the camera response time

Multiple Cameras

There are several ways to handle multiple cameras on Jetson TK1 at the same time:

  • Ethernet: multiple IP cameras on a network (eg: several TRENDnet Internet Cameras (untested) at $118 each). Theoretically you could have 6 x FullHD 1080p 30fps cameras using 3 x Gigabit Ethernet ports on Jetson TK1 (discussed on the forum)!
  • CSI MIPI: 2 cameras (eg: a front camera and a rear camera (untested)).
DCDZ 4eyes project
  • CSI MIPI bridge:aim to the ADAS or 360 deg view applications,a project(named 4eyes project) had been tested by DCDZ,supports up to 4 cameras via POC(power over cable). HDR 720p 30fps OmniVision's sensors, 3 meters RG174 cable

Stereo Cameras

DUO Stereo Camera
TARA Stereo Camera


  • e-con Systems : (Tara - USB Stereo Camera) for $249. 3D USB3 stereo camera is based on OnSemi imaging's MT9V024 image sensor. Known to be working correctly on Jetson TK1. It also works with the ROS.
  • Code Laboratories: (DUO MLX) (Known to be working / Manufacturer Supported on Jetson TK1. See DUO3D on Jetson).
  • Stereolabs: (Zed) for $449. USB 3.0 stereo camera that includes depth from stereo using a CUDA-capable GPU. Known to be working correctly on Jetson TK1.
  • IDS: (N10) (untested).
  • Leopard Imaging: (LI-USB30) (untested).


(Would require a Firewire mini-PCIe card).

Specialized camera sensors

  • Time-Of-Flight 3D depth "RGBD" cameras (eg: Microsoft Kinect is known to work, see details below).
  • Night-vision or Thermal-imaging Infrared cameras, typically with interfaces similar to standard cameras.
  • Video frame grabbers, including a HDMI capture card discussed below.

Microsoft Kinect Structured-Light 3D Depth camera

MS Kinect 3D camera

Several users (eg: HellMood) have been able to use a Kinect camera on Jetson TK1, after disabling the USB auto-suspend (mentioned above).

Then you need to follow the Kinect Manual Installation Guide rather than the many x86 based guides, since the Tegra CPU uses ARM architecture.

User HellMood also posted a video showing the new Kinect camera working on Jetson TK1: MoodShades Preview.

Asus XTion Pro Live RGB-D Sensor using OpenNI2 library

Asus Xtion Pro Live

Asus XTion Pro Live is a RGB-D sensor based on the Primesense's patent (Primesense has been acquired and deleted by Apple in the end of 2013) that drives the first Microsoft Kinect. Asus Xtion sensor, differently from Microsoft Kinect, can be powered directly by USB cable not requiring an external power source.

You can find a guide to compile OpenNI2 library for Jetson TK1 and use it to interface Asus XTion Pro Live on the blog of the robotic project MyzharBot.

AVerMedia HDMI capture card

AVerMedia sell a mini-PCIe frame grabber device that allows capturing HDMI input (or DVI or VGA) and fully supports Jetson TK1. For example, it could allow processing live video from a GoPro camera. More info here.

Camera access

To see which video capture devices you have available:

ls /dev/video*

To see the supported video formats of your webcam:

sudo apt-get install luvcview
luvcview -d /dev/video0 -L

You can also use luvcview to record video from your webcam to a video file. It will open a GUI window showing the camera preview. Then along the middle of the bottom row there are 4 rectangle buttons, click the bottom-left of the 4 buttons to start/stop video recording, and the bottom-right button to quit. To record video using the default settings of your webcam:

luvcview -o out.avi

To record video using a custom resolution (of those shown when running luvcview -L above):

luvcview -o out.avi -s 640x480

Normally, guvcview can be used to adjust default camera settings, but it seems that the default guvcview is not working correctly on ARM due to a kernel change.