Hi, as part of a university robotics project I am required to communicate between a Jetson Nano and some kind of microcontroller (to be used for 5+ PWM channels) over UART on pins 8 and 10 on the 40 Pin header. When attempting to do so I can successfully receive clear data on the Jetson, however when trying to transmit from the Jetson all sent data is corrupted(shown in the bellow image).
Jetson TX Pin corrupted strings
This particular image was generated by plugging the serial output of the Jetson into a serial to usb adapter with a CH340G chip and opening the serial port using PuTTY on my laptop (Win10).
Setup:
- Pin 8 TX connected to RX on CH340G
- Pin10 RX connected to TX on CH340G
- GND connected to GND
- port opened using Pyserial library at baud 4800 with all other default settings on both Jetson and Laptop
- using /dev/ttyTHS1
This output was produced using the following program on the Jetson
import serial
baud = 4800
ser = serial.Serial('/dev/ttyTHS1', baud)
print(ser)
try:
while True:
ser.write(b'H')
except KeyboardInterrupt:
print("closing...")
I had a look at this on an oscilloscope both at just over the TX pin and ground with nothing connected, which shows it working, and over the TX pin and ground while the TX pin is connected to the CH340G which is known to fail.
The J40 TX Pin with working nothing connected, and GND
The J40 TX Pin connected to the CH340G producing a corrupt output on the serial monitor, and GND.
Setup used to probe over the connection to the CH340G
Devices that I tried:
- CH340G failed
- ESP8266 failed
- RP2040 failed
- Pi Zero W however was successful in receiving clear UART data from the Jetson
Measures Taken:
- nvgetty is disabled.
- The grounds of the Jetson and each device iv tested it with were connected
- I’ve tried Baud rates ranging from 115200 down to 120 and seen no improvement. The majority of my tests have been at 4800 which did clear up some corruption in receiving on the Jetson as opposed to 9600 but had no effect on the scale of corruption when receiving.
- All other devices I tested the Jetson with were able to successfully send and receive UART data to/from my laptop.
- All devices run on 3.3V
This is further to the bellow similar issues, it has also been reported on the NX using the same carrier board. The only solution suggested in the bellow threads is to circumvent the issue by connecting one of the Jetson’s USB ports to a USB to serial adapter to provide a serial interface a side from the one on the 40pin header. Although this is not ideal to me as I have limited use of USB ports on my board.
Hopefully with the additional information here we may get a step closer to finding the problem.