Trouble sending data from Jetson nano to arduino using uart

Hello,

I’m trying to use UART to send and receive data from a Jetson Nano 2GB to an Arduino Micro using the pins 8 and 10 (TX/RX) of the Jetson.
I’ve followed the instruction detailed here : Jetson Nano - UART - JetsonHacks.
I can send data from the Arduino to the Jetson but not the other way around.

When I use an oscilloscope to look at the signal sent by the Jetson on pin8, I have this even when my program is not running and my arduino is disconnected :
DS0010.BMP (17.0 KB)

I do not understand where this signal come from.

Is there a way to stop this signal and use the pin 8 to send UART data ?

I don’t know what that is, but did you stop and disable nvgetty.service? If not, then this is still partly functioning as a serial console. Typically:

sudo stop nvgetty.service
sudo disable nvgetty.service

If that does not help, perhaps you have noise combined with a ground issue. Seeing a sine wave is odd.

Thank for your answer.

I’ve tried disabling nvgetty but it didn’t change anything. In the service description it says “UART on ttyTHS0” but I’m trying to use ttyTHS1. Are you sure this is the service to disable ?

Other than that, I’ve tried a few things and I really don’t understand what’s happening :
when I look at the pin8 with an oscilloscope at startup I get a +3.3V signal so that’s fine but as soon as try to send something on the UART I get the sine wave and if unplug/replug the oscilloscope signal I get back my +3.3V. I also tried to do things like echo 1 > /sys/class/gpio/gpio48/value with gpio 48 being the UART TX to just change the value of the signal and I get a sine wave again until I unplug the signal.
I suspected the oscilloscope but I can observe the signal when reading on RX and I tried using an other GPIO (gpio 232/pin16) to simulate an UART using echoes like earlier and I managed to read the value I send on my arduino and observe it on the oscilloscope.

I’ve done all of that on two separate Jetson (same model/same OS) and got the same results.

My conclusion is that the oscilloscope function well and is not the cause of the problem as well as the arduino. The problem can only come from the pin8 but I can’t find what it is.

Any idea ?

If the nvgetty.service is running, then any file showing up from “ls -l /dev/ttyS* /dev/ttyTHS*” and with group “tty” must have nvgetty.service disabled prior to using that port as a non-serial-console. There are changes over time and over platform (and over carrier board) which just makes it easier to test with serial console disabled. When nvgetty.service is enabled, is the group of “/dev/ttyTHS1” “tty”, or is it “dialout”? Anyone can use dialout. I mostly look at this because it could be two programs using the UART at the same time causing odd signals.

In reality, if there is noise such as what your image shows, I have to wonder first if there is a ground issue, and second (less likely) if there is hardware failure.

Almost forgot: Does your scope have balanced input available for two signals displayed as a balanced pair without grounding either signal? If so, is there an increase or decrease or other change when you measure as a balanced pair between each pin and the positive power side of the 3.3V rail?

Hello,

I tried to set the group of ttyTHS1 to tty but I get the same results.
I also tried with other GND but it doesn’t change anything either. I don’t believe it’s a ground problem because I have the expected results using other GPIO for my UART and I observe the same problems on another Jetson.

You don’t want group tty on anything you use. Serial console owns tty and you should not touch that unless it is to disable tty and turn it back to dialout. Your user should be added to additional group dialout, and then it would “just work” so far as permissions go.

Unless there is a hardware issue (which could include power line noise or ground loop noise instead of outright failure), then it should not be possible to see a sine wave there. I can’t rule out hardware failure of the Jetson, but a power supply or anything different in ground for the Jetson and Arduino could do this. What frequency is the sine wave?

I don’t have my notes available, but I will suggest looking closely at ground loop tutorials.

The frequency is about 30MHz

30 MHz isn’t so common since it is an actual sine wave. It is quite curious what the source of that is. Is there any hardware nearby, or sharing the power source, which might involve a 30 MHz sine wave? If you zoom in on the scope, does the sine portion seem “clean” and not distorted? Clean would imply it is not a clock generator (which is more square).

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