NVIDIA has entered the world of the single-board-computer market in a big way with the Jetson TK1. While you may have heard about great hobbyist boards like the Raspberry Pi or the BeagleBone Black, NVIDIA went a step further and built a product for ARM-based prototyping in the professional space. It's powerful, it's cheap, and readily available. These are the things R&D teams (and their purchasing agents) love.
NVIDIA sent me one to play with and I've been putting it through the paces — both as a an advanced hobbyist, as well as a typical consumer looking to build their own computing appliance. I'm pretty pleased with what I've seen.
What is the Jetson TK1?
The Jetson is not a learning tool
The Jetson is what's known as a single-board computer. That means it's ready out of the box to plug in a display of some sort, add an input method, and then everything just works. Everything needed to run as a computer — the processor, memory, storage, networking, etc. — is built right into the board, and this makes getting started on a project pretty easy. Those projects may be something very technical that consumers aren't going to care about, or they can be something more simple like building your own Home Theater PC. All you need to do is load some software and turn it on.
The Jetson is not a learning tool, like the Raspberry Pi is. Things like the GPIO (General Purpose Input and Output) header having a 2mm pin spacing and using 1.8 volt logic mean that you're not going to be able to use the vast array of hobby-kit expansion components. If you understand what that means, then you see why this is aimed at someone in an advanced development environment. If you didn't understand, it simply means that you'll not be going to Adafruit and buying ready-made kits to build stuff at home.
applications can use the 192 Kepler graphics cores for computation
The Jetson is a very powerful (for an ARM-based product) single-board computer for use in industrial applications where having a ready-made board is preferred, or for doing something like building your own personal computer or mini-server. It's power-friendly (I measured 13 watts of power draw at peak usage), fully supported by NVIDIA's Ubuntu 14.04-based Linux 4 Tegra, and fully supports NVIDIA's GPGPU offload language CUDA. This means that applications can use the 192 Kepler graphics cores for computation if they were developed for it. Anyone who uses a Kepler-class graphics card in their Windows computer in conjunction with a program like Adobe Premiere can tell you this makes a huge difference. And with the Jetson, you won't be drawing hundreds of watts of power to do it.
For an ARM system, this thing is a beast
The Jeston runs on NVIDIA's latest Tegra TK1 SoC (system on chip). You have four 32-bit ARM Cortex-A15 general purpose cores running at 2.3GHz, a low-power Cortex-A15 "shadow" core that runs when the system isn't under heavy load to be more power-friendly, and 192 Kepler GPU cores at 852MHz for graphical horsepower and GPU computation via NVIDIA's CUDA (Compute Unified Device Architecture) language. For an ARM system, this thing is a beast.
Paired with the TK1 SoC is 2GB of DDR3L RAM, clocked at 933MHz and on a 64-bit wide bus. For storage, there is 16GB of NAND flash on-board, as well as SD card and SATA expansion — plugging in something like a 1TB SSD only requires the correct cables. Again, this is no toy.
To connect to the rest of the world, you have a full compliment of inputs and outputs. A Realtek RTL8111GS 10/100/1000 Ethernet port is on-board, and is fully supported out of the box. There is a standard HDMI port for audio and video to an external display, analogue audio input and output jacks, and a full-size USB 3.0 port.
My biggest issue is the lack of Android support
For more advanced use, you'll find a single RS232 serial port, a 25-pin GPIO header, a JTAG header and a single-lane miniPCI express slot. There's also USB OTG and recovery via a micro USB 2.0 port.
While I would have liked to see built-in wireless networking and Bluetooth, the addition of a serial port and JTAG header more than makes up for it. Remember, this wasn't designed for beginners.
My biggest issue is the lack of Android support. NVIDIA has said the Linux 4 Tegra is the only supported OS for the Jetson, and I think they are overlooking a huge development community — both "professional" and the tinkerers who do great things — by not including it. I'm not sure why Android isn't available for the Jetson (if I had to guess, I would say it has something to do with CUDA, but that's 100-percent a guess) but I wish it were. For every enthusiast or professional who wants a full Ubuntu environment for development, I'm sure there is also someone who wants Android.
Who should use this?
more compute power than you'll know what to do with
Hopefully, more than a few of us reading this. The Jetson would make a phenomenal HTPC or network file and media server (because of the huge Ubuntu software repository), and it's also the perfect device for use in industries like the medical field, the automotive industry, or robotics and machine vision. Packed in this one small board is the same GPU-compute engine you'll find in any high-end system designed for CUDA applications, using about 10-times less energy.
On the consumer side, even running a full-blown desktop the system is responsive and capable. Not capable like a Raspberry Pi is capable, but capable like your laptop is capable. Building a system with a big external SATA drive and loading it with media and entertainment-specific software is easily realized, and you'll notice the greatly improved performance versus an Android HTPC or a Raspberry Pi-based media computer.
Hobbyists and enthusiasts may want to think twice about the Jetson
The Jetson is also the tool to usher in a new generation of embedded systems. Developers currently working on CUDA applications now have a pre-built embedded environment to get started with little or no changes to their core code. Developers working on embedded platforms now have an ARM instruction-set board with more compute power than they will know what to do with. It will be worth rewriting code to use CUDA for many projects that just wouldn't be possible without this sort of hardware. NVIDIA's CUDA SDK is already robust and mature, and we're certain that they will continue to provide libraries and tools to further development. I've been doing some consulting on the side with a small group who may be trying it out for their latest project, so there's definitely some interest out there.
Hobbyists and enthusiasts may want to think twice about the Jetson, though. GPU-accelerated libraries sound like a wonderful thing, but you're not going to be able to sit down and write a few lines of Python to use any of them. You're also going to have a harder time finding anything that works with the Jetson's unique GPIO setup, and will likely end up breathing in plenty of blue smoke designing circuitry that can communicate with the 1.8 volt logic. For beginners, a Raspberry PI, an Arduino Uno, and a shield to make them be friends is still your best bet.
Wrapping it all up
There's a whole hell of a lot of computation power here. In fact, chances are there is more than most anyone needs. And at just $192 the cost isn't much of a barrier.
I can think of any number of things here in my office that I would love to use the Jetson for — file serving, network management, media serving, or even an aquarium controller. And it would be very good at any of them. If I were in the market for a full-on HTPC, I would start with a Jetson.
Alternatively, having worked in the machine-vision industry, I can see a huge use-case for the Jetson. All that compute power, the robust CUDA libraries, and the low power draw means that the Jetson will be ideal for many applications in the industrial space. Applications for machine sorting, or medical imaging come right to mind, as well as hardware in your car, which we already know NVIDIA is very interested in.
But if you're a beginner or a casual electronics geek, you should probably look at another board. Not that the Jetson won't be able to do anything you would want it to do (and more), but it's just not the easy way to begin.