Skip to content

About

MAVLink Military Messages

Resources

Contributing

Stars

37 stars

Watchers

6 watching

Forks

Repository files navigation

MAVLink-M

Documentation and message reference: https://mavlink-m.dronecode.org/

MAVLink-M is one open interface for military payloads and platforms: a dialect of MAVLink 2 that adds a public message set for safety and arming, targeting and engagement, remote weapon systems, and shared tracks. Platforms and payloads that implement it work together without a custom integration for every pair.

Where the common MAVLink message set covers flying the aircraft, MAVLink-M covers what the platform carries and how it coordinates with others. The messages are shaped so that a platform speaking this dialect can be understood by the wider force, translating cleanly, through a gateway, into the command-and-control message standards those systems already run on.

Scope and boundaries

MAVLink-M is a message-schema dialect. It defines field layouts on top of open MAVLink; it is not an implementation, and it does not describe how any device works internally.

What the dialect deliberately does and does not carry is the core of its design:

  • It carries descriptive intent and observation — what was seen, what is requested, and the current status of a participant. This is the information a cooperating system needs to coordinate.
  • It excludes device-internal configuration — no fuze timing values, no laser codes, no performance or effectiveness data. The messages describe coordination between participants, never the internal programming of a device.
  • Kinetic and non-kinetic intent are separable — observation cueing is a distinct message from action requests, so a consumer can tell "observe this" from "act on this" by message ID alone.
  • Accountability is a record, not a trigger — messages that record a decision or authorization are exactly that: a record for audit and shared awareness, not a command that causes an action.

These boundaries are intentional. They keep the dialect a coordination and telemetry vocabulary that interoperates across systems, and keep the internal programming of any device off the wire.

What's in this repository

File Purpose
military.xml The shared MAVLink-M dialect. Includes common.xml.
military_extensions.xml A template only, showing how a downstream implementor defines private, local messages in the reserved 53900-53999 block without adding them to the shared dialect. Not part of the generated dialect here.
component_metadata/ Shared schema and examples for payload catalogue metadata retrieved through the MAVLink Component Metadata service.
IDMAPPING.md Message-ID allocation for the 53000-53999 range.

Message IDs are allocated as 53000-53099 for the initial shared messages, 53100-53108 for the generic payload messages, 53109-53899 for future shared growth, and 53900-53999 for private/downstream messages. See IDMAPPING.md for the full map.

Using it

The dialect drops into any MAVLink 2 stack. Generate bindings for your language with mavgen, for example:

python3 -m pymavlink.tools.mavgen \
  --lang=C --wire-protocol=2.0 \
  --output=out military.xml

Pre-generated C headers are published to mavlink-military-c_library_v2, regenerated by CI on every change to military.xml on main. This repository and that library make up the project. Only CI publishes to the library, and each commit it makes there names the commit of this repository it comes from and the generator pins; a daily check regenerates the headers and compares them with the library.

For a worked example on real hardware — a flight controller relaying MAVLink-M messages to a peripheral — see nucleo-mavlink-m-demo.

Status and contributing

MAVLink-M is a public draft: message layouts can still change until the standard freezes in November 2026. See the status and roadmap for what that means for implementers. The 53000-53099 allocation is active for this dialect, and message IDs are stable once assigned. The working group discusses proposals on the MAVLink-M mailing list. To propose a new shared message or a change, open a pull request against military.xml; keep additions within the scope and boundaries above. See CONTRIBUTING.md for the commit format, the DCO sign-off, and review expectations.

License

MIT. See LICENSE.

About

MAVLink Military Messages

Resources

Contributing

Stars

37 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors