Cue theme music..."Meet NVIDIA Jetson!" The latest addition the Jetson family, the NVIDIA® Jetson Nano™ Developer Kit delivers the performance to run modern AI workloads in a small form factor, power-efficient (consuming as little as 5 Watts), and low cost. Developers, learners, and makers can run AI frameworks and models for applications like image classification, object detection, segmentation, and speech processing. The developer kit can be powered by micro-USB and comes with extensive I/Os, ranging from GPIO to CSI. This makes it simple for developers to connect a diverse set of new sensors to enable a variety of AI applications. We at SparkFun see this as more than enough potential to be yelling "Stop this crazy thing" to your friends & family!
Jetson Nano is also supported by NVIDIA JetPack™, which includes a board support package (BSP), Linux OS, NVIDIA CUDA®, cuDNN, and TensorRT™ software libraries for deep learning, computer vision, GPU computing, multimedia processing, and much more. The software is even available using an easy-to-flash SD card image, making it fast and easy to get started.
The same JetPack SDK is used across the entire NVIDIA Jetson family of products and is fully compatible with NVIDIA’s AI platform for training and deploying AI software. This proven software stack reduces complexity and overall effort for developers.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Experienced - You will require a firm understanding of programming, the programming toolchain, and may have to make decisions on programming software or language. You may need to decipher a proprietary or specialized communication protocol. A logic analyzer might be necessary.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 13 ratings:
3 of 4 found this helpful:
The Jetson Nanon is advertised thusly: "the NVIDIA® Jetson Nano™ Developer Kit delivers the performance to run modern AI workloads in a small form factor" - well - let's see.
It uses its GPU to accelerate tensorflow, which is used for Deep Learning, so this is what I tested it on. First, I replaced the micro SD card with a 1 TB external hard disk for speed and dependability. Why the kernel image that comes with it cannot support USB 3 drives and I had to therefore compile a different Linux kernel image is beyond me. Oh well...
The (Python) tool of choice for Deep Learning is keras, so I put keras on it to work on top of the GPU-enabled tensorflow package that comes with the Nano. Getting it all set up is a bit of a pain, as you need to install almost everything from source and you have to hunt down all the dependencies manually.
As a benchmark, I used the MNIST handwritten digits set that comes with keras. I went with a very naive approach, flattening the images of the digits into vectors, and used two hidden layers, one with 512, the other with 10 nodes (I took the example straight from Chollet's book "Deep Learning with Python"). It took the little guy about 60 seconds on average to train 5 epochs on the 6000 training samples of the MNIST data set. For comparison, my age old desktop with a 6 core AMD Phenom processor (no AVX or SSE4.2 instructions so I have to use an old version of tensorflow) without any GPU support for tensorflow took about 35 seconds on average for the same task. Want a friendlier comparison? My Raspberry Pi 3 completed the same training in whooping 284 seconds on average.
So if you were planning on using the Jetson Nano for serious AI Deep Learning work, it is not made for that. But you wouldn't think that NVIDIA sells you a Jetson Nano for a hundred bucks to replace their Titan X for north of six hundred bucks, wouldn't ya :-) But if you want a very beefed-up Raspberry Pi replacement, this is it. It even comes with the same GPIO header and camera port. Be aware though that while the online Jetson community is very active too, it is no comparison to that of the RPi. I also wouldn't recommend this development kit to anybody new to Linux.
2 of 3 found this helpful:
I've got to wonder what NVIDIA was thinking when they put this package together. They obviously have no experience with what the standard development system of 2019 looks like. This needs too many add-ons just to boot up. In addition to the Jetson itself, you need a mouse, a keyboard, an HDMI display, a power supply, a micro SD card and a way to download and burn an image file onto it. Compare that to the simplicity of simply shipping the Jetson with a pre-burned SD card that is configured to connect to a network and bring up an SSH and VNC server. Sure, leave the I/O capability for when it's needed, but don't force developers to have to build a mini-lab (probably by tearing apart some other setup) just to boot up and log in.
The next poor decision was the power supply. They used a micro USB connector for a power supply connection. This in an application that needs multi-amp capability. The resistance of those tiny connectors will drop any standard USB power supply to below 5v (causing the device to silently and suddenly shut down). Standard phone chargers and similar power supplies typically do not produce enough current to drive the Jetson. Developers will have to get an alternative supply such as a 5v, multi-amp bench supply and feed the power through the Jetson's barrel connector. The whole idea of using a phone/tablet supply that you already have is a cruel fraud. Rather, there should have been a barrel connector with pigtails included so that developers could easily connect to existing bench supplies. Oh yeah, when you use the on-board barrel connector, it requires a jumper which isn't included in the kit, either.
Another poor decision was using a 16GB SD card as the main storage medium. First off, the problems with pretending that an SD card is a hard drive are very well known by now. Second, for this system 16GB is the absolute minimum to boot up with. If you want to actually do anything like building a kernel or running the Hello AI World example, you can't. You run out of storage space. The obvious answer to this is to add a USB drive of some sort. Unfortunately, NVIDIA has thrown up roadblocks for that, too.
First, every USB drive these days is USB 3.0. The provided kernel does not have USB 3.0 support built in so you can't read the drive until the kernel has read the driver modules. It has to read these from the root file system. If the root file system is on a USB drive, the kernel can't read the root file system until it has read the root file system. Oops.
Second, building a new kernel with USB 3.0 built in is reasonably straightforward, except that the SD card runs out of space before the kernel completes building. It also sometimes runs out of RAM. So you need to do a kludge of mounting a drive partition over the /usr/src directory to provide the space to build the new kernel. While you're at it, there should also be a swap partition to allow for when the 4GB of RAM gets exhausted while building the kernel. Once the kernel's built, you can move the root file system and reconfigure the boot parameters. In my case, I also moved the home directory to its own partition so that I'd have room for my apps, be able to easily back them up and to be mostly immune to OS upgrades. I split a 500 GB hard drive into a 128 GB root partition, a 16GB swap partition and the remaining 300+ GB are my home directory. Using the kernel build as a benchmark, with the hard drive the time went from 45 minutes to just under 30.
When all that's done, you'll still need to have the SD card in the slot when booting to get the SOC firmware files, but it can be unmounted after booting, minimizing the chances for corruption.
The Linux distro shows the same thoughtful attentiveness to developers' needs. I don't have anything against Ubuntu, I have it running on 3 machines and use it daily. My problem is with the selection of the subset that NVIDIA provided, as well as the configurations. The first major problem is that it boots up into a GUI. This is a tremendous resource pig, using 4 times as much memory as booting into the command line. Next, it is not delivered set up to run a VNC or RDP session. The only remote destop tool it has is Remmina which only runs if you're logged into the GUI and whose config program crashes with no error message being displayed so you can't run it anyway. You have to add your own server and configure it if you want to be able to boot up into command line and serve a remote desktop. The lack of these tools is made more annoying by the fact that every Gnome solitaire game was included.
Booting up even into command line mode still ends up starting literally hundreds of threads. I haven't tracked them all down yet, but there are definitely services that are being started for no good reason. This is a problem because while the Jetson has that nice GPU for AI work, it's somewhat underpowered for normal Linux stuff. The GUI feels slow and laggy. Checking /proc/cpuinfo shows 4 processors with 38 bogomips each. For comparison, the Raspberry Pi Model B Rev 2.0 has a single 700 bogomips processor, albeit 32 instead of 64 bits. The Jetson needs its power for running interfaces and control programs, so minimizing system load is a must.
After nearly a week of research and experimentation, I finally had my Jetson to what I consider a usable configuration. The SD card is used only for booting, a multi-partition hard drive provides 1/2TB storage and swap space. The system boots up in command line mode and runs headless (no mouse or keyboard needed) over my network. Normally I do things with multiple SSH command line windows, but when I need a GUI I can start the VNC server and connect with my favorite VNC client. The whole thing is powered through the barrel connector by a 35 amp bench supply.
The next frontier was to actually do something AI-related. I installed and ran the inference portion of the NVIDIA Hello AI World tutorial. Everything downloaded quickly and the build was reasonably snappy (well under 10 minutes). The only slow part was the neural network optimization. That was excruciatingly slow and used a fair bit of swap space. It took longer than the kernel build did. Fortunately, that only gets done once. The actual processing of images takes less than 5 seconds.
I tested it with the test data provided in the tutorial. It was able to identify every dog that I showed it as a dog. It also identified a polar bear and a cat as dogs. I decided that it'd be fun to see how it did on something more challenging, so I headed over to a website filled with medieval art work and had it look at sculpture, jewelry and images with a doggy theme. The Jetson was able to identify the dogs in each one. Best of all, in the painted tile it correctly identified the dog and ignored the cat. The images were:
https://www.kornbluthphoto.com/images/Clemence10b.jpg https://www.kornbluthphoto.com/images/StAlbansDogFib1.jpg https://www.kornbluthphoto.com/images/LouvreBaptLouis_67-72-1.jpg https://www.kornbluthphoto.com/images/Lille-1.jpg
So it seems to be a functioning system that, in spite of its initial crocks, can be turned into an educational/research tool. While the low price argues for leniency in judging it, once you consider the price of the hard drive and the cost of all the hours to get the system configured and working rationally, it's not that cheap anymore. I'm keeping mine and will be using it for experimentation and learning, but it's nowhere near as good as the ad copy makes it out to be. It's very doubtful that it can be used as a true edge computing platform, unless it's in an application that doesn't care about weight and bulk.
It's also somewhat disconcerting how it's pitched toward C++ developers. Don't get me wrong, C++ is my absolute favorite programming language, but it's not the one that the AI community has adopted. Doing AI with C++ sort of feels like writing web apps in COBOL. It makes me worry what other domain misunderstandings NVIDIA has baked in. I was able to get TensorFlow eventually installed, but like everything else having to do with the software environment, it did not work the first (or second or third or fourth) time and required a lot of web browsing, reading between the lines and effort to correlate the proposed fixes with the revision in hand. This board is a software environmental disaster. What's appalling is that it would have been so easy for NVIDIA to do it right, but they didn't.
1 of 2 found this helpful:
Lovely little machine, but these are very early days. You’re going to have to dig through message boards and be willing to go through a lot of trial and error to add wifi or Bluetooth support. Expect a lot of “well, it worked for me” or “I have that problem too” dead end threads on those boards until there’s a larger user base trying to do the same things you’re trying to do. The good news is they’re largely sold out, which means there must be a lot of Nano users out there, so there’ll likely be better walk through for those of you who are new to Linux and its… special way of installing functionality.
Work out of the box. Ran demos better th an I though
First of all, I've never had a better experience with Linux desktop on any other SBC. Super snappy experience. But I'm not seeing a lot of support for this. All anyone ever wants to talk about is Raspberry Pi, and it's easy to see why: the long term support and stable Raspbian distro. I do not expect NVidia to really support the Jetson Nano long term, which is sad, but I would be pleasantly surprised if they not only provided serious long term support, but actually marketed this board to makers.
They could totally cultivate a real community around it. Because after playing with this first generation Jetson series sbc, I'd really like to see gen 2 with a better processor to go with that Tegra gpu; doing anything serious with this board is going to require some more raw power or some other circuitry to assist it.
There are 2 markets I can see this board appealing to this generation: militarists/statists (and similar boorish types), and makers/inventors. The former is likely the reason these take so long to ship out to us so called "consumers." I can see these things being clustered together to make a cheap super computer, or used as surveillance drivers to track and trace competing, eh shall we say "authority figures," who might be contending for power, and the like. In fact, just about the only marketing demos I've seen from NVidia themselves suggests that this is exactly the kind of market they're pandering to.
But in any case, they're good boards for us makers, and I highly recommend getting one even if you're just interested on playing around with it. Tons of fun to be had with these things, and loads of magic in such a small package to be wielded with the Tegra's nifty little parallel logical cores. Making some virtual primordial soup in your living room has never been more affordable. If you're hard for unique technology, or just crazy for sbc's like I am, the Jetson Nano will likely satisfy that itch of curiosity and wonder; so I say give it a chance and see what you can do with it.It's better than buying crack, heh heh
I like the way how nvidia optimalize ubuntu and deploy it on this device.
Compared with my experience with the introduction of the Intel Edison, this is beautifully done. The web information is clear, organized, and skillfully edited. So far, a great learning experience. My only recommendation is not to skimp on the image SD card.
I am an experienced embedded guy who was excited to try the Jetson Nano. I wanted to experiment with deep learning and do more cuda development. I am impressed with all the tools already installed and configured and am very impressed with the graphics performance. The documentation is very good. I love the 4GB of memory and like the ability to use a barrel power supply. I have the file system mounted on an (USB) SSD that significantly improves boot time and application development. My only complaint is that the default Ubuntu 18.04 window system takes up wayyyyyy to much memory (~1.5GB).
Under "Features" it states "DC power adapter 5V 4A". The word "supports" should have been added because the supply is NOT included in the package. Other items under "Features" which are not included are marked as such. Now I have to order the power supply before I can do anything with the unit.
Sorry that's confusing, I'll put in a request to get it changed. If you're ever curious about exactly what you're getting check the "Includes" tab and the product photos.
0 of 2 found this helpful:
This is a fast microcomputer. If you want something fast for video playback and overall computing without the footprint to work with your TV, this will do. The drawback is this will not support Win 10 OS if that is the system of choice. It is a Linux/Ubuntu machine.
If you're into robotics and/or multi video enhanced control/navigation, expect to hunt and peck NVIDIA for support material. You will be forever navigating here and there fighting fragmented support and wondering what they mean by "deep learning".
I’m 100% new to the Jetson family (get it??) and this has been just what I needed to get started with AI development.