# BlueBoat Navigator - Jetson UART Connection

**URL:** https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196
**Category:** General Discussion
**Tags:** pymavlink, blueboat, ardupilot
**Created:** [July 31, 2025, 2:24pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196 "2025-07-31T14:24:35Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [July 31, 2025, 2:24pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/1 "2025-07-31T14:24:35Z")

</div>

I’m trying to establish a serial connection between the navigator flight computer and a Jetson to send control messages to the autopilot. I’ve gotten one-way communication working both with a local python script that forwards messages using pyserial, as well as by configuring a MAVLink-Server endpoint. However in both cases, while the Jetson can read the mavlink messages, its commands back are not acknowledged.

I’ve recently tried to configure a MAVLinkRouter serial endpoint but it fails to create with the error AUTOPILOT\_ENDPOINT\_CREATE\_FAIL.

Is there any documentation or are there previous posts I’ve missed about these errors? Would appreciate any help!

 ![image](https://us1.discourse-cdn.com/flex019/uploads/bluerobotics/original/2X/d/d6d95cedf6cdae8cfbcab2c193942dd6ed52bfa0.png)

---

<div class="post-metadata">

### Author: ![tony-white](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/tony-white/32/13297_2.png) [@tony-white](https://discuss.bluerobotics.com/u/tony-white)
#### Post date: [July 31, 2025, 4:36pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/2 "2025-07-31T16:36:31Z")

</div>

Hi @teighin

Welcome to the forums!

I’s important to note, the Navigator is not a “flight computer” but merely a host PCB for the sensors required by an autopilot. Can I assume you’re trying to create a communications link between a Raspberry Pi + Navigator and a Jetson?

You may have better luck making this connection via ethernet / TCP/IP, adding a UDP Client [endpoint](https://blueos.cloud/docs/latest/usage/advanced/#mavlink-endpoints) pointed at the Jetson IP address?

Can you share what device /ttyS0 is? That doesn’t look like a serial port of the Navigator or a USB adapter…

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [July 31, 2025, 4:53pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/3 "2025-07-31T16:53:05Z")

</div>

Hi Tony, thanks for the quick reply!

Yes, I’m using the stock BlueBoat configuration of Raspberry Pi + Navigator and want to connect this to a Jetson over serial for control. I’m using the navigator’s serial 1 port (/dev/ttyS0 per the [technical details](https://bluerobotics.com/store/comm-control-power/control/navigator/)) with a JST-GH adapted to the UART pins of the Jetson. I know this will introduce some latency regardless but am trying to minimize this with a serial connection.

An ethernet connection is not preferred as the Pi’s port is in use for the onboard router. I’ve tested running the communication to the Jetson over the onboard network with an endpoint to its address but am having issues with the reliability of the connection.

Serial would be perfect if I can figure out why I can’t send commands back. It’s weird to me that I can establish the connection and read the data on the Jetson with a MAVLink-Server endpoint but that my messages don’t get back to the autopilot.

On the Jetson’s end, the connection looks like this:

```auto
if host == 'uart':
    self.master = mavutil.mavlink_connection('/dev/ttyTHS1', baud=115200)
elif host == 'network':
    self.master = mavutil.mavlink_connection('udp:0.0.0.0:14551')

```

/dev/ttyTHS1 is the uart address on the Jetson. All my control works perfectly when connected over network, but commands don’t make their way back when connected with uart.

Let me know if this makes sense and if I can provide any more information. Thanks for your help!

---

<div class="post-metadata">

### Author: ![tony-white](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/tony-white/32/13297_2.png) [@tony-white](https://discuss.bluerobotics.com/u/tony-white)
#### Post date: [July 31, 2025, 5:03pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/4 "2025-07-31T17:03:14Z")

</div>

Hi @teighin -

Do you have an ethernet switch in the BlueBoat? This would put the Pi on the same network as the Jetson, and allow for much faster communications speeds…what has been unreliable about this approach?

It may be. worth trying Serial 3 or Serial 4 on the Navigator, Serial 1 is shared with other resources.

I’m not sure we’ve done much testing with serial links like this… I’ll enquire internally and let you know!

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [July 31, 2025, 6:34pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/5 "2025-07-31T18:34:57Z")

</div>

Hi Tony,

No our BlueBoat doesn’t have the ethernet switch. I misspoke earlier, I previously had the Jetson connected wirelessly (not with ethernet) to the boat’s network, and I believe the connection was bottlenecked by the amount of mavlink messages. I’m sshing into the Jetson through the BlueBoat network and this froze when the boat was \>~5m away. The connection between the Jetson and the boat itself may have been ok (can’t confirm) but I need to maintain that ssh connection.

The ethernet switch seems like a good solution but I’d really like to try everything I can with serial first.

I’ve just retested serial 1, 3, and 4 and have the same issues - reading data on the Jetson but can’t send anything back.

---

<div class="post-metadata">

### Author: ![tony-white](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/tony-white/32/13297_2.png) [@tony-white](https://discuss.bluerobotics.com/u/tony-white)
#### Post date: [July 31, 2025, 7:29pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/6 "2025-07-31T19:29:42Z")

</div>

Hi @teighin -

The BlueBoat does not make a WiFi network, unless you’re talking about the hotspot that BlueOS on the Pi makes? This is not going to reach very far as you’ve found - you should be reaching BlueOS via the BaseStation and Mikrotik WiFi connection.

Getting an [Ethernet switch](https://bluerobotics.com/store/comm-control-power/tether-interface/ethswitch/) is definitely the preferred solution if you want to SSH into the Jetson over the long range radio link! It would also let you handle far more bandwidth between units than the serial connection provides.

That said, you’re actually not setting up the Serial connection in the correct way… the MAvlink Endpoints are for connecting BlueOS to external control clients or autopilot hardware via serial. For a serial connection to the autopilot itself, delete any serial route you may have added and simply adjust the following Autopilot Parameters:  
Serial#\_Protocol= Mavlink  
Serial#\_Baud = 115200 (higher is better for short distances and more bandwidth!)

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [July 31, 2025, 8:08pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/7 "2025-07-31T20:08:59Z")

</div>

Hi Tony,

Most of the serial ports were already to set to MAVLink2 - is this correct? I configured serial 3 like this but didn’t have any success. Don’t get a heartbeat or any messages.

 ![image](https://us1.discourse-cdn.com/flex019/uploads/bluerobotics/original/2X/d/d0fcc2ab73018f1c2019009068b0ad2491ae6382.png)

Is there anything I need to change on the other end or should I be able to connect in pymavlink on the Jetson like I documented above?

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [July 31, 2025, 9:20pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/8 "2025-07-31T21:20:02Z")

</div>

I forgot that I had removed some serial ports from the autopilot when I was testing some manual communication. After adding the ports back to the autopilot I’m now receiving messages again but still cannot send anything back.

---

<div class="post-metadata">

### Author: ![tony-white](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/tony-white/32/13297_2.png) [@tony-white](https://discuss.bluerobotics.com/u/tony-white)
#### Post date: [July 31, 2025, 9:23pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/9 "2025-07-31T21:23:17Z")

</div>

Hi @teighin -

Can you share the code that sends messages? You’re likely not addressing the correct device ID or generally have something that makes the autopilot ignore your message…

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [July 31, 2025, 9:33pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/10 "2025-07-31T21:33:10Z")

</div>

Hi Tony,

Definitely, here’s an example of writing the mode.

```auto
#state machine callback
def state_callback(self, msg: String):
    mode = msg.data; self.current_mode = mode
    self.get_logger().info(f'Mode: {mode}')
    mode_id = self.master.mode_mapping().get(mode)
    if mode_id is not None:
        self.master.mav.set_mode_send(
            self.master.target_system,
            mavutil.mavlink.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED,
            mode_id
        )

        self.get_logger().info(f'Sent mode ID {mode_id}: {mode}')
    else:
        self.get_logger().warn(f'Unknown mode: {mode}')         

```

This action works perfectly when I connect to mavlink over the network (self.master = mavutil.mavlink\_connection(‘udp:0.0.0.0:14551’)) but doesn’t work when I connect over serial (self.master = mavutil.mavlink\_connection(‘/dev/ttyTHS1’, baud=115200)).

Are you thinking that the target\_system is wrong?

I’ve tested the Jetson’s ability to write independently both with a loopback test by shorting RX/TX and by monitoring the output with an Arduino.

---

<div class="post-metadata">

### Author: ![williangalvani](https://avatars.discourse-cdn.com/v4/letter/w/6f9a4e/32.png) [@williangalvani](https://discuss.bluerobotics.com/u/williangalvani)
#### Post date: [August 1, 2025, 4:47pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/11 "2025-08-01T16:47:11Z")

</div>

Hi @teighin

for further debugging, you can:

- stop the autopilot process, and then use `screen /dev/tty<S0|AMA1|AMA2..> <baudrate>` or any other serial monitor to talk to the board on the other side, just to validate the serial communication itself, with no mavlink
- `stty -F /dev/tty<PORT>` will tell you if the port in use is using the correct baudrate
- `fuser /dev/tty<PORT>` will show you if any other process took the port over

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [August 1, 2025, 7:38pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/12 "2025-08-01T19:38:03Z")

</div>

Hi @williangalvani,

Thanks for your message. After disabling the autopilot I tried testing communication through terminal. I first tested sending messages from the BlueBoat to the Jetson. On the BlueBoat I would send a message with “echo “test” \> /dev/ttyAMA1” and read it on the Jetson with “screen /dev/ttyTHS1”. I made sure they had the same baud rate first. This worked great but as soon as I swapped roles I didn’t see anything in the BlueBoat’s terminal. I checked serial 3 and 4. I also checked that no other processes were using the port.

I also retested the Jetson’s tx pin by reading messages directly with an Arduino which worked.

---

<div class="post-metadata">

### Author: ![teighin](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@teighin](https://discuss.bluerobotics.com/u/teighin)
#### Post date: [August 11, 2025, 4:29pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/13 "2025-08-11T16:29:18Z")

</div>

Hi @williangalvani, @tony-white,

Just wanted to follow up and see if you have further thoughts about debugging this? Is it possible the Navigator is damaged?

Thanks!

---

<div class="post-metadata">

### Author: ![tony-white](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/tony-white/32/13297_2.png) [@tony-white](https://discuss.bluerobotics.com/u/tony-white)
#### Post date: [August 14, 2025, 6:59pm UTC](https://discuss.bluerobotics.com/t/blueboat-navigator-jetson-uart-connection/21196/14 "2025-08-14T18:59:55Z")

</div>

Hi @teighin -

To clarify -

The connection from BlueOS to Jetson is working, but you don’t see serial data coming from the Jetson to BlueOS?

How are you opening the serial port in BlueOS to monitor it? Have you checked with

`stty -F /dev/tty<PORT>`

that the port is open at the correct baud rate, after opening? Or the other command Willian mentioned,

`fuser /dev/tty<PORT>`

to verify that no other process interfering?

What model Jetson are you using? Some only use 1.8V TTL logic levels, which would not be high enough for the Raspberry Pi to receive….

Finally, a true loop-back test, with a wire from tx to rx may be a better check than using an Arduino?
