MAVLink communication issues (TX2 + J120 Carrier)

Hi all, apologies if this doesn’t belong here but I’m not sure where else to put it since the source of the issue is eluding me. I’m new to this whole ecosystem so maybe I’m missing something stupid. Essentially, here’s what’s going on:

  1. I have an OcPoc flight control unit (similar to Pixhawk) running Capter 3.5 and communicating with a RaspberryPi3 via MAVLink at various baudrates with no issues. I can connect from the RasPi to the FCU directly via serial (/dev/serial0) using mavproxy.py to see status as well as run MAVROS to stream data via ROS. All working well.

  2. I also have an NVIDIA TX2 with a Auvidea J120 carrier board which I’ve set up the same way as the RasPi and connect to the FCU, however running mavproxy.py to connect directly via TX2 serial (/dev/ttyTHS1) at various baudrates always gives me output like:

    Connect /dev/ttyTHS1 source_system=255
    Log Directory:
    Telemetry log: mav.tlog
    Waiting for heartbeat from /dev/ttyTHS1
    MAV> online system 1
    STABILIZE> Mode STABILIZE
    STABILIZE> status
    STABILIZE> Counters: Slave:0 MasterIn:[20] FGearOut:0 FGearIn:0 MasterOut:5
    MAV Errors: 17
    None
    17: BAD_DATA {Bad prefix, data:[‘9’]}
    3: HEARTBEAT {type : 2, autopilot : 3, base_mode : 81, custom_mode : 0, system_status : 3, mavlink_version : 3}
    status
    STABILIZE> Counters: Slave:0 MasterIn:[26] FGearOut:0 FGearIn:0 MasterOut:11
    MAV Errors: 17
    None
    17: BAD_DATA {Bad prefix, data:[‘9’]}
    9: HEARTBEAT {type : 2, autopilot : 3, base_mode : 81, custom_mode : 0, system_status : 3, mavlink_version : 3}
    .
    .
    .

I tried using the TX2 dev kit carrier board and connecting via UART and this works fine, so it must be somehow related to the J120 carrier board…

  1. HOWEVER, if I first connect to the FCU via mavproxy.py on the RasPi, then switch the cable to the TX2 and try mavproxy.py again, I can see the status with no issues! The same applies to MAVROS; I can only stream data via ROS if I first set the stream rate using the RasPi, then swap the cables.

Any ideas? I’m clueless here. I don’t understand what connecting to the RasPi first and then swapping to the TX2 is doing in this setup, but that’s the main clue.

Thank you!

UPDATE: I tried flashing JetPack 4.2 on the TX2 as suggested by someone on the NVIDIA forums, and patched it with Auvidea’s kernel patch. Installed ROS melodic, MAVROS and MAVProxy and tested - exact same issue. Can’t use MAVProxy or MAVROS without switching to RasPi first and then back to TX2…

Hi, I’m not getting heart beat with Aetina Carrier board. Any pointers on what could be wrong?