MAVLINK INTERNALS
Understanding the data stream. Message definitions, stream rate optimization, and ELRS bandwidth management.
Core Architecture
MAVLink Routing
ArduPilot does not just consume MAVLink data; it acts as a **Packet Switch** (Router). If you connect a telemetry radio to `SERIAL1` and an OSD to ...
MAVLink Scheduler & Stream Rates
You set `SR1_POSITION` to 50Hz, but your telemetry log shows only 10Hz. Why? The answer lies in the **MAVLink Scheduler**. ArduPilot uses a sophist...
MAVLink Flow Control & Throttling
ArduPilot uses a "Pull-Based" flow control system. Instead of blindly pushing messages into a buffer and hoping for the best, the scheduler explici...
On-Demand Streaming (MAVLink)
Modern Ground Control Stations (like QGroundControl) and custom apps (like MAVLink HUD) don't rely on the static `SRx_` parameters. Instead, they u...
The Parameter Protocol
Downloading parameters is often the slowest part of connecting a Ground Control Station (GCS). ArduPilot manages over 1000 parameters. Dumping them...
The Mission Item Protocol
Uploading a mission (Waypoints) is a critical operation that requires 100% data integrity. Unlike telemetry (where dropping a packet is fine), drop...
MAVLink FTP
MAVLink FTP (File Transfer Protocol) allows a Ground Control Station to interact with the flight controller's onboard filesystem (SD Card or Flash)...
MAVLink2 Signing & Security
Standard MAVLink is unencrypted and unauthenticated. Anyone with a radio on the same frequency can inject commands (e.g., "Disarm"). **MAVLink2 Sig...