Jetson nano Arduino UART ttyTHS1

I am trying to communicate between jetson nano and arduino via uart using C++. While the data on USB TTL is very smooth, I am getting strange errors on Arduino. The errors are quite high, but not on USB TTL. I am feeding with 3.3 V in TTL and I only use the 6th leg gnd and the 8th leg tx. because this is a one-way communication exercise. I used logic level converter but it didn’t change much.

Hi ergunerrdogan,

Are you using the devkit or custom board for Jetson Nano?
What’s your Jetpack version in use?

Could you share the block diagram of your connection?

What’s your current issue? Is the UART communication failed? Or you just want to know how to use C++ for UART communication?

Hello sir ,

I am using Jetson nano 4gb developer kit. Let me tell you one by one what I did. First of all, I edited the uart C++ code used for Jetson Nano according to my own code, built it, and then checked the data with USB TLL. The data was exactly as I wanted and there were no problems. The connection diagram between usb-tll and jetson nano is like this.

jetson – usb ttl
3.3v → 3.3v
gnd → gnd
jetson tx( → ttl rx

Then, when I tried this code with Arduino, I got errors many times. Yes, there is data flow, but this flow is very faulty. Here I tried a few combinations.

combination 1
jetson nano — arduino
gnd – gnd
jetson tx( – arduino rx(

combination 2
jetson nano — arduino
gnd – gnd
jetson tx( – arduino rx(
3.3v – 3.3v

combination 3
jetson nano — arduino
gnd – gnd
jetson tx( – arduino rx(
5v – 5v

Then I decoded with the oscilloscope and saw that the data coming from Jetson was correct. For this reason, I decided that there was a voltage incompatibility. Because I couldn’t use 5v while watching via USB TTL. Then I bought a logic level shifter and made a connection like this:

jetson logic level shifter arduino
tx – lw1 hw1 — rx
gnd – gnd gnd — gnd
3.3v – lw hw – 5v

But this did not save enough. My theory is that I either need to buy a better quality shifter, if this method is correct, or there is a mistake in my Arduino code, but it is not a very difficult code. here is my arduino code

void setup() {

void loop() {
if (Serial.available() > 0) {
int receivedValue = Serial.parseInt();

if (receivedValue >= 1 && receivedValue <= 7) { 
  Serial.print("receive value: ");
} else {
  Serial.println("! wrong number."); 


It seems you hit the UART data issue after connecting the Arduino.
Can you just connect Jetson Nano TX to Arduino RX, Jetson Nano RX to Arduino TX, just like your combination 1?
and get a scope to check who send/receive the wrong data.

From your result, it seems the data sent from Jetson Nano is expected.
I would also suggest you asking the help from your vendor for the UART usage on Arduino.

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