Trying to use UART2, but /dev/ttyTHS1 doesn’t exist
Issue Overview
Users have reported issues with the Nvidia Jetson Orin Nano Dev board where the device node /dev/ttyTHS1
is missing, preventing them from using the UART pins on the J41 header (specifically pins 8 and 10). The problem typically arises during setup or when attempting to run applications that require UART communication.
Specific Symptoms
- The absence of the
/dev/ttyTHS1
device node. - Inability to perform loopback tests on the expected UART interface.
- Users have attempted to disable
nvgetty
and test otherttyTHS#
nodes without success.
Context
- The issue occurs on the Jetson Orin Nano Dev kit with Jetpack version 5.1.1-b56.
- Users have confirmed they are utilizing the standard developer carrier board, ruling out unsupported carrier board issues.
Frequency
The issue appears to be sporadic, with some users successfully accessing the UART functionality while others cannot.
Impact
The missing device node significantly hampers the ability to communicate via UART, affecting user experience and limiting functionality for applications that rely on serial communication.
Possible Causes
-
Hardware Incompatibilities: Although users are on a supported carrier board, there may be hardware defects or mismatches in configurations.
-
Software Bugs or Conflicts: There could be bugs in Jetpack or conflicts with other software components that prevent proper initialization of UART interfaces.
-
Configuration Errors: Incorrect configurations in device tree files or
jetson-io.py
may lead to missing device nodes. -
Driver Issues: Outdated or incompatible drivers might not support the required UART interfaces.
-
Environmental Factors: Power supply issues or overheating could potentially affect hardware functionality.
-
User Errors or Misconfigurations: Incorrect settings in user-developed applications could lead to miscommunication with the UART interface.
Troubleshooting Steps, Solutions & Fixes
Step-by-Step Instructions
-
Verify Device Tree Configuration:
- Check which device tree blob (dtb) is currently in use by examining flash logs.
- Decompile the dtb file using a tool like
dtc
(Device Tree Compiler) and search for entries related touartb@3110000
anduarta@3100000
.
-
Check for Existing Device Nodes:
- Run
ls /dev/ttyTHS*
to see if any ttyTHS devices are present. - If only
/dev/ttyTHS0
exists, confirm its functionality with a loopback test.
- Run
-
Run Loopback Test:
- Connect pins 8 and 10 together.
- Use the following commands:
sudo su stty -F /dev/ttyTHS0 115200 raw -echo cat /dev/ttyTHS0 & echo "test" > /dev/ttyTHS0
- Verify if data is echoed back correctly.
-
Review Application Code:
- If using a custom application for testing, ensure that terminal settings are correctly configured. Refer to community resources like Stack Overflow for guidance on common pitfalls in serial communication programming.
-
Update Drivers and Firmware:
- Check for updates to Jetpack or any relevant drivers that may address known bugs.
- Consider flashing a newer image if available, but ensure backups of current configurations are made first.
-
Consult Documentation:
- Review Nvidia’s official documentation regarding UART setup on the Jetson Orin Nano for any specific instructions or prerequisites that may have been overlooked.
-
Community Support:
- If issues persist, consider reaching out on forums with detailed logs (e.g., dmesg output) and configuration files for further assistance.
Recommended Approach
Multiple users found success by confirming that /dev/ttyTHS0
is indeed the correct device for UART communication on pins 8 and 10. It is advisable to focus troubleshooting efforts on this device rather than searching for /dev/ttyTHS1
.
Best Practices
- Always verify hardware connections before troubleshooting software configurations.
- Regularly update software and firmware to mitigate potential bugs.
- Maintain clear documentation of changes made during troubleshooting for future reference.
This comprehensive guide should assist users in diagnosing and resolving issues related to UART functionality on the Nvidia Jetson Orin Nano Dev board.