# 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>
