> For the complete documentation index, see [llms.txt](https://docs.theseus.us/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot/mavlink.md).

# MAVLink

Cyclops uses MAVLink2 protocol for two-way communication with the flight controller. This requires a bidirectional link between the edge device and the flight controller to send position estimates and receive sensor measurements. Below is a complete list of MAV messages Cyclops uses.

{% hint style="info" %}
If your flight controller does not support these message types or is limited to one-way communication over MAVLink, contact the Theseus team for help integrating on your system.
{% endhint %}

## Messages from Cyclops

We send a number of packets

* [STATUSTEXT (253)](https://mavlink.io/en/messages/common.html#STATUSTEXT)
* [MAV\_CMD\_USER\_2 (31011)](https://mavlink.io/en/messages/common.html#MAV_CMD_USER_2)
  * crosstrack start command
* [SYSTEM\_TIME (2)](https://mavlink.io/en/messages/common.html#SYSTEM_TIME)
* [TIMESYNC (111)](https://mavlink.io/en/messages/common.html#TIMESYNC)
* [MAV\_CMD\_EXTERNAL\_POSITION\_ESTIMATE (43003)](https://mavlink.io/en/messages/common.html#MAV_CMD_EXTERNAL_POSITION_ESTIMATE) (Cyclops v1.x.x)
* [GPS\_INPUT (232)](https://mavlink.io/en/messages/common.html#GPS_INPUT) (Cyclops v2.x.x)

## Messages to Cyclops

* [LOCAL\_POSITION\_NED (32)](https://mavlink.io/en/messages/common.html#LOCAL_POSITION_NED)
* [ATTITUDE\_QUATERNION (31)](https://mavlink.io/en/messages/common.html#ATTITUDE_QUATERNION)
* [GPS\_RAW\_INT (24)](https://mavlink.io/en/messages/common.html#GPS_RAW_INT) (for testing purposes)
* [NAV\_CONTROLLER\_OUTPUT (62)](https://mavlink.io/en/messages/common.html#NAV_CONTROLLER_OUTPUT)
* [VFR\_HUD (74)](https://mavlink.io/en/messages/common.html#VFR_HUD)
* [SYSTEM\_TIME (2)](https://mavlink.io/en/messages/common.html#SYSTEM_TIME)
* [TIMESYNC (111)](https://mavlink.io/en/messages/common.html#TIMESYNC)
* [EXTENDED\_SYS\_STATE (245)](https://mavlink.io/en/messages/common.html#EXTENDED_SYS_STATE)
* [SCALED\_PRESSURE (29)](https://mavlink.io/en/messages/common.html#SCALED_PRESSURE) (for AP 4.5)
* [SCALED\_IMU (26)](https://mavlink.io/en/messages/common.html#SCALED_IMU) (for AP 4.5)
* [HIGHRES\_IMU (105)](https://mavlink.io/en/messages/common.html#HIGHRES_IMU) (for AP 4.6+)

## System ID (sysid)

Connecting multiple systems over MAVLink requires a different sysid for each flight controller. The default sysid is 1, so Cyclops automatically looks to connect with sysid 1. If your flight controller has a different sysid, Cyclops will report no MAV heartbeat.

To configure Cyclops to connect with a flight controller on another sysid, edit the MAV configuration in Vozilla under *Settings>MAV.*
