Difference between revisions of "Jetson TK1"

From eLinux.org
Jump to: navigation, search
(Software Topics: Added link to cuDNN)
(Added some links back to the main "Jetson" family page)
 
(102 intermediate revisions by 25 users not shown)
Line 1: Line 1:
 
{{TOC right}}
 
{{TOC right}}
 +
 +
{| style="color: black; background-color: #ffffff; width: 730px;"
 +
|-
 +
| style="width: 5px; background-color: white;"|
 +
| style="width: 725px; background-color: #f4dc42;"|
 +
{{spaces|1}} <span style="font-family: Trebuchet MS; color: white;">'''note''' — Jetson TK1 Developer Kit is EOL.  [https://developer.nvidia.com/embedded/tegra-k1 <span style="font-family: Trebuchet MS; color:white;">''TK1 chips''</span>] and [https://developer.nvidia.com/embedded/community/ecosystem <span style="font-family: Trebuchet MS; color:white;">''3rd-party modules''</span>] remain available [https://developer.nvidia.com/embedded/community/lifecycle <span style="font-family: Trebuchet MS; color:white;">through 2024</span>].</span>
 +
|}
  
 
== About this site ==
 
== About this site ==
This is the official Wiki for embedded Tegra & the Jetson TK1 board, maintained by both the community and NVIDIA.
+
This is the official Wiki for embedded Tegra & the Jetson TK1 board, maintained by both the community and NVIDIA. Wiki pages for the other NVIDIA Jetson boards are available in the [[Jetson | Jetson main page]].
  
 
The other embedded Tegra community sites with official NVIDIA support are:
 
The other embedded Tegra community sites with official NVIDIA support are:
Line 9: Line 16:
  
 
=== About Tegra K1 ===
 
=== About Tegra K1 ===
Tegra K1 is the world's first chip to have the same advanced features & architecture as a modern desktop GPU while still using the low power draw of a mobile chip! The Jetson TK1 board therefore allows embedded devices to use the exact same CUDA code that would also run on a desktop GPU (used by over 100,000 developers), with similar levels of GPU-accelerated performance as a desktop!
+
Tegra K1 is NVIDIA's first mobile processor to have the same advanced features & architecture as a modern desktop GPU while still using the low power draw of a mobile chip. Therefore Tegra K1 allows embedded devices to use the exact same CUDA code that would also run on a desktop GPU (used by over 100,000 developers), with similar levels of GPU-accelerated performance as a desktop.
  
 
=== About Jetson TK1 ===
 
=== About Jetson TK1 ===
[[File:nvidia-tegra124-jetson-tk1-labelled.jpg|800px|right|Jetson TK1, "the world's first embedded supercomputer!"]]
+
[[File:nvidia-tegra124-jetson-tk1-labelled.jpg|800px|right|Jetson TK1 dev board]]
Jetson TK1 is NVIDIA's embedded Linux development platform featuring a Tegra K1 SOC (CPU+GPU+ISP in a single chip), selling for $192 USD ($1 per CUDA core!). Jetson TK1 comes pre-installed with [[Tegra/Downstream_SW/Linux4Tegra|Linux4Tegra]] OS (basically Ubuntu 14.04 with pre-configured drivers). There is also some official support for running other distributions using the mainline kernel, discussed further in the [[#Distributions|Distributions]] and [[#Mainline|Mainline]] kernel sections below.
+
NVIDIA's embedded Tegra K1 SoC (CPU+GPU+ISP on a single processor) is available directly in chip form, or as various [https://developer.nvidia.com/embedded/community/ecosystem 3rd-party embedded modules]. They typically come pre-installed with [[Tegra/Downstream_SW/Linux4Tegra|Linux4Tegra]] OS (basically Ubuntu 14.04 with pre-configured drivers). There is also some official support for running other distributions using the mainline kernel, discussed further in the [[#Distributions|Distributions]] and [[#Mainline|Mainline]] kernel sections below.
  
 
Besides the quad-core 2.3GHz ARM Cortex-A15 CPU and the revolutionary Tegra K1 GPU, the Jetson TK1 board includes similar features as a Raspberry Pi but also some PC-oriented features such as SATA, mini-PCIe and a fan to allow continuous operation under heavy workloads:
 
Besides the quad-core 2.3GHz ARM Cortex-A15 CPU and the revolutionary Tegra K1 GPU, the Jetson TK1 board includes similar features as a Raspberry Pi but also some PC-oriented features such as SATA, mini-PCIe and a fan to allow continuous operation under heavy workloads:
Line 20: Line 27:
 
* '''Dimensions:''' 5" x 5" (127mm x 127mm) board
 
* '''Dimensions:''' 5" x 5" (127mm x 127mm) board
 
* [[Tegra/SoCs#Tegra124|Tegra K1 SOC]] (CPU+GPU+ISP in a single chip, with [[Jetson/Jetson_TK1_Power#Typical_power_draw_of_Jetson_TK1|typical power consumption between 1 to 5 Watts]]):
 
* [[Tegra/SoCs#Tegra124|Tegra K1 SOC]] (CPU+GPU+ISP in a single chip, with [[Jetson/Jetson_TK1_Power#Typical_power_draw_of_Jetson_TK1|typical power consumption between 1 to 5 Watts]]):
** '''GPU:''' NVIDIA [http://en.wikipedia.org/wiki/Kepler_%28microarchitecture%29 Kepler] "GK20a" GPU with 192 SM3.2 CUDA cores (over 300 GFLOPS!)
+
** '''GPU:''' NVIDIA [http://en.wikipedia.org/wiki/Kepler_%28microarchitecture%29 Kepler] "GK20a" GPU with 192 SM3.2 CUDA cores (upto 326 GFLOPS)
 
** '''CPU:''' NVIDIA "4-Plus-1" 2.32GHz ARM quad-core [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0438h/index.html Cortex-A15] CPU with Cortex-A15 battery-saving shadow-core
 
** '''CPU:''' NVIDIA "4-Plus-1" 2.32GHz ARM quad-core [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0438h/index.html Cortex-A15] CPU with Cortex-A15 battery-saving shadow-core
 
* '''DRAM:''' 2GB DDR3L 933MHz EMC x16 using 64-bit data width
 
* '''DRAM:''' 2GB DDR3L 933MHz EMC x16 using 64-bit data width
 
* '''Storage:''' 16GB fast eMMC 4.51 (routed to SDMMC4)
 
* '''Storage:''' 16GB fast eMMC 4.51 (routed to SDMMC4)
* '''ROM:''' 4MB SPI boot flash (routed to SPI4)
 
 
* '''[[Jetson/mini-PCIe|mini-PCIe]]:''' a half-height single-lane PEX slot (such as for Wifi, SSD RAID, FireWire or Ethernet addon cards)
 
* '''[[Jetson/mini-PCIe|mini-PCIe]]:''' a half-height single-lane PEX slot (such as for Wifi, SSD RAID, FireWire or Ethernet addon cards)
 
* '''SD/MMC card:''' a full-size slot (routed to SDMMC3)
 
* '''SD/MMC card:''' a full-size slot (routed to SDMMC3)
Line 34: Line 40:
 
* '''Ethernet:''' a RTL8111GS Realtek 10/100/1000Base-T Gigabit LAN port using PEX
 
* '''Ethernet:''' a RTL8111GS Realtek 10/100/1000Base-T Gigabit LAN port using PEX
 
* '''SATA:''' a full-size port that supports 2.5" and 3.5" disks, but is not hot-pluggable. (Turn off the power before plugging in SATA disk drives)
 
* '''SATA:''' a full-size port that supports 2.5" and 3.5" disks, but is not hot-pluggable. (Turn off the power before plugging in SATA disk drives)
* '''JTAG:''' a 2x10-pin 0.1" port for debugging
+
* '''[[Jetson/JTAG|JTAG]]:''' a 2x10-pin 0.1" port for professional debugging
 
* '''[[Jetson/Jetson_TK1_Power|Power]]:''' a 12V DC barrel power jack and a 4-pin PC IDE power connector, using AS3722 PMIC
 
* '''[[Jetson/Jetson_TK1_Power|Power]]:''' a 12V DC barrel power jack and a 4-pin PC IDE power connector, using AS3722 PMIC
* '''Fan:''' a fan-heatsink running on 5V (to allow safely running intense workloads continuously, but can usually be [[Jetson/Thermal#Replacing_the_fan_with_a_heatsink|replaced by a heat-spreader or heatsink]])
+
* '''Fan:''' a fan-heatsink running on 12V (to allow safely running intense workloads continuously, but can usually be [[Jetson/Thermal#Replacing_the_fan_with_a_heatsink|replaced by a heat-spreader or heatsink]])
  
 
The following signals are available through the 125-pin 2mm-pitch expansion port:
 
The following signals are available through the 125-pin 2mm-pitch expansion port:
Line 46: Line 52:
 
* '''[[Jetson/I2C|I2C]]:''' 3 ports
 
* '''[[Jetson/I2C|I2C]]:''' 3 ports
 
* '''[[Jetson/GPIO|GPIO]]:''' 7 x GPIO pins (1.8V). Camera CSI pins can also be used for extra GPIO if you don't use both cameras.
 
* '''[[Jetson/GPIO|GPIO]]:''' 7 x GPIO pins (1.8V). Camera CSI pins can also be used for extra GPIO if you don't use both cameras.
 +
 +
Front panel connector:
 +
*Green - Power LED
 +
*Orange - HDD LED
 +
*Red - Power Button
 +
*Purple / Blue - Reset Button
  
 
Hardware-accelerated APIs supported:
 
Hardware-accelerated APIs supported:
Line 55: Line 67:
 
* '''[[Jetson/Computer_Vision_Performance#Hardware_Acceleration_of_OpenCV|OpenCV4Tegra]]''' (NEON + GLSL + quad-core CPU optimizations)
 
* '''[[Jetson/Computer_Vision_Performance#Hardware_Acceleration_of_OpenCV|OpenCV4Tegra]]''' (NEON + GLSL + quad-core CPU optimizations)
 
* '''VisionWorks'''
 
* '''VisionWorks'''
 +
  
 
== Buying Guide ==
 
== Buying Guide ==
Where can I get one and for how much?
+
* NVIDIA [https://developer.nvidia.com/embedded/tegra-k1 TK1 chips] are available through [https://developer.nvidia.com/embedded/community/lifecycle Jan 2024] via distributors worldwide.
* Visit the [https://developer.nvidia.com/jetson-tk1 NVIDIA store] then choose a distributor in USA, or click on "International Orders" to see other countries it is available from including UK, Germany, France, Italy, Japan, Russia, China, Singapore, and Australia.
+
* The Jetson TK1 Developer Kit is EOL.
* Jetson TK1 costs $192 ($1 per CUDA core!) in USA.
+
* Various [https://developer.nvidia.com/embedded/community/ecosystem Ecosystem partners] have TK1 development systems available.
* The package includes a power supply (with a detachable US mains cord), a USB micro-B cable for connecting it to a PC, and usually a [http://www.amazon.com/USB-Micro-Female-Male-Adaptor/dp/B0023FTRUO USB micro-B to female USB-A adapter] allowing you to have 2 regular USB ports.
+
 
 +
== Setting up a new board ==
 +
To configure a new board, or factory reset an existing Jetson, visit the official [https://developer.nvidia.com/get-started-jetson Get Started On Jetson] page, particularly to read the Quick Start guides (downloadable PDF) to "flash" your device (wipe it clean and install Linux onto it). And if you will want to do software development for your Jetson, such as to build CUDA code, you should install the JetPack (Jetson Development Package) as mentioned in the Quick Start Guides to install a graphical IDE with cross-compilation, debugging & visual profiling tools.
 +
 
 +
=== Get access to the entire eMMC storage space of Jetson ===
 +
The eMMC that stores all the files in the Jetson TK1 has a capacity of 16GB, however some instructions or boards only use 8GB of the drive ([http://elinux.org/Talk:Jetson_TK1#eMMC_8Gb.3F_860 or 12GB, see discussion]) so you don't have to wait another 30 minutes during flashing. If you think you will want more disk space in your rootfs such as for installing toolkits or compiling large projects or storing videos, when you flash the Jetson (from a Linux desktop) you can modify the flash command to use the whole filesystem (note that this will erase all data on the Jetson TK1, and it takes roughly 1 hour to flash the whole eMMC!):
 +
 
 +
<pre>[user@host Linux_for_Tegra]$ sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1
 +
...
 +
sending file: system.img
 +
/ 15032385536/15032385536 bytes sent
 +
system.img sent successfully
 +
...
 +
Create, format and download  took 2791 Secs
 +
Time taken for flashing 2792 Secs</pre>
  
== An important step before connecting the Jetson to Internet ==
+
The maximum value of the <code>flash.sh -S</code> flag that works successfully is 14580MiB.  Greater values (like 16GiB) are beyond the capacity of the eMMC when the other system-required partitions are included.
It is really important to tell to "apt" to not overwrite the file "libglx.so" during upgrades. "libglx.so" is a specific file of the NVidia's graphics driver and its replacement makes the graphics environment of your Jetson unusable:
 
sudo apt-mark hold xserver-xorg-core
 
Now you can allow Ubuntu to update itself automatically or you can run "$ apt-get upgrade" without problems.
 
You can get more information about this issue on the [https://devtalk.nvidia.com/default/topic/775070/embedded-systems/notice-on-apt-get-upgrade-libglx-so-corruption/ official development forum]. R19 only? believe fixed for R21.
 
  
 
== Basic setup steps to access the board and access internet ==
 
== Basic setup steps to access the board and access internet ==
Whether you want to sew your embedded Tegra into a backpack or put it in a robot or simply use it as an ultra powerful media center, the first thing you should do with a new Jetson TK1 board is attach it to a HDMI monitor & keyboard & mouse to make sure it works and get familiar with it for a few minutes. The device can be accessed in 2 possible ways, depending on whether you want to plug a keyboard & mouse & monitor directly into the Jetson TK1 board or you want to plug an Ethernet cable between your device and a PC or laptop or router and access it through a network:
+
Whether you want to sew your embedded Tegra into a backpack or put it in a robot or simply use it as an ultra powerful media center, the first thing you should do with a new Jetson TK1 board is attach it to a HDMI monitor & keyboard & mouse to make sure it works and get familiar with it for a few minutes.
 +
 
 +
'''Note: the micro-USB port on Jetson TK1 can be used as a second USB port if you use the supplied [http://www.amazon.com/eForCity-Adapter-compatible-Samsung-Galaxy/dp/B00871Q5PI/ adapter].'''
 +
 
 +
The device can be accessed in 2 possible ways, depending on whether you want to plug a keyboard & mouse & monitor directly into the Jetson TK1 board or you want to plug an Ethernet cable between your device and a PC or laptop or router and access it through a network:
  
 
<div style="margin-left:20px;">
 
<div style="margin-left:20px;">
Line 80: Line 107:
 
To access the board remotely through a local network from a PC or laptop, follow the [[Jetson/Remote Access|Remote Access]] instructions so you can control the device from the keyboard & mouse & monitor on your PC or laptop and share your desktop's Wifi or Ethernet internet access to the attached device.
 
To access the board remotely through a local network from a PC or laptop, follow the [[Jetson/Remote Access|Remote Access]] instructions so you can control the device from the keyboard & mouse & monitor on your PC or laptop and share your desktop's Wifi or Ethernet internet access to the attached device.
 
</div>
 
</div>
 +
 +
== An important step before connecting the Jetson to Internet ==
 +
It is really important to tell "apt" not to overwrite the file "libglx.so" if you upgrade the system. "libglx.so" is a specific file in NVIDIA's graphics driver that might get replaced by an incorrect version from Ubuntu that stops you from being able to boot into the graphical environment! So please execute this command on your Jetson before you connect it to Internet or perform an update:
 +
sudo apt-mark hold xserver-xorg-core
 +
Now you can allow Ubuntu to update itself automatically or you can run "sudo apt-get upgrade" without problems.
 +
You can get more information about this issue on the [https://devtalk.nvidia.com/default/topic/775070/embedded-systems/notice-on-apt-get-upgrade-libglx-so-corruption/ official development forum]. Note: Is this only a problem for L4T Rel-19 only? It seems fixed in Rel-21.
 +
 +
== Note on passwords ==
 +
Jetson with L4T is a complete computer, capable of remote login. Based on Ubuntu, the user name "ubuntu" and password "ubuntu" are standardized. Everyone in the world will know this password. If you decide to make your Jetson visible over an unsecured network, be sure to change the password of "ubuntu" to avoid malicious logins. For example, click on the user settings, or run "passwd" in a shell terminal to set your new password.
  
 
== Recommended first steps now that your board has internet access ==
 
== Recommended first steps now that your board has internet access ==
Line 89: Line 125:
  
 
===== If you will use the shell command-line a lot =====
 
===== If you will use the shell command-line a lot =====
Install "bash-completion" (it allows you to hit the "Tab" key to auto-complete your shell commands) and "command-not-found" (it shows which package you probably need to install if you run an unavailable command). These 2 tools are extremely useful when using the commandline, but were not installed by default in Ubuntu 14.04. Simply run this:
+
Install "bash-completion" (it allows you to hit the "Tab" key to auto-complete your shell commands) and "command-not-found" (it shows which package you probably need to install if you run an unavailable command). These 2 tools are extremely useful when using the commandline, but were not installed by default in Ubuntu 14.04. Run this to install them:
 
  sudo apt-get install bash-completion command-not-found
 
  sudo apt-get install bash-completion command-not-found
 +
sudo apt-file update &>/dev/null
 +
sudo update-command-not-found &>/dev/null
 
  exit
 
  exit
 
Note: now you need to log back in for it to start using bash-completion and command-not-found.
 
Note: now you need to log back in for it to start using bash-completion and command-not-found.
  
You probably should also change the shell prompt (by adjusting "PS1" in the ".bashrc" file in your home directory) to be more useful, such as getting the shell prompt to have a different color than regular commands, and make it obvious if a command returned with an error. There are thousands of custom .bashrc configurations on the web, including [https://github.com/shervinemami/Stuff Shervin's] that provides a different colored shell prompt depending on whether a command was succesful or returned an error.
+
It is also highly recommended to change the shell prompt (by adjusting "PS1" in the "~/.bashrc" file in your home directory) to be more useful, such as getting the shell prompt to have a different color than regular commands, and make it obvious if a command returned with an error.
 +
 
 +
For a simple colored shell prompt that also shows the error number from the previous command, you can also execute this or add it to the bottom of your ~/.bashrc file:
 +
PS1="\[\e[0;44m\]\u@\h: \w (\$?) \$\[\e[0m\] "
 +
 
 +
There are thousands of custom .bashrc configurations on the web, including [https://github.com/shervinemami/Stuff Shervin's] that provides a different colored shell prompt depending on whether a command was successful or returned an error.
  
 
===== If you will use the graphical environment (Unity) a lot =====
 
===== If you will use the graphical environment (Unity) a lot =====
Line 101: Line 144:
 
     'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', \
 
     'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', \
 
     'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope', 'more_suggestions-skimlinks.scope']"
 
     'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope', 'more_suggestions-skimlinks.scope']"
 
===== If you need more disk space on the eMMC =====
 
 
The eMMC on the Jetson has a capacity of 16GB, however some instructions or boards default to only using 8GB of the drive ([http://elinux.org/Talk:Jetson_TK1#eMMC_8Gb.3F_860 or 12GB, see discussion]). If you require more disk space in your rootfs such as for installing toolkits or compiling large projects, you can flash the Jetson (from a Linux desktop) to have a larger filesystem (note that this will erase all data on the Jetson TK1, and it takes roughly 1 hour to flash the whole eMMC!):
 
 
<pre>[user@host Linux_for_Tegra]$ sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1
 
...
 
sending file: system.img
 
/ 15032385536/15032385536 bytes sent
 
system.img sent successfully
 
...
 
Create, format and download  took 2791 Secs
 
Time taken for flashing 2792 Secs</pre>
 
 
The maximum value of the <code>flash.sh -S</code> flag that works successfully is 14580MiB.  Greater values (like 16GiB) are beyond the capacity of the eMMC when the other system-required partitions are included.
 
  
 
===== More recommended Linux tips for a Jetson TK1 =====
 
===== More recommended Linux tips for a Jetson TK1 =====
Line 123: Line 151:
 
Just like any Linux computer, the recommended way to shut-down or turn off Jetson TK1 is to click Shutdown in the GUI or run this in a terminal, to ensure the filesystem will not be corrupt:
 
Just like any Linux computer, the recommended way to shut-down or turn off Jetson TK1 is to click Shutdown in the GUI or run this in a terminal, to ensure the filesystem will not be corrupt:
 
  sudo shutdown -h now
 
  sudo shutdown -h now
 
<div id="Emulators"></div>
 
 
== Emulators for developing with Jetson TK1 ==
 
* [[Jetson/Emulators|'''Emulators:''']] which Windows, OSX, Linux or SteamOS products with a powerful Nvidia GPU are economic and suitable for developing Jetson software?
 
 
 
<div id="Books"></div>
 
 
== Books ==
 
 
[http://bitkistl.blogspot.co.at/2014/09/explore-your-jetson-tk1-e-book.html Explore your Jetson TK1] (e-book)
 
 
[[The JetPack Cookbook|The JetPack Cookbook]] (proposed)
 
  
  
Line 237: Line 251:
 
== Jetson TK1 Reference Information (more detailed than the tutorials above) ==
 
== Jetson TK1 Reference Information (more detailed than the tutorials above) ==
 
==== General Topics ====
 
==== General Topics ====
* [https://developer.nvidia.com/jetson-tk1-support '''JetsonTK1 Support Page:'''] Includes a lot of the open-source hardware documents, such as the mechanical drawings, Bill of Materials (BOM), electrical circuit schematics, CAD files, Jetson TK1 module spec, Tegra K1 SOC Technical Reference Manual (TRM), etc.
+
* [https://developer.nvidia.com/embedded-computing '''Official Jetson TK1 website'''].
 +
* [https://developer.nvidia.com/platform-software-development '''Official Jetson TK1 software development page'''], including L4T and all the Linux kernel source changes.
 
* [[Jetson/Jetson TK1 System Info|'''System Info:''']] Find out the hardware info & what is available on the Jetson TK1 such as disk space, RAM, and devices.
 
* [[Jetson/Jetson TK1 System Info|'''System Info:''']] Find out the hardware info & what is available on the Jetson TK1 such as disk space, RAM, and devices.
 
* [[Jetson/Cloning|'''Cloning & Backup''']] Save the Jetson's eMMC (system.img) via the flash port and restore it to other Jetson boards.
 
* [[Jetson/Cloning|'''Cloning & Backup''']] Save the Jetson's eMMC (system.img) via the flash port and restore it to other Jetson boards.
 +
* [[Jetson/JTAG|'''Trace32 / JTAG Debugging''']] Attaching a professional debugger module for very low-level access to the Tegra.
  
 
==== Networking Topics ====
 
==== Networking Topics ====
Line 254: Line 270:
 
* [[Jetson/Libraries|'''Libraries:''']] Libraries that have been tested on Jetson TK1.
 
* [[Jetson/Libraries|'''Libraries:''']] Libraries that have been tested on Jetson TK1.
 
* [[Tegra/Downstream_SW/Linux4Tegra/WebBrowsers|'''Web Browsers:''']] How to get web browsers working, including Flash for watching youtube videos in Chromium.
 
* [[Tegra/Downstream_SW/Linux4Tegra/WebBrowsers|'''Web Browsers:''']] How to get web browsers working, including Flash for watching youtube videos in Chromium.
* [[Jetson/H264 Codec|'''H.264 Codec:''']] Hardware-accelerated video encoder/decoder for H.264 and other multimedia formats.
+
* [[Jetson/H264 Codec|'''H.264 Video Codec:''']] Hardware-accelerated video encoder/decoder for H.264 and other multimedia formats.
 
* [[Jetson/cuDNN|'''cuDNN:''']] GPU-accelerated Machine Learning & Deep Neural Network library.
 
* [[Jetson/cuDNN|'''cuDNN:''']] GPU-accelerated Machine Learning & Deep Neural Network library.
 +
* [[Jetson/JavaFX|'''JavaFX installation:''']] How to install JavaFX for the Jetson TK1
  
 
==== Performance and Power Topics ====
 
==== Performance and Power Topics ====
Line 265: Line 282:
  
 
==== Hardware Expansion Topics ====
 
==== Hardware Expansion Topics ====
 +
* [[Jetson/exp-board|'''Expansion board:''']] Discusses a full function expansion board, designed by "http://dcac.taobao.com".
 
* [[Jetson/Cameras|'''Cameras & Webcams:''']] Discusses USB cameras and CSI cameras, stereo cameras and Time-Of-Flight 3D depth cameras.
 
* [[Jetson/Cameras|'''Cameras & Webcams:''']] Discusses USB cameras and CSI cameras, stereo cameras and Time-Of-Flight 3D depth cameras.
 
* [[Jetson/mini-PCIe|'''mini-PCIe Add-on Cards:''']] Shows some possible add-on cards that can be used in the mini-PCIe port.
 
* [[Jetson/mini-PCIe|'''mini-PCIe Add-on Cards:''']] Shows some possible add-on cards that can be used in the mini-PCIe port.
 
* [[Jetson/GPIO|'''GPIO:''']] How to control digital output pins and read input data pins on Jetson TK1.
 
* [[Jetson/GPIO|'''GPIO:''']] How to control digital output pins and read input data pins on Jetson TK1.
 +
* [[Jetson/PWM|'''PWM:''']] How to control the spped of motors & servos or LED brightness using Jetson TK1.
 
* [[Jetson/I2C|'''I2C:''']] How to communicate between microcontrollers & devices using I2C on Jetson TK1.
 
* [[Jetson/I2C|'''I2C:''']] How to communicate between microcontrollers & devices using I2C on Jetson TK1.
 
* [[Jetson/Bluetooth|'''Bluetooth:''']] Use wireless Bluetooth devices such as keyboards, mice & speakers, or communicate to a smartphone or tablet.
 
* [[Jetson/Bluetooth|'''Bluetooth:''']] Use wireless Bluetooth devices such as keyboards, mice & speakers, or communicate to a smartphone or tablet.
Line 276: Line 295:
 
== Projects using Jetson TK1 ==
 
== Projects using Jetson TK1 ==
 
The following are descriptions, photos and/or videos of projects featuring Jetson TK1. Feel free to add your own!
 
The following are descriptions, photos and/or videos of projects featuring Jetson TK1. Feel free to add your own!
 +
 +
Add you project based on Jetson TK1 to our [https://www.hackster.io/nvidia-jetson Hackster] community
 
{| class="wikitable" style="text-align: center;"
 
{| class="wikitable" style="text-align: center;"
 
|-
 
|-
Line 281: Line 302:
 
[http://www.codethink.co.uk/2014/06/12/no-secret-sauce-just-open-source Upstream Linux 3.15 + Wayland + Weston + Nouveau running a 100% open-source OS on Jetson TK1, by CodeThink in UK]. If you want to try a similar setup on your Jetson TK1, read [http://listmaster.pepperfish.net/pipermail/baserock-dev-baserock.org/2014-June/006529.html this] and [http://listmaster.pepperfish.net/pipermail/baserock-dev-baserock.org/2014-June/006566.html this].
 
[http://www.codethink.co.uk/2014/06/12/no-secret-sauce-just-open-source Upstream Linux 3.15 + Wayland + Weston + Nouveau running a 100% open-source OS on Jetson TK1, by CodeThink in UK]. If you want to try a similar setup on your Jetson TK1, read [http://listmaster.pepperfish.net/pipermail/baserock-dev-baserock.org/2014-June/006529.html this] and [http://listmaster.pepperfish.net/pipermail/baserock-dev-baserock.org/2014-June/006566.html this].
 
|| [[File:NVIDIA_WalkingRobot.jpg|180px|NVIDIA SCOL robot]]
 
|| [[File:NVIDIA_WalkingRobot.jpg|180px|NVIDIA SCOL robot]]
[https://plus.google.com/116884386788836719107/posts/Be9thtKZwW7 NVIDIA's SCOL "Super-Computer-On-Legs" robot, by Shervin Emami in Australia]. Performs Optical Flow video stabilization and HOG person detection to walk towards nearby people. [[Jetson/Tutorials/Walking_Follower_Robot|Tutorial]] is coming soon!
+
[https://plus.google.com/116884386788836719107/posts/Be9thtKZwW7 NVIDIA's SCOL "Super-Computer-On-Legs" robot, by Shervin Emami in Australia]. Performs Optical Flow video stabilization and HOG person detection to walk towards nearby people. [[Jetson/Tutorials/Using_the_SCOL_Robot|Operator Manual]].
 
|| [[File:GE_JetsonTK1.jpg|360px|GE Lidar + Optical Flow demo]]
 
|| [[File:GE_JetsonTK1.jpg|360px|GE Lidar + Optical Flow demo]]
 
[http://devblogs.nvidia.com/parallelforall/low-power-sensing-autonomy-nvidia-jetson-tk1/ Jetson TK1 Lidar range finder + camera Optical Flow robotics demo by General Electric Intelligent Platforms in USA]. GE IP are developing a ruggedized Tegra K1 based module.
 
[http://devblogs.nvidia.com/parallelforall/low-power-sensing-autonomy-nvidia-jetson-tk1/ Jetson TK1 Lidar range finder + camera Optical Flow robotics demo by General Electric Intelligent Platforms in USA]. GE IP are developing a ruggedized Tegra K1 based module.
Line 287: Line 308:
 
| [[File:ExplorerRobot.jpg|250px|Explorer Robot]]
 
| [[File:ExplorerRobot.jpg|250px|Explorer Robot]]
 
[https://plus.google.com/b/114318922342198493952/+RaffaelloBonghi/posts/2hdF5VtTG4m Explorer Robot by the Officine Robotiche in Italy]
 
[https://plus.google.com/b/114318922342198493952/+RaffaelloBonghi/posts/2hdF5VtTG4m Explorer Robot by the Officine Robotiche in Italy]
|| [[File:MyzharBot2.jpg|300px|MyzharBot Robot]]
+
|| [[File:MyzharBot2.jpg|250px|MyzharBot Robot]][[File:FB_STICKERS_20150317_085147_Richtone(HDR)_1426607684475.jpg|250px|MyzharBot Robot]]
[http://myzharbot.robot-home.it MyzharBot by Walter Lucetti in Italy] is a crawler robot made to study Navigation algorithms based on Computer Vision, Machine Learning and 3D Sensors. The project is open source and open hardware and has its own blog where you can find every information to replicate it.
+
[http://myzharbot.robot-home.it MyzharBot by Walter Lucetti in Italy] is a crawler robot made to study Navigation algorithms based on Computer Vision, Machine Learning and 3D Sensors. The project is open source and open hardware and has its own blog where you can find every information to replicate it. MyzharBot has partecipated to [http://www.gputechconf.com/ GTC2015] conference running for 3 days between the legs of the attendants of the Nvidia's booth in the exhibit area.
 
|| [[File:Project_turbo.jpg|250px|Project TURBO by GE]]
 
|| [[File:Project_turbo.jpg|250px|Project TURBO by GE]]
 
Project TURBO (TK1 Unmanned Reconnaissance Bot) is a low-cost mobile research platform developed by GE Intelligent Platforms, exploring CUDA-accelerated autonomy, sensing & perception powered by Tegra K1.
 
Project TURBO (TK1 Unmanned Reconnaissance Bot) is a low-cost mobile research platform developed by GE Intelligent Platforms, exploring CUDA-accelerated autonomy, sensing & perception powered by Tegra K1.
Line 302: Line 323:
 
Android on Jetson TK1.
 
Android on Jetson TK1.
 
Pure AOSP, Pure open source code.  
 
Pure AOSP, Pure open source code.  
[http://http://jetson.co/wiki/main_page/development Jedroid source code now avaiable, let's work on jedroid together]
+
[http://jetson.co/wiki/main_page/development Jedroid source code now avaiable, let's work on jedroid together]
 
|-
 
|-
 
|[[File:Nbajetson1.jpg|300px]]
 
|[[File:Nbajetson1.jpg|300px]]
Line 313: Line 334:
 
|[[File:VORviz.png|300px]]
 
|[[File:VORviz.png|300px]]
 
Monocular Visual Odometry for UAV using ROS on JETSON TK1
 
Monocular Visual Odometry for UAV using ROS on JETSON TK1
[http://www.robnsngh.com/ Project Info]
+
[http://www.robnsngh.com/2014/11/monocular-visual-odometry-using-nvidia-jetson-tk1-for-uavs/ Project Info]
 +
|-
 +
|
 +
[[File:NvidiaJetsonrobot.jpg|300px]]
 +
 
 +
A low cost vision based development platform based on the Nvidia Jetson TK1.
 +
[http://secondrobotics.com/projects/robots/nvidia-jetson-robot-concept/ Project info]
 +
 
 +
|[[File:Android_Lollipop_on_Jetson_TK1.jpg|350px]]
 +
Jetson TK1 running on Android Lollipop BSP from e-con Systems with MIPI camera and Ethernet connectivity. [https://www.youtube.com/watch?v=tYH2gHYB42s  Demo video]
 +
[https://www.e-consystems.com/jetson-tk1-android.asp Project info]
 +
 
 +
|[[File:Dual_frame_synced_Full_HD_Video_using_eSOMTK1-Tegra_K1_Board.jpg|300px]]
 +
 
 +
Are you looking to build a Dual camera imaging system, watch this demo of eSOMTK1, Tegra K1 Development Board - Propus streaming Dual frame synced Full HD Video.
 +
 
 +
[https://www.e-consystems.com/blog/system-on-module-SOM/tk1-board-propus-streaming-dual-frame-synced-full-hd-video/ Demo Video] [https://www.e-consystems.com/tk1-som-tegra-k1-systemonmodule.asp eSOMTK1 - Tegra K1 SOM] [https://www.e-consystems.com/tegra-k1-development-board.asp Propus - Tegra K1 RDK]
 +
 
 +
 
 +
|-
 +
 
 +
|-
 +
|[[File:Deep_Learning_Demo_with_eSOMTK1_in_Retail_Outlet_-_nVIDIA®_Tegra®_K1_SOM.jpg|300px]]
 +
 
 +
Watch the demo of deep learning using eSOMTK1 - NVIDIA Tegra K1 System on Module. Deep learning is the set of algorithms to train the model data and based on trained data properties, we can recognize objects. Has lot of potential in autonomous driving systems - driver less cars.
 +
 
 +
[https://www.e-consystems.com/blog/system-on-module-SOM/deep-learning-demo-on-esomtk1-in-retail-outlet/ Demo Video] [https://www.e-consystems.com/tk1-som-tegra-k1-systemonmodule.asp eSOMTK1 - Tegra K1 SOM] [https://www.e-consystems.com/tegra-k1-development-board.asp Propus - Tegra K1 RDK]
 +
 
 +
 
 +
|
 +
 
 +
|-
 +
 
 +
| place projects here
  
 
|}
 
|}
Line 321: Line 375:
  
 
== Linux distributions running on Tegra ==
 
== Linux distributions running on Tegra ==
 +
[[File:Fedora.png|90px|right]]
 +
[[File:OpenSUSE.png|90px|right]]
 +
[[File:Debian.png||right]]
 +
[[File:ArchLinux.png|90px|right]]
 +
[[File:Gentoo.png|90px|right]]
 +
[[File:Android2.png|90px|right]]
 +
[[File:Yocto.png|90px|right]]
 +
[[File:Slackware.png|90px|right]]
 +
 
Jetson TK1 comes preloaded with NVIDIA's Linux4Tegra (L4T) distribution. However it is possible to install other distributions on a Tegra device:
 
Jetson TK1 comes preloaded with NVIDIA's Linux4Tegra (L4T) distribution. However it is possible to install other distributions on a Tegra device:
  
 
* [[Tegra/Downstream_SW/Linux4Tegra|Linux4Tegra]] (L4T) distribution: basically Ubuntu 14.04 with pre-configured drivers for bootloader, kernel, OpenGL, X.Org, Multimedia, etc.
 
* [[Tegra/Downstream_SW/Linux4Tegra|Linux4Tegra]] (L4T) distribution: basically Ubuntu 14.04 with pre-configured drivers for bootloader, kernel, OpenGL, X.Org, Multimedia, etc.
* [[Tegra/Mainline_SW/Gentoo_From_SD_Card|Gentoo Linux from SD]]: run Gentoo directly on an SD-card without modifying the contents of the eMMC storage. (Will soon support many other Linux distros such as Debian, Ubuntu, Redhat, etc!)
+
* [[Jetson/Porting_Fedora|Fedora Linux]]: install Fedora on Jetson TK1 plus a minimal XFCE desktop.
 +
* [[Jetson/Porting_openSUSE|openSUSE Linux]]: install openSUSE on Jetson TK1 plus a minimal XFCE desktop.
 +
* [https://en.opensuse.org/HCL:JetsonTK1 openSUSE Linux from SD or SATA]: run openSUSE directly from an SD-card or SATA without modifying the eMMC storage.
 +
* [https://wiki.debian.org/InstallingDebianOn/NVIDIA/Jetson-TK1 Debian]: Debian has installer and kernel support for the Jetson TK1 and provides a u-boot binary.
 +
* [[Jetson/Porting_Arch|Arch Linux]]: install Arch Linux on Jetson TK1 for a minimal Linux system.
 +
* [[Tegra/Mainline_SW/Gentoo_From_SD_Card|Gentoo Linux from SD]]: run Gentoo directly on an SD-card without modifying the contents of the eMMC storage.
 
* [[Tegra/Downstream_SW/Gentoo_From_eMMC|Gentoo Linux]]: run Gentoo Linux (from eMMC) instead of Ubuntu Linux.
 
* [[Tegra/Downstream_SW/Gentoo_From_eMMC|Gentoo Linux]]: run Gentoo Linux (from eMMC) instead of Ubuntu Linux.
 +
* [[Jetson/Busybox_RootFS|Busybox]]: create a very minimal root filesystem with Busybox.
 +
* [https://www.e-consystems.com/jetson-tk1-android.asp Android lollipop]: Android Lollipop port for Jetson TK1, including support from e-Con Systems.
 
* [https://devtalk.nvidia.com/default/topic/767885/embedded-systems/android-on-jetson-tk1/ Android]: The user "lucasdai" is working on a community-supported version of Android on Jetson TK1.
 
* [https://devtalk.nvidia.com/default/topic/767885/embedded-systems/android-on-jetson-tk1/ Android]: The user "lucasdai" is working on a community-supported version of Android on Jetson TK1.
 +
* [http://arm.slackware.com/ Slackware ARM Project]: Running custom mainline kernel with Slackware.
 +
* [https://github.com/watatuki/jetson-tk1-yocto-distro Example of Yocto based distro]: Another Yocto-based distro for Jetson TK1.
 +
* [https://github.com/AGLExport/agl-jetson AGL distro 5.0 for jetson TK1]: Automotive Grade Linux (AGL) for Jetson TK1.
 
* others?
 
* others?
 +
 +
 +
 +
 +
 +
  
  
Line 339: Line 418:
 
* [[Tegra/Mainline SW/Nouveau|Nouveau driver]].
 
* [[Tegra/Mainline SW/Nouveau|Nouveau driver]].
 
* [[Tegra/Boards/NVIDIA_Jetson_TK1|Issues specific to running mainline Linux on the Jetson TK1 board]].
 
* [[Tegra/Boards/NVIDIA_Jetson_TK1|Issues specific to running mainline Linux on the Jetson TK1 board]].
 +
 +
 +
== Jetson TK1 and Tegra K1 Hardware Documents ==
 +
The official Jetson TK1 [https://developer.nvidia.com/hardware-design-and-development '''Hardware Design and Development page'''] contains the open-source hardware documents, allowing you to inspect your Jetson board or even design your own custom board based on Tegra K1 or Jetson TK1, including:
 +
* Jetson TK1 DevKit Specification
 +
* Jetson TK1 Schematics
 +
* Jetson TK1 PCB Board Files (Gerbers)
 +
* Jetson TK1 2D CAD file with layers (.DXF)
 +
* Jetson TK1 Bill of Materials (BOM)
 +
* Tegra K1 SOC Technical Reference Manual (TRM)
 +
* Tegra K1 Embedded Platform Design Guide
 +
* Tegra K1 Memory Approved Vendor List
 +
* Jetson TK1 Pin Mux
 +
* Jetson TK1 Allegro Design File
 +
* Jetson TK1 PCB Stack Up Details
 +
* Jetson TK1 ValorODB++ Database
 +
* Jetson TK1 Datasheet Orcad Schematics
 +
* Jetson TK1 Board Orcad Schematics
 +
* Jetson TK1 PCB Assembly Drawing
 +
* Jetson TK1 RS274x Gerber Data
 +
* Jetson TK1 Autocad DXF Format Design File
 +
* Jetson TK1 PCB Mentor PADS ASCII Format Layout
 +
  
 
== Other embedded Tegra boards created by NVIDIA ==
 
== Other embedded Tegra boards created by NVIDIA ==
 
Jetson TK1 was the first embedded board that NVIDIA created for the general public, but there have also been some other [[Tegra/Boards|Tegra boards]], including the automotive-grade Tegra-K1 based [http://www.nvidia.com/object/visual-computing-module.html Visual Compute Module] and the [http://www.nvidia.com/object/jetson-automotive-development-platform.html Jetson Pro] development platform, both for the automotive industry (requires an NDA and large sales figures, etc).
 
Jetson TK1 was the first embedded board that NVIDIA created for the general public, but there have also been some other [[Tegra/Boards|Tegra boards]], including the automotive-grade Tegra-K1 based [http://www.nvidia.com/object/visual-computing-module.html Visual Compute Module] and the [http://www.nvidia.com/object/jetson-automotive-development-platform.html Jetson Pro] development platform, both for the automotive industry (requires an NDA and large sales figures, etc).
 +
NVIDIA has released many newer Tegra and Xavier dev boards and SOCs through the Jetson family. See the [[Jetson | Jetson main Wiki]] for other NVIDIA boards that superceded the original Jetson TK1.
 +
 +
 +
== 3rd-party embedded Tegra K1 boards ==
 +
There are several embedded dev boards featuring a Tegra K1, such as NVIDIA's Jetson TK1 as well as several other boards:
 +
* [https://developer.nvidia.com/embedded-computing NVIDIA Jetson TK1], NVIDIA's official dev board for Tegra K1. It is relatively large and includes many accessory ports and is officially supported, thus is the recommended board for most users.
 +
* [https://www.e-consystems.com/tk1-som-tegra-k1-systemonmodule.asp eSOMTK1] - e-con systems' compact form factor [https://www.e-consystems.com/Computer-on-modules.asp Computer on Module] is based on nVIDIA® Tegra® K1 CPU. Suitable for Deep Learning & Imaging Applications.
 +
* [https://www.e-consystems.com/tegra-k1-development-board.asp Propus] - e- con Systems’ eSOMTK1 based compact form factor nVIDIA® Tegra® K1 development board.
 +
* [http://coloradoengineering.com/tk1-som-nvidia-tegra-k1-ultimate-iot-m2m-platform/ Colorado Engineering TK1-SOM], a small American Tegra K1 board with many accessories soon to include a CSI MIPI camera module.
 +
* [http://www.embpower-sparkle.com/products_detail.asp?id=79 EmbSom Sparkle TK1-SOM], a small Taiwanese Tegra K1 board.
 +
* [http://www.avionic-design.de/en/products/Embedded-en/Tegra-K1.html Avionic Design Tegra K1 COM], a small German Tegra K1 module that is more suited to mass-production.
 +
* [https://www.abaco.com/products/mcom10-k1-mini-com-express Abaco Systems mCOM10-K1] Small Tegra K1 COMExpress Type10 module..
 +
* [https://developer.dji.com/en/manifold/ DJI Manifold], an enclosed drone / flight computer with similar size as Jetson TK1 but designed specifically for adding to the DJI Matrice 100 quadcopter.  (Broken Link)
 +
* [https://www.toradex.com/computer-on-modules/apalis-arm-family/nvidia-tegra-k1 Toradex Apalis TK1] is a small form-factor [https://www.toradex.com/computer-on-modules System on Module], ideal for building high-end embedded products in the areas of vision and computing.
 +
 +
 +
This Wiki site is designed for Jetson TK1, but almost everything that applies to Jetson TK1 will also apply to the 3rd party dev boards, so this site is useful for any Tegra K1 based dev board.
  
 
== Other SOCs created by NVIDIA ==
 
== Other SOCs created by NVIDIA ==
 
[[Tegra/SoCs|SOCs]]: NVIDIA made several previous generations of Tegra SOCs for the mobile, automotive and MP3 player industries.
 
[[Tegra/SoCs|SOCs]]: NVIDIA made several previous generations of Tegra SOCs for the mobile, automotive and MP3 player industries.
 +
 +
 +
== Jetson & Embedded Tegra Communities ==
 +
* [https://www.hackster.io/nvidia-jetson Jetson community on Hackster.io]
 +
* [https://plus.google.com/communities/111724176143910357920 Jetson community on Google+]
 +
* [https://plus.google.com/114318922342198493952 Official Jetson blog on Google+]
 +
* [https://devtalk.nvidia.com/default/board/139/embedded-systems/ Official Jetson discussion forum]
 +
 +
 +
 +
<div id="Emulators"></div>
 +
 +
== Emulators for developing with Jetson TK1 ==
 +
* [[Jetson/Emulators|'''Emulators:''']] which Windows, OSX, Linux or SteamOS products with a powerful Nvidia GPU are economic and suitable for developing Jetson software?
 +
 +
 +
<div id="Books"></div>
 +
 +
== Books ==
 +
 +
[http://bitkistl.blogspot.co.at/2014/09/explore-your-jetson-tk1-e-book.html Explore your Jetson TK1] (e-book)
 +
 +
[[The JetPack Cookbook|The JetPack Cookbook]] (proposed)
 +
  
 
== Other links ==
 
== Other links ==
[[Tegra/Resources|Resources]] is a list of links to Tegra-related documentation and code outside of this wiki, such as TRMs and mainline kernel links.
+
* [[Tegra/Resources|Resources]] is a list of links to Tegra-related documentation and code outside of this wiki, such as TRMs and mainline kernel links.
 
+
* [[Jetson | Jetson main Wiki]] lists the other NVIDIA Jetson dev boards that came our after Jetson TK1, including the Xavier series of boards.
[https://plus.google.com/114318922342198493952 Google+]
 
  
 
== References ==
 
== References ==

Latest revision as of 16:17, 24 February 2021

  note — Jetson TK1 Developer Kit is EOL. TK1 chips and 3rd-party modules remain available through 2024.

About this site

This is the official Wiki for embedded Tegra & the Jetson TK1 board, maintained by both the community and NVIDIA. Wiki pages for the other NVIDIA Jetson boards are available in the Jetson main page.

The other embedded Tegra community sites with official NVIDIA support are:

  • The forum for discussing embedded Tegra & Jetson TK1 issues with the community & NVIDIA.
  • The blog to stay updated with the latest news & plans for embedded Tegra & Jetson TK1 from NVIDIA.

About Tegra K1

Tegra K1 is NVIDIA's first mobile processor to have the same advanced features & architecture as a modern desktop GPU while still using the low power draw of a mobile chip. Therefore Tegra K1 allows embedded devices to use the exact same CUDA code that would also run on a desktop GPU (used by over 100,000 developers), with similar levels of GPU-accelerated performance as a desktop.

About Jetson TK1

Jetson TK1 dev board

NVIDIA's embedded Tegra K1 SoC (CPU+GPU+ISP on a single processor) is available directly in chip form, or as various 3rd-party embedded modules. They typically come pre-installed with Linux4Tegra OS (basically Ubuntu 14.04 with pre-configured drivers). There is also some official support for running other distributions using the mainline kernel, discussed further in the Distributions and Mainline kernel sections below.

Besides the quad-core 2.3GHz ARM Cortex-A15 CPU and the revolutionary Tegra K1 GPU, the Jetson TK1 board includes similar features as a Raspberry Pi but also some PC-oriented features such as SATA, mini-PCIe and a fan to allow continuous operation under heavy workloads:

Hardware Features

  • Dimensions: 5" x 5" (127mm x 127mm) board
  • Tegra K1 SOC (CPU+GPU+ISP in a single chip, with typical power consumption between 1 to 5 Watts):
    • GPU: NVIDIA Kepler "GK20a" GPU with 192 SM3.2 CUDA cores (upto 326 GFLOPS)
    • CPU: NVIDIA "4-Plus-1" 2.32GHz ARM quad-core Cortex-A15 CPU with Cortex-A15 battery-saving shadow-core
  • DRAM: 2GB DDR3L 933MHz EMC x16 using 64-bit data width
  • Storage: 16GB fast eMMC 4.51 (routed to SDMMC4)
  • mini-PCIe: a half-height single-lane PEX slot (such as for Wifi, SSD RAID, FireWire or Ethernet addon cards)
  • SD/MMC card: a full-size slot (routed to SDMMC3)
  • USB 3.0: a full-size Type-A female socket
  • USB 2.0: a micro-AB female socket (for connecting to a PC, but can also be used as a spare USB 2.0 port using a micro-B male to female Type-A adapter that is sometimes included)
  • HDMI: a full-size port
  • RS232: a full-size DB9 serial port (routed to UART4)
  • Audio: an ALC5639 Realtek HD Audio codec with Mic in and Line out jacks (routed to DAP2)
  • Ethernet: a RTL8111GS Realtek 10/100/1000Base-T Gigabit LAN port using PEX
  • SATA: a full-size port that supports 2.5" and 3.5" disks, but is not hot-pluggable. (Turn off the power before plugging in SATA disk drives)
  • JTAG: a 2x10-pin 0.1" port for professional debugging
  • Power: a 12V DC barrel power jack and a 4-pin PC IDE power connector, using AS3722 PMIC
  • Fan: a fan-heatsink running on 12V (to allow safely running intense workloads continuously, but can usually be replaced by a heat-spreader or heatsink)

The following signals are available through the 125-pin 2mm-pitch expansion port:

  • Camera ports: 2 fast CSI-2 MIPI camera ports (one 4-lane and one 1-lane)
  • LCD port: LVDS and eDP Display Panel
  • Touchscreen ports: Touch SPI 1 x 4-lane + 1 x 1-lane CSI-2
  • UART
  • HSIC
  • I2C: 3 ports
  • GPIO: 7 x GPIO pins (1.8V). Camera CSI pins can also be used for extra GPIO if you don't use both cameras.

Front panel connector:

  • Green - Power LED
  • Orange - HDD LED
  • Red - Power Button
  • Purple / Blue - Reset Button

Hardware-accelerated APIs supported:

  • CUDA 6.0 (SM3.2, roughly the same as desktop SM3.5)
  • OpenGL 4.4
  • OpenGL ES 3.1
  • OpenMAX IL multimedia codec including H.264, VC-1 and VP8 through Gstreamer
  • NPP (CUDA optimized NVIDIA Performance Primitives)
  • OpenCV4Tegra (NEON + GLSL + quad-core CPU optimizations)
  • VisionWorks


Buying Guide

  • NVIDIA TK1 chips are available through Jan 2024 via distributors worldwide.
  • The Jetson TK1 Developer Kit is EOL.
  • Various Ecosystem partners have TK1 development systems available.

Setting up a new board

To configure a new board, or factory reset an existing Jetson, visit the official Get Started On Jetson page, particularly to read the Quick Start guides (downloadable PDF) to "flash" your device (wipe it clean and install Linux onto it). And if you will want to do software development for your Jetson, such as to build CUDA code, you should install the JetPack (Jetson Development Package) as mentioned in the Quick Start Guides to install a graphical IDE with cross-compilation, debugging & visual profiling tools.

Get access to the entire eMMC storage space of Jetson

The eMMC that stores all the files in the Jetson TK1 has a capacity of 16GB, however some instructions or boards only use 8GB of the drive (or 12GB, see discussion) so you don't have to wait another 30 minutes during flashing. If you think you will want more disk space in your rootfs such as for installing toolkits or compiling large projects or storing videos, when you flash the Jetson (from a Linux desktop) you can modify the flash command to use the whole filesystem (note that this will erase all data on the Jetson TK1, and it takes roughly 1 hour to flash the whole eMMC!):

[user@host Linux_for_Tegra]$ sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1
...
sending file: system.img
/ 15032385536/15032385536 bytes sent
system.img sent successfully
...
Create, format and download  took 2791 Secs
Time taken for flashing 2792 Secs

The maximum value of the flash.sh -S flag that works successfully is 14580MiB. Greater values (like 16GiB) are beyond the capacity of the eMMC when the other system-required partitions are included.

Basic setup steps to access the board and access internet

Whether you want to sew your embedded Tegra into a backpack or put it in a robot or simply use it as an ultra powerful media center, the first thing you should do with a new Jetson TK1 board is attach it to a HDMI monitor & keyboard & mouse to make sure it works and get familiar with it for a few minutes.

Note: the micro-USB port on Jetson TK1 can be used as a second USB port if you use the supplied adapter.

The device can be accessed in 2 possible ways, depending on whether you want to plug a keyboard & mouse & monitor directly into the Jetson TK1 board or you want to plug an Ethernet cable between your device and a PC or laptop or router and access it through a network:

Direct access to a Jetson board using its own keyboard & mouse & monitor

The Jetson TK1 Quick Start Guide (included as a booklet with your Jetson TK1) shows how to use the Jetson TK1 board as a mini standalone computer. Basically, you plug in a HDMI monitor or TV, plug a keyboard into the USB3.0 port, plug a mouse into the included micro-B to female USB adapter and plug that into the micro-B USB2.0 port on the board. Then plug the 12V power supply in, press the small POWER button, then watch it boot up into Linux4Tegra (Ubuntu 14.04 with some drivers pre-configured). When it asks for the password for user "ubuntu", just type "ubuntu" to log in. If you have an Ethernet router then simply plug an Ethernet cable from the board into your router (or plug in a USB Wifi dongle) to have internet access, and you are ready.

Remote access to a Jetson board through the Ethernet port

To access the board remotely through a local network from a PC or laptop, follow the Remote Access instructions so you can control the device from the keyboard & mouse & monitor on your PC or laptop and share your desktop's Wifi or Ethernet internet access to the attached device.

An important step before connecting the Jetson to Internet

It is really important to tell "apt" not to overwrite the file "libglx.so" if you upgrade the system. "libglx.so" is a specific file in NVIDIA's graphics driver that might get replaced by an incorrect version from Ubuntu that stops you from being able to boot into the graphical environment! So please execute this command on your Jetson before you connect it to Internet or perform an update:

sudo apt-mark hold xserver-xorg-core

Now you can allow Ubuntu to update itself automatically or you can run "sudo apt-get upgrade" without problems. You can get more information about this issue on the official development forum. Note: Is this only a problem for L4T Rel-19 only? It seems fixed in Rel-21.

Note on passwords

Jetson with L4T is a complete computer, capable of remote login. Based on Ubuntu, the user name "ubuntu" and password "ubuntu" are standardized. Everyone in the world will know this password. If you decide to make your Jetson visible over an unsecured network, be sure to change the password of "ubuntu" to avoid malicious logins. For example, click on the user settings, or run "passwd" in a shell terminal to set your new password.

Recommended first steps now that your board has internet access

Open a command-line terminal to perform some initial operations. If you are using the Jetson TK1's graphical environment then click on the top-left icon in Ubuntu Unity and type "terminal" to open a command shell, or if you have remote access to the device through a network then open an SSH command shell into your device from your desktop such as by running "ssh ubuntu@tegra-ubuntu". Now you are ready for initial configuration.

Add the Universe package repositories, since you will often need packages from Universe for code development:

sudo apt-add-repository universe
sudo apt-get update
If you will use the shell command-line a lot

Install "bash-completion" (it allows you to hit the "Tab" key to auto-complete your shell commands) and "command-not-found" (it shows which package you probably need to install if you run an unavailable command). These 2 tools are extremely useful when using the commandline, but were not installed by default in Ubuntu 14.04. Run this to install them:

sudo apt-get install bash-completion command-not-found
sudo apt-file update &>/dev/null
sudo update-command-not-found &>/dev/null
exit

Note: now you need to log back in for it to start using bash-completion and command-not-found.

It is also highly recommended to change the shell prompt (by adjusting "PS1" in the "~/.bashrc" file in your home directory) to be more useful, such as getting the shell prompt to have a different color than regular commands, and make it obvious if a command returned with an error.

For a simple colored shell prompt that also shows the error number from the previous command, you can also execute this or add it to the bottom of your ~/.bashrc file:

PS1="\[\e[0;44m\]\u@\h: \w (\$?) \$\[\e[0m\] "

There are thousands of custom .bashrc configurations on the web, including Shervin's that provides a different colored shell prompt depending on whether a command was successful or returned an error.

If you will use the graphical environment (Unity) a lot

You might want to try some suggestions at "http://itsfoss.com/things-to-do-after-installing-ubuntu-14-04/" or similar, such as to turn off the desktop shopping suggestions that are enabled by default in Ubuntu 14.04 (despite the spyware concerns discussed by huge numbers of people) by running this:

gsettings set com.canonical.Unity.Lenses disabled-scopes "['more_suggestions-amazon.scope', \
    'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', \
    'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope', 'more_suggestions-skimlinks.scope']"
More recommended Linux tips for a Jetson TK1

Some more tips (such as how to speed up SSH logins, login automatically, share your keyboard & mouse, etc, are in a forum discussion.

Shutting down Jetson TK1 safely

Just like any Linux computer, the recommended way to shut-down or turn off Jetson TK1 is to click Shutdown in the GUI or run this in a terminal, to ensure the filesystem will not be corrupt:

sudo shutdown -h now


Tutorials for developing with Jetson TK1

The following are tutorial projects for hardware and/or software development. They show the easiest way to do a certain task, while the Reference Information section below has more detailed pages. If you have something useful to contribute about Jetson TK1 or embedded Tegra then please do so.

Tutorial Description Programming Difficulty Electronics Difficulty
Hello World Create a simple program that prints "Hello World!", by compiling code directly on your device #
CUDA Install CUDA then build & run some CUDA sample projects #
Nsight Documentation and tutorials on GPU debugging and profiling with Nsight, which is installed with CUDA #
OpenCV Install OpenCV then grab camera frames or build & run some OpenCV samples #
OpenGL Links to many OpenGL and OpenGL ES sample projects #
Full Body Detection Shows how to perform full body detection (something that even desktop CPUs are too slow for!) from a webcam and display the face, using OpenCV #
GPIO Input & Output Turn on an LED or send a signal to an Arduino microcontroller using GPIO # #
Vision-controlled GPIO Turn on an LED whenever a face is detected in your camera # #
Battery Power Power your Jetson TK1 from a battery pack #
Automatic Pan Tilt Build an autonomous pan-tilt face tracking camera, that tracks faces as they move around # #
Optical Flow Motion Generate the optical flow motion vectors to see how things are moving ##
Video Stabilization Real-time video stabilization such as for a robot's onboard camera ##
Program An Arduino Program an Arduino microcontroller from your Jetson TK1 (instead of from a PC) ##
Communicate To An Arduino Connect an Arduino board to a Jetson TK1 board, with communication between then ## ##
Follower Robot Get a wheeled robot to drive towards the nearest person ## ##
Walking Follower Robot Get a 2-legged robot to walk towards the nearest person ### ##


Jetson TK1 Reference Information (more detailed than the tutorials above)

General Topics

Networking Topics

  • Wifi & Ethernet Adapters: Discusses which Wifi or Ethernet cards have been tested on Jetson TK1.
  • Remote Access: Control the device from your PC or laptop, and share your desktop's Wifi or Ethernet internet access to the attached device.

Software Topics

Performance and Power Topics

  • Performance: How to maximize or minimize CPU & GPU clocks for different performance & power draw.
  • Power Management: Electrical power related issues, such as powering the board from a battery or seeing how much power is drawn.
  • Thermal: How to replace the fan with a heat-spreader or heatsink, and measure the board's temperatures.
  • Graphics Performance: Discusses graphics performance of the Tegra TK1 on the board, including comparison with competing solutions.
  • Computer Vision Performance & Power Draw: Describes the different Tegra hardware optimizations in OpenCV, and shows power & perf measurements for many computer vision applications in OpenCV, CUDA and VisionWorks.

Hardware Expansion Topics

  • Expansion board: Discusses a full function expansion board, designed by "http://dcac.taobao.com".
  • Cameras & Webcams: Discusses USB cameras and CSI cameras, stereo cameras and Time-Of-Flight 3D depth cameras.
  • mini-PCIe Add-on Cards: Shows some possible add-on cards that can be used in the mini-PCIe port.
  • GPIO: How to control digital output pins and read input data pins on Jetson TK1.
  • PWM: How to control the spped of motors & servos or LED brightness using Jetson TK1.
  • I2C: How to communicate between microcontrollers & devices using I2C on Jetson TK1.
  • Bluetooth: Use wireless Bluetooth devices such as keyboards, mice & speakers, or communicate to a smartphone or tablet.
  • Enclosures & Cases: Various cases that are available to protect a Jetson TK1.
  • Audio: Issues related to audio input or output, such as microphones or speakers.
  • RTC: Add battery backup RTC and support it using the Grinch Custom Kernel.

Projects using Jetson TK1

The following are descriptions, photos and/or videos of projects featuring Jetson TK1. Feel free to add your own!

Add you project based on Jetson TK1 to our Hackster community

Linux 3.15 + Wayland + Weston + Nouveau running on Jetson TK1

Upstream Linux 3.15 + Wayland + Weston + Nouveau running a 100% open-source OS on Jetson TK1, by CodeThink in UK. If you want to try a similar setup on your Jetson TK1, read this and this.

NVIDIA SCOL robot

NVIDIA's SCOL "Super-Computer-On-Legs" robot, by Shervin Emami in Australia. Performs Optical Flow video stabilization and HOG person detection to walk towards nearby people. Operator Manual.

GE Lidar + Optical Flow demo

Jetson TK1 Lidar range finder + camera Optical Flow robotics demo by General Electric Intelligent Platforms in USA. GE IP are developing a ruggedized Tegra K1 based module.

Explorer Robot

Explorer Robot by the Officine Robotiche in Italy

MyzharBot RobotMyzharBot Robot

MyzharBot by Walter Lucetti in Italy is a crawler robot made to study Navigation algorithms based on Computer Vision, Machine Learning and 3D Sensors. The project is open source and open hardware and has its own blog where you can find every information to replicate it. MyzharBot has partecipated to GTC2015 conference running for 3 days between the legs of the attendants of the Nvidia's booth in the exhibit area.

Project TURBO by GE

Project TURBO (TK1 Unmanned Reconnaissance Bot) is a low-cost mobile research platform developed by GE Intelligent Platforms, exploring CUDA-accelerated autonomy, sensing & perception powered by Tegra K1.

Cluster Computer

Several users are building cluster computers using a handful of Jetson TK1's:

JetsonBalloonFinderOutputScreenshot.png

A user is using CUDA accelerated computer vision to find balloons (or other red round things). This article explains the algorithm and has a link to the source.

Jedroid v1.0.jpg

Project Jedroid Android on Jetson TK1. Pure AOSP, Pure open source code. Jedroid source code now avaiable, let's work on jedroid together

Nbajetson1.jpg

NBA 2K14 Android game using Jedroid on JetsonTK1 Demo video

Transformative Reality

TR4Tegra. Smart-glasses with a depth camera, connected to Jetson TK1 in a backpack, detects object location and notifies a blind user with a ~25x25 neural implant info

VORviz.png

Monocular Visual Odometry for UAV using ROS on JETSON TK1 Project Info

NvidiaJetsonrobot.jpg

A low cost vision based development platform based on the Nvidia Jetson TK1. Project info

Android Lollipop on Jetson TK1.jpg

Jetson TK1 running on Android Lollipop BSP from e-con Systems with MIPI camera and Ethernet connectivity. Demo video Project info

Dual frame synced Full HD Video using eSOMTK1-Tegra K1 Board.jpg

Are you looking to build a Dual camera imaging system, watch this demo of eSOMTK1, Tegra K1 Development Board - Propus streaming Dual frame synced Full HD Video.

Demo Video eSOMTK1 - Tegra K1 SOM Propus - Tegra K1 RDK


Deep Learning Demo with eSOMTK1 in Retail Outlet - nVIDIA® Tegra® K1 SOM.jpg

Watch the demo of deep learning using eSOMTK1 - NVIDIA Tegra K1 System on Module. Deep learning is the set of algorithms to train the model data and based on trained data properties, we can recognize objects. Has lot of potential in autonomous driving systems - driver less cars.

Demo Video eSOMTK1 - Tegra K1 SOM Propus - Tegra K1 RDK


place projects here


Linux distributions running on Tegra

Fedora.png
OpenSUSE.png
Debian.png
ArchLinux.png
Gentoo.png
Android2.png
Yocto.png
Slackware.png

Jetson TK1 comes preloaded with NVIDIA's Linux4Tegra (L4T) distribution. However it is possible to install other distributions on a Tegra device:

  • Linux4Tegra (L4T) distribution: basically Ubuntu 14.04 with pre-configured drivers for bootloader, kernel, OpenGL, X.Org, Multimedia, etc.
  • Fedora Linux: install Fedora on Jetson TK1 plus a minimal XFCE desktop.
  • openSUSE Linux: install openSUSE on Jetson TK1 plus a minimal XFCE desktop.
  • openSUSE Linux from SD or SATA: run openSUSE directly from an SD-card or SATA without modifying the eMMC storage.
  • Debian: Debian has installer and kernel support for the Jetson TK1 and provides a u-boot binary.
  • Arch Linux: install Arch Linux on Jetson TK1 for a minimal Linux system.
  • Gentoo Linux from SD: run Gentoo directly on an SD-card without modifying the contents of the eMMC storage.
  • Gentoo Linux: run Gentoo Linux (from eMMC) instead of Ubuntu Linux.
  • Busybox: create a very minimal root filesystem with Busybox.
  • Android lollipop: Android Lollipop port for Jetson TK1, including support from e-Con Systems.
  • Android: The user "lucasdai" is working on a community-supported version of Android on Jetson TK1.
  • Slackware ARM Project: Running custom mainline kernel with Slackware.
  • Example of Yocto based distro: Another Yocto-based distro for Jetson TK1.
  • AGL distro 5.0 for jetson TK1: Automotive Grade Linux (AGL) for Jetson TK1.
  • others?





Upstream/mainline OS & kernel system software on Tegra

NVIDIA's Tegra SoCs are well supported by mainline OSS such as Linux and U-Boot. This section contains an index of topics related to running mainline software on Tegra.


Jetson TK1 and Tegra K1 Hardware Documents

The official Jetson TK1 Hardware Design and Development page contains the open-source hardware documents, allowing you to inspect your Jetson board or even design your own custom board based on Tegra K1 or Jetson TK1, including:

  • Jetson TK1 DevKit Specification
  • Jetson TK1 Schematics
  • Jetson TK1 PCB Board Files (Gerbers)
  • Jetson TK1 2D CAD file with layers (.DXF)
  • Jetson TK1 Bill of Materials (BOM)
  • Tegra K1 SOC Technical Reference Manual (TRM)
  • Tegra K1 Embedded Platform Design Guide
  • Tegra K1 Memory Approved Vendor List
  • Jetson TK1 Pin Mux
  • Jetson TK1 Allegro Design File
  • Jetson TK1 PCB Stack Up Details
  • Jetson TK1 ValorODB++ Database
  • Jetson TK1 Datasheet Orcad Schematics
  • Jetson TK1 Board Orcad Schematics
  • Jetson TK1 PCB Assembly Drawing
  • Jetson TK1 RS274x Gerber Data
  • Jetson TK1 Autocad DXF Format Design File
  • Jetson TK1 PCB Mentor PADS ASCII Format Layout


Other embedded Tegra boards created by NVIDIA

Jetson TK1 was the first embedded board that NVIDIA created for the general public, but there have also been some other Tegra boards, including the automotive-grade Tegra-K1 based Visual Compute Module and the Jetson Pro development platform, both for the automotive industry (requires an NDA and large sales figures, etc). NVIDIA has released many newer Tegra and Xavier dev boards and SOCs through the Jetson family. See the Jetson main Wiki for other NVIDIA boards that superceded the original Jetson TK1.


3rd-party embedded Tegra K1 boards

There are several embedded dev boards featuring a Tegra K1, such as NVIDIA's Jetson TK1 as well as several other boards:

  • NVIDIA Jetson TK1, NVIDIA's official dev board for Tegra K1. It is relatively large and includes many accessory ports and is officially supported, thus is the recommended board for most users.
  • eSOMTK1 - e-con systems' compact form factor Computer on Module is based on nVIDIA® Tegra® K1 CPU. Suitable for Deep Learning & Imaging Applications.
  • Propus - e- con Systems’ eSOMTK1 based compact form factor nVIDIA® Tegra® K1 development board.
  • Colorado Engineering TK1-SOM, a small American Tegra K1 board with many accessories soon to include a CSI MIPI camera module.
  • EmbSom Sparkle TK1-SOM, a small Taiwanese Tegra K1 board.
  • Avionic Design Tegra K1 COM, a small German Tegra K1 module that is more suited to mass-production.
  • Abaco Systems mCOM10-K1 Small Tegra K1 COMExpress Type10 module..
  • DJI Manifold, an enclosed drone / flight computer with similar size as Jetson TK1 but designed specifically for adding to the DJI Matrice 100 quadcopter. (Broken Link)
  • Toradex Apalis TK1 is a small form-factor System on Module, ideal for building high-end embedded products in the areas of vision and computing.


This Wiki site is designed for Jetson TK1, but almost everything that applies to Jetson TK1 will also apply to the 3rd party dev boards, so this site is useful for any Tegra K1 based dev board.

Other SOCs created by NVIDIA

SOCs: NVIDIA made several previous generations of Tegra SOCs for the mobile, automotive and MP3 player industries.


Jetson & Embedded Tegra Communities


Emulators for developing with Jetson TK1

  • Emulators: which Windows, OSX, Linux or SteamOS products with a powerful Nvidia GPU are economic and suitable for developing Jetson software?


Books

Explore your Jetson TK1 (e-book)

The JetPack Cookbook (proposed)


Other links

  • Resources is a list of links to Tegra-related documentation and code outside of this wiki, such as TRMs and mainline kernel links.
  • Jetson main Wiki lists the other NVIDIA Jetson dev boards that came our after Jetson TK1, including the Xavier series of boards.

References