From: eLinux.org

Jetson TK1

Contents

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.

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

Where can I get one and for how much?

  • Visit the 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.
  • Jetson TK1 costs \$192 in USA.
  • 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
    USB micro-B to female USB-A
    adapter

    allowing you to have 2 regular USB ports.
  • There are a large number of optional accessories you can add to
    Jetson such as Cameras, SATA
    hard-disks and mini-PCIe
    devices.

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

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:

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

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:

  1. sudo apt-add-repository universe
  2. 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. Simply run this:

  1. sudo apt-get install bash-completion command-not-found
  2. exit

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
Shervin’s that provides a
different colored shell prompt depending on whether a command was
succesful 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:

  1. gsettings set com.canonical.Unity.Lenses disabled-scopes "['more_suggestions-amazon.scope', \
  2. 'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', \
  3. '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 (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!):

  1. [user@host Linux_for_Tegra]$ sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1
  2. ...
  3. sending file: system.img
  4. / 15032385536/15032385536 bytes sent
  5. system.img sent successfully
  6. ...
  7. Create, format and download took 2791 Secs
  8. 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.

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:

  1. sudo shutdown -h now

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)

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

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

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_1426607684475.jpg “MyzharBot 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

Jetson
bot.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

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.
  • 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!)
  • Gentoo
    Linux
    :
    run Gentoo Linux (from eMMC) instead of Ubuntu Linux.
  • Busybox: create a
    very minimal root filesystem with Busybox.
  • Android:
    The user “lucasdai” is working on a community-supported version of
    Android on Jetson TK1.
  • Android lollipop on Jetson
    TK1
    :
    Android Lollipop port for Jetson TK1, inlcuindg support from e-Con
    Systems.
  • 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).

Other SOCs created by NVIDIA

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

Resources is a list of links to
Tegra-related documentation and code outside of this wiki, such as TRMs
and mainline kernel links.

Google+

References

Categories: