From: eLinux.org
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:
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.
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:
The following signals are available through the 125-pin 2mm-pitch expansion port:
Front panel connector:
Hardware-accelerated APIs supported:
Where can I get one and for how much?
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.
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:
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.
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.
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.
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
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:
sudo apt-get install bash-completion command-not-found
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.
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']"
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!):
[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.
Some more tips (such as how to speed up SSH logins, login automatically, share your keyboard & mouse, etc, are in a forum discussion.
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
Explore your Jetson TK1 (e-book)
The JetPack Cookbook (proposed)
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
Create a simple program that prints "Hello World!", by compiling code directly on your device
#
Install CUDA then build & run some CUDA sample projects
#
Documentation and tutorials on GPU debugging and profiling with Nsight, which is installed with CUDA
#
Install OpenCV then grab camera frames or build & run some OpenCV samples
#
Links to many OpenGL and OpenGL ES sample projects
#
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
#
Turn on an LED or send a signal to an Arduino microcontroller using GPIO
#
#
Turn on an LED whenever a face is detected in your camera
#
#
Power your Jetson TK1 from a battery pack
#
Build an autonomous pan-tilt face tracking camera, that tracks faces as they move around
#
#
Generate the optical flow motion vectors to see how things are moving
##
Real-time video stabilization such as for a robot's onboard camera
##
Program an Arduino microcontroller from your Jetson TK1 (instead of from a PC)
##
Connect an Arduino board to a Jetson TK1 board, with communication between then
##
##
Get a wheeled robot to drive towards the nearest person
##
##
Get a 2-legged robot to walk towards the nearest person
###
##
The following are descriptions, photos and/or videos of projects featuring Jetson TK1. Feel free to add your own!
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'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.
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 by the Officine Robotiche in Italy
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 (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.
Several users are building cluster computers using a handful of Jetson TK1's:
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.
Project Jedroid Android on Jetson TK1. Pure AOSP, Pure open source code. Jedroid source code now avaiable, let's work on jedroid together
NBA 2K14 Android game using Jedroid on JetsonTK1 Demo video
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
Monocular Visual Odometry for UAV using ROS on JETSON TK1 Project Info
A low cost vision based development platform based on the Nvidia Jetson TK1. Project info
Jetson TK1 running on Android Lollipop BSP from e-con Systems with MIPI camera and Ethernet connectivity. Demo video Project info
Jetson TK1 comes preloaded with NVIDIA's Linux4Tegra (L4T) distribution. However it is possible to install other distributions on a Tegra device:
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.
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 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).
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.