Jetson Orin Nano Developer board: Did not see outputs from UART1 (/dev/ttyTHS0)

Jetson Orin Nano Developer board and installed a 256G SSD on it. I already used JetPack 6.0 on a X86 host machine to flash these boards. All boards booted up with Ubuntu 22.04.

I tried to test UART1 (/dev/ttyTHS0) on the board. A 3-wire UART wires (TX, RX and Ground) to USB cable was being used. ‘TX’ wire was connected to pin 8, ‘RX’ wire connected to pin 10 and ‘GND’ wire connected to pin 9 in Expansion Header (J12). The USB port was connected to my PC. The baudrate was 115200. ‘Putty’ application was being used to read the data.

I modified the permission for /dev/ttyTHS0 so I could write data to it. From a terminal, I issued ‘echo " This is a test" > /dev/ttyTHS0’ command. But, I did not see anything on the Putty screen. I tried a couple of different baud rates but still nothing. I even switched the TX and RX wire but still did not see anything.

I did the same test on ‘Debug UART’ (/dev/ttyTCU0). It worked as expected. I saw all the outputs on the ‘Putty’ screen.

Any idea why could I not see anything on Putty when testing UART1?

Thanks,

Steven

Hi stevenc,

Do you disable HW flow control from your host PC?

Please share the full dmesg for further check.

Please also try to disable getty service before the test.

$ sudo systemctl stop nvgetty.service
$ sudo systemctl disable nvgetty.service

dmesg.txt (60.0 KB)

  1. No Hardware flow control in Putty setup.
  2. I disabled ‘getty’ service and still did not see any outputs.

Attached is the full ‘dmesg’.

Thanks,

Steven

[    3.654203] serial-tegra 3100000.serial: RX in PIO mode
[    3.654209] serial-tegra 3100000.serial: TX in PIO mode
[    3.654267] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART

From your log, it seems UART1 has been probed as expected.

Could you short TXD/RXD on 40-pins expansion header and run the following command to verify if UART loopback works as expectd?

$ sudo su
# stty -F /dev/ttyTHS0 115200 raw -echo
# cat /dev/ttyTHS0 &
# echo "test" > /dev/ttyTHS0

Hi,
Thanks for reply.

The loopback worked.
Then, I reconnected the 3-wire UART to USB and rebooted the system. Did the following tests:
$sudo su

echo “This is a test” > /dev/ttyTHS0

(No outputs on my Putty terminal)

#stty -F /dev/ttyTHS0 115200

echo “This is a test” > /dev/ttyTHS0

Yes, I saw the outputs. It worked.

So, apparently, it was the baudrate problem.
Now, I have two questions:

  1. What is the default baud rate for UART1 (ttyTHS0) and UART2 (ttyTHS2)?
  2. How do I change UART’s baud rate during boot time so I don’t need to change them manually later?

Thanks,

Steven

Please check the dmesg for its default serial configuration including baudrate.

You can add that command in any boot up script or create a custom service to configure it during boot up.

Hi,

I did read the dmesg and found this line:

[ 3.654267] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART

What is the baudrate for ‘base_baud = 0’ ?

Thanks,

Steven