Another issue I encountered was HDMI audio-out didn't work on the two displays (a computer monitor and an HDTV) that I tested. The OS properly identified that HDMI audio-out was available with each of these tests, but failed to produce any output. I'm hoping that is a software issue that will be addressed in a future revision of the kernel.
Speaking of the kernel, Nvidia smartly began using U-Boot with the R19.3 release, giving developers the ability to more easily customize and install a variety of different Linux distributions on the platform. Consequently, just like the Raspberry Pi platform, Jetson TK1 owners should begin seeing more than just Ubuntu 14.04 available for download from Nvidia's Jetson developer website.
A major reason developers will be excited by what Jetson brings to the embedded development party is its support for the CUDA (Compute Unified Device Architecture) Toolkit. Because the version 6.5 toolkit that supports 64-bit ARM-based development is currently in beta, you must be a CUDA Registered Developer to access it. The CUDA Toolkit is where developers will get the most bang for the buck when it comes to maximizing the parallel computing possibilities and graphics goodness of the Tegra K1. After seeing demos running on the Jetson (Figure 3), you would swear they were running on a desktop computing rig with a premium graphics card.
Figure 3: The CUDA toolkit samples showcase the impressive power of the Tegra K1.
Using the CUDA toolkit is far easier than using traditional DSP, ASIC, or FPGA approaches, because Nvidia has tidied up the heavy lifting and cleared the way for your ideas to become reality much faster. Nvidia has posted several CUDA success stories on its developer blog, such as this one, which discusses low-power LIDAR sensing for a unmanned robotics vehicle. Try doing that with a Raspberry Pi! Also, the Tegra K1 is peppy enough to develop and compile reasonably well on the board itself. While I would not recommend using a heavy IDE like Eclipse, a souped-up Vim with all your favorite plug-ins running in multiple terminal sessions is a very workable scenario.
Nvidia also offers select developers access to its VisionWorks computer vision toolkit for sophisticated Advanced Driver Assistance Systems (ADAS), Augmented Reality (AR), Human Machine Interface (HMI), and other advanced vision-oriented application scenarios. However, unlike the CUDA toolkit, access to the VisionWorks is currently restricted to a select group of developers who must sign an NDA and have an application designed as proof to Nvidia that the applicant is serious about using VisionWorks as a core foundation. It is expected that Nvidia will eventually offer the same level of access to the VisionWorks toolkit as they do for their other developer toolkits, but for now, it's restricted to hard-core devotees.
The Jetson TK1 represents a substantial leap forward in the embedded systems development space. The board is considerably faster than any other I've tested. After using the Jetson TK1 for more than a month, going back to developing on a BeagleBoard or Pi was excruciatingly slow in comparison. Creating CUDA apps that take advantage of Nvidia's Tegra goodness is where this board really shines. Skilled developers will be able to create amazing, high-resolution video applications with UI refresh rates that could rival far more expensive PC desktop equivalents. As such, Nvidia's claim of enabling a "a new generation of applications for computer vision, augmented reality, photography robotics, medical imaging, and automotive such as advanced driver assistance systems" is not only plausible, but probable.
And yet for a board that retails at $200, when compared with other platforms such as the Raspberry Pi or RiotBoard, I found it annoying how much the TK1's single USB port and lack of on-board WiFi hampered development work. Granted, a USB hub coupled with a WiFi dongle and the properly compiled kernel drivers could alleviate this constraint, but given integrating these features would barely have affected the price (especially now that the Raspberry Pi Model B+ now offers 4 USB 2 ports, improved audio, and lower power consumption for a mere $35). The good news is that Nvidia is committed to the Jetson TK1 platform and they are working to offer more out-of-the-box support for peripherals such as USB WiFi adapters in future kernel releases. In the meantime, you can track the progress of external components verified to work with the Jetson TK1 on its associated Elinux.org webpage.
If you're looking for a high-end embedded development board that outperforms most other alternatives on the market today, and you can overlook the version 1.0 compromises that have been made in order to contain costs along with the usual glitches (such as my issues with HDMI audio-out) that can accompany bleeding edge first-generation technology builds, the Nvidia Jetson TK1 is a modern computing platform that will provide the catalyst to help explore your digital dreams and adventures.
Mike Riley, a longtime contributing editor to Dr. Dobb's, is the author of several books including Developing Android on Android and Build An Awesome PC. Follow him on Twitter @mriley or contact him via his email address, [email protected].