# MAVLink

[MAVLink](https://mavlink.io/en/about/overview.html) is a standardized protocol used frequently with drones. It works with many different flight controllers, programming languages, and links. Visit the mavlink docs for more info about how it works.

We also use a program called mavproxy that implements the mavlink protocol and includes lots of important features to make mav usable. The docs for mavproxy can be found [here](https://deepwiki.com/ArduPilot/MAVProxy).

Below is a diagram of a proposed mavlink system. The below setup is how we setup our drones for testing at Theseus.

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

Theseus provides two ways to connect to your system over mavlink:

1. Connect to the edge device (for debug)
   1. Devices running Theseus software route mav packets through mavproxy
   2. Mavproxy has an open tcp output connection (1) that you can connect to
   3. Mavproxy on the edge device lists the flight controller (4) as the one and only master
      1. Cyclops/mvps (3) and the external mav connection (1) are listed as outputs
      2. Mav packets are only routed from an output to a master, or a master to all outputs
      3. You will not be able to see mav packets from the edge device, or send mav packets to the edge device if you connect over this link
   4. It exists solely as a pass through to allow you to connect to your flight controller through the edge device (mainly for convenience)
2. Direct connect to the flight controller
   1. Use this connection method for flying
   2. If using ardupilot, status text messages will be routed from the edge device to your ground station

### Connecting with Vozilla

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

Use this dropdown menu in the top right corner of Vozilla to select a connection profile. However you connect to your flight controller normally is what you should use. You can also add output ports so you can connect on other applications like mission planner simultaneously.

### Other MAVLink info

mvps mavlink info

{% content-ref url="/pages/N1GmS41CBG7VyFgmIkDt" %}
[MAVLink](/micro-vps/autopilot-integration/mavlink.md)
{% endcontent-ref %}

cyclops mavlink info

{% content-ref url="/pages/9QMyFIrShlxm3bbAbiKb" %}
[MAVLink](/cyclops/autopilot-integration/mavlink.md)
{% endcontent-ref %}

vozilla (<2.0) mavlink page

{% content-ref url="/pages/OZzHzPKCdfyGrhjSmHo3" %}
[MAVLink](/gcs-software/vozilla-gcs/mavlink.md)
{% endcontent-ref %}


---

# 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.theseus.us/gcs-software/mavlink.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.
