> For the complete documentation index, see [llms.txt](https://docs.arkelectron.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.arkelectron.com/products/flight-controller/jetson-pabs/ark-jetson-pab-carrier/using-ark-os/autopilot-connections.md).

# Autopilot Connections

There are two communication channels between the Jetson and the flight controller: USB and serial. Both are direct board-to-board connections tested up to 3 Mbps.

| Type   | Jetson device path | Flight Controller |
| ------ | ------------------ | ----------------- |
| USB    | /dev/ttyACM0       | USB               |
| Serial | /dev/ttyTHS1       | Telem2            |

{% hint style="info" %}
We recommend running MAVLink on USB and XRCE-DDS on serial. ARK-OS's defaults do exactly this — see [Services](/software/ark-os/services.md).
{% endhint %}

## USB

The flight controller's USB connection is muxed with the external Micro USB port. While a Micro USB cable is connected, the flight controller is disconnected from the Jetson. After unplugging, reboot the Jetson to restore the connection.

<figure><img src="/files/REbrbEaKCp8WtAz160wa" alt=""><figcaption></figcaption></figure>

For the flight controller's USB to enumerate, its VBUS\_SENSE pin must be driven high by the Jetson. This is set in the Jetson pinmux at boot, so it works out of the box.

## Serial

The serial connection is Jetson UART1 (`/dev/ttyTHS1`) to **Telem2** on the flight controller, tested to 3 Mbps. When running MAVLink on Telem2, set flow control to off: [MAV\_x\_FLOW\_CTRL](https://docs.px4.io/main/en/advanced_config/parameter_reference.html#MAV_1_FLOW_CTRL) = 0.

## Flight Controller Reset

The Jetson can hard-reset the flight controller via a GPIO reset line. The reset is gated by the nARMED signal — the Jetson cannot reset the flight controller while it is armed.

ARK-OS ships two reset helpers on `PATH`:

```bash
reset_fmu_fast.py       # reset and boot straight into the application
reset_fmu_wait_bl.py    # reset and wait in the bootloader (for firmware flashing)
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.arkelectron.com/products/flight-controller/jetson-pabs/ark-jetson-pab-carrier/using-ark-os/autopilot-connections.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
