Jetson Nano UART (/dev/ttyTHS1) not working

I am having issues getting the UART port (/dev/ttyTHS1) working on my jetson nano dev kit. I am running my app in a privileged container, and I’ve confirmed that the target device (an RFID board with a 40-pin header) works using a Raspberry Pi that I have nearby. The RFID board uses the “standard” header pinout, so UART communications occurs via pins 8/10. My understanding is that this maps to /dev/ttyTHS1 on the nano, and whenever I attempt to connect to the RFID board I can tell that something is happening as I see a momentary blink in the status lights on the RFID board - but then nothing. I know it’s not an app issue, as it works just fine using the RFID board’s USB interface (the RFID board also has a USB port that uses a FTDI chip for USB-serial conversion and sets itself up on the nano as /dev/ttyUSB0 when connected). I realize this isn’t much to go on - but any chance anyone else has run into issues with serial communications using the nano, and if so how was it resolved? The RFID module communicates at 115,200 baud with a 8n1 configuration.

Below is the output of stty -F /dev/ttyTHS1 -a

speed 115200 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>;
discard = <undef>; min = 0; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo -echoe echok echonl noflsh xcase tostop echoprt echoctl echoke flusho extproc

Hi David,

  • Could you share with us the RFID board you use?
  • Have you tried to connect another UART device to the same port?
  • Could you give us support access to take a look on your device?

@MTolba I am using the Impinj RS1000 RFID module with the nano. I can confirm that the module works because its carrier board also has a FTDI USB-UART converter and I can communicate with the module just fine using that. I don’t have any other UART devices to test the port with. I would be happy to grant support access to the device - just let me know when to do it and for how long.

Separately I’ve been further troubleshooting the issue and I’m trying other UART ports on the device - specifically ttyS0, which is accessible via J50 on the back of the nano carrier board. When I try to use this it appears that balena may also be using it for debug or other purposes. Can you confirm if balena uses any UART ports on the device and if so how to disable that so I can use them for other purposes?

** UPDATE ** I just found out that ttyS0 is outputting dmesg logs, which I confirmed by connecting it to ttyTHS1 and reading ttyTHS1 via tio. It mirrors dmesg exactly. Is this stock balena functionality or is it part of the L4T package? I need to disable this to use ttyS0.

Hi David

I believe you are using the development version of the OS. Is that right?

Please see the difference between Development and Production images here -

By switching to the Production image, you should be able to disable serial for dmesg. Does that work for you???

@anujdeshpande that is extremely helpful - I never noticed this. Thank you. Is there any way to disable the serial output in the development image so that I don’t have to switch to production? I need the development image features for the ongoing development work we are doing, it will be less efficient to do this using production images.

Hey David, please try systemctl disable serial-getty@ttyS0 to disable dmesg on ttyS0.