Orin NX shows nothing on the ttyTHS* uarts

Hi,

I migrated my project from xavier nx to orin nx, and from jetpack 4.6.4 to jetpack 6.1.

The only change that mentioned in the network related to this is that devices names changed from ttyTHS0 and ttyTHS1 in xavier, to ttyTHS1 and ttyTHS2 in orin.

But even though i see in dmesg that uarts enable and ok, i dont see nothing with cat command on the device names ( the device that connected on the uart send messages for sure, and if i replace orin with xavier, it works and i see data. I’m using both ttyTHS uarts)

I tried to compare uart special definitions that worked for me on xavier (as using 2 stop bits etc.) But it didnt help.

I also worked with claude that suggested changes in the device tree (add serial segments and delete dma from dts and build it), but its also didnt help.

Please assist if you can point on something or you know about some change in uarts on the orin that need to be treat..

Thanks!

Naty

Hi,
Please check the section and see if you have correct mapping in device tree:
Making sure you're not a bot!

thank you! this is very helpful. but also very bothering:
im running R36.4.7 over Orin NX.
the mapping for this tegra from your link is:

The following is valid for R36.X

  • Jetson Orin Nano devkit

Module UART# => SOC UART#(used pins): <uart*>@\ - \ => Usage

UART0 => UART2(PX04, PX05, PX06, PX07): uartb@3110000 (NA) - Unused => To M.2 Key E
UART1 => UART1(PR02, PR03, PR04, PR05): uarta@3100000 (serial1) - /dev/ttyTHS1 => General UART
UART2 => UART3(PCC05, PCC06): NA - /dev/ttyTCU0 => Debug
NA => NA: uarte@3140000 (serial2) - /dev/ttyTHS2 => Virtual

does it means /dev/ttyTHS2 will never work on orin???
if yes, is there other available uart except /dev/ttyTHS2?
i must have it for my product and my migration from xavier to orin. i must get answer for this question ASAP please.
and need to know if there ia any software/hardware solution that
(1 uart works great- ttyTHS1. but ttyTHS2 doesn’t work even after i update the equivalent uart in the device tree)

please advice.
thank you very much.
Naty

Hi,

You would need to enable this as the physical second UART interface. Please refer to 12.3 UART in product design guide:
Jetson Download Center | NVIDIA Developer

Hi there, to expand on that, try decompiling the current dtb in your board and modifying the node serial@3110000to set status = "okay". Also ensure that it has the compatible = "nvidia,tegra194-hsuart"property set. Add an entry in the aliases section, for example serial2 = "/bus@0/serial@3110000";so the kernel assigns a /dev/ttyTHS*device. Recompile this modified dts into a dtb and replace it for the one in your board. Then verify with both the dmesg | grep 3110000and ls /dev/ttyTHS*commands. After that, you cant test direct transmission. Hopefully this should enable the second UART interface. Let me know if this works.
Regards,
Fabian Munoz
Embedded SW Engineer at RidgeRun

Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.