Difference between revisions of "Jetson TX1"

From eLinux.org
Jump to: navigation, search
m (adding power info and standard unit dimensions)
m (Enclosures)
 
(192 intermediate revisions by 15 users not shown)
Line 1: Line 1:
  
NVIDIA's [https://developer.nvidia.com/embedded-computing Jetson TX1] is an embedded system-on-module (SoM) with quad-core ARM Cortex-A57, 4GB LPDDR4 and integrated 256-core Maxwell GPU.  <br />
+
NVIDIA [https://developer.nvidia.com/embedded/buy/jetson-tx1-devkit Jetson TX1] is an embedded system-on-module (SoM) with quad-core ARM Cortex-A57, 4GB LPDDR4 and integrated 256-core Maxwell GPU.  <br />
  
 
Useful for deploying computer vision and deep learning, Jetson TX1 runs Linux and provides 1TFLOPS of FP16 compute performance in 10 watts of power.  
 
Useful for deploying computer vision and deep learning, Jetson TX1 runs Linux and provides 1TFLOPS of FP16 compute performance in 10 watts of power.  
  
[[File:Jetson_TX1_DevKit_Module_combo.jpg|1000px|right|text-bottom]]
+
Jetson TX1 is available as the '''[[#Jetson TX1 Module|module]]''', '''[[#Jetson TX1 Developer Kit|developer kit]]''', and in compatible '''[[#Ecosystem Products|ecosystem]]''' products. See the wiki of other Jetson's '''[[Jetson|here]]''', including the latest [[Jetson AGX Xavier]].
  
 +
{| style="color: black; background-color: #ffffff; width: 600px;"
 +
|-
 +
| style="width: 50px; background-color: white;"|
 +
| style="width: 550px; background-color: #76b900;"|
 +
{{spaces|1}} <span style="font-family: Trebuchet MS; color: white;">'''Parallel ForAll''' — </span>''[https://devblogs.nvidia.com/parallelforall/nvidia-jetson-tx1-supercomputer-on-module-drives-next-wave-of-autonomous-machines/ <span style="font-family: Trebuchet MS; color:white;">NVIDIA Jetson TX1 Drives Next Wave of Autonomous Machines</span>]''
 +
|}<br />
 +
[[File:Jetson_TX1_DevKit_Module_combo.jpg|800px|right|text-bottom]]
  
 
= Jetson TX1 Module =
 
= Jetson TX1 Module =
Line 12: Line 19:
 
Below is a partial list of the module's features.  Please see the [http://developer.nvidia.com/embedded/dlc/jetson-tx1-module-data-sheet Module Datasheet] for the complete specifications.
 
Below is a partial list of the module's features.  Please see the [http://developer.nvidia.com/embedded/dlc/jetson-tx1-module-data-sheet Module Datasheet] for the complete specifications.
  
[[File:Jetson_TX1_Block_Diagram.jpg|900px|right]]
+
[[File:Jetson_TX1_Block_Diagram_Module.png|700px|right]]
 +
 
 
=== Processing Components ===
 
=== Processing Components ===
 
* quad-core ARM Cortex-A57
 
* quad-core ARM Cortex-A57
Line 18: Line 26:
 
* 4GB LPDDR4
 
* 4GB LPDDR4
 
* 16GB eMMC
 
* 16GB eMMC
* H.264/H.265 encoder/decoder
+
* H.264/H.265 encoder & decoder
=== Ports ===
+
* Dual ISPs (Image Service Processors)
 +
=== Ports & Peripherals ===
 
* HDMI 2.0
 
* HDMI 2.0
 
* 802.11ac WiFi, Bluetooth 4.0
 
* 802.11ac WiFi, Bluetooth 4.0
Line 29: Line 38:
 
* 3x UART, 3x SPI, 4x I2C
 
* 3x UART, 3x SPI, 4x I2C
  
=== Form-factor ===
+
=== Form-Factor ===
 
* 400-pin Samtec board-to-board connector
 
* 400-pin Samtec board-to-board connector
 
* dimensions: 50x87mm {{spaces|1}} (1.96" x 3.42")
 
* dimensions: 50x87mm {{spaces|1}} (1.96" x 3.42")
Line 37: Line 46:
  
 
=== Software Support ===
 
=== Software Support ===
* [https://developer.nvidia.com/embedded/jetpack JetPack 2.2]
+
<div style="width:40%;column-count:2;-moz-column-count:2;-webkit-column-count:2">
* [https://developer.nvidia.com/embedded/linux-tegra Linux4Tegra] (L4T) for ARM (Ubuntu 32-bit and 64-bit)
+
* [https://developer.nvidia.com/embedded/jetpack JetPack 4.2.2]
* CUDA Toolkit 7  
+
* [https://developer.nvidia.com/embedded/linux-tegra Linux4Tegra R32.2.1] (L4T)
* cuDNN v5
+
* Linux kernel 4.9
* Visionworks 1.4
+
* Ubuntu 18.04 aarch64
* OpenCV4Tegra 2.4.13
+
* [https://developer.nvidia.com/cuda-toolkit CUDA Toolkit] 10.0.326
* OpenGL 4.4
+
* [https://developer.nvidia.com/cudnn cuDNN] 7.5.0
* OpenGL ES 3.1
+
* [https://developer.nvidia.com/tensorrt TensorRT] 5.1.6
* Vulkan
+
* [https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html TensorFlow] 1.14.0
 +
* [https://developer.nvidia.com/embedded/visionworks VisionWorks] 1.6
 +
* OpenCV 3.3.1
 +
* OpenGL 4.6 / OpenGL ES 3.2.5
 +
* Vulkan 1.1.1
 +
* [http://developer.nvidia.com/embedded/dlc/l4t-multimedia-api-reference-32-1 L4T Multimedia API] (Argus 0.97)
 +
* GStreamer 1.14.1
 
* V4L2 media controller support
 
* V4L2 media controller support
* [https://developer.nvidia.com/tegra-system-profiler Tegra System Profiler]
+
* [https://developer.nvidia.com/nsight-systems NVIDIA Nsight Systems] 2019.4
* [https://developer.nvidia.com/tegra-graphics-debugger Tegra Graphics Debugger]
+
* [https://developer.nvidia.com/nsight-graphics NVIDIA Nsight Graphics] 2019.2
* [https://developer.nvidia.com/embedded/nvidia-perfkit PerfKit 4.5.1]
+
* [https://developer.nvidia.com/nsight-compute NVIDIA Nsight Compute] 1.0
 +
</div>
  
 +
See the '''[[Jetson Zoo]]''' for more software packages to install on top of JetPack.
 +
 +
{| style="color: black; background-color: #ffffff; width: 575px;"
 +
|-
 +
| style="width: 1px; background-color: white;"|
 +
| style="width: 550px; background-color: #76b900;"|
 +
{{spaces|1}} <span style="font-family: Trebuchet MS; color: white;">'''Parallel ForAll''' — </span>''[https://devblogs.nvidia.com/parallelforall/jetpack-doubles-jetson-inference-perf/ <span style="font-family: Trebuchet MS; color:white;">JetPack 3.1 Doubles Jetson's Low-Latency Inference Performance</span>]''
 +
|}
 +
 +
=== Availability ===
 +
 +
* Europe - [http://www.siliconhighwaydirect.co.uk/category-s/1817.htm Silicon Highway]
 +
* USA - [https://www.arrow.com/en/products/900-82180-0001-000/nvidia. Arrow]
 +
* Use the '''[http://www.nvidia.com/embedded Region Selector]''' to find distributors of the module in your region.
 
<br />
 
<br />
  
Line 62: Line 92:
 
* Jetson TX1 Module
 
* Jetson TX1 Module
 
** fan and heatsink (pre-assembled)
 
** fan and heatsink (pre-assembled)
* 5MP CSI camera module (Omnivision OV5693)
+
* 5MP CSI camera module (with Omnivision OV5693)
 
* WiFi/BT antennas
 
* WiFi/BT antennas
 
* USB OTG adapter
 
* USB OTG adapter
 
* 19VDC Power brick
 
* 19VDC Power brick
 
* AC Power cable
 
* AC Power cable
 +
 +
The design files for the reference carrier board and camera module included in the devkit are freely available for [[Jetson_TX1#Platform_Documentation|download]].
  
 
=== Getting Started ===
 
=== Getting Started ===
* The devkit comes pre-flashed with L4T and is used like a normal desktop. <br />
+
* Get the latest development software for PC and TX1 by using '''[https://developer.nvidia.com/embedded/jetpack JetPack]'''.<br />
* Plug in an HDMI display, attach the antennas and USB keyboard & mouse, and apply power to boot it up. <br />
+
* Plug in an HDMI display into Jetson, attach the antennas and USB keyboard & mouse, and apply power to boot it up. {{spaces|0}} ('''[http://developer.nvidia.com/embedded/dlc/l4t-24-1-jetson-tx1-user-guide User Guide]''')<br />
* Then visit the '''[https://developer.nvidia.com/embedded-computing Jetson Embedded Portal]''' (JEP) and '''[https://devtalk.nvidia.com/default/board/164/jetson-tx1/ Developer Forum]''' to access the latest downloads & information.
+
* Visit the '''[https://developer.nvidia.com/embedded-computing Embedded Developer Zone]''' and '''[https://devtalk.nvidia.com/default/board/164/jetson-tx1/ Developer Forum]''' to access the latest documentation & downloads.
  
 
=== Availability ===
 
=== Availability ===
  
 
* Use the '''[http://www.nvidia.com/embedded Region Selector]''' to find distributors of the devkit in your region.  <br />
 
* Use the '''[http://www.nvidia.com/embedded Region Selector]''' to find distributors of the devkit in your region.  <br />
* There's also an [http://www.nvidia.com/object/edu-discount.html Academic Discount] available for those belonging to an educational organization.
+
* There's also an '''[http://www.nvidia.com/object/edu-discount.html Academic Discount]''' available for those belonging to an educational organization.
 
<br />
 
<br />
  
= Upstream Linux kernel =
+
= Platform Documentation =
  
It is possible to boot an upstream Linux kernel on Jetson TX1. The following are instructions that should get you set up. It assumes that you've followed the quickstart instructions from [http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/l4t_quick_start_guide.txt here].
+
NVIDIA has [https://developer.nvidia.com/embedded-computing released] comprehensive documentation and reference designs for the Jetson TX1 module and devkit. <br />
  
Note that there seem to be slight incompatibilities between the Ubuntu root filesystem provided with L4T and the upstream kernel configuration which may cause weird behaviour during boot. The L4T root filesystem also ships some binaries which will not work on an upstream kernel because it lacks the required support. You might want to replace the Ubuntu root filesystem with something like Arch Linux which you can download from [http://archlinuxarm.org/platforms/armv8/generic here]. To do this, follow the quickstart instructions but instead of extracting the L4T sample root filesystem extract the Arch Linux root filesystem. If you do so, you might want to skip the step that installs the L4T-specific binaries as well.
+
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-module-data-sheet Module Datasheet]''' {{spaces|8}} the official module features, ports, signal pin-out, and package specifications.
 +
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-oem-product-design-guide Design Guide]''' {{spaces|16}} detailed technical design and layout information for creating OEM products.
 +
* '''[https://developer.nvidia.com/embedded/dlc/l4t-28-1-jetson-developer-kit-user-guide DevKit User Guide]''' {{spaces|8}} guide to unpacking, setting up, and flashing the Jetson TX1 Developer Kit.
 +
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-developer-kit-carrier-board-spec DevKit Carrier Spec]''' {{spaces|6}} design info about the reference carrier board from the devkit.
 +
* '''[https://developer.nvidia.com/embedded/dlc/jetson-tx1-developer-kit-carrier-board-design-files DevKit Design Files]''' {{spaces|6}} schematics, layout, and design files for the devkit reference carrier board.
 +
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-developer-kit-3D-cad-step-model DevKit CAD Models]''' {{spaces|6}} 3D STEP file for reference carrier board, heatsink, camera board, and module.
 +
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-developer-kit-camera-module-design-files Camera Design Files]''' {{spaces|4}} schematics, layout, and design files for the devkit MIPI CSI-2 camera module.
 +
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-thermal-design-guide Thermal Design Guide]''' {{spaces|1}} mechanical specifications for designing active and passive cooling solutions.
 +
* '''[http://developer.nvidia.com/embedded/dlc/jetson-tx1-module-pinmux Module PinMux]''' {{spaces|13}} excel spreadsheet macro for generating ARM device tree source (DTS) files.
 +
* '''[https://developer.nvidia.com/embedded/dlc/l4t-documentation-28-1 L4T Kernel Docs]''' {{spaces|11}} documentation for L4T kernel developers (including V4L2/camera drivers).
 +
* '''[http://developer.nvidia.com/embedded/dlc/tegra-x1-data-sheet-for-jetson-tx1 Tegra X1 TRM]''' {{spaces|15}} Technical Reference Manual for the TX1 system-on-chip and register data.
 +
* '''[https://developer.nvidia.com/embedded/dlc/l4t-multimedia-api-reference-28-1 Multimedia API Reference]''' {{spaces|8}} documentation to Argus camera API and V4L2 media codecs
 +
* '''[https://developer.nvidia.com/embedded/dlc/l4t-accelerated-gstreamer-guide-28-1 Accelerated GStreamer Guide]''' {{spaces|1}} example gstreamer pipelines for accessing H.264/H.265 hardware video codec.
  
Rudimentary support for Jetson TX1 is available in linux-next (as of next-20151118). You can clone the repository from here:
+
Above is a partial list of documents.
 +
Please visit the '''[https://developer.nvidia.com/embedded/downloads#?tx=$product,jetson_tx1 Downloads Center]''' at Embedded Developer Zone for the full list that's currently available.<br />
  
  $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git linux-next.git
+
= Guides and Tutorials =
  
To build a kernel image and the device tree blobs, run the following commands:
+
This section contains recipes for following along on Jetson.
  
  $ cd linux-next.git
+
=== System Tools ===
  $ make ARCH=arm64 CROSS_COMPILE=aarch64-unknown-linux-gnueabihf- O=build/jetson-tx1 defconfig
+
<div style="width:75%;column-count:2;-moz-column-count:2;-webkit-column-count:2">
  $ make ARCH=arm64 CROSS_COMPILE=aarch64-unknown-linux-gnueabihf- O=build/jetson-tx1 -j32
+
:* [[Jetson/Clone|Clone & Restore]]
 +
:* [https://github.com/jtagxhub/jetpack-agx-build Jetson TX1 Build Assistant Scripts]
 +
:* [[Jetson/FAQ/BSP|BSP FAQ]]
 +
:* [ftp://download.nvidia.com/tegra-public-appnotes/flashing-tools.html Flashing Tools and Protocols]
 +
:* [http://http.download.nvidia.com/tegra-public-appnotes/bct-overview.html Boot Configuration Table (BCT) Overview]
 +
:* [ftp://download.nvidia.com/tegra-public-appnotes/tegra-boot-flow.html Tegra Boot Flow] {{spaces|2}}  ([ftp://download.nvidia.com/tegra-public-appnotes/t210-nvtboot-flow.html '''nvtboot''' for TX1])
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=Compiling_Tegra_X1_source_code Compiling the L4T Kernel]
 +
:* [[Jetson/TX1 Upstream Kernel|Using the Upstream Linux Kernel]]
 +
:* [[Jetson/TX1 Sample Root Filesystem|Building the Ubuntu Sample Root Filesystem]]
 +
:* [[Jetson/TX1 Controlling Performance|Controlling Core Clock Frequency Performance]]
 +
:* [[Jetson/TX1 Power Monitor|Measuring Power with Onboard INA Monitors]]
 +
:* [https://www.youtube.com/watch?v=R_GzhZe8IcM Intro to Tegra System Profiler]
 +
:* [https://devtalk.nvidia.com/default/topic/940155/jetson-tx1/mipi-dsi-csi-design-and-develop-guide/ MIPI DSI/CSI Design and Develop Guide]
 +
:* [[Jetson/TX1 SPI|Enabling the SPI Port]]
 +
:* [[Jetson/TX1 Serial Console|Wiring the Serial Console]]
 +
:* [http://jetsonhacks.com/2015/12/29/gpio-interfacing-nvidia-jetson-tx1/ GPIO Interfacing] (JetsonHacks)
 +
:* [[Jetson/TX1_WiFi_Access_Point|Running WiFi Access Point with hostapd]]
 +
:* [https://github.com/ross-abaco/abaco-launcher Python GUI Gstreamer Launcher] (includes temp sensor and bandwidth monitor)
 +
:* [https://devtalk.nvidia.com/default/topic/1003598/jetson-tx1/code-to-send-a-bayer-video-feed-from-a-tx1-to-an-h-264-encoder-to-an-rtp-sink-/ Sending Bayer➝H.264➝RTP Stream] (GStreamer pipeline)
 +
:* [https://elinux.org/Jetson/TX1_UCM Tegra Use Case Model configuration]
 +
:* [https://github.com/rbonghi/jetson_easy jetson_easy] - automatic setup/scripting
  
If you haven't opened a terminal to the debug UART yet, now's the right time:
+
</div>
  
  $ screen /dev/ttyUSB0 115200
+
=== Robotics ===
  
screen works really well as a terminal program, but any other should work just fine, too. You should see the U-Boot prompt in the terminal, if not reset the board and wait for U-Boot to boot up. Then interrupt the automatic boot by pressing any key.
+
:* [https://github.com/NVIDIA-Jetson NVIDIA Jetson GitHub] {{spaces|8}} (open-source robotics projects with deep learning)
 +
:* [https://github.com/NVIDIA-Jetson/redtail NVIDIA Redtail GitHub] {{spaces|7}} (end-to-end deep learning drone for ROS)
 +
:* [https://developer.nvidia.com/embedded/community/reference-platforms Jetson Reference Platforms] (off-the-shelf robots with TX1/TX2)
 +
:* [[Jetson/FRC_Setup|FIRST FRC Configuration]] {{spaces|5}} (setup guide for FIRST Robotics)
 +
:* [https://www.chiefdelphi.com/media/papers/download/5169 ROS for FRC Whitepaper] {{spaces|2}} (Zebracorns team #900 Vision [https://github.com/FRC900/2017VisionCode GitHub])
 +
:* [http://www.jetsonhacks.com/2016/10/12/robot-operating-system-ros-on-nvidia-jetson-tx1/ Installing ROS Kinetic] {{spaces|8}} (JetsonHacks)
 +
:* [https://github.com/mit-racecar/particle_filter Fast SLAM Particle Filter] {{spaces|3}} (Accelerated Localization using Raycasting)
 +
:* [http://jetsonhacks.com/2015/12/08/gpioi2c-on-jetson-tx1-lidar-lite-v2-installation/ Using I2C and LIDAR-Lite] {{spaces|1}} (JetsonHacks)
 +
:* [http://ardupilot.org/dev/docs/companion-computer-nvidia-tx1.html Connecting the Pixhawk and TX1] (ArduPilot)
  
Now put U-Boot on the Jetson TX1 into USB mass storage (UMS) mode:
+
=== Computer Vision ===
  
  Tegra210 (P2371-2180) # ums 0 mmc 0
+
:* NVIDIA [https://developer.nvidia.com/embedded/learn/tutorials#collapseOne OpenCV 101] - screencast tutorials
 +
:* [[Jetson/Installing OpenCV|Installing OpenCV4Tegra]]
 +
:* [https://github.com/dusty-nv/jetson-scripts/blob/master/Building-O4T.md Building OpenCV3 from Source]
 +
:* [https://developer.nvidia.com/embedded/learn/tutorials#collapseVisionWorks VisionWorks Training]
 +
:* [https://devtalk.nvidia.com/default/topic/934354/typical-approaches-to-test-camera-functionality-for-l4t-r23-2-on-jetson-tx1/ Camera Testing in L4T on TX1]
 +
:* [https://github.com/ross-abaco/rtp-motion-estimation Motion Estimation on RTP streaming video]
  
This will export the eMMC as block device over USB. Before running the above you might want to watch the kernel log to see what block device the eMMC is associated with:
+
=== Deep Learning ===
 +
<div style="width:80%;column-count:2;-moz-column-count:2;-webkit-column-count:2">
 +
:* [https://developer.nvidia.com/embedded/twodaystoademo NVIDIA Two Days to a Demo] {{spaces|1}} ([https://devblogs.nvidia.com/parallelforall/jetpack-doubles-jetson-tx1-deep-learning-inference/ TensorRT])
 +
:* [https://developer.nvidia.com/deep-learning-institute NVIDIA Deep Learning Institute] {{spaces|1}} ([https://developer.nvidia.com/deep-learning-courses QwikLabs])
 +
:* Caffe {{spaces|1}} (BVLC [https://github.com/BVLC/caffe/wiki/Model-Zoo Model Zoo])
 +
:** [https://github.com/nvidia/caffe NVcaffe FP16] {{spaces|1}} ([https://github.com/dusty-nv/jetson-inference/blob/master/docs/building-nvcaffe.md Install Guide])
 +
:** [http://jetsonhacks.com/2015/12/07/caffe-deep-learning-framework-nvidia-jetson-tx1/ Caffe Installation on TX1] (JetsonHacks)
 +
:** [https://gitlab.com/jbernauer/tx1-lab1 Caffe Hands-on Lab] {{spaces|2}} [https://github.com/juliebernauer/tx1-lab2 GitHub repo]
 +
:** [http://myplace.frontier.com/~r.bond/cats/cats.htm Cat Detector with Caffe and TX1] {{spaces|2}} (Robert Bond)
 +
:** [https://www.nvidia.com/content/tegra/embedded-systems/pdf/jetson_tx1_whitepaper.pdf GPU-based Inference whitepaper] {{spaces|1}} [https://devtalk.nvidia.com/default/topic/935300/jetson-tx1/deep-learning-inference-performance-validation-on-tx1/ Performance Validation]
 +
:* [http://www.jetsonhacks.com/2016/12/30/tensorflow-nvidia-jetson-tx1-development-kit/ TensorFlow] post {{spaces|1}} (JetsonHacks)
 +
:* [https://github.com/dusty-nv/jetson-reinforcement/blob/master/CMakePreBuild.sh Torch7]  {{spaces|1}} install script
 +
:* [https://gist.github.com/dusty-nv/ef2b372301c00c0a9d3203e42fd83426 pyTorch] {{spaces|0}} install script
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GstInference RidgeRun's GstInference]
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=R2Inference RidgeRun's R2Inference]
 +
:* [http://github.com/dusty-nv dusty-nv's Jetson GitHub] {{spaces|3}} [http://github.com/dusty-nv/jetson-inference jetson-inference] {{spaces|2}} [http://github.com/dusty-nv/jetson-inference jetson-reinforcement]
 +
:* [https://github.com/Abaco-Systems/jetson-inference-gv jetson-inference-gv] Inference on GigEVision / RTP streaming video (Ross Newman)
 +
:* [https://github.com/S4WRXTTCS/jetson-inference jetson-inference-cards] {{spaces|1}} (playing card recognition by S4WRXTTCS)
 +
:* [https://github.com/vmayoral/basic_reinforcement_learning vmayoral's Basic Reinforcement Learning] {{spaces|3}}
 +
:* [https://jkjung-avt.github.io/ JK Jung RL blog] - NES AI player
 +
:* [https://github.com/AastaNV/ChatBot ChatBot] {{spaces|1}} (TensorFlow→TensorRT inferencing workflow by AastaNV)
 +
:* [https://github.com/AastaNV/Face-Recognition face-recognition] {{spaces|1}} (face detection with TensorRT plugin by AastaNV)
 +
:* [https://github.com/NVIDIA-Jetson NVIDIA GitHub] {{spaces|2}} (open-source robotics/DL projects)
 +
:* [https://github.com/NVIDIA-Jetson/redtail NVIDIA Redtail] {{spaces|2}} (end-to-end deep learning drone for ROS)
 +
:* Training a Fish Detector with DetectNet {{spaces|1}} [https://jkjung-avt.github.io/fisheries-dataset/ part 1] [https://jkjung-avt.github.io/detectnet-training/ part 2] {{spaces|1}} (jkjung)
 +
:* [https://heyjetson.com/ Hey, Jetson!] {{spaces|2}} (Automatic Speech Recognition using CNN/RNN)
 +
:* [https://www.makeartwithpython.com/blog/rich-mans-deep-learning-camera/ Making a Deep Learning Camera with Python]
 +
</div>
  
  $ dmesg --follow
+
=== Multimedia ===
  
When you enter UMS mode (make sure you have the Jetson TX1 hooked up to your host via the micro-USB cable), the log should show something like this:
+
:* [https://developer.ridgerun.com/wiki/index.php?title=Gstreamer_pipelines_for_Tegra_X1 Gstreamer Pipelines for TX1]
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GstInterpipe RidgeRun's GstInterpipe] (GStreamer plug-in for communication between two or more independent pipelines)
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GstWebRTC RidgeRun's GstRRWebRTC] (GStreamer plug-in that turns pipelines into WebRTC compliant endpoints)
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GstRtspSink RidgeRun's GstRTSPSink] (GStreamer element for high performance streaming to multiple computers using the RTSP/RTP protocols)
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GStreamer_Daemon RidgeRun's Gstreamer Daemon - GstD] (GStreamer framework for controlling audio and video streaming using TCP connection messages)
 +
:* [http://developer.ridgerun.com/wiki/index.php?title=GstCUDA RidgeRun's GstCUDA] (RidgeRun CUDA ZeroCopy for GStreamer)
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GStreamer_Pan_Tilt_Zoom_and_Rotate_Element RidgerRun's GstPTZR] (GStreamer Pan Tilt Zoom and Rotate Element)
 +
:* [https://developer.ridgerun.com/wiki/index.php?title=GStreamer_Color_Transfer RidgeRun's GstColorTransfer] (GStreamer plug-in that transfers the color scheme from a reference to a target image)
  
  Nov 17 12:16:21 ulmo kernel: usb 4-1.5.1.5: new high-speed USB device number 120 using ehci-pci
+
=== V4L2 drivers for cameras ===
  Nov 17 12:16:21 ulmo kernel: usb-storage 4-1.5.1.5:1.0: USB Mass Storage device detected
 
  Nov 17 12:16:21 ulmo kernel: scsi host385: usb-storage 4-1.5.1.5:1.0
 
  Nov 17 12:16:22 ulmo kernel: scsi 385:0:0:0: Direct-Access    Linux    UMS disk        ffff PQ: 0 ANSI: 2
 
  Nov 17 12:16:22 ulmo kernel: sd 385:0:0:0: Attached scsi generic sg3 type 0
 
  Nov 17 12:16:22 ulmo kernel: sd 385:0:0:0: [sdc] 61071360 512-byte logical blocks: (31.2 GB/29.1 GiB)
 
  Nov 17 12:16:22 ulmo kernel: sd 385:0:0:0: [sdc] Write Protect is off
 
  Nov 17 12:16:22 ulmo kernel: sd 385:0:0:0: [sdc] Mode Sense: 0f 00 00 00
 
  Nov 17 12:16:22 ulmo kernel: sd 385:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 
  Nov 17 12:16:22 ulmo kernel:  sdc: sdc1 sdc2 sdc3 sdc4 sdc5 sdc6 sdc7 sdc8 sdc9 sdc10 sdc11 sdc12 sdc13 sdc14 sdc15 sdc16 sdc17 sdc18
 
  Nov 17 12:16:22 ulmo kernel: sd 385:0:0:0: [sdc] Attached SCSI removable disk
 
  
The sdc (and more precisely sdc1) in the above is what you're going to need. Copy your kernel and DTB files to the root partition:
+
*RidgeRun has a [https://developer.ridgerun.com/wiki/index.php?title=V4L2_drivers_available_for_Jetson_SoCs list of drivers already supported in Jetson], please check if the driver that you need is already there. Otherwise, RidgeRun offers [https://developer.ridgerun.com/wiki/index.php?title=V4L2_driver_for_camera_sensor_or_capture_chip services to create the driver for you]
  
  # mount /dev/sdc1 /mnt
+
=== Design FAQs ===
  # cp build/jetson-tx1/arch/arm64/boot/Image /mnt/boot/Image-upstream
+
There are some useful FAQs for Jetson TX1 design, link is [[Jetson_TX1/FAQ|here]].
  # cp build/jetson-tx1/arch/arm64/boot/dts/nvidia/*.dtb /mnt/boot/
 
  # umount /mnt
 
  
Note that this keeps the original kernel. If you're not interested in keeping the L4T installation (if you've opted for the Arch Linux root filesystem you probably aren't), you might just as well copy the upstream kernel image over the existing one.
+
= Linux Distributions =
 +
[[File:Debian.png||right]]
  
Now the bootloader must be configured to be able to boot the upstream kernel. The L4T kernel requires a bunch of command-line parameters that the upstream kernel doesn't, so again, if you want to keep the L4T setup in place, you can simply add an extlinux.conf configuration snippet:
+
Jetson TX1 comes preloaded with NVIDIA's Linux4Tegra (L4T) distribution based on Ubuntu.  
  
  # mount /dev/sdc1 /mnt
+
However it is possible to install other distributions on a Tegra device:
  # vim /mnt/boot/extlinux/extlinux.conf
 
  
Add the following to the end of the file, or overwrite the existing "primary kernel" entry with it:
+
* [https://wiki.debian.org/InstallingDebianOn/NVIDIA/Jetson-TX1 Debian]: Debian has installer and kernel support for the Jetson TX1 development kit and provides a u-boot binary
 +
* [https://github.com/AGLExport/meta-jetson Yocto]: Jetson TX1 upstream kernel base Yocto bsp layer
 +
* [https://github.com/AGLExport/agl-jetson AGL distro for jetson TX1/TK1]: AGL distro for Jetson TX1/TK1.
  
  LABEL upstream
+
<br />
        MENU LABEL upstream kernel
+
= Multiple Cameras =
        LINUX /boot/Image-upstream
+
There are several ways to handle multiple cameras on Jetson TX1 at the same time:
        FDT /boot/tegra210-p2371-2180.dtb
 
        APPEND console=ttyS0,115200n8 root=/dev/mmcblk0p1 rw rootwait
 
  
Save the file and unmount the partition:
+
[https://www.e-consystems.com/multiple-csi-cameras-for-nvidia-jetson-tx2.asp 6 MIPI CSI-2 Cameras] support for Jetson TX1 from e-con systems<br />
 +
[https://www.e-consystems.com/three-synchronized-4k-cameras-for-nvidia-jetson-tx2.asp 3 MIPI CSI-2 Cameras] support for Jetson TX1 from e-con systems
  
  # umount /mnt
+
<br />
  
You can now exit UMS mode by pressing Ctrl+C in the terminal window. Sometimes this doesn't react, so you can usually just reset the board and interrupt the automatic boot again.
+
= Ecosystem Products =
  
The downstream kernel requires EMC timings to enable memory frequency scaling. For that purpose U-Boot by default copies some device tree nodes to the DTB that is passed to the kernel. Since upstream doesn't support memory frequency scaling yet, and hence the device tree doesn't contain such a node, this step will fail and hence must be disabled. You can do that by unsetting two environment variables in U-Boot:
+
The following are 3rd-party carriers, enclosures, drones, and accessories available for Jetson TX1.
 +
<br />
  
  Tegra210 (P2371-2180) # env delete fdt_copy_node_names
+
=== Cameras ===
  Tegra210 (P2371-2180) # env delete fdt_copy_src_addr
+
:* APPROPHO [http://www.appropho.com/products_en.html?type=36 TX1/TX2 Camera Solutions]
 +
:* Code Laboratories [https://duo3d.com/ Duo3D camera]
 +
:* D3 Engineering [https://www.d3engineering.com/solutions/embedded-vision Smart Camera]
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-OV5640 ]] OV5640 M12 lens camera
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-OV5693 ]] OV5693  camera
 +
:* Leopard Imaging [https://leopardimaging.com/product-category/nvidia-jetson-cameras/nvidia-tx1tx2-mipi-camera-kits/csi-2-mipi-cameras/ TX1/TX2 Camera Kits]
 +
:* e-con Systems [https://www.e-consystems.com/13mp-autofocus-nvidia-jetson-tx2-camera-board.asp 13MP AR1335 AF MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/13mp-nvidia-jetson-tx2-camera-board.asp 13MP AR1335 MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/2MP-HDR-Jetson-TX2-TX1-Camera-Board.asp 2MP AR0230AT MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/jetson-tx2-ultra-low-light-camera-board.asp 2MP SONY IMX290 MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/autofocus-liquid-lens-nvidia-jetson-tx2-camera.asp 3.4 MP AF AR0330 MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/13mp-nvidia-jetson-tx1-camera-board.asp 13MP AR1820 MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/3MP-Jetson-TX1-Camera-board.asp 3.4 MP AR0330 MIPI Jetson TX1/TX2 Camera]
 +
:* e-con Systems [https://www.e-consystems.com/gmsl-camera-for-nvidia-jetson-tx2.asp 3.4 MP AR0330 GMSL MIPI Jetson TX1/TX2 Camera]
 +
:* [http://www.photoneo.com/ Photoneo] carrier & camera module
 +
:* [https://www.stereolabs.com/ Stereolabs ZED] stereo depth camera
 +
:* [http://www.viooa.com/ Viooa Solo]
  
As it happens, this mechanism is useful, though, and it can be repurposed to enable SMP via PSCI. So instead of the above two commands you can execute this single command instead:
+
=== Carriers ===
  
  Tegra210 (P2371-2180) # env set fdt_copy_node_names /cpus:/psci
+
:* Auvidea [https://auvidea.com/product/70760/ J90] carrier
 +
:* Auvidea [https://auvidea.com/j100/ J100] carrier
 +
:* Auvidea [https://auvidea.com/j106/ J106] carrier (6 camera)
 +
:* Auvidea [https://auvidea.com/j120/ J120] carrier
 +
:* Auvidea [https://auvidea.com/j130-with-4k-video-input/ J130] carrier (4K input)
 +
:* Auvidea [https://auvidea.com/j140-dual-gbe/ J140] dual-GbE carrier
 +
:* Auvidea [https://auvidea.com/j150/ J150] OpenGear blade
 +
:* Auvidea [http://www.auvidea.eu/index.php/2015-11-08-08-01-27/2016-02-03-12-30-02/j200-dual-jetson-tx1-carrier J200] carrier
 +
:* Avermedia [https://www.avermedia.com/professional/product/ex731_aa_n1/overview EX731-AA] carrier
 +
:* Avermedia [https://www.avermedia.com/professional/product/ex713_aa/overview EX713-AA] carrier
 +
:* Avermedia [https://www.avermedia.com/professional/product/ex711_aa/overview EX711-AA] carrier
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ASG008.asp?l1=GPU&l2=ASG008 Sprocket] carrier
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ASG003.asp?l1=GPU&l2=ASG003 Orbitty] carrier
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ASG006.asp?l1=GPU&l2=ASG006 Spacely] carrier
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ASG007.asp?l1=GPU&l2=ASG007 Cogswell] carrier
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ASG002.asp?l1=GPU&l2=ASG002 Elroy] carrier
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ASG001.asp?l1=GPU&l2=ASG001 Astro] carrier
 +
:* ConnectTech [http://connecttech.com/sub/Products/VPG003_GraphiteVPXTX1.asp?l1=GPU&l2=VPXTX1 3U VPX] card
 +
:* Colorado Engineering [https://coloradoengineering.com/standard-products/tx1-som/ TX1-SOM]
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-Lite carrier]] with eDP, CSI, DSI, MicroHDMI etc
 +
:* Gumstix [https://store.gumstix.com/aerocore2-for-nvidia-jetson.html Aerocore2] drone carrier
 +
:* Leopard Imaging [https://www.leopardimaging.com/LI-TX1-CB.html TX1 Camera Carrier]
 +
:* [https://mr-technologies.com/supercomputer-gpu-modules/ MR TECH AM203] AMC carrier for ATCA/μTCA
 +
:* [https://mr-technologies.com/supercomputer-gpu-modules/ MR TECH TX1 carrier] with XIMEA camera interfaces
 +
:* [http://www.pixevia.com/p-core?i=s10 Pixevia CORE X1] drone carrier
  
Note that U-Boot will reset the environment to the default when you reset. To make these changes permanent you need to save the environment to eMMC:
+
=== Enclosures ===
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/ESG501.asp?l1=GPU&l2=ESG501 Rosie] enclosure
 +
:* ConnectTech [http://connecttech.com/sub/Products/ESG503.asp?l1=GPU&l2=ESG503 Rudi] enclosure
 +
:* ConnectTech [http://www.connecttech.com/sub/Products/UTX1AS-Array-Server.asp UTX1AS] array server
 +
:* Puget Systems [https://www.pugetsystems.com/store/item.php?cat=Case&id=11365&com=d41d8cd9 Acrylic Enclosure]
 +
:* RapidProto [https://www.hazcam.io/collections/hazcam-kits/products/jetson-tx1-and-tx2-aluminium-enclosure Aluminum enclosure]
 +
:* USES Integrated [https://www.usesintegrated.com/ UTX1AS] array server
 +
:* [https://www.vision4ce.com/wp-content/uploads/2017/09/CHARM-100-170801.pdf Vision4CE CHARM-100] enclosure
  
  Tegra210 (P2371-2180) # env save
+
=== Expansion Boards ===
 +
:* Auvidea [http://auvidea.eu/j20/ J20] 6-camera module
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-H2C ]]  HDMI  to CSI expansion board
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-SDI ]]  SDI  to CSI expansion board
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-8eyes ]]  4 or 8 cameras ADAS  expansion board
 +
:* DCDZ(冬虫电子) [[Jetson/xcb-lite| XCB-AUDIO ]]  Sound card expansion board
 +
:* ZHAW [http://www.pender.ch/products_zhaw.shtml 4K HDMI2CSI interface]
 +
:* [[BeadaPanel#BeadaPanel_for_NVIDIA_Jetson_Dev._Board|BeadaPanel USB Display+WiFi+Storage 3-In-1 Companion Kit]]
  
That's it. You're now ready to boot your upstream kernel:
+
=== Other ===
 +
:* [http://f1tenth.org/ Formula F1/10] RC car
 +
:* [http://www.jetsonhacks.com/category/robotics/jetson-racecar/ JetsonHacks RACECAR]
 +
:* [http://tealdrones.com/ iDrone Teal] high-speed drone
 +
:* [https://mit-racecar.github.io/ MIT RACECAR]
 +
:* [http://pleiades.ca/ Pleiades Spiri] developer drone
 +
:* [http://www.prioria.com Prioria Merlin] autopilot
 +
:* RidgeRun [https://developer.ridgerun.com/wiki/index.php?title=Category:TegraX1 GStreamer and Multimedia Solutions]
  
  Tegra210 (P2371-2180) # boot
+
TX1 SoC is also used in [[TX1 product list|consumer products]].
 +
<br />
 +
<br />
  
If you've opted to keep L4T in place, U-Boot will detect that you have two configurations and will ask you which one to boot. If you have a single configuration you can simply wait for the auto-boot timer to run out. If all goes well this should boot you to a login- or command- prompt.
+
= USB 3.0 webcams known to be working =
  
== Dual-Boot ==
+
* e-con Systems' [https://www.e-consystems.com/4k-usb-camera.asp See3CAM_CU135] was tested on [[Jetson TX1]] with 1920x1080 @ 29 FPS (uncompressed), 1920x1080 @ 18 FPS (MJPG compressed), 4096x2160 @ 6 FPS (uncompressed), 4208x3120 @ 3 FPS (uncompressed),  as well as other settings.
  
U-Boot will by default try to boot from the external SD card and fall back to eMMC if no external card is detected. This means that you can easily keep both L4T and an upstream setup easily by moving all your upstream related files onto an external SD card. The setup instructions are similar to the above, except that your U-Boot command to enter UMS mode becomes:
+
* e-con Systems' [https://www.e-consystems.com/13mp-autofocus-usb-camera.asp See3CAM_130] was tested on [[Jetson TX1]] with 1920x1080 @ 29 FPS (uncompressed), 1920x1080 @ 15 FPS (MJPG compressed), 4096x2160 @ 7 FPS (uncompressed), 4208x3120 @ 4 FPS (uncompressed), as well as other settings.
  
  Tegra210 (P2371-2180) # ums 0 mmc 1
+
* e-con Systems' [https://www.e-consystems.com/8MP-AF-UVC-USB-Camera.asp See3CAM_81] was tested on [[Jetson TX1]] with 1920x1080 @ 12 FPS (uncompressed), 3264x2448 @ 5 FPS (uncompressed), as well as other settings.
  
You may have to partition and format the SD card first, which you can do with your favourite partitioning tool (such as cfdisk) and your regular mkfs tools:
+
* e-con Systems' [https://www.e-consystems.com/ar0330-liquid-lens-usb-camera-board.asp See3CAM_30] was tested on [[Jetson TX1]] with 1920x1080 @ 13 FPS (uncompressed), 1280x720 @ 30 FPS (uncompressed), 1920x1080 @ 42 FPS (MJPG compressed), 1280x720 @ 20 FPS (MJPG compressed),as well as other settings.
  
  # cfdisk /dev/sdc
+
* e-con Systems' [https://www.e-consystems.com/ar0330-lowlight-usb-cameraboard.asp See3CAM_CU30] was tested on [[Jetson TX1]] with 1920x1080 @ 13 FPS (uncompressed), 1280x720 @ 30 FPS (uncompressed), 1920x1080 @ 42 FPS (MJPG compressed), 1280x720 @ 20 FPS (MJPG compressed),as well as other settings.
  [a single partition spanning the entire SD card is usually fine, but be as creative as you want]
 
  # mkfs -t ext4 /dev/sdc1
 
  
After creating and formatting a partition, mount the partition and extract the root filesystem into it:
+
* Stereolabs ZED
 +
* Point Grey Flea3 & Blackfly
 +
* Logitech C920
  
  # mount /dev/sdc1 /mnt
+
<br />
  # tar xpf ArchLinuxARM-aarch64-generic-latest.tar.gz -C /mnt
 
  # umount /mnt
 
 
 
Now you can simply copy the kernel and DTB files as described above and write the following to <tt>/mnt/boot/extlinux/extlinux.conf</tt>:
 
 
 
  TIMEOUT 30
 
  DEFAULT primary
 
 
 
  MENU TITLE p2371-2180 SD boot options
 
 
 
  LABEL primary
 
        MENU LABEL primary kernel
 
        LINUX /boot/Image
 
        FDT /boot/tegra210-p2371-2180.dtb
 
        APPEND console=ttyS0,115200n8 root=/dev/mmcblk1p1 rw rootwait
 
 
 
== Flashing the board ==
 
 
 
The open source flashing tools for Jetson do not work with the Jetson TX1, so the proprietary NVidia tools (including special binary versions of tegrarcm etc) are the only flashing tools that seem to work for this board.
 
 
 
These can be obtained as a tarball from https://developer.nvidia.com/embedded/downloads as the "Jetson TX1 Driver Package". Or, currently:
 
 
 
wget http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/Tegra210_Linux_R23.1.1_armhf.tbz2
 
tar -xf Tegra210_Linux_R23.1.1_armhf.tbz2
 
cd Linux_for_Tegra
 
 
 
The script <code>flash.sh</code> wraps distributed binaries, providing for flashing of the NVidia primary bootlader, chain-loaded U-Boot, kernel, as well as partitioning and flashing of the resulting partitions on the embedded eMMC device, via the board's USB recovery mode firmware.
 
 
 
The distributed tarball contains a pre-built U-Boot and kernel, but these may be replaced with any images you wish to flash, by replacing the distributed images in the directory tree. If desired, an unpacked rootfs tree may also be included. During flashing, from this the script assembles a <code>system.img</code> containing kernel, DTB and rootfs, which is then flashed to the eMMC.
 
 
 
The paths to place any files or images you wish to flash are as follows:
 
 
 
* Extlinux configuration: <code>bootloader/t210ref/p2371-2180/extlinux.conf.emmc</code>
 
* U-Boot: <code>bootloader/t210ref/p2371-2180/u-boot*</code>
 
* Kernel: <code>bootloader/t210ref/p2371-2180/Image</code>
 
* DTB: <code>bootloader/t210ref/p2371-2180/tegra210-jetson-cv-base-p2597-2180-a00.dtb</code>
 
 
 
The DTB name can be changed in <code>p2371-2180.conf</code>.
 
 
 
In version 23.2, the flash size defined in <code>p2371-2180.conf</code> is incorrect:
 
 
 
sed -i 's/EMMCSIZE=31276924928/EMMCSIZE=15758000128/' p2371-2180.conf
 
 
 
If you wish to create additional partitions, these can be added to <code>bootloader/t210ref/cfg/gnu_linux_tegraboot_emmc_full.xml</code>, which may also include a named image used for flashing to a given partition, specified in the <code><filename></code> tags.
 
 
 
To flash only the primary bootloader and U-Boot:
 
 
 
./flash.sh -k EBT p2371-2180 mmcblk0p1
 
 
 
To perform required partitioning, and flash the primary bootloader, U-Boot, kernel and rootfs:
 
 
 
./flash.sh p2371-2180 mmcblk0p1
 
 
 
The partition layout required by the primary bootloader, and created by the flash script is rather complicated, for example:
 
 
 
*** PARTITION LAYOUT(23 partitions) ***
 
[    BCT] BH            0        8191      4.0MiB
 
[    NVC] BH        8192        16383      4.0MiB nvtboot.bin
 
[    PPT] UH            0        4095      2.0MiB
 
[    GP1] UH        4096        8191      2.0MiB
 
[    APP] UH        8192      270335    128.0MiB system.img
 
[    TBC] UV      270336      274431      2.0MiB nvtboot_cpu.bin
 
[    EBT] UV      274432      282623      4.0MiB u-boot-dtb.bin
 
[    BPF] UV      282624      286719      2.0MiB bpmp.bin
 
[    WB0] UV      286720      299007      6.0MiB warmboot.bin
 
[    RP1] UV      299008      307199      4.0MiB tegra210-jetson-cv-base-p2597-2180-a00.dtb
 
[    TOS] UV      307200      319487      6.0MiB tos.img
 
[    EKS] UV      319488      323583      2.0MiB
 
[      FX] UV      323584      327679      2.0MiB
 
[    SOS] UV      327680      368639      20.0MiB
 
[    EXI] UV      368640      499711      64.0MiB
 
[    LNX] UV      499712      630783      64.0MiB
 
[    DTB] UV      630784      638975      4.0MiB tegra210-jetson-cv-base-p2597-2180-a00.dtb
 
[    NXT] UV      638976      643071      2.0MiB
 
[    MXB] UV      643072      655359      6.0MiB
 
[    MXP] UV      655360      667647      6.0MiB
 
[    USP] UV      667648      671743      2.0MiB
 
[    UDA] UV      671744    30756863  14690.0MiB
 
[    GPT] UH    30756864    30760959      2.0MiB
 
 
 
== Bleeding Edge ==
 
 
 
The feature set supported in linux-next is currently very limited. It will get you to a login- or command-prompt and you can access SD/MMC storage, but that's pretty much it.
 
 
 
There is a development tree on [https://github.com/thierryreding/linux github] that serves as a staging tree for various new features. The <tt>staging/work</tt> branch is the top-of-tree and usually based on a recent linux-next. On top of that, there is support for DSI (in case you have the necessary display module) and HDMI, as well as xHCI for networking. There is also preliminary support for the GPU, though that will require pulling in a number of userspace changes as well.
 
 
 
== Support ==
 
 
 
If you get stuck anywhere in the above, feel free to let me know. You can reach me, as well as other people working on upstream support via [mailto:linux-tegra@vger.kernel.org email] or on IRC (#tegra on Freenode).
 
 
 
To help troubleshoot issues, you might want to add one or more of the following kernel command-line parameters:
 
* <tt>earlycon=uart8250,mmio32,0x70006000 earlyprintk</tt>: Enable debug UART output early during the boot process. This is useful to diagnose problems that appear to be hangs with no output to the serial console at all.
 
* <tt>ignore_loglevel</tt>: ignore kernel message log level (useful to see more verbose messages)
 
 
 
 
 
= Serial Console Wiring =
 
 
 
The serial console is extremely valuable for many reasons, including the ability to choose menu entries for boot images during boot, as well as having access even when networking and direct monitor/keyboard/mouse are unavailable. This functionality is accessed via the rectangular connector J21, near the power-on button.
 
 
 
== The Software Side ==
 
 
 
Any serial port program should work as a console. Examples are PuTTY, gtkTerm, and minicom. Connection speed is 115200, with 8 bits, no parity, and 1 stop bit ('''115200 8N1'''). Flow control will be '''RTS/CTS'''.
 
 
 
== The USB Serial UART ==
 
 
 
Because of the custom nature of the TX1 board connector wiring, a USB serial UART is by far the easiest and most reliable way to connect the host side of the serial console. ''This serial UART is required to handle 3.3V I/O''. Most of the serial UARTs available should work if the UART is designed for 3.3V I/O. Beware that other USB serial UART cables are available which support an incompatibile 5V or 12V I/O...''do not use these''.
 
 
 
Because the FTDI USB chips are so widely available and often have drivers by default for Linux host machines, this chipset is a good starting point when you have many choices. '''The example USB serial UART used here is the TTL-232R-3V3 by FTDI'''. One source of this serial UART is here: https://www.digikey.com/product-detail/en/TTL-232R-3V3/768-1015-ND/1836393.
 
 
 
== About Serial Port Cabling ==
 
 
 
The example cable comes with a 6-wire cable and 0.1in spacing 6-pin female header. Five of the 6 pins are used. This cable ''could'' be used directly with the J17 UART header, but this information is concerned with showing how to wire the standard 6-wire serial UART cable to connector J21 (J21 has the serial console UART, not J17...don't try the cable with J17 unless you know what you are doing).
 
 
 
== Color Codes and Pin Descriptions of the USB Serial UART Cable ==
 
 
 
Pin 1 of the serial USB UART 6-pin connector should be marked.
 
 
 
* Pin 1 is black.
 
** This is a ground wire in common with both x86 host and Jetson TX1 ground.
 
** J21 pin 9 is convenient (there are several ground pins which would work).
 
* Pin 2 is brown.
 
** This is the host-side CTS (clear-to-send).
 
** This will connect to Jetson TX1's RTS (request-to-send).
 
** J21 pin 11 should be used.
 
* Pin 3 is red.
 
** This pin is supplied +5V from the host USB HUB, and is not used.
 
* Pin 4 is orange.
 
** This pin is TXD (transmit data).
 
** This will connect to Jetson TX1's RXD (receive data).
 
** J21 pin 10 should be used.
 
* Pin 5 is yellow.
 
** This pin is RXD (recieve data).
 
** This will connect to Jetson TX1's TXD (transmit data).
 
** J21 pin 8 should be used.
 
* Pin 6 is green.
 
** This pin is RTS (request-to-send).
 
** This will connect to Jetson TX1's CTS (clear-to-send).
 
** J21 pin 36 should be used.
 
 
 
The crossing over between send and receive (as well as request to send and clear to send) means this is a "NULL modem" or "crossover" cable.
 
 
 
Note that if you prefer to simplify the assembly, you can ignore the connection between CTS and RTS. Doing so implies using software flow control instead of CTS/RTS flow control
 
 
 
== Required Parts ==
 
 
 
The USB serial UART has already been mentioned. The 6-pin connector is easily used in combination with soldering a ribbon cable to a standard 0.1in connector. The example here should work: https://www.digikey.com/product-detail/en/M20-9990646/952-2270-ND/3728234.
 
 
 
Any standard 0.1in spacing female header should work for the Jetson TX1's J21 connector. A connector capable of self-splicing of an inserted ribbon cable is recommended. Although many of these connectors were not intended to be re-opened and added to at a later date, there isn't usually an issue with opening the connector up and adding wires to a position which has never been used before. Here is a large list of example female 40-pin headers arranged in two rows: https://www.digikey.com/product-search/en?pv88=23&FV=fff40016%2Cfff802f5%2C1640001%2C1680002%2C800000f%2C8000014%2C8cc0003&k=ribbon&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=500.
 
 
 
Soldering to the 6-pin header will not be easy without a proper soldering iron. Once soldered these pins need insulation. The example used small diameter heat shrink tubing around each conductor, and then a larger diameter section of heat shrink tubing was used to keep the entire assembly together. Any stray wires may also be insulated with heat shrink tubing.
 
 
 
The cable was generic ribbon cable which thankfully was color coded exactly the same as the 6-pin cable of the USB serial UART. This makes knowing which orientation to use for connecting male and female 6-pin connectors a non-issue. If there is no color coding, then some means of insuring pin 1 of one connector matches pin 1 of the other connector is required.
 
 
 
== The Example USB Serial UART Assembly ==
 
 
 
Here's a picture of what a working assembly is like:
 
[[File:J21_JetsonTX1_SerialConsole.png|frameless|border|Serial Console Assembly]]
 
 
 
== Connecting a Linux Host to Jetson TX1 Serial Console ==
 
 
 
The final step from your Linux host to connecting to the serial console is to name the serial device file which belongs to the USB serial UART. This can present a challenge and a lot of guessing if you move your USB devices around, as they might enumerate differently depending on order of detecting USB devices.
 
 
 
''The general naming of serial USB UART devices is of the format /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2...''these names work well, but may not be convenient in the long run.
 
 
 
The udev automated system of naming device special files also categorizes many devices by type and then by information to the specific device (something like a serial number). These alternate names remain constant, and are simply symbolic links to the more common ttyUSB# scheme. These files are found in '''/dev/serial/by-id/'''.
 
 
 
The example USB serial UART has this symbolic link in /dev/serial/by-id/: '''usb-FTDI_FT232R_USB_UART_A10171DT-if00-port0'''. Other USB related serial console labels may change, this particular file should stay constant. This makes it easy to have several USB serial devices without mixing them up when operated simultaneously.
 
  
== Some Serial Port Administration Information ==
+
= Getting Help =  
 +
If you have a technical question or bug report, please visit the '''[https://devtalk.nvidia.com/default/board/164/ DevTalk Developer Forums]''' and search or start a topic.
  
Typically, the serial port requires sudo or root authority to access, which can be irritating. The serial port devices are group dialout, and adding your user to this gains access to serial ports without sudo. Programs requiring lock files (some of which are serial console programs) may require sudo or root access unless your user is a member of group lock. Consider using a non-root developer account and granting these groups:<br />
+
See the official '''[https://developer.nvidia.com/embedded/support Support]''' page on Embedded Developer Zone for warranty and RMA information:  https://developer.nvidia.com/embedded/support
  ''sudo usermod -a -G dialout <your_user_name>''
 
  ''sudo usermod -a -G lock <your_user_name><br />''
 
  
Note that if you have installed OpenOCD, then udev may attempt to set your ttyUSB group to "plugdev", rather than to "dialout". If "plugdev" does not exist, then your ttyUSB files will default to group "root". If you use Fedora (and who knows how many other distributions), then getting group "dialout" back requires edit of "/lib/udev/rules.d/99-openocd.rules", replacing "plugdev" with "dialout".
+
For [https://store.nvidia.com NVIDIA webstore] Customer Service, please see the [https://store.nvidia.com/store/nvidia/en_US/help/ThemeID.326200 My Account] page or contact 1-800-797-6530.

Latest revision as of 09:23, 22 June 2020

NVIDIA Jetson TX1 is an embedded system-on-module (SoM) with quad-core ARM Cortex-A57, 4GB LPDDR4 and integrated 256-core Maxwell GPU.

Useful for deploying computer vision and deep learning, Jetson TX1 runs Linux and provides 1TFLOPS of FP16 compute performance in 10 watts of power.

Jetson TX1 is available as the module, developer kit, and in compatible ecosystem products. See the wiki of other Jetson's here, including the latest Jetson AGX Xavier.

  Parallel ForAllNVIDIA Jetson TX1 Drives Next Wave of Autonomous Machines


Jetson TX1 DevKit Module combo.jpg

Jetson TX1 Module

The Jetson TX1 module contains all the active processing components. The ports are broken out through a carrier board.

Below is a partial list of the module's features. Please see the Module Datasheet for the complete specifications.

Jetson TX1 Block Diagram Module.png

Processing Components

  • quad-core ARM Cortex-A57
  • 256-core Maxwell GPU
  • 4GB LPDDR4
  • 16GB eMMC
  • H.264/H.265 encoder & decoder
  • Dual ISPs (Image Service Processors)

Ports & Peripherals

  • HDMI 2.0
  • 802.11ac WiFi, Bluetooth 4.0
  • USB3, USB2
  • Gigabit Ethernet
  • 12 lanes MIPI CSI 2.0
  • 4 lanes PCIe gen 2.0
  • SATA, 2x SDcard
  • 3x UART, 3x SPI, 4x I2C

Form-Factor

  • 400-pin Samtec board-to-board connector
  • dimensions: 50x87mm   (1.96" x 3.42")
  • mass: 45 grams
  • Thermal Transfer Plate (TTP), -25C to 85C operating temperature
  • 5.5-19.6VDC input power (consuming 10-15W, under typical load)

Software Support

See the Jetson Zoo for more software packages to install on top of JetPack.

  Parallel ForAllJetPack 3.1 Doubles Jetson's Low-Latency Inference Performance

Availability


Jetson TX1 Developer Kit

The Jetson TX1 Developer Kit bundles together all the parts to get started, including:

Jetson TX1 DevKit.jpg

What's Included

  • mini-ITX Reference carrier board
  • Jetson TX1 Module
    • fan and heatsink (pre-assembled)
  • 5MP CSI camera module (with Omnivision OV5693)
  • WiFi/BT antennas
  • USB OTG adapter
  • 19VDC Power brick
  • AC Power cable

The design files for the reference carrier board and camera module included in the devkit are freely available for download.

Getting Started

  • Get the latest development software for PC and TX1 by using JetPack.
  • Plug in an HDMI display into Jetson, attach the antennas and USB keyboard & mouse, and apply power to boot it up. (User Guide)
  • Visit the Embedded Developer Zone and Developer Forum to access the latest documentation & downloads.

Availability

  • Use the Region Selector to find distributors of the devkit in your region.
  • There's also an Academic Discount available for those belonging to an educational organization.


Platform Documentation

NVIDIA has released comprehensive documentation and reference designs for the Jetson TX1 module and devkit.

  • Module Datasheet          the official module features, ports, signal pin-out, and package specifications.
  • Design Guide                  detailed technical design and layout information for creating OEM products.
  • DevKit User Guide          guide to unpacking, setting up, and flashing the Jetson TX1 Developer Kit.
  • DevKit Carrier Spec        design info about the reference carrier board from the devkit.
  • DevKit Design Files        schematics, layout, and design files for the devkit reference carrier board.
  • DevKit CAD Models        3D STEP file for reference carrier board, heatsink, camera board, and module.
  • Camera Design Files      schematics, layout, and design files for the devkit MIPI CSI-2 camera module.
  • Thermal Design Guide   mechanical specifications for designing active and passive cooling solutions.
  • Module PinMux               excel spreadsheet macro for generating ARM device tree source (DTS) files.
  • L4T Kernel Docs             documentation for L4T kernel developers (including V4L2/camera drivers).
  • Tegra X1 TRM                 Technical Reference Manual for the TX1 system-on-chip and register data.
  • Multimedia API Reference          documentation to Argus camera API and V4L2 media codecs
  • Accelerated GStreamer Guide   example gstreamer pipelines for accessing H.264/H.265 hardware video codec.

Above is a partial list of documents. Please visit the Downloads Center at Embedded Developer Zone for the full list that's currently available.

Guides and Tutorials

This section contains recipes for following along on Jetson.

System Tools

Robotics

Computer Vision

Deep Learning

Multimedia

V4L2 drivers for cameras

Design FAQs

There are some useful FAQs for Jetson TX1 design, link is here.

Linux Distributions

Debian.png

Jetson TX1 comes preloaded with NVIDIA's Linux4Tegra (L4T) distribution based on Ubuntu.

However it is possible to install other distributions on a Tegra device:

  • Debian: Debian has installer and kernel support for the Jetson TX1 development kit and provides a u-boot binary
  • Yocto: Jetson TX1 upstream kernel base Yocto bsp layer
  • AGL distro for jetson TX1/TK1: AGL distro for Jetson TX1/TK1.


Multiple Cameras

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

6 MIPI CSI-2 Cameras support for Jetson TX1 from e-con systems
3 MIPI CSI-2 Cameras support for Jetson TX1 from e-con systems


Ecosystem Products

The following are 3rd-party carriers, enclosures, drones, and accessories available for Jetson TX1.

Cameras

Carriers

Enclosures

Expansion Boards

Other

TX1 SoC is also used in consumer products.

USB 3.0 webcams known to be working

  • e-con Systems' See3CAM_CU135 was tested on Jetson TX1 with 1920x1080 @ 29 FPS (uncompressed), 1920x1080 @ 18 FPS (MJPG compressed), 4096x2160 @ 6 FPS (uncompressed), 4208x3120 @ 3 FPS (uncompressed), as well as other settings.
  • e-con Systems' See3CAM_130 was tested on Jetson TX1 with 1920x1080 @ 29 FPS (uncompressed), 1920x1080 @ 15 FPS (MJPG compressed), 4096x2160 @ 7 FPS (uncompressed), 4208x3120 @ 4 FPS (uncompressed), as well as other settings.
  • e-con Systems' See3CAM_81 was tested on Jetson TX1 with 1920x1080 @ 12 FPS (uncompressed), 3264x2448 @ 5 FPS (uncompressed), as well as other settings.
  • e-con Systems' See3CAM_30 was tested on Jetson TX1 with 1920x1080 @ 13 FPS (uncompressed), 1280x720 @ 30 FPS (uncompressed), 1920x1080 @ 42 FPS (MJPG compressed), 1280x720 @ 20 FPS (MJPG compressed),as well as other settings.
  • e-con Systems' See3CAM_CU30 was tested on Jetson TX1 with 1920x1080 @ 13 FPS (uncompressed), 1280x720 @ 30 FPS (uncompressed), 1920x1080 @ 42 FPS (MJPG compressed), 1280x720 @ 20 FPS (MJPG compressed),as well as other settings.
  • Stereolabs ZED
  • Point Grey Flea3 & Blackfly
  • Logitech C920


Getting Help

If you have a technical question or bug report, please visit the DevTalk Developer Forums and search or start a topic.

See the official Support page on Embedded Developer Zone for warranty and RMA information: https://developer.nvidia.com/embedded/support

For NVIDIA webstore Customer Service, please see the My Account page or contact 1-800-797-6530.