Pixhawk 6x not talking to Mission computer via RS485

Hello.
I am trying to get my Jetson Nano (JN) to communicate with my Pixhawk 6x(PH) by three wire RS485 to TELEM2. I am using MavSDK on my JN to interface with the PX4 autopilot.

I setup the PH in QGoundcontrol (QGC) just like the PX4 users guide showed
MAV_1_CONFIG = TELEM2
MAV_1_FLOW_CTRL=Auto-detected
MAV_1_FORWARD= Disabled
MAV_1_MODE = Onboard
MAV_1_RADIO_CTL= Enabled
MAV_1_RATE = 0 B/s
SER_TEL2_BAUD = 921600

On the JN I can run mavsdk_server, using ./mavsdk_server -p 50051 serial:///dev/ttyTHS:921600. In the JN terminal window I see MAVSDK start, but I do not see any response from the PH.

I see that the heartbeat times out and MAVSDK looks like it is trying to debug.

On the PH I see that the ACT light is flashing blue while the B/E light is blinking amber, PWR light is a steady green.

The Pixhawk doesn’t seem to be sending out anything on TELEM2 and I am at a loss for why. I am hoping someone can give me a little guidance on what steps I can take next to get the JN and the PH talking.

Thank you.

This looks like some garbage data is coming in. There should not be more than one system with ID 1. What else is connected and sending stuff?

Hello @JulianOes,

Nothing else is connected between the JN and the PH. My JN GPIO pins, 8,9,10, are directly connected to the PH TELEM2 port by a three wire cable. I am used three female GPIO jumper wires lap soldered to a pigtail JST GH 1.25mm connector to create my cable. All the lap solder joints are covered in heatshrink.

I scoped out TELEM2 on the PH and found the Tx and Rx lines being held high which is the idle state. Is this what it should be doing while active? I thought I would at least see a heartbeat.

Tomorrow I am going to scope/Network Analyze the JN side when I run ./mavsdk_server -p 50051 serial:///dev/ttyTHS:921600 in the terminal. Do you know what I should see when Mavsdk_server is run? Does it actively try to connect with the PH?

I have done a little research and I’ve discovered that JN has a nvgetty.service that can cause some issues with the UART. Could this be what is sending garbage into my serial line?

Thank you!

It is recommended to start from this place

MAVSDK C++ QuickStart

https://mavsdk.mavlink.io/main/en/cpp/quickstart.html

MAVSDK Python QuickStart

https://mavsdk.mavlink.io/main/en/python/quickstart.html

Is this with Auterion OS by any chance? According to this thread on Discord the ODID service on Auterion OS sends incorrect heartbeats.

Hi @terrymao886
I did start there when I installed MavSDK-python, but rather than use one of the opensource SIL’s I am using Matlab. I have the SIL for Matlab all setup I just need the JN to connect/communicate to the PH via MavSDK-python.

Hi @JulianOes,
No, I am using a Jetson Nano 4GB Dev Kit running Ubuntu 18.04 Bionic Beaver with Jetpack 4.6.4 installed. I am running Python 3.11, DepthAI-python, and MavSDK-python in a virtual enviroment.

I hooked my JN up to a Oscope yesterday and captured what the serial port does when mavsdk_server is inactive/active.

When mavsdk_server is inactive (not running)
Tx is held high at 3.3V, which I believe is idle.
Rx is held low at 0V

When mavsdk_server is active ( running)
Tx is active with transitions clearly seen
Rx is held high at 3.3V, which I believe is idle

The active Tx line under the scope looks like this


The smaller transition later in the 2nd reading only appears half as periodically as the larger one.

Does this look right?

Thank You,

Hi,kadyx

There are sample programs for MAVSDK_Python here. You can use these sample programs to verify your environment.