Channels ▼
RSS

Design

Nvidia Jetson TK1 Reviewed


Thanks to the tremendous success of inexpensive computing devices such as the Arduino and Raspberry Pi, big companies have started to seriously pay attention to the growing embedded developer and Internet of Things (IoT) hobbyist market. One of these companies is Nvidia, best known for its powerful graphics cards. Over the past few years, Nvidia has branched out to broader computing platforms including the Shield, their handheld Android gaming device, and now the Tegra-based Jetson TK1 development board. This article examines the lastes release of TK1 and explores the aspects that will most appeal to developers and small-system hackers.

The Hardware

The Nvidia Jetson TK1 (that is, Tegra K1) packs plenty of I/O ports on a 5x5-inch board surface. In addition to the expected serial, USB, Ethernet, and JTAG ports, it also sports full-size HDMI, SD/MMC, mini-PCIe, SATA, audio (line out and mic in), and a 125-pin expansion port. This expansion port can be used to drive peripherals, such as cameras, LCD panels, and touch screens.

The brains of the operation is Nvidia's Tegra K1 processor. This CPU+GPU+ISP single chip contains Nvidia's 192-core Kepler GK20a GPU, which is capable of delivering over 300 gigaflops. The Tegra K1 also packs Nvidia's custom 4-Plus-1 2.33GHz ARM quad-core Cortex A15 CPU. To keep such a hot processor cool, a fan heatsink on top of the Tegra K1 processor spins at an intense but relatively quiet RPM.

The board also includes 2GB of DDR3L 933MHz DRAM plus 16GB of fast eMMC soldered-on storage. This impressive amount of technology packed into such a small package makes the Jetson TK1 one of the fastest and most economical embedded hardware development boards I've used so far.

Jetson board
Figure 1: The Jetson TK1 development board comes loaded with a variety of I/O interfaces.

As a result of such a powerful chip and a board design capable of powering external storage and USB devices, the Jetson TK1 uses a 12V DC brick. Conspicuously absent is on-board WiFi or Bluetooth. While these can be added via USB or the mini-PCIe port, the omission is certainly an annoyance in an otherwise notably comprehensive design. This is especially disconcerting because the board advertises itself as ideal for Internet of Things (IoT) development. The board is also a reference design of sorts, and with the lack of a standardized wireless stack, it makes the addition of these wireless technologies a pain to deal with. I'll come back to that aspect later in the review.

Jetson board
Figure 2: Jetson TK1 plugged in and powered on.

One other oddity with the R19.3 kernel release I tested was that the USB 3.0 port was not USB 3.0-enabled by default. This may be due to Nvidia being hesitant to commit to unshakable USB 3.0 data transfer speeds or for compatibility reasons. Regardless, USB 3.0 can be enabled by modifying the odmdata settings in the jetson-tk1.conf file, then building and reflashing the system (a Linux-centric task taking half an hour or more to complete).

The Software

Nvidia provides the Tegra Linux Driver Package, which supports the Linux 3.10.24 kernel, and offers a sample file system freely available for download from the company's developer website. This provides a configured ARM-based Ubuntu 14.04 instance with all the required device drivers already compiled into the kernel.

However, to keep the file system slim, Nvidia removed many of Ubuntu's other drivers, which are typically used for auto-detecting and auto-configuring devices. These include such things as WiFi and Bluetooth dongles. So in the case of my AirLink Ultra Mini-USB WiFi adapter that works just fine on my Raspberry Pi, Jetson TK1's Ubuntu kernel sees and properly identifies the device via lsusb, but doesn't have the drivers built-in to support the device. That means I have to locate and compile these drivers myself. Ugh! Why couldn't Nvidia just add a few dollars to the overall bill-of-materials for the board and save me the hassle of WiFi-enabling the board?


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video