JetsonHacks

Level Shifting, UART and GPS Part 1 – NVIDIA Jetson TK1

Building a breadboard to interface a GPS system to a UART on the Jetson TK1 only requires a couple of parts, a GPS breakout board and a Level Shifter breakout board. Looky here:

Background

The Universal Asynchronous Receiver/Transmitter (UART) was invented by Gordon Bell in 1971 to translate data between parallel and serial forms. You can read more about it here: Wikipedia UART article. This can be considered the grandaddy of serial communication, and is popular for a variety of reasons. UART communication is inexpensive, it only requires a couple of wires to send data and there is no need for a clock to be transmitted. In order communicate, both sides need to be operating at the same speed (baud rate, stop bits), the transmitted protocol will synchronize the rest. This type of communication is ubiquitous globally throughout the telephone and computer industries.

Serial Communication on the Jetson

In addition to UARTs, the Jetson TK1 also has two other forms of serial communication available through the J3 headers. Both of these are synchronous in nature, I²C and SPI. You might recall that we interfaced against I2C in the LIDAR-Lite installation article a while back. Both I2C and SPI have a clock that is transmitted over a wire, along with a wire(s) for the actual data itself. The reason for using synchronous serial communication? Speed. Historically transmitting the clock signal limited the distance that data could transmitted reliably.

Another means of serial communication is USB, which is probably much more familiar to most people. This form of communication was invented in the mid 1990s so that manufacturers would have a simple way of interfacing serial devices such as mice and keyboards with personal computers. Over the years the amount of bandwidth that could be transmitted increased exponentially from around 12 Mbs for USB 1.0 to 5 Gbs for USB 3.0. The Jetson has 2 USB ports.

UARTs on the Jetson

The Jetson has 3 UART ports available. The first is attached to the DB9 connector on the board, commonly referred to as the ‘serial console’. It’s easy to identify, it looks like it came from the 1970s. The other two UART ports are accessible through the J3A2 header.

The UARTs on the header operate at 1.8V signal levels. You should note that most popular devices designed to use UART serial communication on systems like Arduinos, Raspberry Pi, etc. work at 3.3V or 5V signal levels. Therefore it is necessary to shift the level to the correct operating voltage between the device and the Jetson. Fortunately this is simple using what is called a logic level converter, or more colloquially, a level shifter.

In our example, we will hookup a GPS breakout to the Jetson TK1 via a level shifter breakout on a breadboard. It will look something like this when we’re done:

Parts

A couple of devices are needed. First the GPS, an Adafruit Ultimate GPS Breakout:

Second, an Adafruit 4-channel I2C-safe Bi-directional Logic Level Converter:

In the video, a Solderless BreadBoard, 400 tie-points, 4 power rails was used, along with some regular breadboard jumpers, along with Hook up Wire – 22 Gauge.

Additional Tools

There are a couple of tools that are useful for this project:
1) A soldering iron, in the video a Hakko FX888D-23BY Digital Soldering Station was used.
2) Wire strippers, in the video a Hakko CHP CSP-30-1 Wire Stripper, 30-20 Gauge Maximum Cutting Capacity was used.

Off to Part 2, Wiring.