From 207607343b6c40bd83415f9de9acfc6d25a12e8e Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Wed, 15 Jul 2026 09:41:14 +1200 Subject: [PATCH] Fix MAVLink 2 overhead byte counts The MAVLink 2 packet has 12 bytes of overhead (a zero-payload packet is 12 bytes), not 14; with signing it is 25 (12 + 13-byte signature), not 27. Also correct the signature row byte range in the serialization table: signature[13] spans (n+12) to (n+24), not (n+25). Fixes #184 --- en/about/faq.md | 2 +- en/guide/serialization.md | 2 +- en/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/en/about/faq.md b/en/about/faq.md index ba459334e..9657dd2d8 100644 --- a/en/about/faq.md +++ b/en/about/faq.md @@ -4,7 +4,7 @@
How efficient is MAVLink?
-
MAVLink is a very efficient protocol. MAVLink 1 has just 8 bytes overhead per packet, including start sign and packet drop detection. MAVLink 2 has just 14 bytes of overhead (27 if signing is used), but is now a much more extensible protocol.
+
MAVLink is a very efficient protocol. MAVLink 1 has just 8 bytes overhead per packet, including start sign and packet drop detection. MAVLink 2 has just 12 bytes of overhead (25 if signing is used), but is now a much more extensible protocol.
How many vehicles does MAVLink support?
255 vehicles, with system IDs ranging from 1 to 255 (0 is not a valid vehicle ID). diff --git a/en/guide/serialization.md b/en/guide/serialization.md index 23f0867e2..65cb0a9ee 100644 --- a/en/guide/serialization.md +++ b/en/guide/serialization.md @@ -32,7 +32,7 @@ Below is the over-the-wire format for a [MAVLink 2](../guide/mavlink_2.md) packe | 7 to 9 | `uint32_t msgid:24` | Message ID (low, middle, high bytes) | 0 - 16777215 | ID of _message type_ in payload. Used to decode data back into message object. | | For _n_-byte payload:
`n=0`: NA, `n=1`: 10, `n>=2`: 10 to (9+n) | `uint8_t payload[max 255]` | [Payload](#payload) | | Message data. Depends on message type (i.e. Message ID) and contents. | | (n+10) to (n+11) | `uint16_t checksum` | [Checksum](#checksum) (low byte, high byte) | | CRC-16/MCRF4XX for message (excluding `magic` byte). Includes [CRC_EXTRA](#crc_extra) byte. | -| (n+12) to (n+25) | `uint8_t signature[13]` | [Signature](../guide/message_signing.md) | | (Optional) Signature to ensure the link is tamper-proof. | +| (n+12) to (n+24) | `uint8_t signature[13]` | [Signature](../guide/message_signing.md) | | (Optional) Signature to ensure the link is tamper-proof. | - The minimum packet length is 12 bytes for acknowledgment packets without payload. - The maximum packet length is 280 bytes for a signed message that uses the whole payload. diff --git a/en/index.md b/en/index.md index 9072c48ef..b9bb6638e 100644 --- a/en/index.md +++ b/en/index.md @@ -22,7 +22,7 @@ MAVLink was first released early 2009 by Lorenz Meier and has now a [significant ## Key Features -- Very efficient. MAVLink 1 has just 8 bytes overhead per packet, including start sign and packet drop detection. MAVLink 2 has just 14 bytes of overhead (but is a much more secure and extensible protocol). +- Very efficient. MAVLink 1 has just 8 bytes overhead per packet, including start sign and packet drop detection. MAVLink 2 has just 12 bytes of overhead (but is a much more secure and extensible protocol). Because MAVLink doesn't require any additional framing it is very well suited for applications with very limited communication bandwidth. - Very reliable. MAVLink has been used since 2009 to communicate between many different vehicles, ground stations (and other nodes) over varied and challenging communication channels (high latency/noise). It provides methods for detecting packet drops, corruption, and for packet authentication. - [Many different programming languages](#supported_languages) can be used, running on numerous microcontrollers/operating systems (including ARM7, ATMega, dsPic, STM32 and Windows, Linux, MacOS, Android and iOS).