Difference between revisions of "Jetson TK1"

From eLinux.org
Jump to: navigation, search
m (Shervin.emami moved page TestTegra to JetsonTK1: NVIDIA finally decided what to name the page)
(Adjusted the links now that the main page has relocated)
Line 68: Line 68:
  
 
=== Remote access to a Jetson board through the Ethernet port ===
 
=== 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 [[/Tegra/Remote Ethernet Access/|Remote Ethernet 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 [[Tegra/Remote Ethernet Access|Remote Ethernet 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.
  
 
== Tutorials for developing with Jetson TK1 ==
 
== Tutorials for developing with Jetson TK1 ==
Line 80: Line 80:
 
! Electronics Difficulty
 
! Electronics Difficulty
 
|-
 
|-
! [[/Tutorials/Hello World/|Hello World]]
+
! [[Tegra/Tutorials/Hello World|Hello World]]
 
| Create a simple program that prints "Hello World!", first by compiling directly on your device and then by cross-compiling from a PC
 
| Create a simple program that prints "Hello World!", first by compiling directly on your device and then by cross-compiling from a PC
 
| #
 
| #
 
|  
 
|  
 
|-
 
|-
! [[/Tutorials/Frame Capture/|Frame Capture]]
+
! [[Tegra/Tutorials/Frame Capture|Frame Capture]]
 
| Grabbing camera frames from a typical USB webcam and displaying them, using OpenCV
 
| Grabbing camera frames from a typical USB webcam and displaying them, using OpenCV
 
| #
 
| #
 
|  
 
|  
 
|-
 
|-
! [[/Tutorials/Full Body Detection|Full Body Detection]]
+
! [[Tegra/Tutorials/Full Body Detection|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
 
| 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
 
| #
 
| #
 
|
 
|
 
|-
 
|-
! [[/Tutorials/GPIO|GPIO Input & Output]]
+
! [[Tegra/Tutorials/GPIO|GPIO Input & Output]]
 
| Control an LED or motor and read an input switch using GPIO
 
| Control an LED or motor and read an input switch using GPIO
 
| #
 
| #
 
| #
 
| #
 
|-
 
|-
! [[/Tutorials/Vision GPIO|Vision-controlled GPIO]]
+
! [[Tegra/Tutorials/Vision GPIO|Vision-controlled GPIO]]
 
| Turn on an LED whenever a face is detected from your camera
 
| Turn on an LED whenever a face is detected from your camera
 
| #
 
| #
 
| #
 
| #
 
|-
 
|-
! [[/Tutorials/CUDA|CUDA]]
+
! [[Tegra/Tutorials/CUDA|CUDA]]
 
| Build & run some of the CUDA Samples
 
| Build & run some of the CUDA Samples
 
| #
 
| #
 
|
 
|
 
|-
 
|-
! [[/Tutorials/Battery Power|Battery Power]]
+
! [[Tegra/Tutorials/Battery Power|Battery Power]]
 
| Power your Jetson TK1 from a battery pack
 
| Power your Jetson TK1 from a battery pack
 
|
 
|
 
| #
 
| #
 
|-
 
|-
! [[/Tutorials/Automatic Pan Tilt|Automatic Pan Tilt]]
+
! [[Tegra/Tutorials/Automatic Pan Tilt|Automatic Pan Tilt]]
 
| Build an autonomous pan-tilt face tracking camera, that tracks faces as they move around
 
| Build an autonomous pan-tilt face tracking camera, that tracks faces as they move around
 
| #
 
| #
 
| #
 
| #
 
|-
 
|-
! [[/Tutorials/Optical Flow Motion|Optical Flow Motion]]
+
! [[Tegra/Tutorials/Optical Flow Motion|Optical Flow Motion]]
 
| Generate the optical flow motion vectors to see how things are moving
 
| Generate the optical flow motion vectors to see how things are moving
 
| ##
 
| ##
 
|
 
|
 
|-
 
|-
! [[/Tutorials/Video Stabilization|Video Stabilization]]
+
! [[Tegra/Tutorials/Video Stabilization|Video Stabilization]]
 
| Real-time video stabilization such as for a robot's onboard camera
 
| Real-time video stabilization such as for a robot's onboard camera
 
| ##
 
| ##
 
|
 
|
 
|-
 
|-
! [[/Tutorials/Connect To Arduino|Connect To Arduino]]
+
! [[Tegra/Tutorials/Connect To Arduino|Connect To Arduino]]
 
| Connect an Arduino board to a Jetson TK1 board, with communication between then
 
| Connect an Arduino board to a Jetson TK1 board, with communication between then
 
| ##
 
| ##
 
| ##
 
| ##
 
|-
 
|-
! [[/Tutorials/Follower Robot|Follower Robot]]
+
! [[Tegra/Tutorials/Follower Robot|Follower Robot]]
 
| Get a wheeled robot to drive towards the nearest person
 
| Get a wheeled robot to drive towards the nearest person
 
| ##
 
| ##
 
| ##
 
| ##
 
|-
 
|-
! [[/Tutorials/Walking Follower Robot|Walking Follower Robot]]
+
! [[Tegra/Tutorials/Walking Follower Robot|Walking Follower Robot]]
 
| Get a 2-legged robot to walk towards the nearest person
 
| Get a 2-legged robot to walk towards the nearest person
 
| ###
 
| ###
Line 150: Line 150:
  
 
== Jetson TK1 Information ==
 
== Jetson TK1 Information ==
* [[/Remote Ethernet Access/|Remote Ethernet Access]] Control the device from your PC or laptop, and share your desktop's Wifi or Ethernet internet access to the attached device.
+
* [[Tegra/Remote Ethernet Access|Remote Ethernet Access]] Control the device from your PC or laptop, and share your desktop's Wifi or Ethernet internet access to the attached device.
* [[/JetsonTK1 Power/|TODO]] Electrical power & heat related issues, such as powering the board from a battery, replacing the fan with a heatsink, and seeing how much power is used under different conditions.
+
* [[Tegra/JetsonTK1 Power|TODO]] Electrical power & heat related issues, such as powering the board from a battery, replacing the fan with a heatsink, and seeing how much power is used under different conditions.
* [[/Cameras/|TODO]] Discusses USB cameras and CSI cameras, stereo cameras and Time-Of-Flight 3D depth cameras.
+
* [[Tegra/Cameras|TODO]] Discusses USB cameras and CSI cameras, stereo cameras and Time-Of-Flight 3D depth cameras.
* [[/Comparison/|TODO]] Comparison of features & benchmark results between Jetson TK1 and other dev boards such as Raspberry Pi, etc.
+
* [[Tegra/Comparison|TODO]] Comparison of features & benchmark results between Jetson TK1 and other dev boards such as Raspberry Pi, etc.
 
* The [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 Reference Manual (TRM), etc.
 
* The [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 Reference Manual (TRM), etc.
  
Line 161: Line 161:
 
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:
  
* [[/Linux4Tegra/]] (L4T) distribution: basically Ubuntu 14.04 with pre-configured drivers for bootloader, kernel, OpenGL, X.Org, Multimedia, etc.
+
* [[Tegra/Linux4Tegra|Linux4Tegra]] (L4T) distribution: basically Ubuntu 14.04 with pre-configured drivers for bootloader, kernel, OpenGL, X.Org, Multimedia, etc.
 
* others?
 
* others?
  
Line 169: Line 169:
 
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.
 
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.
  
* [[/Mainline SW/U-Boot/]].
+
* [[Tegra/Mainline SW/U-Boot|U-Boot]].
* [[/Mainline SW/Linux kernel/]].
+
* [[Tegra/Mainline SW/Linux kernel|Linux kernel]].
  
 
== 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 production-grade VCM + Jetson Pro prototyping playform for the automotive industry.
+
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 production-grade VCM + Jetson Pro prototyping playform for the automotive industry.
  
 
== Other SOCs created by NVIDIA ==
 
== Other SOCs created by NVIDIA ==
[[/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.
  
 
== Other links ==
 
== 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.
+
[[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.
  
 
== References ==
 
== References ==

Revision as of 18:18, 31 May 2014

About this site

This is the official Wiki for embedded Tegra & the Jetson TK1 board, maintained by both the community and NVIDIA.

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. The blog on Google+ is also linked to from Twitter and LinkedIn. Or if you want to be emailed with these anouncements then send an email to TODO.

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!

About Jetson TK1

Jetson TK1, "the world's first embedded supercomputer!"

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 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 of roughly 5W):
    • GPU: NVIDIA Kepler GPU with 192 SM3.2 CUDA cores (over 300 GFLOPS!)
    • CPU: NVIDIA 4-Plus-1 2.32GHz ARM quad-core Cortex-A15 CPU
  • DRAM: 2GB DDR3L 933MHz x16 using 64-bit data width
  • Storage: 16GB fast eMMC 4.51
  • ROM: 4MB SPI boot flash
  • mini-PCIe: a half-height single-lane PEX slot (such as for 802.11ac 5GHz Gigabit Wifi + Bluetooth BLE, 802.11n Wifi + Bluetooth combo, 128GB SSD, 3G Modem + GPS combo, SATA RAID, USB3.0, Dual Gigabit LAN, 4 x RS232 serial ports, or FireWire or Analog video capture cards)
  • SD/MMC card: a full-size slot
  • USB 3.0: a full-size Type-A female socket
  • USB 2.0: a micro-AB socket (a micro-B to female Type-A adapter is included to use this as a second full-size USB port)
  • HDMI: a full-size port
  • RS232: a full-size DB9 serial port
  • Audio: a ALC5639 Realtek HD Audio codec with Mic in and Line out jacks
  • Ethernet: a RTL8111GS Realtek 10/100/1000Base-T Gigabit LAN port
  • 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 disk drives)
  • JTAG: a 2x10-pin port for debugging
  • Power: a 12V DC barrel power jack, plus a 4-pin PC IDE power connector
  • Fan: a 12V 1.3W fan-heatsink (to allow running long durations inside an enclosure)

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

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

Hardware-acceleration APIs supported:

  • CUDA 6.0 (SM3.2, roughly the same as desktop SM3.5)
  • OpenGL 4.4
  • OpenGL ES 3.1
  • NPP
  • OpenCV4Tegra (NEON & GLSL & quad-core optimizations)
  • VisionWorks

Buying Guide

Where can I get one and for how much?

  • Jetson TK1 became publicly available from TODO, and is currently available at the NVIDIA store, and also within USA at Newegg and Micro Center and Europe at Zotac.
  • Jetson TK1 costs $192 USD (ie: $1 per CUDA core!).
  • It includes a power supply (with a detachable US mains cord), a USB micro-B cable for connecting it to a PC, and a USB micro-B to female USB-A adapter allowing you to have 2 regular USB ports.

Basic Setup

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:

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 Ethernet 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.

Tutorials for developing with Jetson TK1

The following are tutorial projects for hardware and/or software development. Since Jetson TK1 is significantly faster than other dev boards, it allows more complex projects than what other dev boards can allow, thus some of these tutorials may be quite long. 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!", first by compiling directly on your device and then by cross-compiling from a PC #
Frame Capture Grabbing camera frames from a typical USB webcam and displaying them, using OpenCV #
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 Control an LED or motor and read an input switch using GPIO # #
Vision-controlled GPIO Turn on an LED whenever a face is detected from your camera # #
CUDA Build & run some of the CUDA Samples #
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 ##
Connect To 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 ### ##

Demos of Jetson TK1 projects

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

Jetson TK1 Information

  • Remote Ethernet Access Control the device from your PC or laptop, and share your desktop's Wifi or Ethernet internet access to the attached device.
  • TODO Electrical power & heat related issues, such as powering the board from a battery, replacing the fan with a heatsink, and seeing how much power is used under different conditions.
  • TODO Discusses USB cameras and CSI cameras, stereo cameras and Time-Of-Flight 3D depth cameras.
  • TODO Comparison of features & benchmark results between Jetson TK1 and other dev boards such as Raspberry Pi, etc.
  • The 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 Reference Manual (TRM), etc.

Linux distributions running on Tegra

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.
  • 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.

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 production-grade VCM + Jetson Pro prototyping playform for the automotive industry.

Other SOCs created by NVIDIA

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

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.

References