Skip to content

Hardware Protocol Specification: MAVLink v1

Version: 1.0
Physical Layer: 115200 bps, 8N1.0
Framing: binary
Integrity Algorithm: custom

📄 AsyncAPI Artifacts: Download AsyncAPI 2.6.0 YAML | View Interactive AsyncAPI HTML Docs

Description

Drone/autopilot telemetry protocol. Header fields (seq/sysid/compid/msgid) sit between the length field and the region LEN actually counts.

Command Catalog & Message Signatures

Category: TELEMETRY/HEARTBEAT

HEARTBEAT (Command ID: 0x00) - Message ID 0. System status heartbeat broadcast by vehicle or ground station.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
customMode uint32 - - -
vehicleType uint8 - - -
autopilot uint8 - - -
baseMode uint8 - - -
systemStatus uint8 - - -
mavlinkVersion uint8 - - -

Category: DASHBOARD

HEARTBEAT (Command ID: 0x00) - Message ID 0. System status heartbeat broadcast by vehicle or ground station.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
customMode uint32 - - -
vehicleType uint8 - - -
autopilot uint8 - - -
baseMode uint8 - - -
systemStatus uint8 - - -
mavlinkVersion uint8 - - -

SYS_STATUS (Command ID: 0x01) - Message ID 1. System status, battery voltage, current draw, and sensor health.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
onboardSensorsPresent uint32 - - -
onboardSensorsEnabled uint32 - - -
onboardSensorsHealth uint32 - - -
load uint16 - - -
voltageBattery uint16 - - -
currentBattery int16 - - -
batteryRemaining int8 - - -

Category: TELEMETRY/STATUS

SYS_STATUS (Command ID: 0x01) - Message ID 1. System status, battery voltage, current draw, and sensor health.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
onboardSensorsPresent uint32 - - -
onboardSensorsEnabled uint32 - - -
onboardSensorsHealth uint32 - - -
load uint16 - - -
voltageBattery uint16 - - -
currentBattery int16 - - -
batteryRemaining int8 - - -

Category: TELEMETRY/GPS

GPS_RAW_INT (Command ID: 0x18) - Message ID 24. Raw GPS location and satellite fix data.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
timeUsec uint64 - - -
fixType uint8 - - -
lat int32 - - -
lon int32 - - -
alt int32 - - -
eph uint16 - - -
epv uint16 - - -
vel uint16 - - -
cog uint16 - - -
satellitesVisible uint8 - - -

Category: SENSOR

GPS_RAW_INT (Command ID: 0x18) - Message ID 24. Raw GPS location and satellite fix data.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
timeUsec uint64 - - -
fixType uint8 - - -
lat int32 - - -
lon int32 - - -
alt int32 - - -
eph uint16 - - -
epv uint16 - - -
vel uint16 - - -
cog uint16 - - -
satellitesVisible uint8 - - -

Category: TELEMETRY/ATTITUDE

ATTITUDE (Command ID: 0x1E) - Message ID 30. Vehicle roll, pitch, and yaw angles and angular velocity.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
timeBootMs uint32 - - -
roll float32 - - -
pitch float32 - - -
yaw float32 - - -
rollspeed float32 - - -
pitchspeed float32 - - -
yawspeed float32 - - -

Category: COMMAND/ACTION

COMMAND_LONG (Command ID: 0x4C) - Message ID 76. Generic command dispatch to vehicle autopilot.

Parameter Type Unit Range / Constraints Options
seq uint8 - - -
sysId uint8 - - -
compId uint8 - - -
msgId uint8 - - -
targetSystem uint8 - - -
targetComponent uint8 - - -
command uint16 - - -
confirmation uint8 - - -
param1 float32 - - -
param2 float32 - - -
param3 float32 - - -
param4 float32 - - -
param5 float32 - - -
param6 float32 - - -
param7 float32 - - -

Formal AsyncAPI 2.6.0 Specification

asyncapi: 2.6.0
info:
  title: MAVLink v1
  version: '1.0'
  description: Drone/autopilot telemetry protocol. Header fields (seq/sysid/compid/msgid)
    sit between the length field and the region LEN actually counts.
servers:
  serial_link:
    url: serial://tty/115200
    protocol: serial
    description: Physical UART Transport (115200 bps, 8N1.0)
    bindings:
      serial:
        baudRate: 115200
        dataBits: 8
        parity: none
        stopBits: 1.0
        framingType: binary
        integrity: custom
channels:
  omniuart/cmd/HEARTBEAT:
    publish:
      summary: 'Send command HEARTBEAT (ID: 0x00)'
      description: Message ID 0. System status heartbeat broadcast by vehicle or ground
        station.
      message:
        name: HEARTBEAT_Message
        title: HEARTBEAT Command
        payload:
          $ref: '#/components/schemas/HEARTBEAT_Request'
  omniuart/cmd/SYS_STATUS:
    publish:
      summary: 'Send command SYS_STATUS (ID: 0x01)'
      description: Message ID 1. System status, battery voltage, current draw, and
        sensor health.
      message:
        name: SYS_STATUS_Message
        title: SYS_STATUS Command
        payload:
          $ref: '#/components/schemas/SYS_STATUS_Request'
  omniuart/cmd/GPS_RAW_INT:
    publish:
      summary: 'Send command GPS_RAW_INT (ID: 0x18)'
      description: Message ID 24. Raw GPS location and satellite fix data.
      message:
        name: GPS_RAW_INT_Message
        title: GPS_RAW_INT Command
        payload:
          $ref: '#/components/schemas/GPS_RAW_INT_Request'
  omniuart/cmd/ATTITUDE:
    publish:
      summary: 'Send command ATTITUDE (ID: 0x1E)'
      description: Message ID 30. Vehicle roll, pitch, and yaw angles and angular
        velocity.
      message:
        name: ATTITUDE_Message
        title: ATTITUDE Command
        payload:
          $ref: '#/components/schemas/ATTITUDE_Request'
  omniuart/cmd/COMMAND_LONG:
    publish:
      summary: 'Send command COMMAND_LONG (ID: 0x4C)'
      description: Message ID 76. Generic command dispatch to vehicle autopilot.
      message:
        name: COMMAND_LONG_Message
        title: COMMAND_LONG Command
        payload:
          $ref: '#/components/schemas/COMMAND_LONG_Request'
components:
  messages: {}
  schemas:
    HEARTBEAT_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 0
          description: Opcode ID for HEARTBEAT
        seq:
          type: integer
        sysId:
          type: integer
        compId:
          type: integer
        msgId:
          type: integer
          default: 0
        customMode:
          type: integer
        vehicleType:
          type: integer
        autopilot:
          type: integer
        baseMode:
          type: integer
        systemStatus:
          type: integer
        mavlinkVersion:
          type: integer
      description: Message ID 0. System status heartbeat broadcast by vehicle or ground
        station.
    SYS_STATUS_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 1
          description: Opcode ID for SYS_STATUS
        seq:
          type: integer
        sysId:
          type: integer
        compId:
          type: integer
        msgId:
          type: integer
          default: 1
        onboardSensorsPresent:
          type: integer
        onboardSensorsEnabled:
          type: integer
        onboardSensorsHealth:
          type: integer
        load:
          type: integer
        voltageBattery:
          type: integer
        currentBattery:
          type: integer
        batteryRemaining:
          type: integer
      description: Message ID 1. System status, battery voltage, current draw, and
        sensor health.
    GPS_RAW_INT_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 24
          description: Opcode ID for GPS_RAW_INT
        seq:
          type: integer
        sysId:
          type: integer
        compId:
          type: integer
        msgId:
          type: integer
          default: 24
        timeUsec:
          type: integer
        fixType:
          type: integer
        lat:
          type: integer
        lon:
          type: integer
        alt:
          type: integer
        eph:
          type: integer
        epv:
          type: integer
        vel:
          type: integer
        cog:
          type: integer
        satellitesVisible:
          type: integer
      description: Message ID 24. Raw GPS location and satellite fix data.
    ATTITUDE_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 30
          description: Opcode ID for ATTITUDE
        seq:
          type: integer
        sysId:
          type: integer
        compId:
          type: integer
        msgId:
          type: integer
          default: 30
        timeBootMs:
          type: integer
        roll:
          type: number
        pitch:
          type: number
        yaw:
          type: number
        rollspeed:
          type: number
        pitchspeed:
          type: number
        yawspeed:
          type: number
      description: Message ID 30. Vehicle roll, pitch, and yaw angles and angular
        velocity.
    COMMAND_LONG_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 76
          description: Opcode ID for COMMAND_LONG
        seq:
          type: integer
        sysId:
          type: integer
        compId:
          type: integer
        msgId:
          type: integer
          default: 76
        targetSystem:
          type: integer
        targetComponent:
          type: integer
        command:
          type: integer
        confirmation:
          type: integer
        param1:
          type: number
        param2:
          type: number
        param3:
          type: number
        param4:
          type: number
        param5:
          type: number
        param6:
          type: number
        param7:
          type: number
      description: Message ID 76. Generic command dispatch to vehicle autopilot.