Jetson TX2 UART0 connection


I’m trying to connect the UART 0 serial port but I only get garbage output. I used J21 (PIN8=TX, PIN9=GND, PIN10=RX).
The terminal program uses 115200 baud, 8 data bits, 1 stop bit, no RTS/CTS.
I’m running Jetpack 28.1.
I measured the RX/TX lines and the shortest pulses I get are ~8.7µs which equals 114942 baud. That should be close enough.

Any ideas what could be wrong?


Garbage is almost always some setting being incorrect. If this is the dev carrier board, then it should be working. Is this the original serial console function on a dev board? Is this being accessed as “/dev/ttyS0” (applies if not used as serial console)?

Yes, it is a dev carrier board. I want to access kernel messages generated during boot sequence.

Setting to 115200 8N1 should always work. If your cable is long and not shielded this could be a problem. If your hardware is not set to a 3.3V TTL logic level, then this too would be a problem. Are you using a USB serial UART adapter? If so, do you have a listing of what line levels it requires?

Yes, I am using 115200 8NI. I have tried two USB serial UART adaptors and also a direct connection to a serial port of a PC. Always just garbage.
All these ports to work with other RS232 devices (other ARM boards, PCs, and several other devices).
I don’t have a listing with required line levels.

The port at both sides of the connection must be at the same setting…unfortunately tools to query a port’s setting only tell you what the driver is set to, and the hardware itself is not able to verify it is in that mode (or if it is capable of that mode).

On your host side, if you were to tie the RX and TX wires together you would have a local loopback. Your serial console application, if working correctly and at the settings of the port, would echo anything you type back to you. I suggest verifying this way on your host side if you use an actual RS232 port (or perhaps even at the end of the USB cable). You can’t do this at the Jetson side since it has serial console both sending and receiving…but J17 ("/dev/ttyTHS2") would be a good sample because this has mostly the same characteristics of ttyS0 (try ttyTHS2 at 115200 8N1 in loopback by tying RX and TX together, then a serial console program to see output echoed from input).

One thing to know is that the ports are 3.3V TTL levels. Not all serial UARTs are at this level, e.g., some are 1.8V, and ordinary 9-pin D-sub connectors are far different (and in fact would damage 3.3V UARTs). If you were to use the wrong serial UART there is a good chance of seeing garbage output.