AeroCoder Logo

Messages and Commands

Common message set overview

What common.xml defines, how dialects extend it, and the role of message IDs.

MAVLink messages are defined in XML files called dialects. The core set lives in common.xml and is implemented by most autopilots (PX4, ArduPilot) and ground stations (QGroundControl, Mission Planner).

Each message has a numeric ID, a name, and a list of typed fields. Autopilot-specific dialects (e.g. ardupilotmega.xml) inherit from common.xml and add vendor extensions. The standard.xml and minimal.xml dialects define progressively smaller subsets.

xml

<!-- Example message definition in common.xml -->
<message id="0" name="HEARTBEAT">
  <field type="uint8_t" name="type">Vehicle type (MAV_TYPE)</field>
  <field type="uint8_t" name="autopilot">Autopilot type</field>
  <field type="uint8_t" name="base_mode">System mode bitmap</field>
  <field type="uint32_t" name="custom_mode">Autopilot-specific mode</field>
  <field type="uint8_t" name="system_status">System status</field>
  <field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version</field>
</message>

Dialect hierarchy

minimal.xml (heartbeat only) → standard.xml (small common subset) → common.xml (full reference) → ardupilotmega.xml / other vendor dialects. Always target common.xml unless you need vendor-specific messages.

← Previous

Packet anatomy

Next →

Heartbeat and connection management

Edit this page on mavlink.io ↗

On This Page

Dialect hierarchy

© 2024 AeroCoder. All rights reserved

TwitterYouTubeInstagram