# Mavlink Routing and Endpoints

AuterionOS uses mavlink router and the [MAVLink protocol](https://mavlink.io) in order to connect any software components with the flight controller. You can connect your own applications to mavlink router using the UDP protocol and one of the following ports:

<table><thead><tr><th width="200">Network Interface</th><th width="126">Listening IP Address</th><th width="90">Port</th><th width="114">Transport Protocol</th><th>Purpose</th></tr></thead><tbody><tr><td>localhost</td><td>127.0.0.1</td><td>13550</td><td>UDP</td><td>GCS communication</td></tr><tr><td>localhost</td><td>127.0.0.1</td><td>14561</td><td>UDP</td><td>App 1</td></tr><tr><td>localhost</td><td>127.0.0.1</td><td>14562</td><td>UDP</td><td>App 2</td></tr><tr><td>localhost</td><td>127.0.0.1</td><td>14563</td><td>UDP</td><td>App 3</td></tr></tbody></table>

The three ports are preconfigured mavlink endpoints in AuterionOS that are not used by any official Auterion software component and reserved for custom applications.

{% hint style="warning" %}
Usage of any other ports could damage the system.
{% endhint %}

## **Additional documentation**

* MAVLink: <https://mavlink.io>
* MAVLink Message definitions: <https://mavlink.io/en/messages/common.html>

## **Manual mavlink router configuration**

For advanced setups, the mavlink router configuration can be extended by creating the directory `/etc/mavlink-router/conf.d` on Skynode and then creating one or multiple files in it with the additional endpoint configurations. The content of all files within this directory will be appended to the runtime configuration `/var/run/mavlink.conf` on each boot.

In order to be able to create the directory and files under `/etc/mavlink-router/conf.d`, the root file system needs to be [temporarily mounted with write permission](https://docs.auterion.com/hardware-integration/filesystem-and-partitions#root-filesystem-mount-option). Persistent write permissions are not required on each boot because the runtime configuration in the `/var` partition is always writable.

### External Mavlink Communication to Skynode

<table><thead><tr><th width="200.33333333333331">Network Interface</th><th width="128">Listening IP Address</th><th width="88">Port</th><th width="118.66666666666669">Transport Protocol</th><th>Purpose</th></tr></thead><tbody><tr><td>USB-C on Skynode</td><td>10.41.1.1</td><td>14550</td><td>UDP</td><td>GCS Communication</td></tr></tbody></table>


---

# Agent Instructions: 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:

```
GET https://docs.auterion.com/hardware-integration/auterionos-system-guide/mavlink-endpoints.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
