skip to content
Posts · June 2026

MAVLink Message Documentation


This page contains a binary-accurate version of MAVLink v2's message set (more specifically, all.xml), including all the extension fields. I've been wanting to make this post for a very long time now (for around 6 months), but I've never really got around to it until now. But... here it is.

If you would prefer to directly jump to the content instead of sitting through all the Context and Background behind this post, jump to HEARTBEAT (0).

The inspiration for this post happened when Benny (go check him out here) and I were working on parsing live/malicious MAVLink packets as part of a research project (AeroShield) with the Stevens MACC Lab (and I guess the US DoD/DoW and our other sponsors) in our automated attack shell.

I'm by no means an expert on this, but for those that have no clue what I'm talking about:

The MAVLink protocol (or if we want to be fancy, the Micro Air Vehicle Link protocol) is one of the most common standards for communicating, interacting with, and issuing commands to drones (UAVs). It's designed as a layer 7 protocol to allow it to work over Serial Links, Wi-Fi, and different network stacks. Image Source.


Here's how a MAVLink v1/v2 packet looks like at a binary level. For the purposes of this post, we're only looking at the Payload field. The Payload fields contain different MAVLink messages that, like we mentioned earlier, are used to communicate between or issue commands to the drones. For example, you have things like:

  • GLOBAL_POSITION_INT - Reports the rough coordinates/location of the drone
  • HEARTBEAT - Periodic heartbeat messages so the Ground Control Station knows the drone didn't explode
  • COMMAND_LONG - Send a command to the drone (such as telling it to shut down in midair and fall to the ground)
Mavlink struct

Unfortunately, the Official MAVLink documentation website is:

  • Very disorganized and decentralized
    • Message types are split among 20 different .xml files and web pages
    • This also applies to the MAVLink Github repository
  • Out of order when compared to the physical layout of the actual MAVLink packets
    • This includes the official .xml files on Github
    • The physical layout of MAVLink bytes you see in transmission follow the Serialization rules for MAVLink. This is hidden away on the website and have a weird way of dealing with MAVLink 2 extensions
  • Missing details compared to what you find in the official .xml files
  • MAVLink documentation outside of the official website is scarce and practically non-existent
    • At least for the public. Maybe one day the powers that be gift me a TS/SCI clearance and I find out otherwise 🤷‍♂️

This means if you're trying to use the MAVLink website (or even the official Github .xml files) to parse MAVLink packets, it's very annoying and unhelpful. I made this page out of spite to hopefully stop people from wasting their weekend trying to go down the rabbit hole.

  • I guess instead of this post, you can technically jump down the rabbit hole of combining all 20+ .xml files, determining the field order for EVERY MAVLink message type using the Serialization Rules (be careful if you're doing this, MAVLink 2 Extension Fields are handled weirdly), and generating your own docs ._.
  • But don't waste your weekend doing this. I kind of did it for you

Additional Resources

If you're curious, here's some resources:

  • MAVLink Schema - A collection of .json and .xml files you can use to manually parse MAVLink payloads yourself without having to rely on some third-party library
    • Be careful about doing this; certain setups will send MAVLink packets as a continuous byte stream
  • MAVLink Markdown Site - Contains code to generate this XML page
  • (To do when AeroShield or Benny open sources aeroSH) - Code used to parse all.xml and properly sort the packets

HEARTBEAT (0)

The heartbeat message shows that a system or component is present and responding. The type and autopilot fields (along with the message component id), allow the receiving system to treat further messages from this system appropriately (e.g. by laying out the user interface based on the autopilot). This microservice is documented at https://mavlink.io/en/services/heartbeat.html

0123456789abcdeftypeautopilotbase_modesystem_status0004mavlink_versioncustom_mode[0:2 ]08custom_mode[3:3 ]
Field NameTypeEnum ValuesDescription
typeuint8_tMAV_TYPEVehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
autopilotuint8_tMAV_AUTOPILOTAutopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
base_modeuint8_tMAV_MODE_FLAGSystem mode bitmap.
system_statusuint8_tMAV_STATESystem status flag.
mavlink_versionuint8_t_mavlink_versionMAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version
custom_modeuint32_tA bitfield for use for autopilot-specific flags

SYS_STATUS (1)

The general system state. If the system is following the MAVLink standard, the system state is mainly defined by three orthogonal states/modes: The system mode, which is either LOCKED (motors shut down and locked), MANUAL (system under RC control), GUIDED (system with autonomous position control, position setpoint controlled manually) or AUTO (system guided by path/waypoint planner). The NAV_MODE defined the current flight state: LIFTOFF (often an open-loop maneuver), LANDING, WAYPOINTS or VECTOR. This represents the internal navigation state machine. The system status shows whether the system is currently active or not and if an emergency occurred. During the CRITICAL and EMERGENCY states the MAV is still considered to be active, but should start emergency procedures autonomously. After a failure occurred it should first move from active to critical to allow manual intervention and then move to emergency after a certain timeout.

0123456789abcdefbattery_remainingload[0:0 ]0002load[1:1 ]voltage_battery[0:0 ]04voltage_battery[1:1 ]current_battery[0:0 ]06current_battery[1:1 ]drop_rate_comm[0:0 ]08drop_rate_comm[1:1 ]errors_comm[0:0 ]0aerrors_comm[1:1 ]errors_count1[0:0 ]0cerrors_count1[1:1 ]errors_count2[0:0 ]0eerrors_count2[1:1 ]errors_count3[0:0 ]10errors_count3[1:1 ]errors_count4[0:0 ]12errors_count4[1:1 ]onboard_control_sensors_present[0:0 ]14onboard_control_sensors_present[1:2 ]16onboard_control_sensors_present[3:3 ]onboard_control_sensors_enabled[0:0 ]18onboard_control_sensors_enabled[1:2 ]1aonboard_control_sensors_enabled[3:3 ]onboard_control_sensors_health[0:0 ]1conboard_control_sensors_health[1:2 ]1eonboard_control_sensors_health[3:3 ]onboard_control_sensors_present_extended[0:0 ]20onboard_control_sensors_present_extended[1:2 ]22onboard_control_sensors_present_extended[3:3 ]onboard_control_sensors_enabled_extended[0:0 ]24onboard_control_sensors_enabled_extended[1:2 ]26onboard_control_sensors_enabled_extended[3:3 ]onboard_control_sensors_health_extended[0:0 ]28onboard_control_sensors_health_extended[1:2 ]2aonboard_control_sensors_health_extended[3:3 ]
Field NameTypeUnitEnum ValuesDescription
battery_remainingint8_t%Battery energy remaining, -1: Battery remaining energy not sent by autopilot
loaduint16_td%Maximum usage in percent of the mainloop time. Values: [0-1000] - should always be below 1000
voltage_batteryuint16_tmVBattery voltage, UINT16_MAX: Voltage not sent by autopilot
current_batteryint16_tcABattery current, -1: Current not sent by autopilot
drop_rate_commuint16_tc%Communication drop rate, (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV)
errors_commuint16_tCommunication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV)
errors_count1uint16_tAutopilot-specific errors
errors_count2uint16_tAutopilot-specific errors
errors_count3uint16_tAutopilot-specific errors
errors_count4uint16_tAutopilot-specific errors
onboard_control_sensors_ presentuint32_tMAV_SYS_STATUS_SENSORBitmap showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present.
onboard_control_sensors_ enableduint32_tMAV_SYS_STATUS_SENSORBitmap showing which onboard controllers and sensors are enabled: Value of 0: not enabled. Value of 1: enabled.
onboard_control_sensors_ healthuint32_tMAV_SYS_STATUS_SENSORBitmap showing which onboard controllers and sensors have an error (or are operational). Value of 0: error. Value of 1: healthy.
onboard_control_sensors_ present_extendeduint32_tMAV_SYS_STATUS_SENSOR_EXTENDEDBitmap showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present.
onboard_control_sensors_ enabled_extendeduint32_tMAV_SYS_STATUS_SENSOR_EXTENDEDBitmap showing which onboard controllers and sensors are enabled: Value of 0: not enabled. Value of 1: enabled.
onboard_control_sensors_ health_extendeduint32_tMAV_SYS_STATUS_SENSOR_EXTENDEDBitmap showing which onboard controllers and sensors have an error (or are operational). Value of 0: error. Value of 1: healthy.

SYSTEM_TIME (2)

The system time is the time of the master clock. This can be emitted by flight controllers, onboard computers, or other components in the MAVLink network. Components that are using a less reliable time source, such as a battery-backed real time clock, can choose to match their system clock to that of a SYSTEM_TYPE that indicates a more recent time. This allows more broadly accurate date stamping of logs, and so on. If precise time synchronization is needed then use TIMESYNC instead.

0123456789abcdeftime_boot_ms0004time_unix_usec[0:3 ]08time_unix_usec[4:7 ]
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
time_unix_usecuint64_tusTimestamp (UNIX epoch time).

PING (4)

A ping message either requesting or responding to a ping. This allows to measure the system latencies, including serial port, radio modem and UDP connections. The ping microservice is documented at https://mavlink.io/en/services/ping.html

0123456789abcdeftarget_systemtarget_componentseq[0:1 ]0004seq[2:3 ]time_usec[0:1 ]08time_usec[2:5 ]0ctime_usec[6:7 ]
Field NameTypeUnitDescription
target_systemuint8_t0: request ping from all receiving systems. If greater than 0: message is a ping response and number is the system id of the requesting system
target_componentuint8_t0: request ping from all receiving components. If greater than 0: message is a ping response and number is the component id of the requesting component.
sequint32_tPING sequence
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

CHANGE_OPERATOR_CONTROL (5)

Request to control this MAV

0123456789abcdeftarget_systemcontrol_requestversionpasskey[0:0 ]0004passkey[1:4 ]08passkey[5:8 ]0cpasskey[9:12 ]10passkey[13:16 ]14passkey[17:20 ]18passkey[21:24 ]
Field NameTypeDescription
target_systemuint8_tSystem the GCS requests control for
control_requestuint8_t0: request control of this MAV, 1: Release control of this MAV
versionuint8_t0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch.
passkeychar[25]Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-"

CHANGE_OPERATOR_CONTROL_ACK (6)

Accept / deny control of this MAV

0123456789abcdefgcs_system_idcontrol_requestack
Field NameTypeDescription
gcs_system_iduint8_tID of the GCS this message
control_requestuint8_t0: request control of this MAV, 1: Release control of this MAV
ackuint8_t0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control

AUTH_KEY (7)

Emit an encrypted signature / key identifying this system. PLEASE NOTE: This protocol has been kept simple, so transmitting the key requires an encrypted channel for true safety.

0123456789abcdefkey[0:3 ]0004key[4:7 ]08key[8:11 ]0ckey[12:15 ]10key[16:19 ]14key[20:23 ]18key[24:27 ]1ckey[28:31 ]
Field NameTypeDescription
keychar[32]key

Status generated in each node in the communication chain and injected into MAVLink stream.

0123456789abcdeftx_bufrx_bufrx_parse_err0004tx_overflowsrx_overflows08tx_rate0crx_rate10messages_sent14messages_received18messages_lost1ctimestamp[0:3 ]20timestamp[4:7 ]
Field NameTypeUnitDescription
tx_bufuint8_t%Remaining free transmit buffer space
rx_bufuint8_t%Remaining free receive buffer space
rx_parse_erruint16_tbytesNumber of bytes that could not be parsed correctly.
tx_overflowsuint16_tbytesTransmit buffer overflows. This number wraps around as it reaches UINT16_MAX
rx_overflowsuint16_tbytesReceive buffer overflows. This number wraps around as it reaches UINT16_MAX
tx_rateuint32_tbytes/sTransmit rate
rx_rateuint32_tbytes/sReceive rate
messages_sentuint32_tMessages sent
messages_receiveduint32_tMessages received (estimated from counting seq)
messages_lostuint32_tMessages lost (estimated from counting seq)
timestampuint64_tmsTimestamp (time since system boot).

SET_MODE (11)

Set the system mode, as defined by enum MAV_MODE. There is no target component id as the mode is by definition for the overall aircraft, not only for one component.

0123456789abcdeftarget_systembase_modecustom_mode[0:1 ]0004custom_mode[2:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tThe system setting the mode
base_modeuint8_tMAV_MODEThe new base mode.
custom_modeuint32_tThe new autopilot-specific mode. This field can be ignored by an autopilot.

PARAM_REQUEST_READ (20)

Request to read the onboard parameter with the param_id string id. Onboard parameters are stored as key[const char*] -> value[float]. This allows to send a parameter to any other component (such as the GCS) without the need of previous knowledge of possible parameter names. Thus the same GCS can store different parameters for different autopilots. See also https://mavlink.io/en/services/parameter.html for a full documentation of QGroundControl and IMU code.

0123456789abcdeftarget_systemtarget_componentparam_id[0:1 ]0004param_id[2:5 ]08param_id[6:9 ]0cparam_id[10:13 ]10param_id[14:15 ]param_index
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
param_idchar[16]Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_indexint16_tParameter index. Send -1 to use the param ID field as identifier (else the param id will be ignored)

PARAM_REQUEST_LIST (21)

Request all parameters of this component. After this request, all parameters are emitted. The parameter microservice is documented at https://mavlink.io/en/services/parameter.html

0123456789abcdeftarget_systemtarget_component
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

PARAM_VALUE (22)

Emit the value of a onboard parameter. The inclusion of param_count and param_index in the message allows the recipient to keep track of received parameters and allows him to re-request missing parameters after a loss or timeout. The parameter microservice is documented at https://mavlink.io/en/services/parameter.html

0123456789abcdefparam_id[0:3 ]0004param_id[4:7 ]08param_id[8:11 ]0cparam_id[12:15 ]10param_typeparam_countparam_index[0:0 ]14param_index[1:1 ]param_value[0:2 ]18param_value[3:3 ]
Field NameTypeEnum ValuesDescription
param_idchar[16]Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_typeuint8_tMAV_PARAM_TYPEOnboard parameter type.
param_countuint16_tTotal number of onboard parameters
param_indexuint16_tIndex of this onboard parameter
param_valuefloatOnboard parameter value

PARAM_SET (23)

Set a parameter value (write new value to permanent storage). The receiving component should acknowledge the new parameter value by broadcasting a PARAM_VALUE message (broadcasting ensures that multiple GCS all have an up-to-date list of all parameters). If the sending GCS did not receive a PARAM_VALUE within its timeout time, it should re-send the PARAM_SET message. The parameter microservice is documented at https://mavlink.io/en/services/parameter.html.

0123456789abcdeftarget_systemtarget_componentparam_id[0:1 ]0004param_id[2:5 ]08param_id[6:9 ]0cparam_id[10:13 ]10param_id[14:15 ]param_typeparam_value[0:0 ]14param_value[1:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
param_idchar[16]Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_typeuint8_tMAV_PARAM_TYPEOnboard parameter type.
param_valuefloatOnboard parameter value

GPS_RAW_INT (24)

The global position, as returned by the Global Positioning System (GPS). This is NOT the global position estimate of the system, but rather a RAW sensor value. See message GLOBAL_POSITION_INT for the global position estimate.

0123456789abcdeffix_typesatellites_visibleeph0004epvvel08coglat[0:1 ]0clat[2:3 ]lon[0:1 ]10lon[2:3 ]alt[0:1 ]14alt[2:3 ]time_usec[0:1 ]18time_usec[2:5 ]1ctime_usec[6:7 ]alt_ellipsoid[0:1 ]20alt_ellipsoid[2:3 ]h_acc[0:1 ]24h_acc[2:3 ]v_acc[0:1 ]28v_acc[2:3 ]vel_acc[0:1 ]2cvel_acc[2:3 ]hdg_acc[0:1 ]30hdg_acc[2:3 ]yaw
Field NameTypeUnitEnum ValuesDescription
fix_typeuint8_tGPS_FIX_TYPEGPS fix type.
satellites_visibleuint8_tNumber of satellites visible. If unknown, set to UINT8_MAX
ephuint16_tGPS HDOP horizontal dilution of position (unitless * 100). If unknown, set to: UINT16_MAX
epvuint16_tGPS VDOP vertical dilution of position (unitless * 100). If unknown, set to: UINT16_MAX
veluint16_tcm/sGPS ground speed. If unknown, set to: UINT16_MAX
coguint16_tcdegCourse over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: UINT16_MAX
latint32_tdegE7Latitude (WGS84, EGM96 ellipsoid)
lonint32_tdegE7Longitude (WGS84, EGM96 ellipsoid)
altint32_tmmAltitude (MSL). Positive for up. Note that virtually all GPS modules provide the MSL altitude in addition to the WGS84 altitude.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
alt_ellipsoidint32_tmmAltitude (above WGS84, EGM96 ellipsoid). Positive for up.
h_accuint32_tmmPosition uncertainty.
v_accuint32_tmmAltitude uncertainty.
vel_accuint32_tmm/sSpeed uncertainty.
hdg_accuint32_tdegE5Heading / track uncertainty
yawuint16_tcdegYaw in earth frame from north. Use 0 if this GPS does not provide yaw. Use UINT16_MAX if this GPS is configured to provide yaw and is currently unable to provide it. Use 36000 for north.

GPS_STATUS (25)

The positioning status, as reported by GPS. This message is intended to display status information about each satellite visible to the receiver. See message GLOBAL_POSITION_INT for the global position estimate. This message can contain information for up to 20 satellites.

0123456789abcdefsatellites_visiblesatellite_prn[0:0 ]0002satellite_prn[1:2 ]04satellite_prn[3:4 ]06satellite_prn[5:6 ]08satellite_prn[7:8 ]0asatellite_prn[9:10 ]0csatellite_prn[11:12 ]0esatellite_prn[13:14 ]10satellite_prn[15:16 ]12satellite_prn[17:18 ]14satellite_prn[19:19 ]satellite_used[0:0 ]16satellite_used[1:2 ]18satellite_used[3:4 ]1asatellite_used[5:6 ]1csatellite_used[7:8 ]1esatellite_used[9:10 ]20satellite_used[11:12 ]22satellite_used[13:14 ]24satellite_used[15:16 ]26satellite_used[17:18 ]28satellite_used[19:19 ]satellite_elevation[0:0 ]2asatellite_elevation[1:2 ]2csatellite_elevation[3:4 ]2esatellite_elevation[5:6 ]30satellite_elevation[7:8 ]32satellite_elevation[9:10 ]34satellite_elevation[11:12 ]36satellite_elevation[13:14 ]38satellite_elevation[15:16 ]3asatellite_elevation[17:18 ]3csatellite_elevation[19:19 ]satellite_azimuth[0:0 ]3esatellite_azimuth[1:2 ]40satellite_azimuth[3:4 ]42satellite_azimuth[5:6 ]44satellite_azimuth[7:8 ]46satellite_azimuth[9:10 ]48satellite_azimuth[11:12 ]4asatellite_azimuth[13:14 ]4csatellite_azimuth[15:16 ]4esatellite_azimuth[17:18 ]50satellite_azimuth[19:19 ]satellite_snr[0:0 ]52satellite_snr[1:2 ]54satellite_snr[3:4 ]56satellite_snr[5:6 ]58satellite_snr[7:8 ]5asatellite_snr[9:10 ]5csatellite_snr[11:12 ]5esatellite_snr[13:14 ]60satellite_snr[15:16 ]62satellite_snr[17:18 ]64satellite_snr[19:19 ]
Field NameTypeUnitDescription
satellites_visibleuint8_tNumber of satellites visible
satellite_prnuint8_t[20]Global satellite ID
satellite_useduint8_t[20]0: Satellite not used, 1: used for localization
satellite_elevationuint8_t[20]degElevation (0: right on top of receiver, 90: on the horizon) of satellite
satellite_azimuthuint8_t[20]degDirection of satellite, 0: 0 deg, 255: 360 deg.
satellite_snruint8_t[20]dBSignal to noise ratio of satellite

SCALED_IMU (26)

The RAW IMU readings for the usual 9DOF sensor setup. This message should contain the scaled values to the described units

0123456789abcdefxaccyacc0004zaccxgyro08ygyrozgyro0cxmagymag10zmagtime_boot_ms[0:1 ]14time_boot_ms[2:3 ]temperature
Field NameTypeUnitDescription
xaccint16_tmGX acceleration
yaccint16_tmGY acceleration
zaccint16_tmGZ acceleration
xgyroint16_tmrad/sAngular speed around X axis
ygyroint16_tmrad/sAngular speed around Y axis
zgyroint16_tmrad/sAngular speed around Z axis
xmagint16_tmgaussX Magnetic field
ymagint16_tmgaussY Magnetic field
zmagint16_tmgaussZ Magnetic field
time_boot_msuint32_tmsTimestamp (time since system boot).
temperatureint16_tcdegCTemperature, 0: IMU does not provide temperature values. If the IMU is at 0C it must send 1 (0.01C).

RAW_IMU (27)

The RAW IMU readings for a 9DOF sensor, which is identified by the id (default IMU1). This message should always contain the true raw values without any scaling to allow data capture and system debugging.

0123456789abcdefxaccyacc0004zaccxgyro08ygyrozgyro0cxmagymag10zmagtime_usec[0:1 ]14time_usec[2:5 ]18time_usec[6:7 ]idtemperature[0:0 ]1ctemperature[1:1 ]
Field NameTypeUnitDescription
xaccint16_tX acceleration (raw)
yaccint16_tY acceleration (raw)
zaccint16_tZ acceleration (raw)
xgyroint16_tAngular speed around X axis (raw)
ygyroint16_tAngular speed around Y axis (raw)
zgyroint16_tAngular speed around Z axis (raw)
xmagint16_tX Magnetic field (raw)
ymagint16_tY Magnetic field (raw)
zmagint16_tZ Magnetic field (raw)
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
iduint8_tId. Ids are numbered from 0 and map to IMUs numbered from 1 (e.g. IMU1 will have a message with id=0)
temperatureint16_tcdegCTemperature, 0: IMU does not provide temperature values. If the IMU is at 0C it must send 1 (0.01C).

RAW_PRESSURE (28)

The RAW pressure readings for the typical setup of one absolute pressure and one differential pressure sensor. The sensor values should be the raw, UNSCALED ADC values.

0123456789abcdefpress_abspress_diff10004press_diff2temperature08time_usec[0:3 ]0ctime_usec[4:7 ]
Field NameTypeUnitDescription
press_absint16_tAbsolute pressure (raw)
press_diff1int16_tDifferential pressure 1 (raw, 0 if nonexistent)
press_diff2int16_tDifferential pressure 2 (raw, 0 if nonexistent)
temperatureint16_tRaw Temperature measurement (raw)
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

SCALED_PRESSURE (29)

The pressure readings for the typical setup of one absolute and differential pressure sensor. The units are as specified in each field.

0123456789abcdeftemperature0002time_boot_ms[0:1 ]04time_boot_ms[2:3 ]06press_abs[0:1 ]08press_abs[2:3 ]0apress_diff[0:1 ]0cpress_diff[2:3 ]0etemperature_press_diff
Field NameTypeUnitDescription
temperatureint16_tcdegCAbsolute pressure temperature
time_boot_msuint32_tmsTimestamp (time since system boot).
press_absfloathPaAbsolute pressure
press_difffloathPaDifferential pressure 1
temperature_press_diffint16_tcdegCDifferential pressure temperature (0, if not available). Report values of 0 (or 1) as 1 cdegC.

ATTITUDE (30)

The attitude in the aeronautical frame (right-handed, Z-down, Y-right, X-front, ZYX, intrinsic).

0123456789abcdeftime_boot_ms0004roll08pitch0cyaw10rollspeed14pitchspeed18yawspeed
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
rollfloatradRoll angle (-pi..+pi)
pitchfloatradPitch angle (-pi..+pi)
yawfloatradYaw angle (-pi..+pi)
rollspeedfloatrad/sRoll angular speed
pitchspeedfloatrad/sPitch angular speed
yawspeedfloatrad/sYaw angular speed

ATTITUDE_QUATERNION (31)

The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right), expressed as quaternion. Quaternion order is w, x, y, z and a zero rotation would be expressed as (1 0 0 0).

0123456789abcdeftime_boot_ms0004q108q20cq310q414rollspeed18pitchspeed1cyawspeed20repr_offset_q
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
q1floatQuaternion component 1, w (1 in null-rotation)
q2floatQuaternion component 2, x (0 in null-rotation)
q3floatQuaternion component 3, y (0 in null-rotation)
q4floatQuaternion component 4, z (0 in null-rotation)
rollspeedfloatrad/sRoll angular speed
pitchspeedfloatrad/sPitch angular speed
yawspeedfloatrad/sYaw angular speed
repr_offset_qfloat[4]Rotation offset by which the attitude quaternion and angular speed vector should be rotated for user display (quaternion with [w, x, y, z] order, zero-rotation is [1, 0, 0, 0], send [0, 0, 0, 0] if field not supported). This field is intended for systems in which the reference attitude may change during flight. For example, tailsitters VTOLs rotate their reference attitude by 90 degrees between hover mode and fixed wing mode, thus repr_offset_q is equal to [1, 0, 0, 0] in hover mode and equal to [0.7071, 0, 0.7071, 0] in fixed wing mode.

LOCAL_POSITION_NED (32)

The filtered local position (e.g. fused computer vision and accelerometers). Coordinate frame is right-handed, Z-axis down (aeronautical frame, NED / north-east-down convention)

0123456789abcdeftime_boot_ms0004x08y0cz10vx14vy18vz
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
xfloatmX Position
yfloatmY Position
zfloatmZ Position
vxfloatm/sX Speed
vyfloatm/sY Speed
vzfloatm/sZ Speed

GLOBAL_POSITION_INT (33)

The filtered global position (e.g. fused GPS and accelerometers). The position is in GPS-frame (right-handed, Z-up). It is designed as scaled integer message since the resolution of float is not sufficient.

0123456789abcdefvxvy0004vzhdg08time_boot_ms0clat10lon14alt18relative_alt
Field NameTypeUnitDescription
vxint16_tcm/sGround X Speed (Latitude, positive north)
vyint16_tcm/sGround Y Speed (Longitude, positive east)
vzint16_tcm/sGround Z Speed (Altitude, positive down)
hdguint16_tcdegVehicle heading (yaw angle), 0.0..359.99 degrees. If unknown, set to: UINT16_MAX
time_boot_msuint32_tmsTimestamp (time since system boot).
latint32_tdegE7Latitude, expressed
lonint32_tdegE7Longitude, expressed
altint32_tmmAltitude (MSL). Note that virtually all GPS modules provide both WGS84 and MSL.
relative_altint32_tmmAltitude above home

RC_CHANNELS_SCALED (34)

The scaled values of the RC channels received: (-100%) -10000, (0%) 0, (100%) 10000. Channels that are inactive should be set to INT16_MAX.

0123456789abcdefportrssichan1_scaled0004chan2_scaledchan3_scaled08chan4_scaledchan5_scaled0cchan6_scaledchan7_scaled10chan8_scaledtime_boot_ms[0:1 ]14time_boot_ms[2:3 ]
Field NameTypeUnitDescription
portuint8_tServo output port (set of 8 outputs = 1 port). Flight stacks running on Pixhawk should use: 0 = MAIN, 1 = AUX.
rssiuint8_tReceive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown.
chan1_scaledint16_tRC channel 1 value scaled.
chan2_scaledint16_tRC channel 2 value scaled.
chan3_scaledint16_tRC channel 3 value scaled.
chan4_scaledint16_tRC channel 4 value scaled.
chan5_scaledint16_tRC channel 5 value scaled.
chan6_scaledint16_tRC channel 6 value scaled.
chan7_scaledint16_tRC channel 7 value scaled.
chan8_scaledint16_tRC channel 8 value scaled.
time_boot_msuint32_tmsTimestamp (time since system boot).

RC_CHANNELS_RAW (35)

The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. A value of UINT16_MAX implies the channel is unused. Individual receivers/transmitters might violate this specification.

0123456789abcdefportrssichan1_raw0004chan2_rawchan3_raw08chan4_rawchan5_raw0cchan6_rawchan7_raw10chan8_rawtime_boot_ms[0:1 ]14time_boot_ms[2:3 ]
Field NameTypeUnitDescription
portuint8_tServo output port (set of 8 outputs = 1 port). Flight stacks running on Pixhawk should use: 0 = MAIN, 1 = AUX.
rssiuint8_tReceive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown.
chan1_rawuint16_tusRC channel 1 value.
chan2_rawuint16_tusRC channel 2 value.
chan3_rawuint16_tusRC channel 3 value.
chan4_rawuint16_tusRC channel 4 value.
chan5_rawuint16_tusRC channel 5 value.
chan6_rawuint16_tusRC channel 6 value.
chan7_rawuint16_tusRC channel 7 value.
chan8_rawuint16_tusRC channel 8 value.
time_boot_msuint32_tmsTimestamp (time since system boot).

SERVO_OUTPUT_RAW (36)

Superseded by ACTUATOR_OUTPUT_STATUS. The RAW values of the servo outputs (for RC input from the remote, use the RC_CHANNELS messages). The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%.

0123456789abcdefportservo1_rawservo2_raw[0:0 ]0004servo2_raw[1:1 ]servo3_rawservo4_raw[0:0 ]08servo4_raw[1:1 ]servo5_rawservo6_raw[0:0 ]0cservo6_raw[1:1 ]servo7_rawservo8_raw[0:0 ]10servo8_raw[1:1 ]time_usec[0:2 ]14time_usec[3:3 ]servo9_rawservo10_raw[0:0 ]18servo10_raw[1:1 ]servo11_rawservo12_raw[0:0 ]1cservo12_raw[1:1 ]servo13_rawservo14_raw[0:0 ]20servo14_raw[1:1 ]servo15_rawservo16_raw[0:0 ]24servo16_raw[1:1 ]
Field NameTypeUnitDescription
portuint8_tServo output port (set of 8 outputs = 1 port). Flight stacks running on Pixhawk should use: 0 = MAIN, 1 = AUX.
servo1_rawuint16_tusServo output 1 value
servo2_rawuint16_tusServo output 2 value
servo3_rawuint16_tusServo output 3 value
servo4_rawuint16_tusServo output 4 value
servo5_rawuint16_tusServo output 5 value
servo6_rawuint16_tusServo output 6 value
servo7_rawuint16_tusServo output 7 value
servo8_rawuint16_tusServo output 8 value
time_usecuint32_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
servo9_rawuint16_tusServo output 9 value
servo10_rawuint16_tusServo output 10 value
servo11_rawuint16_tusServo output 11 value
servo12_rawuint16_tusServo output 12 value
servo13_rawuint16_tusServo output 13 value
servo14_rawuint16_tusServo output 14 value
servo15_rawuint16_tusServo output 15 value
servo16_rawuint16_tusServo output 16 value

MISSION_REQUEST_PARTIAL_LIST (37)

Request a partial list of mission items from the system/component. https://mavlink.io/en/services/mission.html. If start and end index are the same, just send one waypoint.

0123456789abcdeftarget_systemtarget_componentstart_index0004end_indexmission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
start_indexint16_tStart index
end_indexint16_tEnd index, -1 by default (-1: send list to end). Else a valid index of the list
mission_typeuint8_tMAV_MISSION_TYPEMission type.

MISSION_WRITE_PARTIAL_LIST (38)

This message is sent to the MAV to write a partial list. If start index == end index, only one item will be transmitted / updated. If the start index is NOT 0 and above the current list size, this request should be REJECTED!

0123456789abcdeftarget_systemtarget_componentstart_index0004end_indexmission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
start_indexint16_tStart index. Must be smaller / equal to the largest index of the current onboard list.
end_indexint16_tEnd index, equal or greater than start index.
mission_typeuint8_tMAV_MISSION_TYPEMission type.

MISSION_ITEM (39)

Message encoding a mission item. This message is emitted to announce the presence of a mission item and to set a mission item on the system. The mission item can be either in x, y, z meters (type: LOCAL) or x:lat , y:lon , z:altitude . Local frame is Z-down, right handed (NED), global frame is Z-up, right handed (ENU). NaN may be used to indicate an optional/default value (e.g. to use the system's current latitude or yaw rather than a specific value). See also https://mavlink.io/en/services/mission.html.

0123456789abcdeftarget_systemtarget_componentframecurrent0004autocontinueseqcommand[0:0 ]08command[1:1 ]param1[0:2 ]0cparam1[3:3 ]param2[0:2 ]10param2[3:3 ]param3[0:2 ]14param3[3:3 ]param4[0:2 ]18param4[3:3 ]x[0:2 ]1cx[3:3 ]y[0:2 ]20y[3:3 ]z[0:2 ]24z[3:3 ]mission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
frameuint8_tMAV_FRAMEThe coordinate system of the waypoint.
currentuint8_tfalse:0 , true:1
autocontinueuint8_tAutocontinue to next waypoint. 0: false, 1: true. Set false to pause mission after the item completes.
sequint16_tSequence
commanduint16_tMAV_CMDThe scheduled action for the waypoint.
param1floatPARAM1, see MAV_CMD enum
param2floatPARAM2, see MAV_CMD enum
param3floatPARAM3, see MAV_CMD enum
param4floatPARAM4, see MAV_CMD enum
xfloatPARAM5 / local: X coordinate, global: latitude
yfloatPARAM6 / local: Y coordinate, global: longitude
zfloatPARAM7 / local: Z coordinate, global: altitude (relative or absolute, depending on frame).
mission_typeuint8_tMAV_MISSION_TYPEMission type.

MISSION_REQUEST (40)

Request the information of the mission item with the sequence number seq. The response of the system to this message should be a MISSION_ITEM message. https://mavlink.io/en/services/mission.html

0123456789abcdeftarget_systemtarget_componentseq0004mission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
sequint16_tSequence
mission_typeuint8_tMAV_MISSION_TYPEMission type.

MISSION_SET_CURRENT (41)

Set the mission item with sequence number seq as the current item and emit MISSION_CURRENT (whether or not the mission number changed). If a mission is currently being executed, the system will continue to this new mission item on the shortest path, skipping any intermediate mission items. Note that mission jump repeat counters are not reset (see MAV_CMD_DO_JUMP param2).

This message may trigger a mission state-machine change on some systems: for example from MISSION_STATE_NOT_STARTED or MISSION_STATE_PAUSED to MISSION_STATE_ACTIVE. If the system is in mission mode, on those systems this command might therefore start, restart or resume the mission. If the system is not in mission mode this message must not trigger a switch to mission mode.

0123456789abcdeftarget_systemtarget_componentseq
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
sequint16_tSequence

MISSION_CURRENT (42)

Message that announces the sequence number of the current target mission item (that the system will fly towards/execute when the mission is running). This message should be streamed all the time (nominally at 1Hz). This message should be emitted following a call to MAV_CMD_DO_SET_MISSION_CURRENT or MISSION_SET_CURRENT.

0123456789abcdefseqtotal0004mission_statemission_modemission_id[0:1 ]08mission_id[2:3 ]fence_id[0:1 ]0cfence_id[2:3 ]rally_points_id[0:1 ]10rally_points_id[2:3 ]
Field NameTypeEnum ValuesDescription
sequint16_tSequence
totaluint16_tTotal number of mission items on vehicle (on last item, sequence == total). If the autopilot stores its home location as part of the mission this will be excluded from the total. 0: Not supported, UINT16_MAX if no mission is present on the vehicle.
mission_stateuint8_tMISSION_STATEMission state machine state. MISSION_STATE_UNKNOWN if state reporting not supported.
mission_modeuint8_tVehicle is in a mode that can execute mission items or suspended. 0: Unknown, 1: In mission mode, 2: Suspended (not in mission mode).
mission_iduint32_tId of current on-vehicle mission plan, or 0 if IDs are not supported or there is no mission loaded. GCS can use this to track changes to the mission plan type. The same value is returned on mission upload (in the MISSION_ACK).
fence_iduint32_tId of current on-vehicle fence plan, or 0 if IDs are not supported or there is no fence loaded. GCS can use this to track changes to the fence plan type. The same value is returned on fence upload (in the MISSION_ACK).
rally_points_iduint32_tId of current on-vehicle rally point plan, or 0 if IDs are not supported or there are no rally points loaded. GCS can use this to track changes to the rally point plan type. The same value is returned on rally point upload (in the MISSION_ACK).

MISSION_REQUEST_LIST (43)

Request the overall list of mission items from the system/component.

0123456789abcdeftarget_systemtarget_componentmission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
mission_typeuint8_tMAV_MISSION_TYPEMission type.

MISSION_COUNT (44)

This message is emitted as response to MISSION_REQUEST_LIST by the MAV and to initiate a write transaction. The GCS can then request the individual mission item based on the knowledge of the total number of waypoints.

0123456789abcdeftarget_systemtarget_componentcount0004mission_typeopaque_id[0:2 ]08opaque_id[3:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
countuint16_tNumber of mission items in the sequence
mission_typeuint8_tMAV_MISSION_TYPEMission type.
opaque_iduint32_tId of current on-vehicle mission, fence, or rally point plan (on download from vehicle).
This field is used when downloading a plan from a vehicle to a GCS.
0 on upload to the vehicle from GCS.
0 if plan ids are not supported.
The current on-vehicle plan ids are streamed in MISSION_CURRENT, allowing a GCS to determine if any part of the plan has changed and needs to be re-uploaded.
The ids are recalculated by the vehicle when any part of the on-vehicle plan changes (when a new plan is uploaded, the vehicle returns the new id to the GCS in MISSION_ACK).

MISSION_CLEAR_ALL (45)

Delete all mission items at once.

0123456789abcdeftarget_systemtarget_componentmission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
mission_typeuint8_tMAV_MISSION_TYPEMission type.

MISSION_ITEM_REACHED (46)

A certain mission item has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next waypoint.

0123456789abcdefseq
Field NameTypeDescription
sequint16_tSequence

MISSION_ACK (47)

Acknowledgment message during waypoint handling. The type field states if this message is a positive ack (type=0) or if an error happened (type=non-zero).

0123456789abcdeftarget_systemtarget_componenttypemission_type0004opaque_id
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
typeuint8_tMAV_MISSION_RESULTMission result.
mission_typeuint8_tMAV_MISSION_TYPEMission type.
opaque_iduint32_tId of new on-vehicle mission, fence, or rally point plan (on upload to vehicle).
The id is calculated and returned by a vehicle when a new plan is uploaded by a GCS.
The only requirement on the id is that it must change when there is any change to the on-vehicle plan type (there is no requirement that the id be globally unique).
0 on download from the vehicle to the GCS (on download the ID is set in MISSION_COUNT).
0 if plan ids are not supported.
The current on-vehicle plan ids are streamed in MISSION_CURRENT, allowing a GCS to determine if any part of the plan has changed and needs to be re-uploaded.

SET_GPS_GLOBAL_ORIGIN (48)

Sets the GPS coordinates of the vehicle local origin (0,0,0) position. Vehicle should emit GPS_GLOBAL_ORIGIN irrespective of whether the origin is changed. This enables transform between the local coordinate frame and the global (GPS) coordinate frame, which may be necessary when (for example) indoor and outdoor settings are connected and the MAV should move from in- to outdoor.

0123456789abcdeftarget_systemlatitude[0:2 ]0004latitude[3:3 ]longitude[0:2 ]08longitude[3:3 ]altitude[0:2 ]0caltitude[3:3 ]time_usec[0:2 ]10time_usec[3:6 ]14time_usec[7:7 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID
latitudeint32_tdegE7Latitude (WGS84)
longitudeint32_tdegE7Longitude (WGS84)
altitudeint32_tmmAltitude (MSL). Positive for up.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

GPS_GLOBAL_ORIGIN (49)

Publishes the GPS coordinates of the vehicle local origin (0,0,0) position. Emitted whenever a new GPS-Local position mapping is requested or set - e.g. following SET_GPS_GLOBAL_ORIGIN message.

0123456789abcdeflatitude0004longitude08altitude0ctime_usec[0:3 ]10time_usec[4:7 ]
Field NameTypeUnitDescription
latitudeint32_tdegE7Latitude (WGS84)
longitudeint32_tdegE7Longitude (WGS84)
altitudeint32_tmmAltitude (MSL). Positive for up.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

PARAM_MAP_RC (50)

Bind a RC channel to a parameter. The parameter should change according to the RC channel value.

0123456789abcdeftarget_systemtarget_component0002param_id[0:1 ]04param_id[2:3 ]06param_id[4:5 ]08param_id[6:7 ]0aparam_id[8:9 ]0cparam_id[10:11 ]0eparam_id[12:13 ]10param_id[14:15 ]12parameter_rc_channel_indexparam_index[0:0 ]14param_index[1:1 ]param_value0[0:0 ]16param_value0[1:2 ]18param_value0[3:3 ]scale[0:0 ]1ascale[1:2 ]1cscale[3:3 ]param_value_min[0:0 ]1eparam_value_min[1:2 ]20param_value_min[3:3 ]param_value_max[0:0 ]22param_value_max[1:2 ]24param_value_max[3:3 ]
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
param_idchar[16]Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
parameter_rc_channel_indexuint8_tIndex of parameter RC channel. Not equal to the RC channel id. Typically corresponds to a potentiometer-knob on the RC.
param_indexint16_tParameter index. Send -1 to use the param ID field as identifier (else the param id will be ignored), send -2 to disable any existing map for this rc_channel_index.
param_value0floatInitial parameter value
scalefloatScale, maps the RC range [-1, 1] to a parameter value
param_value_minfloatMinimum param value. The protocol does not define if this overwrites an onboard minimum value. (Depends on implementation)
param_value_maxfloatMaximum param value. The protocol does not define if this overwrites an onboard maximum value. (Depends on implementation)

MISSION_REQUEST_INT (51)

Request the information of the mission item with the sequence number seq. The response of the system to this message should be a MISSION_ITEM_INT message. https://mavlink.io/en/services/mission.html

0123456789abcdeftarget_systemtarget_componentseq0004mission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
sequint16_tSequence
mission_typeuint8_tMAV_MISSION_TYPEMission type.

SAFETY_SET_ALLOWED_AREA (54)

Set a safety zone (volume), which is defined by two corners of a cube. This message can be used to tell the MAV which setpoints/waypoints to accept and which to reject. Safety areas are often enforced by national or competition regulations.

0123456789abcdeftarget_systemtarget_componentframep1x[0:0 ]0004p1x[1:3 ]p1y[0:0 ]08p1y[1:3 ]p1z[0:0 ]0cp1z[1:3 ]p2x[0:0 ]10p2x[1:3 ]p2y[0:0 ]14p2y[1:3 ]p2z[0:0 ]18p2z[1:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
frameuint8_tMAV_FRAMECoordinate frame. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.
p1xfloatmx position 1 / Latitude 1
p1yfloatmy position 1 / Longitude 1
p1zfloatmz position 1 / Altitude 1
p2xfloatmx position 2 / Latitude 2
p2yfloatmy position 2 / Longitude 2
p2zfloatmz position 2 / Altitude 2

SAFETY_ALLOWED_AREA (55)

Read out the safety zone the MAV currently assumes.

0123456789abcdefframep1x[0:2 ]0004p1x[3:3 ]p1y[0:2 ]08p1y[3:3 ]p1z[0:2 ]0cp1z[3:3 ]p2x[0:2 ]10p2x[3:3 ]p2y[0:2 ]14p2y[3:3 ]p2z[0:2 ]18p2z[3:3 ]
Field NameTypeUnitEnum ValuesDescription
frameuint8_tMAV_FRAMECoordinate frame. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.
p1xfloatmx position 1 / Latitude 1
p1yfloatmy position 1 / Longitude 1
p1zfloatmz position 1 / Altitude 1
p2xfloatmx position 2 / Latitude 2
p2yfloatmy position 2 / Longitude 2
p2zfloatmz position 2 / Altitude 2

ATTITUDE_QUATERNION_COV (61)

The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right), expressed as quaternion. Quaternion order is w, x, y, z and a zero rotation would be expressed as (1 0 0 0).

0123456789abcdefq0004rollspeed08pitchspeed0cyawspeed10covariance[0:3 ]14covariance[4:7 ]18covariance[8:8 ]time_usec[0:2 ]1ctime_usec[3:6 ]20time_usec[7:7 ]
Field NameTypeUnitDescription
qfloat[4]Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation)
rollspeedfloatrad/sRoll angular speed
pitchspeedfloatrad/sPitch angular speed
yawspeedfloatrad/sYaw angular speed
covariancefloat[9]Row-major representation of a 3x3 attitude covariance matrix (states: roll, pitch, yaw; first three entries are the first ROW, next three entries are the second row, etc.). If unknown, assign NaN value to first element in the array.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

The state of the navigation and position controller.

0123456789abcdefnav_bearingtarget_bearing0004wp_distnav_roll[0:1 ]08nav_roll[2:3 ]nav_pitch[0:1 ]0cnav_pitch[2:3 ]alt_error[0:1 ]10alt_error[2:3 ]aspd_error[0:1 ]14aspd_error[2:3 ]xtrack_error[0:1 ]18xtrack_error[2:3 ]
Field NameTypeUnitDescription
nav_bearingint16_tdegCurrent desired heading
target_bearingint16_tdegBearing to current waypoint/target
wp_distuint16_tmDistance to active waypoint
nav_rollfloatdegCurrent desired roll
nav_pitchfloatdegCurrent desired pitch
alt_errorfloatmCurrent altitude error
aspd_errorfloatm/sCurrent airspeed error
xtrack_errorfloatmCurrent crosstrack error on x-y plane

GLOBAL_POSITION_INT_COV (63)

The filtered global position (e.g. fused GPS and accelerometers). The position is in GPS-frame (right-handed, Z-up). It is designed as scaled integer message since the resolution of float is not sufficient. NOTE: This message is intended for onboard networks / companion computers and higher-bandwidth links and optimized for accuracy and completeness. Please use the GLOBAL_POSITION_INT message for a minimal subset.

0123456789abcdefestimator_typelat[0:2 ]0004lat[3:3 ]lon[0:2 ]08lon[3:3 ]alt[0:2 ]0calt[3:3 ]relative_alt[0:2 ]10relative_alt[3:3 ]vx[0:2 ]14vx[3:3 ]vy[0:2 ]18vy[3:3 ]vz[0:2 ]1cvz[3:3 ]covariance[0:2 ]20covariance[3:6 ]24covariance[7:10 ]28covariance[11:14 ]2ccovariance[15:18 ]30covariance[19:22 ]34covariance[23:26 ]38covariance[27:30 ]3ccovariance[31:34 ]40covariance[35:35 ]time_usec[0:2 ]44time_usec[3:6 ]48time_usec[7:7 ]
Field NameTypeUnitEnum ValuesDescription
estimator_typeuint8_tMAV_ESTIMATOR_TYPEClass id of the estimator this estimate originated from.
latint32_tdegE7Latitude
lonint32_tdegE7Longitude
altint32_tmmAltitude in meters above MSL
relative_altint32_tmmAltitude above ground
vxfloatm/sGround X Speed (Latitude)
vyfloatm/sGround Y Speed (Longitude)
vzfloatm/sGround Z Speed (Altitude)
covariancefloat[36]Row-major representation of a 6x6 position and velocity 6x6 cross-covariance matrix (states: lat, lon, alt, vx, vy, vz; first six entries are the first ROW, next six entries are the second row, etc.). If unknown, assign NaN value to first element in the array.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

LOCAL_POSITION_NED_COV (64)

The filtered local position (e.g. fused computer vision and accelerometers). Coordinate frame is right-handed, Z-axis down (aeronautical frame, NED / north-east-down convention)

0123456789abcdefestimator_typex[0:2 ]0004x[3:3 ]y[0:2 ]08y[3:3 ]z[0:2 ]0cz[3:3 ]vx[0:2 ]10vx[3:3 ]vy[0:2 ]14vy[3:3 ]vz[0:2 ]18vz[3:3 ]ax[0:2 ]1cax[3:3 ]ay[0:2 ]20ay[3:3 ]az[0:2 ]24az[3:3 ]covariance[0:2 ]28covariance[3:6 ]2ccovariance[7:10 ]30covariance[11:14 ]34covariance[15:18 ]38covariance[19:22 ]3ccovariance[23:26 ]40covariance[27:30 ]44covariance[31:34 ]48covariance[35:38 ]4ccovariance[39:42 ]50covariance[43:44 ]time_usec[0:1 ]54time_usec[2:5 ]58time_usec[6:7 ]
Field NameTypeUnitEnum ValuesDescription
estimator_typeuint8_tMAV_ESTIMATOR_TYPEClass id of the estimator this estimate originated from.
xfloatmX Position
yfloatmY Position
zfloatmZ Position
vxfloatm/sX Speed
vyfloatm/sY Speed
vzfloatm/sZ Speed
axfloatm/s/sX Acceleration
ayfloatm/s/sY Acceleration
azfloatm/s/sZ Acceleration
covariancefloat[45]Row-major representation of position, velocity and acceleration 9x9 cross-covariance matrix upper right triangle (states: x, y, z, vx, vy, vz, ax, ay, az; first nine entries are the first ROW, next eight entries are the second row, etc.). If unknown, assign NaN value to first element in the array.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

RC_CHANNELS (65)

The PPM values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. A value of UINT16_MAX implies the channel is unused. Individual receivers/transmitters might violate this specification.

0123456789abcdefchancountrssichan1_raw0004chan2_rawchan3_raw08chan4_rawchan5_raw0cchan6_rawchan7_raw10chan8_rawchan9_raw14chan10_rawchan11_raw18chan12_rawchan13_raw1cchan14_rawchan15_raw20chan16_rawchan17_raw24chan18_rawtime_boot_ms[0:1 ]28time_boot_ms[2:3 ]
Field NameTypeUnitDescription
chancountuint8_tTotal number of RC channels being received. This can be larger than 18, indicating that more channels are available but not given in this message. This value should be 0 when no RC channels are available.
rssiuint8_tReceive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown.
chan1_rawuint16_tusRC channel 1 value.
chan2_rawuint16_tusRC channel 2 value.
chan3_rawuint16_tusRC channel 3 value.
chan4_rawuint16_tusRC channel 4 value.
chan5_rawuint16_tusRC channel 5 value.
chan6_rawuint16_tusRC channel 6 value.
chan7_rawuint16_tusRC channel 7 value.
chan8_rawuint16_tusRC channel 8 value.
chan9_rawuint16_tusRC channel 9 value.
chan10_rawuint16_tusRC channel 10 value.
chan11_rawuint16_tusRC channel 11 value.
chan12_rawuint16_tusRC channel 12 value.
chan13_rawuint16_tusRC channel 13 value.
chan14_rawuint16_tusRC channel 14 value.
chan15_rawuint16_tusRC channel 15 value.
chan16_rawuint16_tusRC channel 16 value.
chan17_rawuint16_tusRC channel 17 value.
chan18_rawuint16_tusRC channel 18 value.
time_boot_msuint32_tmsTimestamp (time since system boot).

REQUEST_DATA_STREAM (66)

Request a data stream.

0123456789abcdeftarget_systemtarget_componentreq_stream_idstart_stop0004req_message_rate
Field NameTypeUnitDescription
target_systemuint8_tThe target requested to send the message stream.
target_componentuint8_tThe target requested to send the message stream.
req_stream_iduint8_tThe ID of the requested data stream
start_stopuint8_t1 to start sending, 0 to stop sending.
req_message_rateuint16_tHzThe requested message rate

DATA_STREAM (67)

Data stream status information.

0123456789abcdefstream_idon_offmessage_rate
Field NameTypeUnitDescription
stream_iduint8_tThe ID of the requested data stream
on_offuint8_t1 stream is enabled, 0 stream is stopped.
message_rateuint16_tHzThe message rate

MANUAL_CONTROL (69)

Manual (joystick) control message. This message represents movement axes and button using standard joystick axes nomenclature. Unused axes can be disabled and buttons states are transmitted as individual on/off bits of a bitmask. For more information see https://mavlink.io/en/manual_control.html

0123456789abcdeftargetxy[0:0 ]0004y[1:1 ]zr[0:0 ]08r[1:1 ]buttonsbuttons2[0:0 ]0cbuttons2[1:1 ]enabled_extensionss10taux114aux2aux318aux4aux51caux6
Field NameTypeDescription
targetuint8_tThe system to be controlled.
xint16_tX-axis, normalized to the range [-1000,1000]. A value of INT16_MAX indicates that this axis is invalid. Generally corresponds to forward(1000)-backward(-1000) movement on a joystick and the pitch of a vehicle.
yint16_tY-axis, normalized to the range [-1000,1000]. A value of INT16_MAX indicates that this axis is invalid. Generally corresponds to left(-1000)-right(1000) movement on a joystick and the roll of a vehicle.
zint16_tZ-axis, normalized to the range [-1000,1000]. A value of INT16_MAX indicates that this axis is invalid. Generally corresponds to a separate slider movement with maximum being 1000 and minimum being -1000 on a joystick and the thrust of a vehicle. Positive values are positive thrust, negative values are negative thrust.
rint16_tR-axis, normalized to the range [-1000,1000]. A value of INT16_MAX indicates that this axis is invalid. Generally corresponds to a twisting of the joystick, with counter-clockwise being 1000 and clockwise being -1000, and the yaw of a vehicle.
buttonsuint16_tA bitfield corresponding to the joystick buttons' 0-15 current state, 1 for pressed, 0 for released. The lowest bit corresponds to Button 1.
buttons2uint16_tA bitfield corresponding to the joystick buttons' 16-31 current state, 1 for pressed, 0 for released. The lowest bit corresponds to Button 16.
enabled_extensionsuint8_tSet bits to 1 to indicate which of the following extension fields contain valid data: bit 0: pitch, bit 1: roll, bit 2: aux1, bit 3: aux2, bit 4: aux3, bit 5: aux4, bit 6: aux5, bit 7: aux6
sint16_tPitch-only-axis, normalized to the range [-1000,1000]. Generally corresponds to pitch on vehicles with additional degrees of freedom. Valid if bit 0 of enabled_extensions field is set. Set to 0 if invalid.
tint16_tRoll-only-axis, normalized to the range [-1000,1000]. Generally corresponds to roll on vehicles with additional degrees of freedom. Valid if bit 1 of enabled_extensions field is set. Set to 0 if invalid.
aux1int16_tAux continuous input field 1. Normalized in the range [-1000,1000]. Purpose defined by recipient. Valid data if bit 2 of enabled_extensions field is set. 0 if bit 2 is unset.
aux2int16_tAux continuous input field 2. Normalized in the range [-1000,1000]. Purpose defined by recipient. Valid data if bit 3 of enabled_extensions field is set. 0 if bit 3 is unset.
aux3int16_tAux continuous input field 3. Normalized in the range [-1000,1000]. Purpose defined by recipient. Valid data if bit 4 of enabled_extensions field is set. 0 if bit 4 is unset.
aux4int16_tAux continuous input field 4. Normalized in the range [-1000,1000]. Purpose defined by recipient. Valid data if bit 5 of enabled_extensions field is set. 0 if bit 5 is unset.
aux5int16_tAux continuous input field 5. Normalized in the range [-1000,1000]. Purpose defined by recipient. Valid data if bit 6 of enabled_extensions field is set. 0 if bit 6 is unset.
aux6int16_tAux continuous input field 6. Normalized in the range [-1000,1000]. Purpose defined by recipient. Valid data if bit 7 of enabled_extensions field is set. 0 if bit 7 is unset.

RC_CHANNELS_OVERRIDE (70)

The RAW values of the RC channels sent to the MAV to override info received from the RC radio. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification. Note carefully the semantic differences between the first 8 channels and the subsequent channels

0123456789abcdeftarget_systemtarget_componentchan1_raw0004chan2_rawchan3_raw08chan4_rawchan5_raw0cchan6_rawchan7_raw10chan8_rawchan9_raw14chan10_rawchan11_raw18chan12_rawchan13_raw1cchan14_rawchan15_raw20chan16_rawchan17_raw24chan18_raw
Field NameTypeUnitDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
chan1_rawuint16_tusRC channel 1 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan2_rawuint16_tusRC channel 2 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan3_rawuint16_tusRC channel 3 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan4_rawuint16_tusRC channel 4 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan5_rawuint16_tusRC channel 5 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan6_rawuint16_tusRC channel 6 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan7_rawuint16_tusRC channel 7 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan8_rawuint16_tusRC channel 8 value. A value of UINT16_MAX means to ignore this field. A value of 0 means to release this channel back to the RC radio.
chan9_rawuint16_tusRC channel 9 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan10_rawuint16_tusRC channel 10 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan11_rawuint16_tusRC channel 11 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan12_rawuint16_tusRC channel 12 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan13_rawuint16_tusRC channel 13 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan14_rawuint16_tusRC channel 14 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan15_rawuint16_tusRC channel 15 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan16_rawuint16_tusRC channel 16 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan17_rawuint16_tusRC channel 17 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.
chan18_rawuint16_tusRC channel 18 value. A value of 0 or UINT16_MAX means to ignore this field. A value of UINT16_MAX-1 means to release this channel back to the RC radio.

MISSION_ITEM_INT (73)

Message encoding a mission item. This message is emitted to announce the presence of a mission item and to set a mission item on the system. The mission item can be either in x, y, z meters (type: LOCAL) or x:lat , y:lon , z:altitude . Local frame is Z-down, right handed (NED), global frame is Z-up, right handed (ENU). NaN or INT32_MAX may be used in float/integer params (respectively) to indicate optional/default values (e.g. to use the component's current latitude, yaw rather than a specific value). See also https://mavlink.io/en/services/mission.html.

0123456789abcdeftarget_systemtarget_componentframecurrent0004autocontinueseqcommand[0:0 ]08command[1:1 ]param1[0:2 ]0cparam1[3:3 ]param2[0:2 ]10param2[3:3 ]param3[0:2 ]14param3[3:3 ]param4[0:2 ]18param4[3:3 ]x[0:2 ]1cx[3:3 ]y[0:2 ]20y[3:3 ]z[0:2 ]24z[3:3 ]mission_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
frameuint8_tMAV_FRAMEThe coordinate system of the waypoint.
currentuint8_tfalse:0 , true:1
autocontinueuint8_tAutocontinue to next waypoint. 0: false, 1: true. Set false to pause mission after the item completes.
sequint16_tWaypoint ID (sequence number). Starts at zero. Increases monotonically for each waypoint, no gaps in the sequence (0,1,2,3,4).
commanduint16_tMAV_CMDThe scheduled action for the waypoint.
param1floatPARAM1, see MAV_CMD enum
param2floatPARAM2, see MAV_CMD enum
param3floatPARAM3, see MAV_CMD enum
param4floatPARAM4, see MAV_CMD enum
xint32_tPARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
yint32_tPARAM6 / y position: local: x position in meters * 1e4, global: longitude in degrees *10^7
zfloatPARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame.
mission_typeuint8_tMAV_MISSION_TYPEMission type.

VFR_HUD (74)

Metrics typically displayed on a HUD for fixed wing aircraft.

0123456789abcdefheadingthrottle0004airspeed08groundspeed0calt10climb
Field NameTypeUnitDescription
headingint16_tdegCurrent heading in compass units (0-360, 0=north).
throttleuint16_t%Current throttle setting (0 to 100).
airspeedfloatm/sVehicle speed in form appropriate for vehicle type. For standard aircraft this is typically calibrated airspeed (CAS) or indicated airspeed (IAS) - either of which can be used by a pilot to estimate stall speed.
groundspeedfloatm/sCurrent ground speed.
altfloatmCurrent altitude (MSL).
climbfloatm/sCurrent climb rate.

COMMAND_INT (75)

Send a command with up to seven parameters to the MAV, where params 5 and 6 are integers and the other values are floats. This is preferred over COMMAND_LONG as it allows the MAV_FRAME to be specified for interpreting positional information, such as altitude. COMMAND_INT is also preferred when sending latitude and longitude data in params 5 and 6, as it allows for greater precision. Param 5 and 6 encode positional data as scaled integers, where the scaling depends on the actual command value. NaN or INT32_MAX may be used in float/integer params (respectively) to indicate optional/default values (e.g. to use the component's current latitude, yaw rather than a specific value). The command microservice is documented at https://mavlink.io/en/services/command.html

0123456789abcdeftarget_systemtarget_componentframecurrent0004autocontinuecommandparam1[0:0 ]08param1[1:3 ]param2[0:0 ]0cparam2[1:3 ]param3[0:0 ]10param3[1:3 ]param4[0:0 ]14param4[1:3 ]x[0:0 ]18x[1:3 ]y[0:0 ]1cy[1:3 ]z[0:0 ]20z[1:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
frameuint8_tMAV_FRAMEThe coordinate system of the COMMAND.
currentuint8_tNot used.
autocontinueuint8_tNot used (set 0).
commanduint16_tMAV_CMDThe scheduled action for the mission item.
param1floatPARAM1, see MAV_CMD enum
param2floatPARAM2, see MAV_CMD enum
param3floatPARAM3, see MAV_CMD enum
param4floatPARAM4, see MAV_CMD enum
xint32_tPARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
yint32_tPARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7
zfloatPARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame).

COMMAND_LONG (76)

Send a command with up to seven parameters to the MAV. COMMAND_INT is generally preferred when sending MAV_CMD commands that include positional information; it offers higher precision and allows the MAV_FRAME to be specified (which may otherwise be ambiguous, particularly for altitude). The command microservice is documented at https://mavlink.io/en/services/command.html

0123456789abcdeftarget_systemtarget_componentconfirmationcommand[0:0 ]0004command[1:1 ]param1[0:2 ]08param1[3:3 ]param2[0:2 ]0cparam2[3:3 ]param3[0:2 ]10param3[3:3 ]param4[0:2 ]14param4[3:3 ]param5[0:2 ]18param5[3:3 ]param6[0:2 ]1cparam6[3:3 ]param7[0:2 ]20param7[3:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem which should execute the command
target_componentuint8_tComponent which should execute the command, 0 for all components
confirmationuint8_t0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
commanduint16_tMAV_CMDCommand ID (of command to send).
param1floatParameter 1 (for the specific command).
param2floatParameter 2 (for the specific command).
param3floatParameter 3 (for the specific command).
param4floatParameter 4 (for the specific command).
param5floatParameter 5 (for the specific command).
param6floatParameter 6 (for the specific command).
param7floatParameter 7 (for the specific command).

COMMAND_ACK (77)

Report status of a command. Includes feedback whether the command was executed. The command microservice is documented at https://mavlink.io/en/services/command.html

0123456789abcdefresultcommandprogress0004result_param208target_systemtarget_component
Field NameTypeUnitEnum ValuesDescription
resultuint8_tMAV_RESULTResult of command.
commanduint16_tMAV_CMDCommand ID (of acknowledged command).
progressuint8_t%The progress percentage when result is MAV_RESULT_IN_PROGRESS. Values: [0-100], or UINT8_MAX if the progress is unknown.
result_param2int32_tAdditional result information. Can be set with a command-specific enum containing command-specific error reasons for why the command might be denied. If used, the associated enum must be documented in the corresponding MAV_CMD (this enum should have a 0 value to indicate "unused" or "unknown").
target_systemuint8_tSystem ID of the target recipient. This is the ID of the system that sent the command for which this COMMAND_ACK is an acknowledgement.
target_componentuint8_tComponent ID of the target recipient. This is the ID of the system that sent the command for which this COMMAND_ACK is an acknowledgement.

COMMAND_CANCEL (80)

Cancel a long running command. The target system should respond with a COMMAND_ACK to the original command with result=MAV_RESULT_CANCELLED if the long running process was cancelled. If it has already completed, the cancel action can be ignored. The cancel action can be retried until some sort of acknowledgement to the original command has been received. The command microservice is documented at https://mavlink.io/en/services/command.html

0123456789abcdeftarget_systemtarget_componentcommand
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem executing long running command. Should not be broadcast (0).
target_componentuint8_tComponent executing long running command.
commanduint16_tMAV_CMDCommand ID (of command to cancel).

MANUAL_SETPOINT (81)

Setpoint in roll, pitch, yaw and thrust from the operator

0123456789abcdefmode_switchmanual_override_switch0002time_boot_ms[0:1 ]04time_boot_ms[2:3 ]06roll[0:1 ]08roll[2:3 ]0apitch[0:1 ]0cpitch[2:3 ]0eyaw[0:1 ]10yaw[2:3 ]12thrust[0:1 ]14thrust[2:3 ]
Field NameTypeUnitDescription
mode_switchuint8_tFlight mode switch position, 0.. 255
manual_override_switchuint8_tOverride mode switch position, 0.. 255
time_boot_msuint32_tmsTimestamp (time since system boot).
rollfloatrad/sDesired roll rate
pitchfloatrad/sDesired pitch rate
yawfloatrad/sDesired yaw rate
thrustfloatCollective thrust, normalized to 0 .. 1

SET_ATTITUDE_TARGET (82)

Sets a desired vehicle attitude. Used by an external controller to command the vehicle (manual controller or other system).

0123456789abcdeftarget_systemtarget_componenttype_masktime_boot_ms[0:0 ]0004time_boot_ms[1:3 ]q[0:0 ]08q[1:3 ]body_roll_rate[0:0 ]0cbody_roll_rate[1:3 ]body_pitch_rate[0:0 ]10body_pitch_rate[1:3 ]body_yaw_rate[0:0 ]14body_yaw_rate[1:3 ]thrust[0:0 ]18thrust[1:3 ]thrust_body[0:0 ]1cthrust_body[1:2 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
type_maskuint8_tATTITUDE_TARGET_TYPEMASKBitmap to indicate which dimensions should be ignored by the vehicle.
time_boot_msuint32_tmsTimestamp (time since system boot).
qfloat[4]Attitude quaternion (w, x, y, z order, zero-rotation is 1, 0, 0, 0) from MAV_FRAME_LOCAL_NED to MAV_FRAME_BODY_FRD
body_roll_ratefloatrad/sBody roll rate
body_pitch_ratefloatrad/sBody pitch rate
body_yaw_ratefloatrad/sBody yaw rate
thrustfloatCollective thrust, normalized to 0 .. 1 (-1 .. 1 for vehicles capable of reverse trust)
thrust_bodyfloat[3]3D thrust setpoint in the body NED frame, normalized to -1 .. 1

ATTITUDE_TARGET (83)

Reports the current commanded attitude of the vehicle as specified by the autopilot. This should match the commands sent in a SET_ATTITUDE_TARGET message if the vehicle is being controlled this way.

0123456789abcdeftype_masktime_boot_ms[0:2 ]0004time_boot_ms[3:3 ]q[0:2 ]08q[3:3 ]body_roll_rate[0:2 ]0cbody_roll_rate[3:3 ]body_pitch_rate[0:2 ]10body_pitch_rate[3:3 ]body_yaw_rate[0:2 ]14body_yaw_rate[3:3 ]thrust[0:2 ]18thrust[3:3 ]
Field NameTypeUnitEnum ValuesDescription
type_maskuint8_tATTITUDE_TARGET_TYPEMASKBitmap to indicate which dimensions should be ignored by the vehicle.
time_boot_msuint32_tmsTimestamp (time since system boot).
qfloat[4]Attitude quaternion (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
body_roll_ratefloatrad/sBody roll rate
body_pitch_ratefloatrad/sBody pitch rate
body_yaw_ratefloatrad/sBody yaw rate
thrustfloatCollective thrust, normalized to 0 .. 1 (-1 .. 1 for vehicles capable of reverse trust)

SET_POSITION_TARGET_LOCAL_NED (84)

Sets a desired vehicle position in a local north-east-down coordinate frame. Used by an external controller to command the vehicle (manual controller or other system).

0123456789abcdeftarget_systemtarget_componentcoordinate_frametype_mask[0:0 ]0004type_mask[1:1 ]time_boot_ms[0:2 ]08time_boot_ms[3:3 ]x[0:2 ]0cx[3:3 ]y[0:2 ]10y[3:3 ]z[0:2 ]14z[3:3 ]vx[0:2 ]18vx[3:3 ]vy[0:2 ]1cvy[3:3 ]vz[0:2 ]20vz[3:3 ]afx[0:2 ]24afx[3:3 ]afy[0:2 ]28afy[3:3 ]afz[0:2 ]2cafz[3:3 ]yaw[0:2 ]30yaw[3:3 ]yaw_rate[0:2 ]34yaw_rate[3:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
coordinate_frameuint8_tMAV_FRAMEValid options are: MAV_FRAME_LOCAL_NED = 1, MAV_FRAME_LOCAL_OFFSET_NED = 7, MAV_FRAME_BODY_NED = 8, MAV_FRAME_BODY_OFFSET_NED = 9
type_maskuint16_tPOSITION_TARGET_TYPEMASKBitmap to indicate which dimensions should be ignored by the vehicle.
time_boot_msuint32_tmsTimestamp (time since system boot).
xfloatmX Position in NED frame
yfloatmY Position in NED frame
zfloatmZ Position in NED frame (note, altitude is negative in NED)
vxfloatm/sX velocity in NED frame
vyfloatm/sY velocity in NED frame
vzfloatm/sZ velocity in NED frame
afxfloatm/s/sX acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afyfloatm/s/sY acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afzfloatm/s/sZ acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
yawfloatradyaw setpoint
yaw_ratefloatrad/syaw rate setpoint

POSITION_TARGET_LOCAL_NED (85)

Reports the current commanded vehicle position, velocity, and acceleration as specified by the autopilot. This should match the commands sent in SET_POSITION_TARGET_LOCAL_NED if the vehicle is being controlled this way.

0123456789abcdefcoordinate_frametype_masktime_boot_ms[0:0 ]0004time_boot_ms[1:3 ]x[0:0 ]08x[1:3 ]y[0:0 ]0cy[1:3 ]z[0:0 ]10z[1:3 ]vx[0:0 ]14vx[1:3 ]vy[0:0 ]18vy[1:3 ]vz[0:0 ]1cvz[1:3 ]afx[0:0 ]20afx[1:3 ]afy[0:0 ]24afy[1:3 ]afz[0:0 ]28afz[1:3 ]yaw[0:0 ]2cyaw[1:3 ]yaw_rate[0:0 ]30yaw_rate[1:3 ]
Field NameTypeUnitEnum ValuesDescription
coordinate_frameuint8_tMAV_FRAMEValid options are: MAV_FRAME_LOCAL_NED = 1, MAV_FRAME_LOCAL_OFFSET_NED = 7, MAV_FRAME_BODY_NED = 8, MAV_FRAME_BODY_OFFSET_NED = 9
type_maskuint16_tPOSITION_TARGET_TYPEMASKBitmap to indicate which dimensions should be ignored by the vehicle.
time_boot_msuint32_tmsTimestamp (time since system boot).
xfloatmX Position in NED frame
yfloatmY Position in NED frame
zfloatmZ Position in NED frame (note, altitude is negative in NED)
vxfloatm/sX velocity in NED frame
vyfloatm/sY velocity in NED frame
vzfloatm/sZ velocity in NED frame
afxfloatm/s/sX acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afyfloatm/s/sY acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afzfloatm/s/sZ acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
yawfloatradyaw setpoint
yaw_ratefloatrad/syaw rate setpoint

SET_POSITION_TARGET_GLOBAL_INT (86)

Sets a desired vehicle position, velocity, and/or acceleration in a global coordinate system (WGS84). Used by an external controller to command the vehicle (manual controller or other system).

0123456789abcdeftarget_systemtarget_componentcoordinate_frametype_mask[0:0 ]0004type_mask[1:1 ]time_boot_ms[0:2 ]08time_boot_ms[3:3 ]lat_int[0:2 ]0clat_int[3:3 ]lon_int[0:2 ]10lon_int[3:3 ]alt[0:2 ]14alt[3:3 ]vx[0:2 ]18vx[3:3 ]vy[0:2 ]1cvy[3:3 ]vz[0:2 ]20vz[3:3 ]afx[0:2 ]24afx[3:3 ]afy[0:2 ]28afy[3:3 ]afz[0:2 ]2cafz[3:3 ]yaw[0:2 ]30yaw[3:3 ]yaw_rate[0:2 ]34yaw_rate[3:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
coordinate_frameuint8_tMAV_FRAMEValid options are: MAV_FRAME_GLOBAL = 0, MAV_FRAME_GLOBAL_RELATIVE_ALT = 3, MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 (MAV_FRAME_GLOBAL_INT, MAV_FRAME_GLOBAL_RELATIVE_ALT_INT, MAV_FRAME_GLOBAL_TERRAIN_ALT_INT are allowed synonyms, but have been deprecated)
type_maskuint16_tPOSITION_TARGET_TYPEMASKBitmap to indicate which dimensions should be ignored by the vehicle.
time_boot_msuint32_tmsTimestamp (time since system boot). The rationale for the timestamp in the setpoint is to allow the system to compensate for the transport delay of the setpoint. This allows the system to compensate processing latency.
lat_intint32_tdegE7Latitude in WGS84 frame
lon_intint32_tdegE7Longitude in WGS84 frame
altfloatmAltitude (MSL, Relative to home, or AGL - depending on frame)
vxfloatm/sX velocity in NED frame
vyfloatm/sY velocity in NED frame
vzfloatm/sZ velocity in NED frame
afxfloatm/s/sX acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afyfloatm/s/sY acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afzfloatm/s/sZ acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
yawfloatradyaw setpoint
yaw_ratefloatrad/syaw rate setpoint

POSITION_TARGET_GLOBAL_INT (87)

Reports the current commanded vehicle position, velocity, and acceleration as specified by the autopilot. This should match the commands sent in SET_POSITION_TARGET_GLOBAL_INT if the vehicle is being controlled this way.

0123456789abcdefcoordinate_frametype_masktime_boot_ms[0:0 ]0004time_boot_ms[1:3 ]lat_int[0:0 ]08lat_int[1:3 ]lon_int[0:0 ]0clon_int[1:3 ]alt[0:0 ]10alt[1:3 ]vx[0:0 ]14vx[1:3 ]vy[0:0 ]18vy[1:3 ]vz[0:0 ]1cvz[1:3 ]afx[0:0 ]20afx[1:3 ]afy[0:0 ]24afy[1:3 ]afz[0:0 ]28afz[1:3 ]yaw[0:0 ]2cyaw[1:3 ]yaw_rate[0:0 ]30yaw_rate[1:3 ]
Field NameTypeUnitEnum ValuesDescription
coordinate_frameuint8_tMAV_FRAMEValid options are: MAV_FRAME_GLOBAL = 0, MAV_FRAME_GLOBAL_RELATIVE_ALT = 3, MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 (MAV_FRAME_GLOBAL_INT, MAV_FRAME_GLOBAL_RELATIVE_ALT_INT, MAV_FRAME_GLOBAL_TERRAIN_ALT_INT are allowed synonyms, but have been deprecated)
type_maskuint16_tPOSITION_TARGET_TYPEMASKBitmap to indicate which dimensions should be ignored by the vehicle.
time_boot_msuint32_tmsTimestamp (time since system boot). The rationale for the timestamp in the setpoint is to allow the system to compensate for the transport delay of the setpoint. This allows the system to compensate processing latency.
lat_intint32_tdegE7Latitude in WGS84 frame
lon_intint32_tdegE7Longitude in WGS84 frame
altfloatmAltitude (MSL, AGL or relative to home altitude, depending on frame)
vxfloatm/sX velocity in NED frame
vyfloatm/sY velocity in NED frame
vzfloatm/sZ velocity in NED frame
afxfloatm/s/sX acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afyfloatm/s/sY acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
afzfloatm/s/sZ acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N
yawfloatradyaw setpoint
yaw_ratefloatrad/syaw rate setpoint

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (89)

The offset in X, Y, Z and yaw between the LOCAL_POSITION_NED messages of MAV X and the global coordinate frame in NED coordinates. Coordinate frame is right-handed, Z-axis down (aeronautical frame, NED / north-east-down convention)

0123456789abcdeftime_boot_ms0004x08y0cz10roll14pitch18yaw
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
xfloatmX Position
yfloatmY Position
zfloatmZ Position
rollfloatradRoll
pitchfloatradPitch
yawfloatradYaw

HIL_STATE (90)

Sent from simulation to autopilot. This packet is useful for high throughput applications such as hardware in the loop simulations.

0123456789abcdefvxvy0004vzxacc08yacczacc0croll10pitch14yaw18rollspeed1cpitchspeed20yawspeed24lat28lon2calt30time_usec[0:3 ]34time_usec[4:7 ]
Field NameTypeUnitDescription
vxint16_tcm/sGround X Speed (Latitude)
vyint16_tcm/sGround Y Speed (Longitude)
vzint16_tcm/sGround Z Speed (Altitude)
xaccint16_tmGX acceleration
yaccint16_tmGY acceleration
zaccint16_tmGZ acceleration
rollfloatradRoll angle
pitchfloatradPitch angle
yawfloatradYaw angle
rollspeedfloatrad/sBody frame roll / phi angular speed
pitchspeedfloatrad/sBody frame pitch / theta angular speed
yawspeedfloatrad/sBody frame yaw / psi angular speed
latint32_tdegE7Latitude
lonint32_tdegE7Longitude
altint32_tmmAltitude
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HIL_CONTROLS (91)

Sent from autopilot to simulation. Hardware in the loop control outputs. Alternative to HIL_ACTUATOR_CONTROLS.

0123456789abcdefmodenav_moderoll_ailerons[0:1 ]0004roll_ailerons[2:3 ]pitch_elevator[0:1 ]08pitch_elevator[2:3 ]yaw_rudder[0:1 ]0cyaw_rudder[2:3 ]throttle[0:1 ]10throttle[2:3 ]aux1[0:1 ]14aux1[2:3 ]aux2[0:1 ]18aux2[2:3 ]aux3[0:1 ]1caux3[2:3 ]aux4[0:1 ]20aux4[2:3 ]time_usec[0:1 ]24time_usec[2:5 ]28time_usec[6:7 ]
Field NameTypeUnitEnum ValuesDescription
modeuint8_tMAV_MODESystem mode.
nav_modeuint8_tNavigation mode (MAV_NAV_MODE)
roll_aileronsfloatControl output -1 .. 1
pitch_elevatorfloatControl output -1 .. 1
yaw_rudderfloatControl output -1 .. 1
throttlefloatThrottle 0 .. 1
aux1floatAux 1, -1 .. 1
aux2floatAux 2, -1 .. 1
aux3floatAux 3, -1 .. 1
aux4floatAux 4, -1 .. 1
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HIL_RC_INPUTS_RAW (92)

Sent from simulation to autopilot. The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.

0123456789abcdefrssichan1_rawchan2_raw[0:0 ]0004chan2_raw[1:1 ]chan3_rawchan4_raw[0:0 ]08chan4_raw[1:1 ]chan5_rawchan6_raw[0:0 ]0cchan6_raw[1:1 ]chan7_rawchan8_raw[0:0 ]10chan8_raw[1:1 ]chan9_rawchan10_raw[0:0 ]14chan10_raw[1:1 ]chan11_rawchan12_raw[0:0 ]18chan12_raw[1:1 ]time_usec[0:2 ]1ctime_usec[3:6 ]20time_usec[7:7 ]
Field NameTypeUnitDescription
rssiuint8_tReceive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown.
chan1_rawuint16_tusRC channel 1 value
chan2_rawuint16_tusRC channel 2 value
chan3_rawuint16_tusRC channel 3 value
chan4_rawuint16_tusRC channel 4 value
chan5_rawuint16_tusRC channel 5 value
chan6_rawuint16_tusRC channel 6 value
chan7_rawuint16_tusRC channel 7 value
chan8_rawuint16_tusRC channel 8 value
chan9_rawuint16_tusRC channel 9 value
chan10_rawuint16_tusRC channel 10 value
chan11_rawuint16_tusRC channel 11 value
chan12_rawuint16_tusRC channel 12 value
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HIL_ACTUATOR_CONTROLS (93)

Sent from autopilot to simulation. Hardware in the loop control outputs. Alternative to HIL_CONTROLS.

0123456789abcdefmodecontrols[0:2 ]0004controls[3:6 ]08controls[7:10 ]0ccontrols[11:14 ]10controls[15:15 ]time_usec[0:2 ]14time_usec[3:6 ]18time_usec[7:7 ]flags[0:2 ]1cflags[3:6 ]20flags[7:7 ]
Field NameTypeUnitEnum ValuesDescription
modeuint8_tMAV_MODE_FLAGSystem mode. Includes arming state.
controlsfloat[16]Control outputs -1 .. 1. Channel assignment depends on the simulated hardware.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
flagsuint64_tHIL_ACTUATOR_CONTROLS_FLAGSFlags bitmask.

OPTICAL_FLOW (100)

Optical flow from a flow sensor (e.g. optical mouse sensor)

0123456789abcdefsensor_idqualityflow_x0004flow_yflow_comp_m_x[0:1 ]08flow_comp_m_x[2:3 ]flow_comp_m_y[0:1 ]0cflow_comp_m_y[2:3 ]ground_distance[0:1 ]10ground_distance[2:3 ]time_usec[0:1 ]14time_usec[2:5 ]18time_usec[6:7 ]flow_rate_x[0:1 ]1cflow_rate_x[2:3 ]flow_rate_y[0:1 ]20flow_rate_y[2:3 ]
Field NameTypeUnitDescription
sensor_iduint8_tSensor ID
qualityuint8_tOptical flow quality / confidence. 0: bad, 255: maximum quality
flow_xint16_tdpixFlow in x-sensor direction
flow_yint16_tdpixFlow in y-sensor direction
flow_comp_m_xfloatm/sFlow in x-sensor direction, angular-speed compensated
flow_comp_m_yfloatm/sFlow in y-sensor direction, angular-speed compensated
ground_distancefloatmGround distance. Positive value: distance known. Negative value: Unknown distance
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
flow_rate_xfloatrad/sFlow rate about X axis
flow_rate_yfloatrad/sFlow rate about Y axis

GLOBAL_VISION_POSITION_ESTIMATE (101)

Global position/attitude estimate from a vision source.

0123456789abcdefx0004y08z0croll10pitch14yaw18usec[0:3 ]1cusec[4:7 ]20covariance[0:3 ]24covariance[4:7 ]28covariance[8:11 ]2ccovariance[12:15 ]30covariance[16:19 ]34covariance[20:20 ]reset_counter
Field NameTypeUnitDescription
xfloatmGlobal X position
yfloatmGlobal Y position
zfloatmGlobal Z position
rollfloatradRoll angle
pitchfloatradPitch angle
yawfloatradYaw angle
usecuint64_tusTimestamp (UNIX time or since system boot)
covariancefloat[21]Row-major representation of pose 6x6 cross-covariance matrix upper right triangle (states: x_global, y_global, z_global, roll, pitch, yaw; first six entries are the first ROW, next five entries are the second ROW, etc.). If unknown, assign NaN value to first element in the array.
reset_counteruint8_tEstimate reset counter. This should be incremented when the estimate resets in any of the dimensions (position, velocity, attitude, angular speed). This is designed to be used when e.g an external SLAM system detects a loop-closure and the estimate jumps.

VISION_POSITION_ESTIMATE (102)

Local position/attitude estimate from a vision source.

0123456789abcdefx0004y08z0croll10pitch14yaw18usec[0:3 ]1cusec[4:7 ]20covariance[0:3 ]24covariance[4:7 ]28covariance[8:11 ]2ccovariance[12:15 ]30covariance[16:19 ]34covariance[20:20 ]reset_counter
Field NameTypeUnitDescription
xfloatmLocal X position
yfloatmLocal Y position
zfloatmLocal Z position
rollfloatradRoll angle
pitchfloatradPitch angle
yawfloatradYaw angle
usecuint64_tusTimestamp (UNIX time or time since system boot)
covariancefloat[21]Row-major representation of pose 6x6 cross-covariance matrix upper right triangle (states: x, y, z, roll, pitch, yaw; first six entries are the first ROW, next five entries are the second ROW, etc.). If unknown, assign NaN value to first element in the array.
reset_counteruint8_tEstimate reset counter. This should be incremented when the estimate resets in any of the dimensions (position, velocity, attitude, angular speed). This is designed to be used when e.g an external SLAM system detects a loop-closure and the estimate jumps.

VISION_SPEED_ESTIMATE (103)

Speed estimate from a vision source.

0123456789abcdefx0004y08z0cusec[0:3 ]10usec[4:7 ]14covariance[0:3 ]18covariance[4:7 ]1ccovariance[8:8 ]reset_counter
Field NameTypeUnitDescription
xfloatm/sGlobal X speed
yfloatm/sGlobal Y speed
zfloatm/sGlobal Z speed
usecuint64_tusTimestamp (UNIX time or time since system boot)
covariancefloat[9]Row-major representation of 3x3 linear velocity covariance matrix (states: vx, vy, vz; 1st three entries - 1st row, etc.). If unknown, assign NaN value to first element in the array.
reset_counteruint8_tEstimate reset counter. This should be incremented when the estimate resets in any of the dimensions (position, velocity, attitude, angular speed). This is designed to be used when e.g an external SLAM system detects a loop-closure and the estimate jumps.

VICON_POSITION_ESTIMATE (104)

Global position estimate from a Vicon motion system source.

0123456789abcdefx0004y08z0croll10pitch14yaw18usec[0:3 ]1cusec[4:7 ]20covariance[0:3 ]24covariance[4:7 ]28covariance[8:11 ]2ccovariance[12:15 ]30covariance[16:19 ]34covariance[20:20 ]
Field NameTypeUnitDescription
xfloatmGlobal X position
yfloatmGlobal Y position
zfloatmGlobal Z position
rollfloatradRoll angle
pitchfloatradPitch angle
yawfloatradYaw angle
usecuint64_tusTimestamp (UNIX time or time since system boot)
covariancefloat[21]Row-major representation of 6x6 pose cross-covariance matrix upper right triangle (states: x, y, z, roll, pitch, yaw; first six entries are the first ROW, next five entries are the second ROW, etc.). If unknown, assign NaN value to first element in the array.

HIGHRES_IMU (105)

The IMU readings in SI units in NED body frame

0123456789abcdeffields_updatedxacc[0:1 ]0004xacc[2:3 ]yacc[0:1 ]08yacc[2:3 ]zacc[0:1 ]0czacc[2:3 ]xgyro[0:1 ]10xgyro[2:3 ]ygyro[0:1 ]14ygyro[2:3 ]zgyro[0:1 ]18zgyro[2:3 ]xmag[0:1 ]1cxmag[2:3 ]ymag[0:1 ]20ymag[2:3 ]zmag[0:1 ]24zmag[2:3 ]abs_pressure[0:1 ]28abs_pressure[2:3 ]diff_pressure[0:1 ]2cdiff_pressure[2:3 ]pressure_alt[0:1 ]30pressure_alt[2:3 ]temperature[0:1 ]34temperature[2:3 ]time_usec[0:1 ]38time_usec[2:5 ]3ctime_usec[6:7 ]id
Field NameTypeUnitEnum ValuesDescription
fields_updateduint16_tHIGHRES_IMU_UPDATED_FLAGSBitmap for fields that have updated since last message
xaccfloatm/s/sX acceleration
yaccfloatm/s/sY acceleration
zaccfloatm/s/sZ acceleration
xgyrofloatrad/sAngular speed around X axis
ygyrofloatrad/sAngular speed around Y axis
zgyrofloatrad/sAngular speed around Z axis
xmagfloatgaussX Magnetic field
ymagfloatgaussY Magnetic field
zmagfloatgaussZ Magnetic field
abs_pressurefloathPaAbsolute pressure
diff_pressurefloathPaDifferential pressure
pressure_altfloatAltitude calculated from pressure
temperaturefloatdegCTemperature
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
iduint8_tId. Ids are numbered from 0 and map to IMUs numbered from 1 (e.g. IMU1 will have a message with id=0)

OPTICAL_FLOW_RAD (106)

Optical flow from an angular rate flow sensor (e.g. PX4FLOW or mouse sensor)

0123456789abcdefsensor_idquality0002temperature04integration_time_us[0:1 ]06integration_time_us[2:3 ]08integrated_x[0:1 ]0aintegrated_x[2:3 ]0cintegrated_y[0:1 ]0eintegrated_y[2:3 ]10integrated_xgyro[0:1 ]12integrated_xgyro[2:3 ]14integrated_ygyro[0:1 ]16integrated_ygyro[2:3 ]18integrated_zgyro[0:1 ]1aintegrated_zgyro[2:3 ]1ctime_delta_distance_us[0:1 ]1etime_delta_distance_us[2:3 ]20distance[0:1 ]22distance[2:3 ]24time_usec[0:1 ]26time_usec[2:3 ]28time_usec[4:5 ]2atime_usec[6:7 ]
Field NameTypeUnitDescription
sensor_iduint8_tSensor ID
qualityuint8_tOptical flow quality / confidence. 0: no valid flow, 255: maximum quality
temperatureint16_tcdegCTemperature
integration_time_usuint32_tusIntegration time. Divide integrated_x and integrated_y by the integration time to obtain average flow. The integration time also indicates the.
integrated_xfloatradFlow around X axis (Sensor RH rotation about the X axis induces a positive flow. Sensor linear motion along the positive Y axis induces a negative flow.)
integrated_yfloatradFlow around Y axis (Sensor RH rotation about the Y axis induces a positive flow. Sensor linear motion along the positive X axis induces a positive flow.)
integrated_xgyrofloatradRH rotation around X axis
integrated_ygyrofloatradRH rotation around Y axis
integrated_zgyrofloatradRH rotation around Z axis
time_delta_distance_usuint32_tusTime since the distance was sampled.
distancefloatmDistance to the center of the flow field. Positive value (including zero): distance known. Negative value: Unknown distance.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HIL_SENSOR (107)

The IMU readings in SI units in NED body frame

0123456789abcdefxacc0004yacc08zacc0cxgyro10ygyro14zgyro18xmag1cymag20zmag24abs_pressure28diff_pressure2cpressure_alt30temperature34fields_updated38time_usec[0:3 ]3ctime_usec[4:7 ]40id
Field NameTypeUnitEnum ValuesDescription
xaccfloatm/s/sX acceleration
yaccfloatm/s/sY acceleration
zaccfloatm/s/sZ acceleration
xgyrofloatrad/sAngular speed around X axis in body frame
ygyrofloatrad/sAngular speed around Y axis in body frame
zgyrofloatrad/sAngular speed around Z axis in body frame
xmagfloatgaussX Magnetic field
ymagfloatgaussY Magnetic field
zmagfloatgaussZ Magnetic field
abs_pressurefloathPaAbsolute pressure
diff_pressurefloathPaDifferential pressure (airspeed)
pressure_altfloatAltitude calculated from pressure
temperaturefloatdegCTemperature
fields_updateduint32_tHIL_SENSOR_UPDATED_FLAGSBitmap for fields that have updated since last message
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
iduint8_tSensor ID (zero indexed). Used for multiple sensor inputs

SIM_STATE (108)

Status of simulation environment, if used

0123456789abcdefq10004q208q30cq410roll14pitch18yaw1cxacc20yacc24zacc28xgyro2cygyro30zgyro34lat38lon3calt40std_dev_horz44std_dev_vert48vn4cve50vd54lat_int58lon_int
Field NameTypeUnitDescription
q1floatTrue attitude quaternion component 1, w (1 in null-rotation)
q2floatTrue attitude quaternion component 2, x (0 in null-rotation)
q3floatTrue attitude quaternion component 3, y (0 in null-rotation)
q4floatTrue attitude quaternion component 4, z (0 in null-rotation)
rollfloatradAttitude roll expressed as Euler angles, not recommended except for human-readable outputs
pitchfloatradAttitude pitch expressed as Euler angles, not recommended except for human-readable outputs
yawfloatradAttitude yaw expressed as Euler angles, not recommended except for human-readable outputs
xaccfloatm/s/sX acceleration
yaccfloatm/s/sY acceleration
zaccfloatm/s/sZ acceleration
xgyrofloatrad/sAngular speed around X axis
ygyrofloatrad/sAngular speed around Y axis
zgyrofloatrad/sAngular speed around Z axis
latfloatdegLatitude (lower precision). Both this and the lat_int field should be set.
lonfloatdegLongitude (lower precision). Both this and the lon_int field should be set.
altfloatmAltitude
std_dev_horzfloatHorizontal position standard deviation
std_dev_vertfloatVertical position standard deviation
vnfloatm/sTrue velocity in north direction in earth-fixed NED frame
vefloatm/sTrue velocity in east direction in earth-fixed NED frame
vdfloatm/sTrue velocity in down direction in earth-fixed NED frame
lat_intint32_tdegE7Latitude (higher precision). If 0, recipients should use the lat field value (otherwise this field is preferred).
lon_intint32_tdegE7Longitude (higher precision). If 0, recipients should use the lon field value (otherwise this field is preferred).

RADIO_STATUS (109)

Status generated by radio and injected into MAVLink stream.

0123456789abcdefrssiremrssitxbufnoise0004remnoiserxerrorsfixed[0:0 ]08fixed[1:1 ]
Field NameTypeUnitDescription
rssiuint8_tLocal (message sender) received signal strength indication in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown.
remrssiuint8_tRemote (message receiver) signal strength indication in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown.
txbufuint8_t%Remaining free transmitter buffer space.
noiseuint8_tLocal background noise level. These are device dependent RSSI values (scale as approx 2x dB on SiK radios). Values: [0-254], UINT8_MAX: invalid/unknown.
remnoiseuint8_tRemote background noise level. These are device dependent RSSI values (scale as approx 2x dB on SiK radios). Values: [0-254], UINT8_MAX: invalid/unknown.
rxerrorsuint16_tCount of radio packet receive errors (since boot).
fixeduint16_tCount of error corrected radio packets (since boot).

FILE_TRANSFER_PROTOCOL (110)

File transfer protocol message: https://mavlink.io/en/services/ftp.html.

0123456789abcdeftarget_networktarget_systemtarget_componentpayload[0:0 ]0004payload[1:4 ]08payload[5:8 ]0cpayload[9:12 ]10payload[13:16 ]14payload[17:20 ]18payload[21:24 ]1cpayload[25:28 ]20payload[29:32 ]24payload[33:36 ]28payload[37:40 ]2cpayload[41:44 ]30payload[45:48 ]34payload[49:52 ]38payload[53:56 ]3cpayload[57:60 ]40payload[61:64 ]44payload[65:68 ]48payload[69:72 ]4cpayload[73:76 ]50payload[77:80 ]54payload[81:84 ]58payload[85:88 ]5cpayload[89:92 ]60payload[93:96 ]64payload[97:100 ]68payload[101:104 ]6cpayload[105:108 ]70payload[109:112 ]74payload[113:116 ]78payload[117:120 ]7cpayload[121:124 ]80payload[125:128 ]84payload[129:132 ]88payload[133:136 ]8cpayload[137:140 ]90payload[141:144 ]94payload[145:148 ]98payload[149:152 ]9cpayload[153:156 ]a0payload[157:160 ]a4payload[161:164 ]a8payload[165:168 ]acpayload[169:172 ]b0payload[173:176 ]b4payload[177:180 ]b8payload[181:184 ]bcpayload[185:188 ]c0payload[189:192 ]c4payload[193:196 ]c8payload[197:200 ]ccpayload[201:204 ]d0payload[205:208 ]d4payload[209:212 ]d8payload[213:216 ]dcpayload[217:220 ]e0payload[221:224 ]e4payload[225:228 ]e8payload[229:232 ]ecpayload[233:236 ]f0payload[237:240 ]f4payload[241:244 ]f8payload[245:248 ]fcpayload[249:250 ]
Field NameTypeDescription
target_networkuint8_tNetwork ID (0 for broadcast)
target_systemuint8_tSystem ID (0 for broadcast)
target_componentuint8_tComponent ID (0 for broadcast)
payloaduint8_t[251]Variable length payload. The length is defined by the remaining message length when subtracting the header and other fields. The content/format of this block is defined in https://mavlink.io/en/services/ftp.html.

TIMESYNC (111)

Time synchronization message. The message is used for both timesync requests and responses. The request is sent with ts1=syncing component timestamp and tc1=0, and may be broadcast or targeted to a specific system/component. The response is sent with ts1=syncing component timestamp (mirror back unchanged), and tc1=responding component timestamp, with the target_system and target_component set to ids of the original request. Systems can determine if they are receiving a request or response based on the value of tc. If the response has target_system==target_component==0 the remote system has not been updated to use the component IDs and cannot reliably timesync; the requester may report an error. Timestamps are UNIX Epoch time or time since system boot in nanoseconds (the timestamp format can be inferred by checking for the magnitude of the number; generally it doesn't matter as only the offset is used). The message sequence is repeated numerous times with results being filtered/averaged to estimate the offset. See also: https://mavlink.io/en/services/timesync.html.

0123456789abcdeftc1[0:3 ]0004tc1[4:7 ]08ts1[0:3 ]0cts1[4:7 ]10target_systemtarget_component
Field NameTypeUnitDescription
tc1int64_tnsTime sync timestamp 1. Syncing: 0. Responding: Timestamp of responding component.
ts1int64_tnsTime sync timestamp 2. Timestamp of syncing component (mirrored in response).
target_systemuint8_tTarget system id. Request: 0 (broadcast) or id of specific system. Response must contain system id of the requesting component.
target_componentuint8_tTarget component id. Request: 0 (broadcast) or id of specific component. Response must contain component id of the requesting component.

CAMERA_TRIGGER (112)

Camera-IMU triggering and synchronisation message.

0123456789abcdefseq0004time_usec[0:3 ]08time_usec[4:7 ]
Field NameTypeUnitDescription
sequint32_tImage frame sequence
time_usecuint64_tusTimestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HIL_GPS (113)

The global position, as returned by the Global Positioning System (GPS). This is NOT the global position estimate of the system, but rather a RAW sensor value. See message GLOBAL_POSITION_INT for the global position estimate.

0123456789abcdeffix_typesatellites_visibleeph0004epvvel08vnve0cvdcog10lat14lon18alt1ctime_usec[0:3 ]20time_usec[4:7 ]24idyaw
Field NameTypeUnitDescription
fix_typeuint8_t0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
satellites_visibleuint8_tNumber of satellites visible. If unknown, set to UINT8_MAX
ephuint16_tGPS HDOP horizontal dilution of position (unitless * 100). If unknown, set to: UINT16_MAX
epvuint16_tGPS VDOP vertical dilution of position (unitless * 100). If unknown, set to: UINT16_MAX
veluint16_tcm/sGPS ground speed. If unknown, set to: UINT16_MAX
vnint16_tcm/sGPS velocity in north direction in earth-fixed NED frame
veint16_tcm/sGPS velocity in east direction in earth-fixed NED frame
vdint16_tcm/sGPS velocity in down direction in earth-fixed NED frame
coguint16_tcdegCourse over ground (NOT heading, but direction of movement), 0.0..359.99 degrees. If unknown, set to: UINT16_MAX
latint32_tdegE7Latitude (WGS84)
lonint32_tdegE7Longitude (WGS84)
altint32_tmmAltitude (MSL). Positive for up.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
iduint8_tGPS ID (zero indexed). Used for multiple GPS inputs
yawuint16_tcdegYaw of vehicle relative to Earth's North, zero means not available, use 36000 for north

HIL_OPTICAL_FLOW (114)

Simulated optical flow from a flow sensor (e.g. PX4FLOW or optical mouse sensor)

0123456789abcdefsensor_idquality0002temperature04integration_time_us[0:1 ]06integration_time_us[2:3 ]08integrated_x[0:1 ]0aintegrated_x[2:3 ]0cintegrated_y[0:1 ]0eintegrated_y[2:3 ]10integrated_xgyro[0:1 ]12integrated_xgyro[2:3 ]14integrated_ygyro[0:1 ]16integrated_ygyro[2:3 ]18integrated_zgyro[0:1 ]1aintegrated_zgyro[2:3 ]1ctime_delta_distance_us[0:1 ]1etime_delta_distance_us[2:3 ]20distance[0:1 ]22distance[2:3 ]24time_usec[0:1 ]26time_usec[2:3 ]28time_usec[4:5 ]2atime_usec[6:7 ]
Field NameTypeUnitDescription
sensor_iduint8_tSensor ID
qualityuint8_tOptical flow quality / confidence. 0: no valid flow, 255: maximum quality
temperatureint16_tcdegCTemperature
integration_time_usuint32_tusIntegration time. Divide integrated_x and integrated_y by the integration time to obtain average flow. The integration time also indicates the.
integrated_xfloatradFlow in radians around X axis (Sensor RH rotation about the X axis induces a positive flow. Sensor linear motion along the positive Y axis induces a negative flow.)
integrated_yfloatradFlow in radians around Y axis (Sensor RH rotation about the Y axis induces a positive flow. Sensor linear motion along the positive X axis induces a positive flow.)
integrated_xgyrofloatradRH rotation around X axis
integrated_ygyrofloatradRH rotation around Y axis
integrated_zgyrofloatradRH rotation around Z axis
time_delta_distance_usuint32_tusTime since the distance was sampled.
distancefloatmDistance to the center of the flow field. Positive value (including zero): distance known. Negative value: Unknown distance.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HIL_STATE_QUATERNION (115)

Sent from simulation to autopilot, avoids in contrast to HIL_STATE singularities. This packet is useful for high throughput applications such as hardware in the loop simulations.

0123456789abcdefvx0002vy04vz06ind_airspeed08true_airspeed0axacc0cyacc0ezacc10attitude_quaternion[0:1 ]12attitude_quaternion[2:3 ]14rollspeed[0:1 ]16rollspeed[2:3 ]18pitchspeed[0:1 ]1apitchspeed[2:3 ]1cyawspeed[0:1 ]1eyawspeed[2:3 ]20lat[0:1 ]22lat[2:3 ]24lon[0:1 ]26lon[2:3 ]28alt[0:1 ]2aalt[2:3 ]2ctime_usec[0:1 ]2etime_usec[2:3 ]30time_usec[4:5 ]32time_usec[6:7 ]
Field NameTypeUnitDescription
vxint16_tcm/sGround X Speed (Latitude)
vyint16_tcm/sGround Y Speed (Longitude)
vzint16_tcm/sGround Z Speed (Altitude)
ind_airspeeduint16_tcm/sIndicated airspeed
true_airspeeduint16_tcm/sTrue airspeed
xaccint16_tmGX acceleration
yaccint16_tmGY acceleration
zaccint16_tmGZ acceleration
attitude_quaternionfloat[4]Vehicle attitude expressed as normalized quaternion in w, x, y, z order (with 1 0 0 0 being the null-rotation)
rollspeedfloatrad/sBody frame roll / phi angular speed
pitchspeedfloatrad/sBody frame pitch / theta angular speed
yawspeedfloatrad/sBody frame yaw / psi angular speed
latint32_tdegE7Latitude
lonint32_tdegE7Longitude
altint32_tmmAltitude
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

SCALED_IMU2 (116)

The RAW IMU readings for secondary 9DOF sensor setup. This message should contain the scaled values to the described units

0123456789abcdefxaccyacc0004zaccxgyro08ygyrozgyro0cxmagymag10zmagtime_boot_ms[0:1 ]14time_boot_ms[2:3 ]temperature
Field NameTypeUnitDescription
xaccint16_tmGX acceleration
yaccint16_tmGY acceleration
zaccint16_tmGZ acceleration
xgyroint16_tmrad/sAngular speed around X axis
ygyroint16_tmrad/sAngular speed around Y axis
zgyroint16_tmrad/sAngular speed around Z axis
xmagint16_tmgaussX Magnetic field
ymagint16_tmgaussY Magnetic field
zmagint16_tmgaussZ Magnetic field
time_boot_msuint32_tmsTimestamp (time since system boot).
temperatureint16_tcdegCTemperature, 0: IMU does not provide temperature values. If the IMU is at 0C it must send 1 (0.01C).

LOG_REQUEST_LIST (117)

Request a list of available logs. On some systems calling this may stop on-board logging until LOG_REQUEST_END is called. If there are no log files available this request shall be answered with one LOG_ENTRY message with id = 0 and num_logs = 0.

0123456789abcdeftarget_systemtarget_componentstart0004end
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
startuint16_tFirst log id (0 for first available)
enduint16_tLast log id (0xffff for last available)

LOG_ENTRY (118)

Reply to LOG_REQUEST_LIST

0123456789abcdefidnum_logs0004last_log_numtime_utc[0:1 ]08time_utc[2:3 ]size[0:1 ]0csize[2:3 ]
Field NameTypeUnitDescription
iduint16_tLog id
num_logsuint16_tTotal number of logs
last_log_numuint16_tHigh log number
time_utcuint32_tsUTC timestamp of log since 1970, or 0 if not available
sizeuint32_tbytesSize of the log (may be approximate)

LOG_REQUEST_DATA (119)

Request a chunk of a log

0123456789abcdeftarget_systemtarget_componentid0004ofs08count
Field NameTypeUnitDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
iduint16_tLog id (from LOG_ENTRY reply)
ofsuint32_tOffset into the log
countuint32_tbytesNumber of bytes

LOG_DATA (120)

Reply to LOG_REQUEST_DATA

0123456789abcdefcountdata[0:2 ]0004data[3:6 ]08data[7:10 ]0cdata[11:14 ]10data[15:18 ]14data[19:22 ]18data[23:26 ]1cdata[27:30 ]20data[31:34 ]24data[35:38 ]28data[39:42 ]2cdata[43:46 ]30data[47:50 ]34data[51:54 ]38data[55:58 ]3cdata[59:62 ]40data[63:66 ]44data[67:70 ]48data[71:74 ]4cdata[75:78 ]50data[79:82 ]54data[83:86 ]58data[87:89 ]id[0:0 ]5cid[1:1 ]ofs[0:2 ]60ofs[3:3 ]
Field NameTypeUnitDescription
countuint8_tbytesNumber of bytes (zero for end of log)
datauint8_t[90]log data
iduint16_tLog id (from LOG_ENTRY reply)
ofsuint32_tOffset into the log

LOG_ERASE (121)

Erase all logs

0123456789abcdeftarget_systemtarget_component
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

LOG_REQUEST_END (122)

Stop log transfer and resume normal logging

0123456789abcdeftarget_systemtarget_component
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

GPS_INJECT_DATA (123)

Data for injecting into the onboard GPS (used for DGPS)

0123456789abcdeftarget_systemtarget_componentlendata[0:0 ]0004data[1:4 ]08data[5:8 ]0cdata[9:12 ]10data[13:16 ]14data[17:20 ]18data[21:24 ]1cdata[25:28 ]20data[29:32 ]24data[33:36 ]28data[37:40 ]2cdata[41:44 ]30data[45:48 ]34data[49:52 ]38data[53:56 ]3cdata[57:60 ]40data[61:64 ]44data[65:68 ]48data[69:72 ]4cdata[73:76 ]50data[77:80 ]54data[81:84 ]58data[85:88 ]5cdata[89:92 ]60data[93:96 ]64data[97:100 ]68data[101:104 ]6cdata[105:108 ]70data[109:109 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
lenuint8_tbytesData length
datauint8_t[110]Raw data (110 is enough for 12 satellites of RTCMv2)

GPS2_RAW (124)

Second GPS data.

0123456789abcdeffix_typesatellites_visibledgps_numcheph[0:0 ]0004eph[1:1 ]epvvel[0:0 ]08vel[1:1 ]coglat[0:0 ]0clat[1:3 ]lon[0:0 ]10lon[1:3 ]alt[0:0 ]14alt[1:3 ]dgps_age[0:0 ]18dgps_age[1:3 ]time_usec[0:0 ]1ctime_usec[1:4 ]20time_usec[5:7 ]yaw[0:0 ]24yaw[1:1 ]alt_ellipsoid[0:2 ]28alt_ellipsoid[3:3 ]h_acc[0:2 ]2ch_acc[3:3 ]v_acc[0:2 ]30v_acc[3:3 ]vel_acc[0:2 ]34vel_acc[3:3 ]hdg_acc[0:2 ]38hdg_acc[3:3 ]
Field NameTypeUnitEnum ValuesDescription
fix_typeuint8_tGPS_FIX_TYPEGPS fix type.
satellites_visibleuint8_tNumber of satellites visible. If unknown, set to UINT8_MAX
dgps_numchuint8_tNumber of DGPS satellites
ephuint16_tGPS HDOP horizontal dilution of position (unitless * 100). If unknown, set to: UINT16_MAX
epvuint16_tGPS VDOP vertical dilution of position (unitless * 100). If unknown, set to: UINT16_MAX
veluint16_tcm/sGPS ground speed. If unknown, set to: UINT16_MAX
coguint16_tcdegCourse over ground (NOT heading, but direction of movement): 0.0..359.99 degrees. If unknown, set to: UINT16_MAX
latint32_tdegE7Latitude (WGS84)
lonint32_tdegE7Longitude (WGS84)
altint32_tmmAltitude (MSL). Positive for up.
dgps_ageuint32_tmsAge of DGPS info
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
yawuint16_tcdegYaw in earth frame from north. Use 0 if this GPS does not provide yaw. Use UINT16_MAX if this GPS is configured to provide yaw and is currently unable to provide it. Use 36000 for north.
alt_ellipsoidint32_tmmAltitude (above WGS84, EGM96 ellipsoid). Positive for up.
h_accuint32_tmmPosition uncertainty.
v_accuint32_tmmAltitude uncertainty.
vel_accuint32_tmm/sSpeed uncertainty.
hdg_accuint32_tdegE5Heading / track uncertainty

POWER_STATUS (125)

Power supply status

0123456789abcdefVccVservo0004flags
Field NameTypeUnitEnum ValuesDescription
Vccuint16_tmV5V rail voltage.
Vservouint16_tmVServo rail voltage.
flagsuint16_tMAV_POWER_STATUSBitmap of power supply status flags.

SERIAL_CONTROL (126)

Control a serial port. This can be used for raw access to an onboard serial peripheral such as a GPS or telemetry radio. It is designed to make it possible to update the devices firmware via MAVLink messages or change the devices settings. A message with zero bytes can be used to change just the baudrate.

0123456789abcdefdeviceflagscountdata[0:0 ]0004data[1:4 ]08data[5:8 ]0cdata[9:12 ]10data[13:16 ]14data[17:20 ]18data[21:24 ]1cdata[25:28 ]20data[29:32 ]24data[33:36 ]28data[37:40 ]2cdata[41:44 ]30data[45:48 ]34data[49:52 ]38data[53:56 ]3cdata[57:60 ]40data[61:64 ]44data[65:68 ]48data[69:69 ]timeoutbaudrate[0:0 ]4cbaudrate[1:3 ]target_system50target_component
Field NameTypeUnitEnum ValuesDescription
deviceuint8_tSERIAL_CONTROL_DEVSerial control device type.
flagsuint8_tSERIAL_CONTROL_FLAGBitmap of serial control flags.
countuint8_tbyteshow many bytes in this transfer
datauint8_t[70]serial data
timeoutuint16_tmsTimeout for reply data
baudrateuint32_tbits/sBaudrate of transfer. Zero means no change.
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

GPS_RTK (127)

RTK GPS data. Gives information on the relative baseline calculation the GPS is reporting

0123456789abcdefrtk_receiver_idrtk_health0002rtk_ratensats04baseline_coords_typewn[0:0 ]06wn[1:1 ]time_last_baseline_ms[0:0 ]08time_last_baseline_ms[1:2 ]0atime_last_baseline_ms[3:3 ]tow[0:0 ]0ctow[1:2 ]0etow[3:3 ]baseline_a_mm[0:0 ]10baseline_a_mm[1:2 ]12baseline_a_mm[3:3 ]baseline_b_mm[0:0 ]14baseline_b_mm[1:2 ]16baseline_b_mm[3:3 ]baseline_c_mm[0:0 ]18baseline_c_mm[1:2 ]1abaseline_c_mm[3:3 ]accuracy[0:0 ]1caccuracy[1:2 ]1eaccuracy[3:3 ]iar_num_hypotheses[0:0 ]20iar_num_hypotheses[1:2 ]22iar_num_hypotheses[3:3 ]
Field NameTypeUnitEnum ValuesDescription
rtk_receiver_iduint8_tIdentification of connected RTK receiver.
rtk_healthuint8_tGPS-specific health report for RTK data.
rtk_rateuint8_tHzRate of baseline messages being received by GPS
nsatsuint8_tCurrent number of sats used for RTK calculation.
baseline_coords_typeuint8_tRTK_BASELINE_COORDINATE_SYSTEMCoordinate system of baseline
wnuint16_tGPS Week Number of last baseline
time_last_baseline_msuint32_tmsTime since boot of last baseline message received.
towuint32_tmsGPS Time of Week of last baseline
baseline_a_mmint32_tmmCurrent baseline in ECEF x or NED north component.
baseline_b_mmint32_tmmCurrent baseline in ECEF y or NED east component.
baseline_c_mmint32_tmmCurrent baseline in ECEF z or NED down component.
accuracyuint32_tCurrent estimate of baseline accuracy.
iar_num_hypothesesint32_tCurrent number of integer ambiguity hypotheses.

GPS2_RTK (128)

RTK GPS data. Gives information on the relative baseline calculation the GPS is reporting

0123456789abcdefrtk_receiver_idrtk_health0002rtk_ratensats04baseline_coords_typewn[0:0 ]06wn[1:1 ]time_last_baseline_ms[0:0 ]08time_last_baseline_ms[1:2 ]0atime_last_baseline_ms[3:3 ]tow[0:0 ]0ctow[1:2 ]0etow[3:3 ]baseline_a_mm[0:0 ]10baseline_a_mm[1:2 ]12baseline_a_mm[3:3 ]baseline_b_mm[0:0 ]14baseline_b_mm[1:2 ]16baseline_b_mm[3:3 ]baseline_c_mm[0:0 ]18baseline_c_mm[1:2 ]1abaseline_c_mm[3:3 ]accuracy[0:0 ]1caccuracy[1:2 ]1eaccuracy[3:3 ]iar_num_hypotheses[0:0 ]20iar_num_hypotheses[1:2 ]22iar_num_hypotheses[3:3 ]
Field NameTypeUnitEnum ValuesDescription
rtk_receiver_iduint8_tIdentification of connected RTK receiver.
rtk_healthuint8_tGPS-specific health report for RTK data.
rtk_rateuint8_tHzRate of baseline messages being received by GPS
nsatsuint8_tCurrent number of sats used for RTK calculation.
baseline_coords_typeuint8_tRTK_BASELINE_COORDINATE_SYSTEMCoordinate system of baseline
wnuint16_tGPS Week Number of last baseline
time_last_baseline_msuint32_tmsTime since boot of last baseline message received.
towuint32_tmsGPS Time of Week of last baseline
baseline_a_mmint32_tmmCurrent baseline in ECEF x or NED north component.
baseline_b_mmint32_tmmCurrent baseline in ECEF y or NED east component.
baseline_c_mmint32_tmmCurrent baseline in ECEF z or NED down component.
accuracyuint32_tCurrent estimate of baseline accuracy.
iar_num_hypothesesint32_tCurrent number of integer ambiguity hypotheses.

SCALED_IMU3 (129)

The RAW IMU readings for 3rd 9DOF sensor setup. This message should contain the scaled values to the described units

0123456789abcdefxaccyacc0004zaccxgyro08ygyrozgyro0cxmagymag10zmagtime_boot_ms[0:1 ]14time_boot_ms[2:3 ]temperature
Field NameTypeUnitDescription
xaccint16_tmGX acceleration
yaccint16_tmGY acceleration
zaccint16_tmGZ acceleration
xgyroint16_tmrad/sAngular speed around X axis
ygyroint16_tmrad/sAngular speed around Y axis
zgyroint16_tmrad/sAngular speed around Z axis
xmagint16_tmgaussX Magnetic field
ymagint16_tmgaussY Magnetic field
zmagint16_tmgaussZ Magnetic field
time_boot_msuint32_tmsTimestamp (time since system boot).
temperatureint16_tcdegCTemperature, 0: IMU does not provide temperature values. If the IMU is at 0C it must send 1 (0.01C).

DATA_TRANSMISSION_HANDSHAKE (130)

Handshake message to initiate, control and stop image streaming when using the Image Transmission Protocol: https://mavlink.io/en/services/image_transmission.html.

0123456789abcdeftypepayloadjpg_qualitywidth[0:0 ]0004width[1:1 ]heightpackets[0:0 ]08packets[1:1 ]size[0:2 ]0csize[3:3 ]
Field NameTypeUnitEnum ValuesDescription
typeuint8_tMAVLINK_DATA_STREAM_TYPEType of requested/acknowledged data.
payloaduint8_tbytesPayload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only).
jpg_qualityuint8_t%JPEG quality. Values: [1-100].
widthuint16_tWidth of a matrix or image.
heightuint16_tHeight of a matrix or image.
packetsuint16_tNumber of packets being sent (set on ACK only).
sizeuint32_tbytestotal data size (set on ACK only).

ENCAPSULATED_DATA (131)

Data packet for images sent using the Image Transmission Protocol: https://mavlink.io/en/services/image_transmission.html.

0123456789abcdefdata[0:3 ]0004data[4:7 ]08data[8:11 ]0cdata[12:15 ]10data[16:19 ]14data[20:23 ]18data[24:27 ]1cdata[28:31 ]20data[32:35 ]24data[36:39 ]28data[40:43 ]2cdata[44:47 ]30data[48:51 ]34data[52:55 ]38data[56:59 ]3cdata[60:63 ]40data[64:67 ]44data[68:71 ]48data[72:75 ]4cdata[76:79 ]50data[80:83 ]54data[84:87 ]58data[88:91 ]5cdata[92:95 ]60data[96:99 ]64data[100:103 ]68data[104:107 ]6cdata[108:111 ]70data[112:115 ]74data[116:119 ]78data[120:123 ]7cdata[124:127 ]80data[128:131 ]84data[132:135 ]88data[136:139 ]8cdata[140:143 ]90data[144:147 ]94data[148:151 ]98data[152:155 ]9cdata[156:159 ]a0data[160:163 ]a4data[164:167 ]a8data[168:171 ]acdata[172:175 ]b0data[176:179 ]b4data[180:183 ]b8data[184:187 ]bcdata[188:191 ]c0data[192:195 ]c4data[196:199 ]c8data[200:203 ]ccdata[204:207 ]d0data[208:211 ]d4data[212:215 ]d8data[216:219 ]dcdata[220:223 ]e0data[224:227 ]e4data[228:231 ]e8data[232:235 ]ecdata[236:239 ]f0data[240:243 ]f4data[244:247 ]f8data[248:251 ]fcdata[252:252 ]seqnr
Field NameTypeDescription
datauint8_t[253]image data bytes
seqnruint16_tsequence number (starting with 0 on every transmission)

DISTANCE_SENSOR (132)

Distance sensor information for an onboard rangefinder.

0123456789abcdeftypeidorientationcovariance0004min_distancemax_distance08current_distancetime_boot_ms[0:1 ]0ctime_boot_ms[2:3 ]horizontal_fov[0:1 ]10horizontal_fov[2:3 ]vertical_fov[0:1 ]14vertical_fov[2:3 ]quaternion[0:1 ]18quaternion[2:3 ]signal_quality
Field NameTypeUnitEnum ValuesDescription
typeuint8_tMAV_DISTANCE_SENSORType of distance sensor.
iduint8_tOnboard ID of the sensor
orientationuint8_tMAV_SENSOR_ORIENTATIONDirection the sensor faces. downward-facing: ROTATION_PITCH_270, upward-facing: ROTATION_PITCH_90, backward-facing: ROTATION_PITCH_180, forward-facing: ROTATION_NONE, left-facing: ROTATION_YAW_90, right-facing: ROTATION_YAW_270
covarianceuint8_tcm^2Measurement variance. Max standard deviation is 6cm. UINT8_MAX if unknown.
min_distanceuint16_tcmMinimum distance the sensor can measure
max_distanceuint16_tcmMaximum distance the sensor can measure
current_distanceuint16_tcmCurrent distance reading
time_boot_msuint32_tmsTimestamp (time since system boot).
horizontal_fovfloatradHorizontal Field of View (angle) where the distance measurement is valid and the field of view is known. Otherwise this is set to 0.
vertical_fovfloatradVertical Field of View (angle) where the distance measurement is valid and the field of view is known. Otherwise this is set to 0.
quaternionfloat[4]Quaternion of the sensor orientation in vehicle body frame (w, x, y, z order, zero-rotation is 1, 0, 0, 0). Zero-rotation is along the vehicle body x-axis. This field is required if the orientation is set to MAV_SENSOR_ROTATION_CUSTOM. Set it to 0 if invalid."
signal_qualityuint8_t%Signal quality of the sensor. Specific to each sensor type, representing the relation of the signal strength with the target reflectivity, distance, size or aspect, but normalised as a percentage. 0 = unknown/unset signal quality, 1 = invalid signal, 100 = perfect signal.

TERRAIN_REQUEST (133)

Request for terrain data and terrain status. See terrain protocol docs: https://mavlink.io/en/services/terrain.html

0123456789abcdefgrid_spacinglat[0:1 ]0004lat[2:3 ]lon[0:1 ]08lon[2:3 ]mask[0:1 ]0cmask[2:5 ]10mask[6:7 ]
Field NameTypeUnitDescription
grid_spacinguint16_tmGrid spacing
latint32_tdegE7Latitude of SW corner of first grid
lonint32_tdegE7Longitude of SW corner of first grid
maskuint64_tBitmask of requested 4x4 grids (row major 8x7 array of grids, 56 bits)

TERRAIN_DATA (134)

Terrain data sent from GCS. The lat/lon and grid_spacing must be the same as a lat/lon from a TERRAIN_REQUEST. See terrain protocol docs: https://mavlink.io/en/services/terrain.html

0123456789abcdefgridbitgrid_spacingdata[0:0 ]0004data[1:4 ]08data[5:8 ]0cdata[9:12 ]10data[13:15 ]lat[0:0 ]14lat[1:3 ]lon[0:0 ]18lon[1:3 ]
Field NameTypeUnitDescription
gridbituint8_tbit within the terrain request mask
grid_spacinguint16_tmGrid spacing
dataint16_t[16]mTerrain data MSL
latint32_tdegE7Latitude of SW corner of first grid
lonint32_tdegE7Longitude of SW corner of first grid

TERRAIN_CHECK (135)

Request that the vehicle report terrain height at the given location (expected response is a TERRAIN_REPORT). Used by GCS to check if vehicle has all terrain data needed for a mission.

0123456789abcdeflat0004lon
Field NameTypeUnitDescription
latint32_tdegE7Latitude
lonint32_tdegE7Longitude

TERRAIN_REPORT (136)

Streamed from drone to report progress of terrain map download (initiated by TERRAIN_REQUEST), or sent as a response to a TERRAIN_CHECK request. See terrain protocol docs: https://mavlink.io/en/services/terrain.html

0123456789abcdefspacingpending0004loadedlat[0:1 ]08lat[2:3 ]lon[0:1 ]0clon[2:3 ]terrain_height[0:1 ]10terrain_height[2:3 ]current_height[0:1 ]14current_height[2:3 ]
Field NameTypeUnitDescription
spacinguint16_tgrid spacing (zero if terrain at this location unavailable)
pendinguint16_tNumber of 4x4 terrain blocks waiting to be received or read from disk
loadeduint16_tNumber of 4x4 terrain blocks in memory
latint32_tdegE7Latitude
lonint32_tdegE7Longitude
terrain_heightfloatmTerrain height MSL
current_heightfloatmCurrent vehicle height above lat/lon terrain height

SCALED_PRESSURE2 (137)

Barometer readings for 2nd barometer

0123456789abcdeftemperature0002time_boot_ms[0:1 ]04time_boot_ms[2:3 ]06press_abs[0:1 ]08press_abs[2:3 ]0apress_diff[0:1 ]0cpress_diff[2:3 ]0etemperature_press_diff
Field NameTypeUnitDescription
temperatureint16_tcdegCAbsolute pressure temperature
time_boot_msuint32_tmsTimestamp (time since system boot).
press_absfloathPaAbsolute pressure
press_difffloathPaDifferential pressure
temperature_press_diffint16_tcdegCDifferential pressure temperature (0, if not available). Report values of 0 (or 1) as 1 cdegC.

ATT_POS_MOCAP (138)

Motion capture attitude and position

0123456789abcdefq0004x08y0cz10time_usec[0:3 ]14time_usec[4:7 ]18covariance[0:3 ]1ccovariance[4:7 ]20covariance[8:11 ]24covariance[12:15 ]28covariance[16:19 ]2ccovariance[20:20 ]
Field NameTypeUnitDescription
qfloat[4]Attitude quaternion (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
xfloatmX position (NED)
yfloatmY position (NED)
zfloatmZ position (NED)
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
covariancefloat[21]Row-major representation of a pose 6x6 cross-covariance matrix upper right triangle (states: x, y, z, roll, pitch, yaw; first six entries are the first ROW, next five entries are the second ROW, etc.). If unknown, assign NaN value to first element in the array.

SET_ACTUATOR_CONTROL_TARGET (139)

Set the vehicle attitude and body angular rates.

0123456789abcdefgroup_mlxtarget_systemtarget_componentcontrols[0:0 ]0004controls[1:4 ]08controls[5:7 ]time_usec[0:0 ]0ctime_usec[1:4 ]10time_usec[5:7 ]
Field NameTypeUnitDescription
group_mlxuint8_tActuator group. The "_mlx" indicates this is a multi-instance message and a MAVLink parser should use this field to difference between instances.
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
controlsfloat[8]Actuator controls. Normed to -1..+1 where 0 is neutral position. Throttle for single rotation direction motors is 0..1, negative range for reverse direction. Standard mapping for attitude controls (group 0): (index 0-7): roll, pitch, yaw, throttle, flaps, spoilers, airbrakes, landing gear. Load a pass-through mixer to repurpose them as generic outputs.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

ACTUATOR_CONTROL_TARGET (140)

Set the vehicle attitude and body angular rates.

0123456789abcdefgroup_mlxcontrols[0:2 ]0004controls[3:6 ]08controls[7:7 ]time_usec[0:2 ]0ctime_usec[3:6 ]10time_usec[7:7 ]
Field NameTypeUnitDescription
group_mlxuint8_tActuator group. The "_mlx" indicates this is a multi-instance message and a MAVLink parser should use this field to difference between instances.
controlsfloat[8]Actuator controls. Normed to -1..+1 where 0 is neutral position. Throttle for single rotation direction motors is 0..1, negative range for reverse direction. Standard mapping for attitude controls (group 0): (index 0-7): roll, pitch, yaw, throttle, flaps, spoilers, airbrakes, landing gear. Load a pass-through mixer to repurpose them as generic outputs.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

ALTITUDE (141)

The current system altitude.

0123456789abcdefaltitude_monotonic0004altitude_amsl08altitude_local0caltitude_relative10altitude_terrain14bottom_clearance18time_usec[0:3 ]1ctime_usec[4:7 ]
Field NameTypeUnitDescription
altitude_monotonicfloatmThis altitude measure is initialized on system boot and monotonic (it is never reset, but represents the local altitude change). The only guarantee on this field is that it will never be reset and is consistent within a flight. The recommended value for this field is the uncorrected barometric altitude at boot time. This altitude will also drift and vary between flights.
altitude_amslfloatmThis altitude measure is strictly above mean sea level and might be non-monotonic (it might reset on events like GPS lock or when a new QNH value is set). It should be the altitude to which global altitude waypoints are compared to. Note that it is not the GPS altitude, however, most GPS modules already output MSL by default and not the WGS84 altitude.
altitude_localfloatmThis is the local altitude in the local coordinate frame. It is not the altitude above home, but in reference to the coordinate origin (0, 0, 0). It is up-positive.
altitude_relativefloatmThis is the altitude above the home position. It resets on each change of the current home position.
altitude_terrainfloatmThis is the altitude above terrain. It might be fed by a terrain database or an altimeter. Values smaller than -1000 should be interpreted as unknown.
bottom_clearancefloatmThis is not the altitude, but the clear space below the system according to the fused clearance estimate. It generally should max out at the maximum range of e.g. the laser altimeter. It is generally a moving target. A negative value indicates no measurement available.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

RESOURCE_REQUEST (142)

The autopilot is requesting a resource (file, binary, other type of data)

0123456789abcdefrequest_iduri_typeuri[0:1 ]0004uri[2:5 ]08uri[6:9 ]0curi[10:13 ]10uri[14:17 ]14uri[18:21 ]18uri[22:25 ]1curi[26:29 ]20uri[30:33 ]24uri[34:37 ]28uri[38:41 ]2curi[42:45 ]30uri[46:49 ]34uri[50:53 ]38uri[54:57 ]3curi[58:61 ]40uri[62:65 ]44uri[66:69 ]48uri[70:73 ]4curi[74:77 ]50uri[78:81 ]54uri[82:85 ]58uri[86:89 ]5curi[90:93 ]60uri[94:97 ]64uri[98:101 ]68uri[102:105 ]6curi[106:109 ]70uri[110:113 ]74uri[114:117 ]78uri[118:119 ]transfer_typestorage[0:0 ]7cstorage[1:4 ]80storage[5:8 ]84storage[9:12 ]88storage[13:16 ]8cstorage[17:20 ]90storage[21:24 ]94storage[25:28 ]98storage[29:32 ]9cstorage[33:36 ]a0storage[37:40 ]a4storage[41:44 ]a8storage[45:48 ]acstorage[49:52 ]b0storage[53:56 ]b4storage[57:60 ]b8storage[61:64 ]bcstorage[65:68 ]c0storage[69:72 ]c4storage[73:76 ]c8storage[77:80 ]ccstorage[81:84 ]d0storage[85:88 ]d4storage[89:92 ]d8storage[93:96 ]dcstorage[97:100 ]e0storage[101:104 ]e4storage[105:108 ]e8storage[109:112 ]ecstorage[113:116 ]f0storage[117:119 ]
Field NameTypeDescription
request_iduint8_tRequest ID. This ID should be reused when sending back URI contents
uri_typeuint8_tThe type of requested URI. 0 = a file via URL. 1 = a UAVCAN binary
uriuint8_t[120]The requested unique resource identifier (URI). It is not necessarily a straight domain name (depends on the URI type enum)
transfer_typeuint8_tThe way the autopilot wants to receive the URI. 0 = MAVLink FTP. 1 = binary stream.
storageuint8_t[120]The storage path the autopilot wants the URI to be stored in. Will only be valid if the transfer_type has a storage associated (e.g. MAVLink FTP).

SCALED_PRESSURE3 (143)

Barometer readings for 3rd barometer

0123456789abcdeftemperature0002time_boot_ms[0:1 ]04time_boot_ms[2:3 ]06press_abs[0:1 ]08press_abs[2:3 ]0apress_diff[0:1 ]0cpress_diff[2:3 ]0etemperature_press_diff
Field NameTypeUnitDescription
temperatureint16_tcdegCAbsolute pressure temperature
time_boot_msuint32_tmsTimestamp (time since system boot).
press_absfloathPaAbsolute pressure
press_difffloathPaDifferential pressure
temperature_press_diffint16_tcdegCDifferential pressure temperature (0, if not available). Report values of 0 (or 1) as 1 cdegC.

FOLLOW_TARGET (144)

Current motion information from a designated system

0123456789abcdefest_capabilitieslat[0:2 ]0004lat[3:3 ]lon[0:2 ]08lon[3:3 ]alt[0:2 ]0calt[3:3 ]vel10accattitude_q[0:0 ]14attitude_q[1:3 ]rates[0:0 ]18rates[1:2 ]position_cov[0:1 ]1cposition_cov[2:2 ]timestamp[0:2 ]20timestamp[3:6 ]24timestamp[7:7 ]custom_state[0:2 ]28custom_state[3:6 ]2ccustom_state[7:7 ]
Field NameTypeUnitDescription
est_capabilitiesuint8_tbit positions for tracker reporting capabilities (POS = 0, VEL = 1, ACCEL = 2, ATT + RATES = 3)
latint32_tdegE7Latitude (WGS84)
lonint32_tdegE7Longitude (WGS84)
altfloatmAltitude (MSL)
velfloat[3]m/starget velocity (0,0,0) for unknown
accfloat[3]m/s/slinear target acceleration (0,0,0) for unknown
attitude_qfloat[4](0 0 0 0 for unknown)
ratesfloat[3](0 0 0 for unknown)
position_covfloat[3]eph epv
timestampuint64_tmsTimestamp (time since system boot).
custom_stateuint64_tbutton states or switches of a tracker device

CONTROL_SYSTEM_STATE (146)

The smoothed, monotonic system state used to feed the control loops of the system.

0123456789abcdefx_acc0004y_acc08z_acc0cx_vel10y_vel14z_vel18x_pos1cy_pos20z_pos24airspeed28vel_variancepos_variance[0:0 ]2cpos_variance[1:2 ]q[0:1 ]30q[2:3 ]roll_rate[0:1 ]34roll_rate[2:3 ]pitch_rate[0:1 ]38pitch_rate[2:3 ]yaw_rate[0:1 ]3cyaw_rate[2:3 ]time_usec[0:1 ]40time_usec[2:5 ]44time_usec[6:7 ]
Field NameTypeUnitDescription
x_accfloatm/s/sX acceleration in body frame
y_accfloatm/s/sY acceleration in body frame
z_accfloatm/s/sZ acceleration in body frame
x_velfloatm/sX velocity in body frame
y_velfloatm/sY velocity in body frame
z_velfloatm/sZ velocity in body frame
x_posfloatmX position in local frame
y_posfloatmY position in local frame
z_posfloatmZ position in local frame
airspeedfloatm/sAirspeed, set to -1 if unknown
vel_variancefloat[3]Variance of body velocity estimate
pos_variancefloat[3]Variance in local position
qfloat[4]The attitude, represented as Quaternion
roll_ratefloatrad/sAngular rate in roll axis
pitch_ratefloatrad/sAngular rate in pitch axis
yaw_ratefloatrad/sAngular rate in yaw axis
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

BATTERY_STATUS (147)

Battery information. Updates GCS with flight controller battery status. Smart batteries also use this message, but may additionally send BATTERY_INFO.

0123456789abcdefidbattery_functiontypebattery_remaining0004temperaturevoltages[0:1 ]08voltages[2:5 ]0cvoltages[6:9 ]10current_batterycurrent_consumed[0:1 ]14current_consumed[2:3 ]energy_consumed[0:1 ]18energy_consumed[2:3 ]time_remaining[0:1 ]1ctime_remaining[2:3 ]charge_statevoltages_ext[0:0 ]20voltages_ext[1:3 ]mode24fault_bitmask
Field NameTypeUnitEnum ValuesDescription
iduint8_tBattery ID
battery_functionuint8_tMAV_BATTERY_FUNCTIONFunction of the battery
typeuint8_tMAV_BATTERY_TYPEType (chemistry) of the battery
battery_remainingint8_t%Remaining battery energy. Values: [0-100], -1: autopilot does not estimate the remaining battery.
temperatureint16_tcdegCTemperature of the battery. INT16_MAX for unknown temperature.
voltagesuint16_t[10]mVBattery voltage of cells 1 to 10 (see voltages_ext for cells 11-14). Cells in this field above the valid cell count for this battery should have the UINT16_MAX value. If individual cell voltages are unknown or not measured for this battery, then the overall battery voltage should be filled in cell 0, with all others set to UINT16_MAX. If the voltage of the battery is greater than (UINT16_MAX - 1), then cell 0 should be set to (UINT16_MAX - 1), and cell 1 to the remaining voltage. This can be extended to multiple cells if the total voltage is greater than 2 * (UINT16_MAX - 1).
current_batteryint16_tcABattery current, -1: autopilot does not measure the current
current_consumedint32_tmAhConsumed charge, -1: autopilot does not provide consumption estimate
energy_consumedint32_thJConsumed energy, -1: autopilot does not provide energy consumption estimate
time_remainingint32_tsRemaining battery time, 0: autopilot does not provide remaining battery time estimate
charge_stateuint8_tMAV_BATTERY_CHARGE_STATEState for extent of discharge, provided by autopilot for warning or external reactions
voltages_extuint16_t[4]mVBattery voltages for cells 11 to 14. Cells above the valid cell count for this battery should have a value of 0, where zero indicates not supported (note, this is different than for the voltages field and allows empty byte truncation). If the measured value is 0 then 1 should be sent instead.
modeuint8_tMAV_BATTERY_MODEBattery mode. Default (0) is that battery mode reporting is not supported or battery is in normal-use mode.
fault_bitmaskuint32_tMAV_BATTERY_FAULTFault/health indications. These should be set when charge_state is MAV_BATTERY_CHARGE_STATE_FAILED or MAV_BATTERY_CHARGE_STATE_UNHEALTHY (if not, fault reporting is not supported).

AUTOPILOT_VERSION (148)

Version and capability of autopilot software. This should be emitted in response to a request with MAV_CMD_REQUEST_MESSAGE.

0123456789abcdefflight_custom_version[0:1 ]0002flight_custom_version[2:3 ]04flight_custom_version[4:5 ]06flight_custom_version[6:7 ]08middleware_custom_version[0:1 ]0amiddleware_custom_version[2:3 ]0cmiddleware_custom_version[4:5 ]0emiddleware_custom_version[6:7 ]10os_custom_version[0:1 ]12os_custom_version[2:3 ]14os_custom_version[4:5 ]16os_custom_version[6:7 ]18vendor_id1aproduct_id1cflight_sw_version[0:1 ]1eflight_sw_version[2:3 ]20middleware_sw_version[0:1 ]22middleware_sw_version[2:3 ]24os_sw_version[0:1 ]26os_sw_version[2:3 ]28board_version[0:1 ]2aboard_version[2:3 ]2ccapabilities[0:1 ]2ecapabilities[2:3 ]30capabilities[4:5 ]32capabilities[6:7 ]34uid[0:1 ]36uid[2:3 ]38uid[4:5 ]3auid[6:7 ]3cuid2[0:1 ]3euid2[2:3 ]40uid2[4:5 ]42uid2[6:7 ]44uid2[8:9 ]46uid2[10:11 ]48uid2[12:13 ]4auid2[14:15 ]4cuid2[16:17 ]
Field NameTypeEnum ValuesDescription
flight_custom_versionuint8_t[8]Custom version field, commonly the first 8 bytes of the git hash. This is not an unique identifier, but should allow to identify the commit using the main version number even for very large code bases.
middleware_custom_versionuint8_t[8]Custom version field, commonly the first 8 bytes of the git hash. This is not an unique identifier, but should allow to identify the commit using the main version number even for very large code bases.
os_custom_versionuint8_t[8]Custom version field, commonly the first 8 bytes of the git hash. This is not an unique identifier, but should allow to identify the commit using the main version number even for very large code bases.
vendor_iduint16_tID of the board vendor
product_iduint16_tID of the product
flight_sw_versionuint32_tFirmware version number.
The field must be encoded as 4 bytes, where each byte (shown from MSB to LSB) is part of a semantic version: (major) (minor) (patch) (FIRMWARE_VERSION_TYPE).
middleware_sw_versionuint32_tMiddleware version number
os_sw_versionuint32_tOperating system version number
board_versionuint32_tHW / board version (last 8 bits should be silicon ID, if any). The first 16 bits of this field specify a board type from an enumeration stored at https://github.com/PX4/PX4-Bootloader/blob/master/board_types.txt and with extensive additions at https://github.com/ArduPilot/ardupilot/blob/master/Tools/AP_Bootloader/board_types.txt
capabilitiesuint64_tMAV_PROTOCOL_CAPABILITYBitmap of capabilities
uiduint64_tUID if provided by hardware (see uid2)
uid2uint8_t[18]UID if provided by hardware (supersedes the uid field. If this is non-zero, use this field, otherwise use uid)

LANDING_TARGET (149)

The location of a landing target. See: https://mavlink.io/en/services/landing_target.html

0123456789abcdeftarget_numframeangle_x[0:1 ]0004angle_x[2:3 ]angle_y[0:1 ]08angle_y[2:3 ]distance[0:1 ]0cdistance[2:3 ]size_x[0:1 ]10size_x[2:3 ]size_y[0:1 ]14size_y[2:3 ]time_usec[0:1 ]18time_usec[2:5 ]1ctime_usec[6:7 ]x[0:1 ]20x[2:3 ]y[0:1 ]24y[2:3 ]z[0:1 ]28z[2:3 ]q[0:1 ]2cq[2:3 ]typeposition_valid
Field NameTypeUnitEnum ValuesDescription
target_numuint8_tThe ID of the target if multiple targets are present
frameuint8_tMAV_FRAMECoordinate frame used for following fields.
angle_xfloatradX-axis angular offset of the target from the center of the image
angle_yfloatradY-axis angular offset of the target from the center of the image
distancefloatmDistance to the target from the vehicle
size_xfloatradSize of target along x-axis
size_yfloatradSize of target along y-axis
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
xfloatmX Position of the landing target in MAV_FRAME
yfloatmY Position of the landing target in MAV_FRAME
zfloatmZ Position of the landing target in MAV_FRAME
qfloat[4]Quaternion of landing target orientation (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
typeuint8_tLANDING_TARGET_TYPEType of landing target
position_validuint8_tMAV_BOOLPosition fields (x, y, z, q, type) contain valid target position information (MAV_BOOL_FALSE: invalid values). Values not equal to 0 or 1 are invalid.

FLEXIFUNCTION_SET (150)

Depreciated but used as a compiler flag. Do not remove

0123456789abcdeftarget_systemtarget_component
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

FLEXIFUNCTION_READ_REQ (151)

Request reading of flexifunction data

0123456789abcdeftarget_systemtarget_componentread_req_type0004data_index
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
read_req_typeint16_tType of flexifunction data requested
data_indexint16_tindex into data where needed

FLEXIFUNCTION_BUFFER_FUNCTION (152)

Flexifunction type and parameters for component at function index from buffer

0123456789abcdeftarget_systemtarget_componentdata[0:1 ]0004data[2:5 ]08data[6:9 ]0cdata[10:13 ]10data[14:17 ]14data[18:21 ]18data[22:25 ]1cdata[26:29 ]20data[30:33 ]24data[34:37 ]28data[38:41 ]2cdata[42:45 ]30data[46:47 ]func_index34func_countdata_address38data_size
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
dataint8_t[48]Settings data
func_indexuint16_tFunction index
func_countuint16_tTotal count of functions
data_addressuint16_tAddress in the flexifunction data, Set to 0xFFFF to use address in target memory
data_sizeuint16_tSize of the

FLEXIFUNCTION_BUFFER_FUNCTION_ACK (153)

Flexifunction type and parameters for component at function index from buffer

0123456789abcdeftarget_systemtarget_componentfunc_index0004result
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
func_indexuint16_tFunction index
resultuint16_tresult of acknowledge, 0=fail, 1=good

DIGICAM_CONFIGURE (154)

Configure on-board Camera Control System.

0123456789abcdeftarget_systemtarget_componentmodeaperture0004isoexposure_typecommand_idengine_cut_off08extra_paramshutter_speedextra_value[0:0 ]0cextra_value[1:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
modeuint8_tMode enumeration from 1 to N //P, TV, AV, M, etc. (0 means ignore).
apertureuint8_tF stop number x 10 //e.g. 28 means 2.8 (0 means ignore).
isouint8_tISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore).
exposure_typeuint8_tExposure type enumeration from 1 to N (0 means ignore).
command_iduint8_tCommand Identity (incremental loop: 0 to 255). //A command sent multiple times will be executed or pooled just once.
engine_cut_offuint8_tdsMain engine cut-off time before camera trigger (0 means no cut-off).
extra_paramuint8_tExtra parameters enumeration (0 means ignore).
shutter_speeduint16_tDivisor number //e.g. 1000 means 1/1000 (0 means ignore).
extra_valuefloatCorrespondent value to given extra_param.

FLEXIFUNCTION_DIRECTORY (155)

Acknowledge success or failure of a flexifunction command

0123456789abcdeftarget_systemtarget_componentdirectory_typestart_index0004countdirectory_data[0:2 ]08directory_data[3:6 ]0cdirectory_data[7:10 ]10directory_data[11:14 ]14directory_data[15:18 ]18directory_data[19:22 ]1cdirectory_data[23:26 ]20directory_data[27:30 ]24directory_data[31:34 ]28directory_data[35:38 ]2cdirectory_data[39:42 ]30directory_data[43:46 ]34directory_data[47:47 ]
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
directory_typeuint8_t0=inputs, 1=outputs
start_indexuint8_tindex of first directory entry to write
countuint8_tcount of directory entries to write
directory_dataint8_t[48]Settings data

FLEXIFUNCTION_DIRECTORY_ACK (156)

Acknowledge success or failure of a flexifunction command

0123456789abcdeftarget_systemtarget_componentdirectory_typestart_index0004countresult
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
directory_typeuint8_t0=inputs, 1=outputs
start_indexuint8_tindex of first directory entry to write
countuint8_tcount of directory entries to write
resultuint16_tresult of acknowledge, 0=fail, 1=good

FLEXIFUNCTION_COMMAND (157)

Acknowledge success or failure of a flexifunction command

0123456789abcdeftarget_systemtarget_componentcommand_type
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
command_typeuint8_tFlexifunction command type

FLEXIFUNCTION_COMMAND_ACK (158)

Acknowledge success or failure of a flexifunction command

0123456789abcdefcommand_typeresult
Field NameTypeDescription
command_typeuint16_tCommand acknowledged
resultuint16_tresult of acknowledge

FENCE_POINT (160)

A fence point. Used to set a point when from GCS -> MAV. Also used to return a point from MAV -> GCS.

0123456789abcdeftarget_systemtarget_componentidxcount0004lat08lng
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
idxuint8_tPoint index (first point is 1, 0 is for return point).
countuint8_tTotal number of points (for sanity checking).
latfloatdegLatitude of point.
lngfloatdegLongitude of point.

FENCE_FETCH_POINT (161)

Request a current fence point from MAV.

0123456789abcdeftarget_systemtarget_componentidx
Field NameTypeDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
idxuint8_tPoint index (first point is 1, 0 is for return point).

FENCE_STATUS (162)

Status of geo-fencing. Sent in extended status stream when fencing enabled.

0123456789abcdefbreach_statusbreach_typebreach_count0004breach_time08breach_mitigation
Field NameTypeUnitEnum ValuesDescription
breach_statusuint8_tBreach status (0 if currently inside fence, 1 if outside).
breach_typeuint8_tFENCE_BREACHLast breach type.
breach_countuint16_tNumber of fence breaches.
breach_timeuint32_tmsTime (since boot) of last breach.
breach_mitigationuint8_tFENCE_MITIGATEActive action to prevent fence breach

AHRS (163)

Status of DCM attitude estimator.

0123456789abcdefomegaIx0004omegaIy08omegaIz0caccel_weight10renorm_val14error_rp18error_yaw
Field NameTypeUnitDescription
omegaIxfloatrad/sX gyro drift estimate.
omegaIyfloatrad/sY gyro drift estimate.
omegaIzfloatrad/sZ gyro drift estimate.
accel_weightfloatAverage accel_weight.
renorm_valfloatAverage renormalisation value.
error_rpfloatAverage error_roll_pitch value.
error_yawfloatAverage error_yaw value.

SIMSTATE (164)

Status of simulation environment, if used.

0123456789abcdefroll0004pitch08yaw0cxacc10yacc14zacc18xgyro1cygyro20zgyro24lat28lng
Field NameTypeUnitDescription
rollfloatradRoll angle.
pitchfloatradPitch angle.
yawfloatradYaw angle.
xaccfloatm/s/sX acceleration.
yaccfloatm/s/sY acceleration.
zaccfloatm/s/sZ acceleration.
xgyrofloatrad/sAngular speed around X axis.
ygyrofloatrad/sAngular speed around Y axis.
zgyrofloatrad/sAngular speed around Z axis.
latint32_tdegE7Latitude.
lngint32_tdegE7Longitude.

HWSTATUS (165)

Status of key hardware.

0123456789abcdefI2CerrVcc
Field NameTypeUnitDescription
I2Cerruint8_tI2C error count.
Vccuint16_tmVBoard voltage.

RADIO (166)

Status generated by radio.

0123456789abcdefrssiremrssitxbufnoise0004remnoiserxerrorsfixed[0:0 ]08fixed[1:1 ]
Field NameTypeUnitDescription
rssiuint8_tLocal signal strength.
remrssiuint8_tRemote signal strength.
txbufuint8_t%How full the tx buffer is.
noiseuint8_tBackground noise level.
remnoiseuint8_tRemote background noise level.
rxerrorsuint16_tReceive errors.
fixeduint16_tCount of error corrected packets.

LIMITS_STATUS (167)

Status of AP_Limits. Sent in extended status stream when AP_Limits is enabled.

0123456789abcdeflimits_statemods_enabledmods_requiredmods_triggered0004breach_countlast_trigger[0:1 ]08last_trigger[2:3 ]last_action[0:1 ]0clast_action[2:3 ]last_recovery[0:1 ]10last_recovery[2:3 ]last_clear[0:1 ]14last_clear[2:3 ]
Field NameTypeUnitEnum ValuesDescription
limits_stateuint8_tLIMITS_STATEState of AP_Limits.
mods_enableduint8_tLIMIT_MODULEAP_Limit_Module bitfield of enabled modules.
mods_requireduint8_tLIMIT_MODULEAP_Limit_Module bitfield of required modules.
mods_triggereduint8_tLIMIT_MODULEAP_Limit_Module bitfield of triggered modules.
breach_countuint16_tNumber of fence breaches.
last_triggeruint32_tmsTime (since boot) of last breach.
last_actionuint32_tmsTime (since boot) of last recovery action.
last_recoveryuint32_tmsTime (since boot) of last successful recovery.
last_clearuint32_tmsTime (since boot) of last all-clear.

WIND (168)

Wind estimation.

0123456789abcdefdirection0004speed08speed_z
Field NameTypeUnitDescription
directionfloatdegWind direction (that wind is coming from).
speedfloatm/sWind speed in ground plane.
speed_zfloatm/sVertical wind speed.

DATA16 (169)

Data packet, size 16.

0123456789abcdeftypelendata[0:1 ]0004data[2:5 ]08data[6:9 ]0cdata[10:13 ]10data[14:15 ]
Field NameTypeUnitDescription
typeuint8_tData type.
lenuint8_tbytesData length.
datauint8_t[16]Raw data.

SERIAL_UDB_EXTRA_F2_A (170)

Backwards compatible MAVLink version of SERIAL_UDB_EXTRA - F2: Format Part A

0123456789abcdefsue_statussue_waypoint_index[0:0 ]0002sue_waypoint_index[1:1 ]sue_rmat0[0:0 ]04sue_rmat0[1:1 ]sue_rmat1[0:0 ]06sue_rmat1[1:1 ]sue_rmat2[0:0 ]08sue_rmat2[1:1 ]sue_rmat3[0:0 ]0asue_rmat3[1:1 ]sue_rmat4[0:0 ]0csue_rmat4[1:1 ]sue_rmat5[0:0 ]0esue_rmat5[1:1 ]sue_rmat6[0:0 ]10sue_rmat6[1:1 ]sue_rmat7[0:0 ]12sue_rmat7[1:1 ]sue_rmat8[0:0 ]14sue_rmat8[1:1 ]sue_cog[0:0 ]16sue_cog[1:1 ]sue_sog[0:0 ]18sue_sog[1:1 ]sue_cpu_load[0:0 ]1asue_cpu_load[1:1 ]sue_air_speed_3DIMU[0:0 ]1csue_air_speed_3DIMU[1:1 ]sue_estimated_wind_0[0:0 ]1esue_estimated_wind_0[1:1 ]sue_estimated_wind_1[0:0 ]20sue_estimated_wind_1[1:1 ]sue_estimated_wind_2[0:0 ]22sue_estimated_wind_2[1:1 ]sue_magFieldEarth0[0:0 ]24sue_magFieldEarth0[1:1 ]sue_magFieldEarth1[0:0 ]26sue_magFieldEarth1[1:1 ]sue_magFieldEarth2[0:0 ]28sue_magFieldEarth2[1:1 ]sue_svs[0:0 ]2asue_svs[1:1 ]sue_hdop[0:0 ]2csue_hdop[1:1 ]sue_time[0:0 ]2esue_time[1:2 ]30sue_time[3:3 ]sue_latitude[0:0 ]32sue_latitude[1:2 ]34sue_latitude[3:3 ]sue_longitude[0:0 ]36sue_longitude[1:2 ]38sue_longitude[3:3 ]sue_altitude[0:0 ]3asue_altitude[1:2 ]3csue_altitude[3:3 ]
Field NameTypeDescription
sue_statusuint8_tSerial UDB Extra Status
sue_waypoint_indexuint16_tSerial UDB Extra Waypoint Index
sue_rmat0int16_tSerial UDB Extra Rmat 0
sue_rmat1int16_tSerial UDB Extra Rmat 1
sue_rmat2int16_tSerial UDB Extra Rmat 2
sue_rmat3int16_tSerial UDB Extra Rmat 3
sue_rmat4int16_tSerial UDB Extra Rmat 4
sue_rmat5int16_tSerial UDB Extra Rmat 5
sue_rmat6int16_tSerial UDB Extra Rmat 6
sue_rmat7int16_tSerial UDB Extra Rmat 7
sue_rmat8int16_tSerial UDB Extra Rmat 8
sue_coguint16_tSerial UDB Extra GPS Course Over Ground
sue_sogint16_tSerial UDB Extra Speed Over Ground
sue_cpu_loaduint16_tSerial UDB Extra CPU Load
sue_air_speed_3DIMUuint16_tSerial UDB Extra 3D IMU Air Speed
sue_estimated_wind_0int16_tSerial UDB Extra Estimated Wind 0
sue_estimated_wind_1int16_tSerial UDB Extra Estimated Wind 1
sue_estimated_wind_2int16_tSerial UDB Extra Estimated Wind 2
sue_magFieldEarth0int16_tSerial UDB Extra Magnetic Field Earth 0
sue_magFieldEarth1int16_tSerial UDB Extra Magnetic Field Earth 1
sue_magFieldEarth2int16_tSerial UDB Extra Magnetic Field Earth 2
sue_svsint16_tSerial UDB Extra Number of Satellites in View
sue_hdopint16_tSerial UDB Extra GPS Horizontal Dilution of Precision
sue_timeuint32_tSerial UDB Extra Time
sue_latitudeint32_tSerial UDB Extra Latitude
sue_longitudeint32_tSerial UDB Extra Longitude
sue_altitudeint32_tSerial UDB Extra Altitude

SERIAL_UDB_EXTRA_F2_B (171)

Backwards compatible version of SERIAL_UDB_EXTRA - F2: Part B

0123456789abcdefsue_pwm_input_10002sue_pwm_input_204sue_pwm_input_306sue_pwm_input_408sue_pwm_input_50asue_pwm_input_60csue_pwm_input_70esue_pwm_input_810sue_pwm_input_912sue_pwm_input_1014sue_pwm_input_1116sue_pwm_input_1218sue_pwm_output_11asue_pwm_output_21csue_pwm_output_31esue_pwm_output_420sue_pwm_output_522sue_pwm_output_624sue_pwm_output_726sue_pwm_output_828sue_pwm_output_92asue_pwm_output_102csue_pwm_output_112esue_pwm_output_1230sue_imu_location_x32sue_imu_location_y34sue_imu_location_z36sue_location_error_earth_x38sue_location_error_earth_y3asue_location_error_earth_z3csue_osc_fails3esue_imu_velocity_x40sue_imu_velocity_y42sue_imu_velocity_z44sue_waypoint_goal_x46sue_waypoint_goal_y48sue_waypoint_goal_z4asue_aero_x4csue_aero_y4esue_aero_z50sue_barom_temp52sue_bat_volt54sue_bat_amp56sue_bat_amp_hours58sue_desired_height5asue_memory_stack_free5csue_time[0:1 ]5esue_time[2:3 ]60sue_flags[0:1 ]62sue_flags[2:3 ]64sue_barom_press[0:1 ]66sue_barom_press[2:3 ]68sue_barom_alt[0:1 ]6asue_barom_alt[2:3 ]
Field NameTypeDescription
sue_pwm_input_1int16_tSerial UDB Extra PWM Input Channel 1
sue_pwm_input_2int16_tSerial UDB Extra PWM Input Channel 2
sue_pwm_input_3int16_tSerial UDB Extra PWM Input Channel 3
sue_pwm_input_4int16_tSerial UDB Extra PWM Input Channel 4
sue_pwm_input_5int16_tSerial UDB Extra PWM Input Channel 5
sue_pwm_input_6int16_tSerial UDB Extra PWM Input Channel 6
sue_pwm_input_7int16_tSerial UDB Extra PWM Input Channel 7
sue_pwm_input_8int16_tSerial UDB Extra PWM Input Channel 8
sue_pwm_input_9int16_tSerial UDB Extra PWM Input Channel 9
sue_pwm_input_10int16_tSerial UDB Extra PWM Input Channel 10
sue_pwm_input_11int16_tSerial UDB Extra PWM Input Channel 11
sue_pwm_input_12int16_tSerial UDB Extra PWM Input Channel 12
sue_pwm_output_1int16_tSerial UDB Extra PWM Output Channel 1
sue_pwm_output_2int16_tSerial UDB Extra PWM Output Channel 2
sue_pwm_output_3int16_tSerial UDB Extra PWM Output Channel 3
sue_pwm_output_4int16_tSerial UDB Extra PWM Output Channel 4
sue_pwm_output_5int16_tSerial UDB Extra PWM Output Channel 5
sue_pwm_output_6int16_tSerial UDB Extra PWM Output Channel 6
sue_pwm_output_7int16_tSerial UDB Extra PWM Output Channel 7
sue_pwm_output_8int16_tSerial UDB Extra PWM Output Channel 8
sue_pwm_output_9int16_tSerial UDB Extra PWM Output Channel 9
sue_pwm_output_10int16_tSerial UDB Extra PWM Output Channel 10
sue_pwm_output_11int16_tSerial UDB Extra PWM Output Channel 11
sue_pwm_output_12int16_tSerial UDB Extra PWM Output Channel 12
sue_imu_location_xint16_tSerial UDB Extra IMU Location X
sue_imu_location_yint16_tSerial UDB Extra IMU Location Y
sue_imu_location_zint16_tSerial UDB Extra IMU Location Z
sue_location_error_earth_xint16_tSerial UDB Location Error Earth X
sue_location_error_earth_yint16_tSerial UDB Location Error Earth Y
sue_location_error_earth_zint16_tSerial UDB Location Error Earth Z
sue_osc_failsint16_tSerial UDB Extra Oscillator Failure Count
sue_imu_velocity_xint16_tSerial UDB Extra IMU Velocity X
sue_imu_velocity_yint16_tSerial UDB Extra IMU Velocity Y
sue_imu_velocity_zint16_tSerial UDB Extra IMU Velocity Z
sue_waypoint_goal_xint16_tSerial UDB Extra Current Waypoint Goal X
sue_waypoint_goal_yint16_tSerial UDB Extra Current Waypoint Goal Y
sue_waypoint_goal_zint16_tSerial UDB Extra Current Waypoint Goal Z
sue_aero_xint16_tAeroforce in UDB X Axis
sue_aero_yint16_tAeroforce in UDB Y Axis
sue_aero_zint16_tAeroforce in UDB Z axis
sue_barom_tempint16_tSUE barometer temperature
sue_bat_voltint16_tSUE battery voltage
sue_bat_ampint16_tSUE battery current
sue_bat_amp_hoursint16_tSUE battery milli amp hours used
sue_desired_heightint16_tSue autopilot desired height
sue_memory_stack_freeint16_tSerial UDB Extra Stack Memory Free
sue_timeuint32_tSerial UDB Extra Time
sue_flagsuint32_tSerial UDB Extra Status Flags
sue_barom_pressint32_tSUE barometer pressure
sue_barom_altint32_tSUE barometer altitude

SERIAL_UDB_EXTRA_F4 (172)

Backwards compatible version of SERIAL_UDB_EXTRA F4: format

0123456789abcdefsue_ROLL_STABILIZATION_AILERONSsue_ROLL_STABILIZATION_RUDDER0002sue_PITCH_STABILIZATIONsue_YAW_STABILIZATION_RUDDER04sue_YAW_STABILIZATION_AILERONsue_AILERON_NAVIGATION06sue_RUDDER_NAVIGATIONsue_ALTITUDEHOLD_STABILIZED08sue_ALTITUDEHOLD_WAYPOINTsue_RACING_MODE
Field NameTypeDescription
sue_ROLL_STABILIZATION_AILERONSuint8_tSerial UDB Extra Roll Stabilization with Ailerons Enabled
sue_ROLL_STABILIZATION_RUDDERuint8_tSerial UDB Extra Roll Stabilization with Rudder Enabled
sue_PITCH_STABILIZATIONuint8_tSerial UDB Extra Pitch Stabilization Enabled
sue_YAW_STABILIZATION_RUDDERuint8_tSerial UDB Extra Yaw Stabilization using Rudder Enabled
sue_YAW_STABILIZATION_AILERONuint8_tSerial UDB Extra Yaw Stabilization using Ailerons Enabled
sue_AILERON_NAVIGATIONuint8_tSerial UDB Extra Navigation with Ailerons Enabled
sue_RUDDER_NAVIGATIONuint8_tSerial UDB Extra Navigation with Rudder Enabled
sue_ALTITUDEHOLD_STABILIZEDuint8_tSerial UDB Extra Type of Alitude Hold when in Stabilized Mode
sue_ALTITUDEHOLD_WAYPOINTuint8_tSerial UDB Extra Type of Alitude Hold when in Waypoint Mode
sue_RACING_MODEuint8_tSerial UDB Extra Firmware racing mode enabled

SERIAL_UDB_EXTRA_F5 (173)

Backwards compatible version of SERIAL_UDB_EXTRA F5: format

0123456789abcdefsue_YAWKP_AILERON0004sue_YAWKD_AILERON08sue_ROLLKP0csue_ROLLKD
Field NameTypeDescription
sue_YAWKP_AILERONfloatSerial UDB YAWKP_AILERON Gain for Proporional control of navigation
sue_YAWKD_AILERONfloatSerial UDB YAWKD_AILERON Gain for Rate control of navigation
sue_ROLLKPfloatSerial UDB Extra ROLLKP Gain for Proportional control of roll stabilization
sue_ROLLKDfloatSerial UDB Extra ROLLKD Gain for Rate control of roll stabilization

SERIAL_UDB_EXTRA_F6 (174)

Backwards compatible version of SERIAL_UDB_EXTRA F6: format

0123456789abcdefsue_PITCHGAIN[0:1 ]0002sue_PITCHGAIN[2:3 ]04sue_PITCHKD[0:1 ]06sue_PITCHKD[2:3 ]08sue_RUDDER_ELEV_MIX[0:1 ]0asue_RUDDER_ELEV_MIX[2:3 ]0csue_ROLL_ELEV_MIX[0:1 ]0esue_ROLL_ELEV_MIX[2:3 ]10sue_ELEVATOR_BOOST[0:1 ]12sue_ELEVATOR_BOOST[2:3 ]
Field NameTypeDescription
sue_PITCHGAINfloatSerial UDB Extra PITCHGAIN Proportional Control
sue_PITCHKDfloatSerial UDB Extra Pitch Rate Control
sue_RUDDER_ELEV_MIXfloatSerial UDB Extra Rudder to Elevator Mix
sue_ROLL_ELEV_MIXfloatSerial UDB Extra Roll to Elevator Mix
sue_ELEVATOR_BOOSTfloatGain For Boosting Manual Elevator control When Plane Stabilized

SERIAL_UDB_EXTRA_F7 (175)

Backwards compatible version of SERIAL_UDB_EXTRA F7: format

0123456789abcdefsue_YAWKP_RUDDER0004sue_YAWKD_RUDDER08sue_ROLLKP_RUDDER0csue_ROLLKD_RUDDER10sue_RUDDER_BOOST14sue_RTL_PITCH_DOWN
Field NameTypeDescription
sue_YAWKP_RUDDERfloatSerial UDB YAWKP_RUDDER Gain for Proporional control of navigation
sue_YAWKD_RUDDERfloatSerial UDB YAWKD_RUDDER Gain for Rate control of navigation
sue_ROLLKP_RUDDERfloatSerial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization
sue_ROLLKD_RUDDERfloatSerial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization
sue_RUDDER_BOOSTfloatSERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized
sue_RTL_PITCH_DOWNfloatSerial UDB Extra Return To Landing - Angle to Pitch Plane Down

SERIAL_UDB_EXTRA_F8 (176)

Backwards compatible version of SERIAL_UDB_EXTRA F8: format

0123456789abcdefsue_HEIGHT_TARGET_MAX[0:1 ]0002sue_HEIGHT_TARGET_MAX[2:3 ]04sue_HEIGHT_TARGET_MIN[0:1 ]06sue_HEIGHT_TARGET_MIN[2:3 ]08sue_ALT_HOLD_THROTTLE_MIN[0:1 ]0asue_ALT_HOLD_THROTTLE_MIN[2:3 ]0csue_ALT_HOLD_THROTTLE_MAX[0:1 ]0esue_ALT_HOLD_THROTTLE_MAX[2:3 ]10sue_ALT_HOLD_PITCH_MIN[0:1 ]12sue_ALT_HOLD_PITCH_MIN[2:3 ]14sue_ALT_HOLD_PITCH_MAX[0:1 ]16sue_ALT_HOLD_PITCH_MAX[2:3 ]18sue_ALT_HOLD_PITCH_HIGH[0:1 ]1asue_ALT_HOLD_PITCH_HIGH[2:3 ]
Field NameTypeDescription
sue_HEIGHT_TARGET_MAXfloatSerial UDB Extra HEIGHT_TARGET_MAX
sue_HEIGHT_TARGET_MINfloatSerial UDB Extra HEIGHT_TARGET_MIN
sue_ALT_HOLD_THROTTLE_MINfloatSerial UDB Extra ALT_HOLD_THROTTLE_MIN
sue_ALT_HOLD_THROTTLE_MAXfloatSerial UDB Extra ALT_HOLD_THROTTLE_MAX
sue_ALT_HOLD_PITCH_MINfloatSerial UDB Extra ALT_HOLD_PITCH_MIN
sue_ALT_HOLD_PITCH_MAXfloatSerial UDB Extra ALT_HOLD_PITCH_MAX
sue_ALT_HOLD_PITCH_HIGHfloatSerial UDB Extra ALT_HOLD_PITCH_HIGH

SERIAL_UDB_EXTRA_F13 (177)

Backwards compatible version of SERIAL_UDB_EXTRA F13: format

0123456789abcdefsue_week_nosue_lat_origin[0:1 ]0004sue_lat_origin[2:3 ]sue_lon_origin[0:1 ]08sue_lon_origin[2:3 ]sue_alt_origin[0:1 ]0csue_alt_origin[2:3 ]
Field NameTypeDescription
sue_week_noint16_tSerial UDB Extra GPS Week Number
sue_lat_originint32_tSerial UDB Extra MP Origin Latitude
sue_lon_originint32_tSerial UDB Extra MP Origin Longitude
sue_alt_originint32_tSerial UDB Extra MP Origin Altitude Above Sea Level

SERIAL_UDB_EXTRA_F14 (178)

Backwards compatible version of SERIAL_UDB_EXTRA F14: format

0123456789abcdefsue_WIND_ESTIMATIONsue_GPS_TYPE0002sue_DRsue_BOARD_TYPE04sue_AIRFRAMEsue_CLOCK_CONFIG06sue_FLIGHT_PLAN_TYPEsue_RCON[0:0 ]08sue_RCON[1:1 ]sue_TRAP_FLAGS[0:0 ]0asue_TRAP_FLAGS[1:1 ]sue_osc_fail_count[0:0 ]0csue_osc_fail_count[1:1 ]sue_TRAP_SOURCE[0:0 ]0esue_TRAP_SOURCE[1:2 ]10sue_TRAP_SOURCE[3:3 ]
Field NameTypeDescription
sue_WIND_ESTIMATIONuint8_tSerial UDB Extra Wind Estimation Enabled
sue_GPS_TYPEuint8_tSerial UDB Extra Type of GPS Unit
sue_DRuint8_tSerial UDB Extra Dead Reckoning Enabled
sue_BOARD_TYPEuint8_tSerial UDB Extra Type of UDB Hardware
sue_AIRFRAMEuint8_tSerial UDB Extra Type of Airframe
sue_CLOCK_CONFIGuint8_tSerial UDB Extra UDB Internal Clock Configuration
sue_FLIGHT_PLAN_TYPEuint8_tSerial UDB Extra Type of Flight Plan
sue_RCONint16_tSerial UDB Extra Reboot Register of DSPIC
sue_TRAP_FLAGSint16_tSerial UDB Extra Last dspic Trap Flags
sue_osc_fail_countint16_tSerial UDB Extra Number of Ocillator Failures
sue_TRAP_SOURCEuint32_tSerial UDB Extra Type Program Address of Last Trap

SERIAL_UDB_EXTRA_F15 (179)

Backwards compatible version of SERIAL_UDB_EXTRA F15 format

0123456789abcdefsue_ID_VEHICLE_MODEL_NAME[0:1 ]0002sue_ID_VEHICLE_MODEL_NAME[2:3 ]04sue_ID_VEHICLE_MODEL_NAME[4:5 ]06sue_ID_VEHICLE_MODEL_NAME[6:7 ]08sue_ID_VEHICLE_MODEL_NAME[8:9 ]0asue_ID_VEHICLE_MODEL_NAME[10:11 ]0csue_ID_VEHICLE_MODEL_NAME[12:13 ]0esue_ID_VEHICLE_MODEL_NAME[14:15 ]10sue_ID_VEHICLE_MODEL_NAME[16:17 ]12sue_ID_VEHICLE_MODEL_NAME[18:19 ]14sue_ID_VEHICLE_MODEL_NAME[20:21 ]16sue_ID_VEHICLE_MODEL_NAME[22:23 ]18sue_ID_VEHICLE_MODEL_NAME[24:25 ]1asue_ID_VEHICLE_MODEL_NAME[26:27 ]1csue_ID_VEHICLE_MODEL_NAME[28:29 ]1esue_ID_VEHICLE_MODEL_NAME[30:31 ]20sue_ID_VEHICLE_MODEL_NAME[32:33 ]22sue_ID_VEHICLE_MODEL_NAME[34:35 ]24sue_ID_VEHICLE_MODEL_NAME[36:37 ]26sue_ID_VEHICLE_MODEL_NAME[38:39 ]28sue_ID_VEHICLE_REGISTRATION[0:1 ]2asue_ID_VEHICLE_REGISTRATION[2:3 ]2csue_ID_VEHICLE_REGISTRATION[4:5 ]2esue_ID_VEHICLE_REGISTRATION[6:7 ]30sue_ID_VEHICLE_REGISTRATION[8:9 ]32sue_ID_VEHICLE_REGISTRATION[10:11 ]34sue_ID_VEHICLE_REGISTRATION[12:13 ]36sue_ID_VEHICLE_REGISTRATION[14:15 ]38sue_ID_VEHICLE_REGISTRATION[16:17 ]3asue_ID_VEHICLE_REGISTRATION[18:19 ]
Field NameTypeDescription
sue_ID_VEHICLE_MODEL_NAMEuint8_t[40]Serial UDB Extra Model Name Of Vehicle
sue_ID_VEHICLE_REGISTRATIONuint8_t[20]Serial UDB Extra Registraton Number of Vehicle

SCRIPT_ITEM (180)

Message encoding a mission script item. This message is emitted upon a request for the next script item.

0123456789abcdeftarget_systemtarget_componentname[0:1 ]0004name[2:5 ]08name[6:9 ]0cname[10:13 ]10name[14:17 ]14name[18:21 ]18name[22:25 ]1cname[26:29 ]20name[30:33 ]24name[34:37 ]28name[38:41 ]2cname[42:45 ]30name[46:49 ]34seq
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
namechar[50]The name of the mission script, NULL terminated.
sequint16_tSequence

SCRIPT_REQUEST (181)

Request script item with the sequence number seq. The response of the system to this message should be a SCRIPT_ITEM message.

0123456789abcdeftarget_systemtarget_componentseq
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
sequint16_tSequence

SCRIPT_REQUEST_LIST (182)

Request the overall list of mission items from the system/component.

0123456789abcdeftarget_systemtarget_component
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

SCRIPT_COUNT (183)

This message is emitted as response to SCRIPT_REQUEST_LIST by the MAV to get the number of mission scripts.

0123456789abcdeftarget_systemtarget_componentcount
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
countuint16_tNumber of script items in the sequence

SCRIPT_CURRENT (184)

This message informs about the currently active SCRIPT.

0123456789abcdefseq
Field NameTypeDescription
sequint16_tActive Sequence

SERIAL_UDB_EXTRA_F19 (185)

Backwards compatible version of SERIAL_UDB_EXTRA F19 format

0123456789abcdefsue_aileron_output_channelsue_aileron_reversed0002sue_elevator_output_channelsue_elevator_reversed04sue_throttle_output_channelsue_throttle_reversed06sue_rudder_output_channelsue_rudder_reversed
Field NameTypeDescription
sue_aileron_output_channeluint8_tSUE aileron output channel
sue_aileron_reverseduint8_tSUE aileron reversed
sue_elevator_output_channeluint8_tSUE elevator output channel
sue_elevator_reverseduint8_tSUE elevator reversed
sue_throttle_output_channeluint8_tSUE throttle output channel
sue_throttle_reverseduint8_tSUE throttle reversed
sue_rudder_output_channeluint8_tSUE rudder output channel
sue_rudder_reverseduint8_tSUE rudder reversed

SERIAL_UDB_EXTRA_F20 (186)

Backwards compatible version of SERIAL_UDB_EXTRA F20 format

0123456789abcdefsue_number_of_inputssue_trim_value_input_1[0:0 ]0002sue_trim_value_input_1[1:1 ]sue_trim_value_input_2[0:0 ]04sue_trim_value_input_2[1:1 ]sue_trim_value_input_3[0:0 ]06sue_trim_value_input_3[1:1 ]sue_trim_value_input_4[0:0 ]08sue_trim_value_input_4[1:1 ]sue_trim_value_input_5[0:0 ]0asue_trim_value_input_5[1:1 ]sue_trim_value_input_6[0:0 ]0csue_trim_value_input_6[1:1 ]sue_trim_value_input_7[0:0 ]0esue_trim_value_input_7[1:1 ]sue_trim_value_input_8[0:0 ]10sue_trim_value_input_8[1:1 ]sue_trim_value_input_9[0:0 ]12sue_trim_value_input_9[1:1 ]sue_trim_value_input_10[0:0 ]14sue_trim_value_input_10[1:1 ]sue_trim_value_input_11[0:0 ]16sue_trim_value_input_11[1:1 ]sue_trim_value_input_12[0:0 ]18sue_trim_value_input_12[1:1 ]
Field NameTypeDescription
sue_number_of_inputsuint8_tSUE Number of Input Channels
sue_trim_value_input_1int16_tSUE UDB PWM Trim Value on Input 1
sue_trim_value_input_2int16_tSUE UDB PWM Trim Value on Input 2
sue_trim_value_input_3int16_tSUE UDB PWM Trim Value on Input 3
sue_trim_value_input_4int16_tSUE UDB PWM Trim Value on Input 4
sue_trim_value_input_5int16_tSUE UDB PWM Trim Value on Input 5
sue_trim_value_input_6int16_tSUE UDB PWM Trim Value on Input 6
sue_trim_value_input_7int16_tSUE UDB PWM Trim Value on Input 7
sue_trim_value_input_8int16_tSUE UDB PWM Trim Value on Input 8
sue_trim_value_input_9int16_tSUE UDB PWM Trim Value on Input 9
sue_trim_value_input_10int16_tSUE UDB PWM Trim Value on Input 10
sue_trim_value_input_11int16_tSUE UDB PWM Trim Value on Input 11
sue_trim_value_input_12int16_tSUE UDB PWM Trim Value on Input 12

SERIAL_UDB_EXTRA_F21 (187)

Backwards compatible version of SERIAL_UDB_EXTRA F21 format

0123456789abcdefsue_accel_x_offsetsue_accel_y_offset0004sue_accel_z_offsetsue_gyro_x_offset08sue_gyro_y_offsetsue_gyro_z_offset
Field NameTypeDescription
sue_accel_x_offsetint16_tSUE X accelerometer offset
sue_accel_y_offsetint16_tSUE Y accelerometer offset
sue_accel_z_offsetint16_tSUE Z accelerometer offset
sue_gyro_x_offsetint16_tSUE X gyro offset
sue_gyro_y_offsetint16_tSUE Y gyro offset
sue_gyro_z_offsetint16_tSUE Z gyro offset

SERIAL_UDB_EXTRA_F22 (188)

Backwards compatible version of SERIAL_UDB_EXTRA F22 format

0123456789abcdefsue_accel_x_at_calibration0002sue_accel_y_at_calibration04sue_accel_z_at_calibration06sue_gyro_x_at_calibration08sue_gyro_y_at_calibration0asue_gyro_z_at_calibration
Field NameTypeDescription
sue_accel_x_at_calibrationint16_tSUE X accelerometer at calibration time
sue_accel_y_at_calibrationint16_tSUE Y accelerometer at calibration time
sue_accel_z_at_calibrationint16_tSUE Z accelerometer at calibration time
sue_gyro_x_at_calibrationint16_tSUE X gyro at calibration time
sue_gyro_y_at_calibrationint16_tSUE Y gyro at calibration time
sue_gyro_z_at_calibrationint16_tSUE Z gyro at calibration time

MAG_CAL_PROGRESS (191)

Reports progress of compass calibration.

0123456789abcdefcompass_idcal_maskcal_statusattempt0004completion_pctcompletion_mask[0:2 ]08completion_mask[3:6 ]0ccompletion_mask[7:9 ]direction_x[0:0 ]10direction_x[1:3 ]direction_y[0:0 ]14direction_y[1:3 ]direction_z[0:0 ]18direction_z[1:3 ]
Field NameTypeUnitEnum ValuesDescription
compass_iduint8_tCompass being calibrated.
cal_maskuint8_tBitmask of compasses being calibrated.
cal_statusuint8_tMAG_CAL_STATUSCalibration Status.
attemptuint8_tAttempt number.
completion_pctuint8_t%Completion percentage.
completion_maskuint8_t[10]Bitmask of sphere sections (see http://en.wikipedia.org/wiki/Geodesic_grid).
direction_xfloatBody frame direction vector for display.
direction_yfloatBody frame direction vector for display.
direction_zfloatBody frame direction vector for display.

MAG_CAL_REPORT (192)

Reports results of completed compass calibration. Sent until MAG_CAL_ACK received.

0123456789abcdefcompass_idcal_mask0002cal_statusautosaved04fitness[0:1 ]06fitness[2:3 ]08ofs_x[0:1 ]0aofs_x[2:3 ]0cofs_y[0:1 ]0eofs_y[2:3 ]10ofs_z[0:1 ]12ofs_z[2:3 ]14diag_x[0:1 ]16diag_x[2:3 ]18diag_y[0:1 ]1adiag_y[2:3 ]1cdiag_z[0:1 ]1ediag_z[2:3 ]20offdiag_x[0:1 ]22offdiag_x[2:3 ]24offdiag_y[0:1 ]26offdiag_y[2:3 ]28offdiag_z[0:1 ]2aoffdiag_z[2:3 ]2corientation_confidence[0:1 ]2eorientation_confidence[2:3 ]30old_orientationnew_orientation32scale_factor[0:1 ]34scale_factor[2:3 ]
Field NameTypeUnitEnum ValuesDescription
compass_iduint8_tCompass being calibrated.
cal_maskuint8_tBitmask of compasses being calibrated.
cal_statusuint8_tMAG_CAL_STATUSCalibration Status.
autosaveduint8_t0=requires a MAV_CMD_DO_ACCEPT_MAG_CAL, 1=saved to parameters.
fitnessfloatmgaussRMS milligauss residuals.
ofs_xfloatX offset.
ofs_yfloatY offset.
ofs_zfloatZ offset.
diag_xfloatX diagonal (matrix 11).
diag_yfloatY diagonal (matrix 22).
diag_zfloatZ diagonal (matrix 33).
offdiag_xfloatX off-diagonal (matrix 12 and 21).
offdiag_yfloatY off-diagonal (matrix 13 and 31).
offdiag_zfloatZ off-diagonal (matrix 32 and 23).
orientation_confidencefloatConfidence in orientation (higher is better).
old_orientationuint8_tMAV_SENSOR_ORIENTATIONorientation before calibration.
new_orientationuint8_tMAV_SENSOR_ORIENTATIONorientation after calibration.
scale_factorfloatfield radius correction factor

EKF_STATUS_REPORT (193)

EKF Status message including flags and variances.

0123456789abcdefflags0002velocity_variance[0:1 ]04velocity_variance[2:3 ]06pos_horiz_variance[0:1 ]08pos_horiz_variance[2:3 ]0apos_vert_variance[0:1 ]0cpos_vert_variance[2:3 ]0ecompass_variance[0:1 ]10compass_variance[2:3 ]12terrain_alt_variance[0:1 ]14terrain_alt_variance[2:3 ]16airspeed_variance[0:1 ]18airspeed_variance[2:3 ]
Field NameTypeEnum ValuesDescription
flagsuint16_tEKF_STATUS_FLAGSFlags.
velocity_variancefloatVelocity variance.
pos_horiz_variancefloatHorizontal Position variance.
pos_vert_variancefloatVertical Position variance.
compass_variancefloatCompass variance.
terrain_alt_variancefloatTerrain Altitude variance.
airspeed_variancefloatAirspeed variance.

PID_TUNING (194)

PID tuning information.

0123456789abcdefaxisdesired[0:2 ]0004desired[3:3 ]achieved[0:2 ]08achieved[3:3 ]FF[0:2 ]0cFF[3:3 ]P[0:2 ]10P[3:3 ]I[0:2 ]14I[3:3 ]D[0:2 ]18D[3:3 ]SRate[0:2 ]1cSRate[3:3 ]PDmod[0:2 ]20PDmod[3:3 ]
Field NameTypeEnum ValuesDescription
axisuint8_tPID_TUNING_AXISAxis.
desiredfloatDesired rate.
achievedfloatAchieved rate.
FFfloatFF component.
PfloatP component.
IfloatI component.
DfloatD component.
SRatefloatSlew rate.
PDmodfloatP/D oscillation modifier.

DEEPSTALL (195)

Deepstall path planning.

0123456789abcdefstagelanding_lat[0:0 ]0002landing_lat[1:2 ]04landing_lat[3:3 ]landing_lon[0:0 ]06landing_lon[1:2 ]08landing_lon[3:3 ]path_lat[0:0 ]0apath_lat[1:2 ]0cpath_lat[3:3 ]path_lon[0:0 ]0epath_lon[1:2 ]10path_lon[3:3 ]arc_entry_lat[0:0 ]12arc_entry_lat[1:2 ]14arc_entry_lat[3:3 ]arc_entry_lon[0:0 ]16arc_entry_lon[1:2 ]18arc_entry_lon[3:3 ]altitude[0:0 ]1aaltitude[1:2 ]1caltitude[3:3 ]expected_travel_distance[0:0 ]1eexpected_travel_distance[1:2 ]20expected_travel_distance[3:3 ]cross_track_error[0:0 ]22cross_track_error[1:2 ]24cross_track_error[3:3 ]
Field NameTypeUnitEnum ValuesDescription
stageuint8_tDEEPSTALL_STAGEDeepstall stage.
landing_latint32_tdegE7Landing latitude.
landing_lonint32_tdegE7Landing longitude.
path_latint32_tdegE7Final heading start point, latitude.
path_lonint32_tdegE7Final heading start point, longitude.
arc_entry_latint32_tdegE7Arc entry point, latitude.
arc_entry_lonint32_tdegE7Arc entry point, longitude.
altitudefloatmAltitude.
expected_travel_distancefloatmDistance the aircraft expects to travel during the deepstall.
cross_track_errorfloatmDeepstall cross track error (only valid when in DEEPSTALL_STAGE_LAND).

GIMBAL_REPORT (200)

3 axis gimbal measurements.

0123456789abcdeftarget_systemtarget_componentdelta_time[0:1 ]0004delta_time[2:3 ]delta_angle_x[0:1 ]08delta_angle_x[2:3 ]delta_angle_y[0:1 ]0cdelta_angle_y[2:3 ]delta_angle_z[0:1 ]10delta_angle_z[2:3 ]delta_velocity_x[0:1 ]14delta_velocity_x[2:3 ]delta_velocity_y[0:1 ]18delta_velocity_y[2:3 ]delta_velocity_z[0:1 ]1cdelta_velocity_z[2:3 ]joint_roll[0:1 ]20joint_roll[2:3 ]joint_el[0:1 ]24joint_el[2:3 ]joint_az[0:1 ]28joint_az[2:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
delta_timefloatsTime since last update.
delta_angle_xfloatradDelta angle X.
delta_angle_yfloatradDelta angle Y.
delta_angle_zfloatradDelta angle X.
delta_velocity_xfloatm/sDelta velocity X.
delta_velocity_yfloatm/sDelta velocity Y.
delta_velocity_zfloatm/sDelta velocity Z.
joint_rollfloatradJoint ROLL.
joint_elfloatradJoint EL.
joint_azfloatradJoint AZ.

GIMBAL_CONTROL (201)

Control message for rate gimbal.

0123456789abcdeftarget_systemtarget_componentdemanded_rate_x[0:1 ]0004demanded_rate_x[2:3 ]demanded_rate_y[0:1 ]08demanded_rate_y[2:3 ]demanded_rate_z[0:1 ]0cdemanded_rate_z[2:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
demanded_rate_xfloatrad/sDemanded angular rate X.
demanded_rate_yfloatrad/sDemanded angular rate Y.
demanded_rate_zfloatrad/sDemanded angular rate Z.

GIMBAL_TORQUE_CMD_REPORT (214)

100 Hz gimbal torque command telemetry.

0123456789abcdeftarget_systemtarget_componentrl_torque_cmd0004el_torque_cmdaz_torque_cmd
Field NameTypeDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
rl_torque_cmdint16_tRoll Torque Command.
el_torque_cmdint16_tElevation Torque Command.
az_torque_cmdint16_tAzimuth Torque Command.

GOPRO_HEARTBEAT (215)

Heartbeat from a HeroBus attached GoPro.

0123456789abcdefstatuscapture_modeflags
Field NameTypeEnum ValuesDescription
statusuint8_tGOPRO_HEARTBEAT_STATUSStatus.
capture_modeuint8_tGOPRO_CAPTURE_MODECurrent capture mode.
flagsuint8_tGOPRO_HEARTBEAT_FLAGSAdditional status bits.

GOPRO_GET_REQUEST (216)

Request a GOPRO_COMMAND response from the GoPro.

0123456789abcdeftarget_systemtarget_componentcmd_id
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
cmd_iduint8_tGOPRO_COMMANDCommand ID.

GOPRO_GET_RESPONSE (217)

Response from a GOPRO_COMMAND get request.

0123456789abcdefcmd_idstatusvalue[0:1 ]0004value[2:3 ]
Field NameTypeEnum ValuesDescription
cmd_iduint8_tGOPRO_COMMANDCommand ID.
statusuint8_tGOPRO_REQUEST_STATUSStatus.
valueuint8_t[4]Value.

GOPRO_SET_REQUEST (218)

Request to set a GOPRO_COMMAND with a desired.

0123456789abcdeftarget_systemtarget_componentcmd_idvalue[0:0 ]0004value[1:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
cmd_iduint8_tGOPRO_COMMANDCommand ID.
valueuint8_t[4]Value.

GOPRO_SET_RESPONSE (219)

Response from a GOPRO_COMMAND set request.

0123456789abcdefcmd_idstatus
Field NameTypeEnum ValuesDescription
cmd_iduint8_tGOPRO_COMMANDCommand ID.
statusuint8_tGOPRO_REQUEST_STATUSStatus.

Accelerometer and Gyro biases from the navigation filter

0123456789abcdefaccel_00004accel_108accel_20cgyro_010gyro_114gyro_218usec[0:3 ]1cusec[4:7 ]
Field NameTypeDescription
accel_0floatb_f[0]
accel_1floatb_f[1]
accel_2floatb_f[2]
gyro_0floatb_f[0]
gyro_1floatb_f[1]
gyro_2floatb_f[2]
usecuint64_tTimestamp (microseconds)

RADIO_CALIBRATION (221)

Complete set of calibration parameters for the radio

0123456789abcdefaileronelevator[0:0 ]0004elevator[1:2 ]rudder[0:1 ]08rudder[2:2 ]gyropitch[0:0 ]0cpitch[1:4 ]10throttle[0:3 ]14throttle[4:4 ]
Field NameTypeDescription
aileronuint16_t[3]Aileron setpoints: left, center, right
elevatoruint16_t[3]Elevator setpoints: nose down, center, nose up
rudderuint16_t[3]Rudder setpoints: nose left, center, nose right
gyrouint16_t[2]Tail gyro mode/gain setpoints: heading hold, rate mode
pitchuint16_t[5]Pitch curve setpoints (every 25%)
throttleuint16_t[5]Throttle curve setpoints (every 25%)

UALBERTA_SYS_STATUS (222)

System status specific to ualberta uav

0123456789abcdefmodenav_modepilot
Field NameTypeDescription
modeuint8_tSystem mode, see UALBERTA_AUTOPILOT_MODE ENUM
nav_modeuint8_tNavigation mode, see UALBERTA_NAV_MODE ENUM
pilotuint8_tPilot mode, see UALBERTA_PILOT_MODE

COMMAND_INT_STAMPED (223)

Message encoding a command with parameters as scaled integers and additional metadata. Scaling depends on the actual command value.

0123456789abcdeftarget_systemtarget_componentframecurrent0004autocontinuecommandutc_time[0:0 ]08utc_time[1:3 ]param1[0:0 ]0cparam1[1:3 ]param2[0:0 ]10param2[1:3 ]param3[0:0 ]14param3[1:3 ]param4[0:0 ]18param4[1:3 ]x[0:0 ]1cx[1:3 ]y[0:0 ]20y[1:3 ]z[0:0 ]24z[1:3 ]vehicle_timestamp[0:0 ]28vehicle_timestamp[1:4 ]2cvehicle_timestamp[5:7 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
frameuint8_tMAV_FRAMEThe coordinate system of the COMMAND, as defined by MAV_FRAME enum
currentuint8_tfalse:0 , true:1
autocontinueuint8_tautocontinue to next wp
commanduint16_tMAV_CMDThe scheduled action for the mission item, as defined by MAV_CMD enum
utc_timeuint32_tUTC time, seconds elapsed since 01.01.1970
param1floatPARAM1, see MAV_CMD enum
param2floatPARAM2, see MAV_CMD enum
param3floatPARAM3, see MAV_CMD enum
param4floatPARAM4, see MAV_CMD enum
xint32_tPARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
yint32_tPARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7
zfloatPARAM7 / z position: global: altitude in meters (MSL, WGS84, AGL or relative to home - depending on frame).
vehicle_timestampuint64_tMicroseconds elapsed since vehicle boot

COMMAND_LONG_STAMPED (224)

Send a command with up to seven parameters to the MAV and additional metadata

0123456789abcdeftarget_systemtarget_componentconfirmationcommand[0:0 ]0004command[1:1 ]utc_time[0:2 ]08utc_time[3:3 ]param1[0:2 ]0cparam1[3:3 ]param2[0:2 ]10param2[3:3 ]param3[0:2 ]14param3[3:3 ]param4[0:2 ]18param4[3:3 ]param5[0:2 ]1cparam5[3:3 ]param6[0:2 ]20param6[3:3 ]param7[0:2 ]24param7[3:3 ]vehicle_timestamp[0:2 ]28vehicle_timestamp[3:6 ]2cvehicle_timestamp[7:7 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem which should execute the command
target_componentuint8_tComponent which should execute the command, 0 for all components
confirmationuint8_t0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
commanduint16_tMAV_CMDCommand ID, as defined by MAV_CMD enum.
utc_timeuint32_tUTC time, seconds elapsed since 01.01.1970
param1floatParameter 1, as defined by MAV_CMD enum.
param2floatParameter 2, as defined by MAV_CMD enum.
param3floatParameter 3, as defined by MAV_CMD enum.
param4floatParameter 4, as defined by MAV_CMD enum.
param5floatParameter 5, as defined by MAV_CMD enum.
param6floatParameter 6, as defined by MAV_CMD enum.
param7floatParameter 7, as defined by MAV_CMD enum.
vehicle_timestampuint64_tMicroseconds elapsed since vehicle boot

EFI_STATUS (225)

EFI status output

0123456789abcdefhealthecu_index[0:0 ]0002ecu_index[1:2 ]04ecu_index[3:3 ]rpm[0:0 ]06rpm[1:2 ]08rpm[3:3 ]fuel_consumed[0:0 ]0afuel_consumed[1:2 ]0cfuel_consumed[3:3 ]fuel_flow[0:0 ]0efuel_flow[1:2 ]10fuel_flow[3:3 ]engine_load[0:0 ]12engine_load[1:2 ]14engine_load[3:3 ]throttle_position[0:0 ]16throttle_position[1:2 ]18throttle_position[3:3 ]spark_dwell_time[0:0 ]1aspark_dwell_time[1:2 ]1cspark_dwell_time[3:3 ]barometric_pressure[0:0 ]1ebarometric_pressure[1:2 ]20barometric_pressure[3:3 ]intake_manifold_pressure[0:0 ]22intake_manifold_pressure[1:2 ]24intake_manifold_pressure[3:3 ]intake_manifold_temperature[0:0 ]26intake_manifold_temperature[1:2 ]28intake_manifold_temperature[3:3 ]cylinder_head_temperature[0:0 ]2acylinder_head_temperature[1:2 ]2ccylinder_head_temperature[3:3 ]ignition_timing[0:0 ]2eignition_timing[1:2 ]30ignition_timing[3:3 ]injection_time[0:0 ]32injection_time[1:2 ]34injection_time[3:3 ]exhaust_gas_temperature[0:0 ]36exhaust_gas_temperature[1:2 ]38exhaust_gas_temperature[3:3 ]throttle_out[0:0 ]3athrottle_out[1:2 ]3cthrottle_out[3:3 ]pt_compensation[0:0 ]3ept_compensation[1:2 ]40pt_compensation[3:3 ]ignition_voltage[0:0 ]42ignition_voltage[1:2 ]44ignition_voltage[3:3 ]fuel_pressure[0:0 ]46fuel_pressure[1:2 ]48fuel_pressure[3:3 ]
Field NameTypeUnitDescription
healthuint8_tEFI health status
ecu_indexfloatECU index
rpmfloatRPM
fuel_consumedfloatcm^3Fuel consumed
fuel_flowfloatcm^3/minFuel flow rate
engine_loadfloat%Engine load
throttle_positionfloat%Throttle position
spark_dwell_timefloatmsSpark dwell time
barometric_pressurefloatkPaBarometric pressure
intake_manifold_pressurefloatkPaIntake manifold pressure(
intake_manifold_temperaturefloatdegCIntake manifold temperature
cylinder_head_temperaturefloatdegCCylinder head temperature
ignition_timingfloatdegIgnition timing (Crank angle degrees)
injection_timefloatmsInjection time
exhaust_gas_temperaturefloatdegCExhaust gas temperature
throttle_outfloat%Output throttle
pt_compensationfloatPressure/temperature compensation
ignition_voltagefloatVSupply voltage to EFI sparking system. Zero in this value means "unknown", so if the supply voltage really is zero volts use 0.0001 instead.
fuel_pressurefloatkPaFuel pressure. Zero in this value means "unknown", so if the fuel pressure really is zero kPa use 0.0001 instead.

RPM (226)

RPM sensor output.

0123456789abcdefrpm10004rpm2
Field NameTypeDescription
rpm1floatRPM Sensor1.
rpm2floatRPM Sensor2.

ESTIMATOR_STATUS (230)

Estimator status message including flags, innovation test ratios and estimated accuracies. The flags message is an integer bitmask containing information on which EKF outputs are valid. See the ESTIMATOR_STATUS_FLAGS enum definition for further information. The innovation test ratios show the magnitude of the sensor innovation divided by the innovation check threshold. Under normal operation the innovation test ratios should be below 0.5 with occasional values up to 1.0. Values greater than 1.0 should be rare under normal operation and indicate that a measurement has been rejected by the filter. The user should be notified if an innovation test ratio greater than 1.0 is recorded. Notifications for values in the range between 0.5 and 1.0 should be optional and controllable by the user.

0123456789abcdefflagsvel_ratio[0:1 ]0004vel_ratio[2:3 ]pos_horiz_ratio[0:1 ]08pos_horiz_ratio[2:3 ]pos_vert_ratio[0:1 ]0cpos_vert_ratio[2:3 ]mag_ratio[0:1 ]10mag_ratio[2:3 ]hagl_ratio[0:1 ]14hagl_ratio[2:3 ]tas_ratio[0:1 ]18tas_ratio[2:3 ]pos_horiz_accuracy[0:1 ]1cpos_horiz_accuracy[2:3 ]pos_vert_accuracy[0:1 ]20pos_vert_accuracy[2:3 ]time_usec[0:1 ]24time_usec[2:5 ]28time_usec[6:7 ]
Field NameTypeUnitEnum ValuesDescription
flagsuint16_tESTIMATOR_STATUS_FLAGSBitmap indicating which EKF outputs are valid.
vel_ratiofloatVelocity innovation test ratio
pos_horiz_ratiofloatHorizontal position innovation test ratio
pos_vert_ratiofloatVertical position innovation test ratio
mag_ratiofloatMagnetometer innovation test ratio
hagl_ratiofloatHeight above terrain innovation test ratio
tas_ratiofloatTrue airspeed innovation test ratio
pos_horiz_accuracyfloatmHorizontal position 1-STD accuracy relative to the EKF local origin
pos_vert_accuracyfloatmVertical position 1-STD accuracy relative to the EKF local origin
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

WIND_COV (231)

Wind estimate from vehicle. Note that despite the name, this message does not actually contain any covariances but instead variability and accuracy fields in terms of standard deviation (1-STD).

0123456789abcdefwind_x0004wind_y08wind_z0cvar_horiz10var_vert14wind_alt18horiz_accuracy1cvert_accuracy20time_usec[0:3 ]24time_usec[4:7 ]
Field NameTypeUnitDescription
wind_xfloatm/sWind in North (NED) direction (NAN if unknown)
wind_yfloatm/sWind in East (NED) direction (NAN if unknown)
wind_zfloatm/sWind in down (NED) direction (NAN if unknown)
var_horizfloatm/sVariability of wind in XY, 1-STD estimated from a 1 Hz lowpassed wind estimate (NAN if unknown)
var_vertfloatm/sVariability of wind in Z, 1-STD estimated from a 1 Hz lowpassed wind estimate (NAN if unknown)
wind_altfloatmAltitude (MSL) that this measurement was taken at (NAN if unknown)
horiz_accuracyfloatm/sHorizontal speed 1-STD accuracy (0 if unknown)
vert_accuracyfloatm/sVertical speed 1-STD accuracy (0 if unknown)
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

GPS_INPUT (232)

GPS sensor input message. This is a raw sensor value sent by the GPS. This is NOT the global position estimate of the system.

0123456789abcdefgps_idfix_typesatellites_visibleignore_flags[0:0 ]0004ignore_flags[1:1 ]time_weektime_week_ms[0:0 ]08time_week_ms[1:3 ]lat[0:0 ]0clat[1:3 ]lon[0:0 ]10lon[1:3 ]alt[0:0 ]14alt[1:3 ]hdop[0:0 ]18hdop[1:3 ]vdop[0:0 ]1cvdop[1:3 ]vn[0:0 ]20vn[1:3 ]ve[0:0 ]24ve[1:3 ]vd[0:0 ]28vd[1:3 ]speed_accuracy[0:0 ]2cspeed_accuracy[1:3 ]horiz_accuracy[0:0 ]30horiz_accuracy[1:3 ]vert_accuracy[0:0 ]34vert_accuracy[1:3 ]time_usec[0:0 ]38time_usec[1:4 ]3ctime_usec[5:7 ]yaw[0:0 ]40yaw[1:1 ]
Field NameTypeUnitEnum ValuesDescription
gps_iduint8_tID of the GPS for multiple GPS inputs
fix_typeuint8_t0-1: no fix, 2: 2D fix, 3: 3D fix. 4: 3D with DGPS. 5: 3D with RTK
satellites_visibleuint8_tNumber of satellites visible.
ignore_flagsuint16_tGPS_INPUT_IGNORE_FLAGSBitmap indicating which GPS input flags fields to ignore. All other fields must be provided.
time_weekuint16_tGPS week number
time_week_msuint32_tmsGPS time (from start of GPS week)
latint32_tdegE7Latitude (WGS84)
lonint32_tdegE7Longitude (WGS84)
altfloatmAltitude (MSL). Positive for up.
hdopfloatGPS HDOP horizontal dilution of position (unitless). If unknown, set to: UINT16_MAX
vdopfloatGPS VDOP vertical dilution of position (unitless). If unknown, set to: UINT16_MAX
vnfloatm/sGPS velocity in north direction in earth-fixed NED frame
vefloatm/sGPS velocity in east direction in earth-fixed NED frame
vdfloatm/sGPS velocity in down direction in earth-fixed NED frame
speed_accuracyfloatm/sGPS speed accuracy
horiz_accuracyfloatmGPS horizontal accuracy
vert_accuracyfloatmGPS vertical accuracy
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
yawuint16_tcdegYaw of vehicle relative to Earth's North, zero means not available, use 36000 for north

GPS_RTCM_DATA (233)

RTCM message for injecting into the onboard GPS (used for DGPS)

0123456789abcdefflagslendata[0:1 ]0004data[2:5 ]08data[6:9 ]0cdata[10:13 ]10data[14:17 ]14data[18:21 ]18data[22:25 ]1cdata[26:29 ]20data[30:33 ]24data[34:37 ]28data[38:41 ]2cdata[42:45 ]30data[46:49 ]34data[50:53 ]38data[54:57 ]3cdata[58:61 ]40data[62:65 ]44data[66:69 ]48data[70:73 ]4cdata[74:77 ]50data[78:81 ]54data[82:85 ]58data[86:89 ]5cdata[90:93 ]60data[94:97 ]64data[98:101 ]68data[102:105 ]6cdata[106:109 ]70data[110:113 ]74data[114:117 ]78data[118:121 ]7cdata[122:125 ]80data[126:129 ]84data[130:133 ]88data[134:137 ]8cdata[138:141 ]90data[142:145 ]94data[146:149 ]98data[150:153 ]9cdata[154:157 ]a0data[158:161 ]a4data[162:165 ]a8data[166:169 ]acdata[170:173 ]b0data[174:177 ]b4data[178:179 ]
Field NameTypeUnitDescription
flagsuint8_tLSB: 1 means message is fragmented, next 2 bits are the fragment ID, the remaining 5 bits are used for the sequence ID. Messages are only to be flushed to the GPS when the entire message has been reconstructed on the autopilot. The fragment ID specifies which order the fragments should be assembled into a buffer, while the sequence ID is used to detect a mismatch between different buffers. The buffer is considered fully reconstructed when either all 4 fragments are present, or all the fragments before the first fragment with a non full payload is received. This management is used to ensure that normal GPS operation doesn't corrupt RTCM data, and to recover from a unreliable transport delivery order.
lenuint8_tbytesdata length
datauint8_t[180]RTCM message (may be fragmented)

HIGH_LATENCY (234)

Message appropriate for high latency connections like Iridium

0123456789abcdefbase_modelanded_statethrottleairspeed0004airspeed_spgroundspeedclimb_rategps_nsat08gps_fix_typebattery_remainingtemperaturetemperature_air0cfailsafewp_numroll10pitchheading14heading_spaltitude_amsl18altitude_spwp_distance1ccustom_mode20latitude24longitude
Field NameTypeUnitEnum ValuesDescription
base_modeuint8_tMAV_MODE_FLAGBitmap of enabled system modes.
landed_stateuint8_tMAV_LANDED_STATEThe landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown.
throttleint8_t%throttle (percentage)
airspeeduint8_tm/sairspeed
airspeed_spuint8_tm/sairspeed setpoint
groundspeeduint8_tm/sgroundspeed
climb_rateint8_tm/sclimb rate
gps_nsatuint8_tNumber of satellites visible. If unknown, set to UINT8_MAX
gps_fix_typeuint8_tGPS_FIX_TYPEGPS Fix type.
battery_remaininguint8_t%Remaining battery (percentage)
temperatureint8_tdegCAutopilot temperature (degrees C)
temperature_airint8_tdegCAir temperature (degrees C) from airspeed sensor
failsafeuint8_tfailsafe (each bit represents a failsafe where 0=ok, 1=failsafe active (bit0:RC , bit1:batt , bit2:GPS , bit3:GCS , bit4:fence )
wp_numuint8_tcurrent waypoint number
rollint16_tcdegroll
pitchint16_tcdegpitch
headinguint16_tcdegheading
heading_spint16_tcdegheading setpoint
altitude_amslint16_tmAltitude above mean sea level
altitude_spint16_tmAltitude setpoint relative to the home position
wp_distanceuint16_tmdistance to target
custom_modeuint32_tA bitfield for use for autopilot-specific flags.
latitudeint32_tdegE7Latitude
longitudeint32_tdegE7Longitude

HIGH_LATENCY2 (235)

Message appropriate for high latency connections like Iridium (version 2)

0123456789abcdeftypeautopilotheadingtarget_heading0004throttleairspeedairspeed_spgroundspeed08windspeedwind_headingephepv0ctemperature_airclimb_ratebatterycustom010custom1custom2custom_mode14altitudetarget_altitude18target_distancewp_num1cfailure_flagstimestamp[0:1 ]20timestamp[2:3 ]latitude[0:1 ]24latitude[2:3 ]longitude[0:1 ]28longitude[2:3 ]
Field NameTypeUnitEnum ValuesDescription
typeuint8_tMAV_TYPEType of the MAV (quadrotor, helicopter, etc.)
autopilotuint8_tMAV_AUTOPILOTAutopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
headinguint8_tdeg/2Heading
target_headinguint8_tdeg/2Heading setpoint
throttleuint8_t%Throttle
airspeeduint8_tm/s*5Airspeed
airspeed_spuint8_tm/s*5Airspeed setpoint
groundspeeduint8_tm/s*5Groundspeed
windspeeduint8_tm/s*5Windspeed
wind_headinguint8_tdeg/2Wind heading
ephuint8_tdmMaximum error horizontal position since last message
epvuint8_tdmMaximum error vertical position since last message
temperature_airint8_tdegCAir temperature
climb_rateint8_tdm/sMaximum climb rate magnitude since last message
batteryint8_t%Battery level (-1 if field not provided).
custom0int8_tField for custom payload.
custom1int8_tField for custom payload.
custom2int8_tField for custom payload.
custom_modeuint16_tA bitfield for use for autopilot-specific flags (2 byte version).
altitudeint16_tmAltitude above mean sea level
target_altitudeint16_tmAltitude setpoint
target_distanceuint16_tdamDistance to target waypoint or position
wp_numuint16_tCurrent waypoint number
failure_flagsuint16_tHL_FAILURE_FLAGBitmap of failure flags.
timestampuint32_tmsTimestamp (milliseconds since boot or Unix epoch)
latitudeint32_tdegE7Latitude
longitudeint32_tdegE7Longitude

VIBRATION (241)

Vibration levels and accelerometer clipping

0123456789abcdefvibration_x0004vibration_y08vibration_z0cclipping_010clipping_114clipping_218time_usec[0:3 ]1ctime_usec[4:7 ]
Field NameTypeUnitDescription
vibration_xfloatVibration levels on X-axis
vibration_yfloatVibration levels on Y-axis
vibration_zfloatVibration levels on Z-axis
clipping_0uint32_tfirst accelerometer clipping count
clipping_1uint32_tsecond accelerometer clipping count
clipping_2uint32_tthird accelerometer clipping count
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

HOME_POSITION (242)

Contains the home position. The home position is the default position that the system will return to and land on. The position must be set automatically by the system during the takeoff, and may also be explicitly set using MAV_CMD_DO_SET_HOME. The global and local positions encode the position in the respective coordinate frames, while the q parameter encodes the orientation of the surface. Under normal conditions it describes the heading and terrain slope, which can be used by the aircraft to adjust the approach. The approach 3D vector describes the point to which the system should fly in normal flight mode and then perform a landing sequence along the vector. Note: this message can be requested by sending the MAV_CMD_REQUEST_MESSAGE with param1=242 (or the deprecated MAV_CMD_GET_HOME_POSITION command).

0123456789abcdeflatitude0004longitude08altitude0cx10y14z18q1capproach_x20approach_y24approach_z28time_usec[0:3 ]2ctime_usec[4:7 ]
Field NameTypeUnitDescription
latitudeint32_tdegE7Latitude (WGS84)
longitudeint32_tdegE7Longitude (WGS84)
altitudeint32_tmmAltitude (MSL). Positive for up.
xfloatmLocal X position of this position in the local coordinate frame (NED)
yfloatmLocal Y position of this position in the local coordinate frame (NED)
zfloatmLocal Z position of this position in the local coordinate frame (NED: positive "down")
qfloat[4]Quaternion indicating world-to-surface-normal and heading transformation of the takeoff position.
Used to indicate the heading and slope of the ground.
All fields should be set to NaN if an accurate quaternion for both heading and surface slope cannot be supplied.
approach_xfloatmLocal X position of the end of the approach vector. Multicopters should set this position based on their takeoff path. Grass-landing fixed wing aircraft should set it the same way as multicopters. Runway-landing fixed wing aircraft should set it to the opposite direction of the takeoff, assuming the takeoff happened from the threshold / touchdown zone.
approach_yfloatmLocal Y position of the end of the approach vector. Multicopters should set this position based on their takeoff path. Grass-landing fixed wing aircraft should set it the same way as multicopters. Runway-landing fixed wing aircraft should set it to the opposite direction of the takeoff, assuming the takeoff happened from the threshold / touchdown zone.
approach_zfloatmLocal Z position of the end of the approach vector. Multicopters should set this position based on their takeoff path. Grass-landing fixed wing aircraft should set it the same way as multicopters. Runway-landing fixed wing aircraft should set it to the opposite direction of the takeoff, assuming the takeoff happened from the threshold / touchdown zone.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

SET_HOME_POSITION (243)

Sets the home position. The home position is the default position that the system will return to and land on. The position is set automatically by the system during the takeoff (and may also be set using this message). The global and local positions encode the position in the respective coordinate frames, while the q parameter encodes the orientation of the surface. Under normal conditions it describes the heading and terrain slope, which can be used by the aircraft to adjust the approach. The approach 3D vector describes the point to which the system should fly in normal flight mode and then perform a landing sequence along the vector. Note: the current home position may be emitted in a HOME_POSITION message on request (using MAV_CMD_REQUEST_MESSAGE with param1=242).

0123456789abcdeftarget_systemlatitude[0:2 ]0004latitude[3:3 ]longitude[0:2 ]08longitude[3:3 ]altitude[0:2 ]0caltitude[3:3 ]x[0:2 ]10x[3:3 ]y[0:2 ]14y[3:3 ]z[0:2 ]18z[3:3 ]q[0:2 ]1cq[3:3 ]approach_x[0:2 ]20approach_x[3:3 ]approach_y[0:2 ]24approach_y[3:3 ]approach_z[0:2 ]28approach_z[3:3 ]time_usec[0:2 ]2ctime_usec[3:6 ]30time_usec[7:7 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
latitudeint32_tdegE7Latitude (WGS84)
longitudeint32_tdegE7Longitude (WGS84)
altitudeint32_tmmAltitude (MSL). Positive for up.
xfloatmLocal X position of this position in the local coordinate frame (NED)
yfloatmLocal Y position of this position in the local coordinate frame (NED)
zfloatmLocal Z position of this position in the local coordinate frame (NED: positive "down")
qfloat[4]World to surface normal and heading transformation of the takeoff position. Used to indicate the heading and slope of the ground
approach_xfloatmLocal X position of the end of the approach vector. Multicopters should set this position based on their takeoff path. Grass-landing fixed wing aircraft should set it the same way as multicopters. Runway-landing fixed wing aircraft should set it to the opposite direction of the takeoff, assuming the takeoff happened from the threshold / touchdown zone.
approach_yfloatmLocal Y position of the end of the approach vector. Multicopters should set this position based on their takeoff path. Grass-landing fixed wing aircraft should set it the same way as multicopters. Runway-landing fixed wing aircraft should set it to the opposite direction of the takeoff, assuming the takeoff happened from the threshold / touchdown zone.
approach_zfloatmLocal Z position of the end of the approach vector. Multicopters should set this position based on their takeoff path. Grass-landing fixed wing aircraft should set it the same way as multicopters. Runway-landing fixed wing aircraft should set it to the opposite direction of the takeoff, assuming the takeoff happened from the threshold / touchdown zone.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

MESSAGE_INTERVAL (244)

The interval between messages for a particular MAVLink message ID. This message is sent in response to the MAV_CMD_REQUEST_MESSAGE command with param1=244 (this message) and param2=message_id (the id of the message for which the interval is required). It may also be sent in response to MAV_CMD_GET_MESSAGE_INTERVAL. This interface replaces DATA_STREAM.

0123456789abcdefmessage_idinterval_us[0:1 ]0004interval_us[2:3 ]
Field NameTypeUnitDescription
message_iduint16_tThe ID of the requested MAVLink message. v1.0 is limited to 254 messages.
interval_usint32_tusThe interval between two messages. A value of -1 indicates this stream is disabled, 0 indicates it is not available, > 0 indicates the interval at which it is sent.

EXTENDED_SYS_STATE (245)

Provides state for additional features

0123456789abcdefvtol_statelanded_state
Field NameTypeEnum ValuesDescription
vtol_stateuint8_tMAV_VTOL_STATEThe VTOL state if applicable. Is set to MAV_VTOL_STATE_UNDEFINED if UAV is not in VTOL configuration.
landed_stateuint8_tMAV_LANDED_STATEThe landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown.

ADSB_VEHICLE (246)

The location and information of an ADSB vehicle

0123456789abcdefaltitude_typecallsign[0:2 ]0004callsign[3:6 ]08callsign[7:8 ]emitter_typetslc0cheadinghor_velocity10ver_velocityflags14squawkICAO_address[0:1 ]18ICAO_address[2:3 ]lat[0:1 ]1clat[2:3 ]lon[0:1 ]20lon[2:3 ]altitude[0:1 ]24altitude[2:3 ]
Field NameTypeUnitEnum ValuesDescription
altitude_typeuint8_tADSB_ALTITUDE_TYPEADSB altitude type.
callsignchar[9]The callsign, 8+null
emitter_typeuint8_tADSB_EMITTER_TYPEADSB emitter type.
tslcuint8_tsTime since last communication in seconds
headinguint16_tcdegCourse over ground
hor_velocityuint16_tcm/sThe horizontal velocity
ver_velocityint16_tcm/sThe vertical velocity. Positive is up
flagsuint16_tADSB_FLAGSBitmap to indicate various statuses including valid data fields
squawkuint16_tSquawk code. Note that the code is in decimal: e.g. 7700 (general emergency) is encoded as binary 0b0001_1110_0001_0100, not(!) as 0b0000_111_111_000_000
ICAO_addressuint32_tICAO address
latint32_tdegE7Latitude
lonint32_tdegE7Longitude
altitudeint32_tmmAltitude(ASL)

COLLISION (247)

Information about a potential collision

0123456789abcdefsrcaction0002threat_levelid[0:0 ]04id[1:2 ]06id[3:3 ]time_to_minimum_delta[0:0 ]08time_to_minimum_delta[1:2 ]0atime_to_minimum_delta[3:3 ]altitude_minimum_delta[0:0 ]0caltitude_minimum_delta[1:2 ]0ealtitude_minimum_delta[3:3 ]horizontal_minimum_delta[0:0 ]10horizontal_minimum_delta[1:2 ]12horizontal_minimum_delta[3:3 ]
Field NameTypeUnitEnum ValuesDescription
srcuint8_tMAV_COLLISION_SRCCollision data source
actionuint8_tMAV_COLLISION_ACTIONAction that is being taken to avoid this collision
threat_leveluint8_tMAV_COLLISION_THREAT_LEVELHow concerned the aircraft is about this collision
iduint32_tUnique identifier, domain based on src field
time_to_minimum_deltafloatsEstimated time until collision occurs
altitude_minimum_deltafloatmClosest vertical distance between vehicle and object
horizontal_minimum_deltafloatmClosest horizontal distance between vehicle and object

V2_EXTENSION (248)

Message implementing parts of the V2 payload specs in V1 frames for transitional support.

0123456789abcdeftarget_networktarget_systemtarget_componentpayload[0:0 ]0004payload[1:4 ]08payload[5:8 ]0cpayload[9:12 ]10payload[13:16 ]14payload[17:20 ]18payload[21:24 ]1cpayload[25:28 ]20payload[29:32 ]24payload[33:36 ]28payload[37:40 ]2cpayload[41:44 ]30payload[45:48 ]34payload[49:52 ]38payload[53:56 ]3cpayload[57:60 ]40payload[61:64 ]44payload[65:68 ]48payload[69:72 ]4cpayload[73:76 ]50payload[77:80 ]54payload[81:84 ]58payload[85:88 ]5cpayload[89:92 ]60payload[93:96 ]64payload[97:100 ]68payload[101:104 ]6cpayload[105:108 ]70payload[109:112 ]74payload[113:116 ]78payload[117:120 ]7cpayload[121:124 ]80payload[125:128 ]84payload[129:132 ]88payload[133:136 ]8cpayload[137:140 ]90payload[141:144 ]94payload[145:148 ]98payload[149:152 ]9cpayload[153:156 ]a0payload[157:160 ]a4payload[161:164 ]a8payload[165:168 ]acpayload[169:172 ]b0payload[173:176 ]b4payload[177:180 ]b8payload[181:184 ]bcpayload[185:188 ]c0payload[189:192 ]c4payload[193:196 ]c8payload[197:200 ]ccpayload[201:204 ]d0payload[205:208 ]d4payload[209:212 ]d8payload[213:216 ]dcpayload[217:220 ]e0payload[221:224 ]e4payload[225:228 ]e8payload[229:232 ]ecpayload[233:236 ]f0payload[237:240 ]f4payload[241:244 ]f8payload[245:248 ]fcmessage_type
Field NameTypeDescription
target_networkuint8_tNetwork ID (0 for broadcast)
target_systemuint8_tSystem ID (0 for broadcast)
target_componentuint8_tComponent ID (0 for broadcast)
payloaduint8_t[249]Variable length payload. The length must be encoded in the payload as part of the message_type protocol, e.g. by including the length as payload data, or by terminating the payload data with a non-zero marker. This is required in order to reconstruct zero-terminated payloads that are (or otherwise would be) trimmed by MAVLink 2 empty-byte truncation. The entire content of the payload block is opaque unless you understand the encoding message_type. The particular encoding used can be extension specific and might not always be documented as part of the MAVLink specification.
message_typeuint16_tA code that identifies the software component that understands this message (analogous to USB device classes or mime type strings). If this code is less than 32768, it is considered a 'registered' protocol extension and the corresponding entry should be added to https://github.com/mavlink/mavlink/definition_files/extension_message_ids.xml. Software creators can register blocks of message IDs as needed (useful for GCS specific metadata, etc...). Message_types greater than 32767 are considered local experiments and should not be checked in to any widely distributed codebase.

MEMORY_VECT (249)

Send raw controller memory. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.

0123456789abcdefvertypevalue[0:1 ]0004value[2:5 ]08value[6:9 ]0cvalue[10:13 ]10value[14:17 ]14value[18:21 ]18value[22:25 ]1cvalue[26:29 ]20value[30:31 ]address
Field NameTypeDescription
veruint8_tVersion code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below
typeuint8_tType code of the memory variables. for ver = 1: 0=16 x int16_t, 1=16 x uint16_t, 2=16 x Q15, 3=16 x 1Q14
valueint8_t[32]Memory contents at specified address
addressuint16_tStarting address of the debug variables

DEBUG_VECT (250)

To debug something using a named 3D vector.

0123456789abcdefname[0:3 ]0004name[4:7 ]08name[8:9 ]x[0:1 ]0cx[2:3 ]y[0:1 ]10y[2:3 ]z[0:1 ]14z[2:3 ]time_usec[0:1 ]18time_usec[2:5 ]1ctime_usec[6:7 ]
Field NameTypeUnitDescription
namechar[10]Name
xfloatx
yfloaty
zfloatz
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

NAMED_VALUE_FLOAT (251)

Send a key-value pair as float. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.

0123456789abcdefname[0:3 ]0004name[4:7 ]08name[8:9 ]time_boot_ms[0:1 ]0ctime_boot_ms[2:3 ]value[0:1 ]10value[2:3 ]
Field NameTypeUnitDescription
namechar[10]Name of the debug variable
time_boot_msuint32_tmsTimestamp (time since system boot).
valuefloatFloating point value

NAMED_VALUE_INT (252)

Send a key-value pair as integer. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.

0123456789abcdefname[0:3 ]0004name[4:7 ]08name[8:9 ]time_boot_ms[0:1 ]0ctime_boot_ms[2:3 ]value[0:1 ]10value[2:3 ]
Field NameTypeUnitDescription
namechar[10]Name of the debug variable
time_boot_msuint32_tmsTimestamp (time since system boot).
valueint32_tSigned integer value

STATUSTEXT (253)

Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).

0123456789abcdefseveritytext[0:2 ]0004text[3:6 ]08text[7:10 ]0ctext[11:14 ]10text[15:18 ]14text[19:22 ]18text[23:26 ]1ctext[27:30 ]20text[31:34 ]24text[35:38 ]28text[39:42 ]2ctext[43:46 ]30text[47:49 ]id[0:0 ]34id[1:1 ]chunk_seq
Field NameTypeEnum ValuesDescription
severityuint8_tMAV_SEVERITYSeverity of status. Relies on the definitions within RFC-5424.
textchar[50]Status text message, without null termination character
iduint16_tUnique (opaque) identifier for this statustext message. May be used to reassemble a logical long-statustext message from a sequence of chunks. A value of zero indicates this is the only chunk in the sequence and the message can be emitted immediately.
chunk_sequint8_tThis chunk's sequence number; indexing is from zero. Any null character in the text field is taken to mean this was the last chunk.

DEBUG (254)

Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N.

0123456789abcdefindtime_boot_ms[0:2 ]0004time_boot_ms[3:3 ]value[0:2 ]08value[3:3 ]
Field NameTypeUnitDescription
induint8_tindex of debug variable
time_boot_msuint32_tmsTimestamp (time since system boot).
valuefloatDEBUG value

SETUP_SIGNING (256)

Setup a MAVLink2 signing key. If called with secret_key of all zero and zero initial_timestamp will disable signing

0123456789abcdeftarget_systemtarget_componentsecret_key[0:1 ]0004secret_key[2:5 ]08secret_key[6:9 ]0csecret_key[10:13 ]10secret_key[14:17 ]14secret_key[18:21 ]18secret_key[22:25 ]1csecret_key[26:29 ]20secret_key[30:31 ]initial_timestamp[0:1 ]24initial_timestamp[2:5 ]28initial_timestamp[6:7 ]
Field NameTypeDescription
target_systemuint8_tsystem id of the target
target_componentuint8_tcomponent ID of the target
secret_keyuint8_t[32]signing key
initial_timestampuint64_tinitial timestamp

BUTTON_CHANGE (257)

Report button state change.

0123456789abcdefstatetime_boot_ms[0:2 ]0004time_boot_ms[3:3 ]last_change_ms[0:2 ]08last_change_ms[3:3 ]
Field NameTypeUnitDescription
stateuint8_tBitmap for state of buttons.
time_boot_msuint32_tmsTimestamp (time since system boot).
last_change_msuint32_tmsTime of last change of button state.

PLAY_TUNE (258)

Control vehicle tone generation (buzzer).

0123456789abcdeftarget_systemtarget_componenttune[0:1 ]0004tune[2:5 ]08tune[6:9 ]0ctune[10:13 ]10tune[14:17 ]14tune[18:21 ]18tune[22:25 ]1ctune[26:29 ]20tune2[0:3 ]24tune2[4:7 ]28tune2[8:11 ]2ctune2[12:15 ]30tune2[16:19 ]34tune2[20:23 ]38tune2[24:27 ]3ctune2[28:31 ]40tune2[32:35 ]44tune2[36:39 ]48tune2[40:43 ]4ctune2[44:47 ]50tune2[48:51 ]54tune2[52:55 ]58tune2[56:59 ]5ctune2[60:63 ]60tune2[64:67 ]64tune2[68:71 ]68tune2[72:75 ]6ctune2[76:79 ]70tune2[80:83 ]74tune2[84:87 ]78tune2[88:91 ]7ctune2[92:95 ]80tune2[96:99 ]84tune2[100:103 ]88tune2[104:107 ]8ctune2[108:111 ]90tune2[112:115 ]94tune2[116:119 ]98tune2[120:123 ]9ctune2[124:127 ]a0tune2[128:131 ]a4tune2[132:135 ]a8tune2[136:139 ]actune2[140:143 ]b0tune2[144:147 ]b4tune2[148:151 ]b8tune2[152:155 ]bctune2[156:159 ]c0tune2[160:163 ]c4tune2[164:167 ]c8tune2[168:171 ]cctune2[172:175 ]d0tune2[176:179 ]d4tune2[180:183 ]d8tune2[184:187 ]dctune2[188:191 ]e0tune2[192:195 ]e4tune2[196:199 ]
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
tunechar[30]tune in board specific format
tune2char[200]tune extension (appended to tune)

CAMERA_INFORMATION (259)

Information about a camera. Can be requested with a MAV_CMD_REQUEST_MESSAGE command.

0123456789abcdefvendor_name[0:1 ]0002vendor_name[2:3 ]04vendor_name[4:5 ]06vendor_name[6:7 ]08vendor_name[8:9 ]0avendor_name[10:11 ]0cvendor_name[12:13 ]0evendor_name[14:15 ]10vendor_name[16:17 ]12vendor_name[18:19 ]14vendor_name[20:21 ]16vendor_name[22:23 ]18vendor_name[24:25 ]1avendor_name[26:27 ]1cvendor_name[28:29 ]1evendor_name[30:31 ]20model_name[0:1 ]22model_name[2:3 ]24model_name[4:5 ]26model_name[6:7 ]28model_name[8:9 ]2amodel_name[10:11 ]2cmodel_name[12:13 ]2emodel_name[14:15 ]30model_name[16:17 ]32model_name[18:19 ]34model_name[20:21 ]36model_name[22:23 ]38model_name[24:25 ]3amodel_name[26:27 ]3cmodel_name[28:29 ]3emodel_name[30:31 ]40lens_idcam_definition_uri[0:0 ]42cam_definition_uri[1:2 ]44cam_definition_uri[3:4 ]46cam_definition_uri[5:6 ]48cam_definition_uri[7:8 ]4acam_definition_uri[9:10 ]4ccam_definition_uri[11:12 ]4ecam_definition_uri[13:14 ]50cam_definition_uri[15:16 ]52cam_definition_uri[17:18 ]54cam_definition_uri[19:20 ]56cam_definition_uri[21:22 ]58cam_definition_uri[23:24 ]5acam_definition_uri[25:26 ]5ccam_definition_uri[27:28 ]5ecam_definition_uri[29:30 ]60cam_definition_uri[31:32 ]62cam_definition_uri[33:34 ]64cam_definition_uri[35:36 ]66cam_definition_uri[37:38 ]68cam_definition_uri[39:40 ]6acam_definition_uri[41:42 ]6ccam_definition_uri[43:44 ]6ecam_definition_uri[45:46 ]70cam_definition_uri[47:48 ]72cam_definition_uri[49:50 ]74cam_definition_uri[51:52 ]76cam_definition_uri[53:54 ]78cam_definition_uri[55:56 ]7acam_definition_uri[57:58 ]7ccam_definition_uri[59:60 ]7ecam_definition_uri[61:62 ]80cam_definition_uri[63:64 ]82cam_definition_uri[65:66 ]84cam_definition_uri[67:68 ]86cam_definition_uri[69:70 ]88cam_definition_uri[71:72 ]8acam_definition_uri[73:74 ]8ccam_definition_uri[75:76 ]8ecam_definition_uri[77:78 ]90cam_definition_uri[79:80 ]92cam_definition_uri[81:82 ]94cam_definition_uri[83:84 ]96cam_definition_uri[85:86 ]98cam_definition_uri[87:88 ]9acam_definition_uri[89:90 ]9ccam_definition_uri[91:92 ]9ecam_definition_uri[93:94 ]a0cam_definition_uri[95:96 ]a2cam_definition_uri[97:98 ]a4cam_definition_uri[99:100 ]a6cam_definition_uri[101:102 ]a8cam_definition_uri[103:104 ]aacam_definition_uri[105:106 ]accam_definition_uri[107:108 ]aecam_definition_uri[109:110 ]b0cam_definition_uri[111:112 ]b2cam_definition_uri[113:114 ]b4cam_definition_uri[115:116 ]b6cam_definition_uri[117:118 ]b8cam_definition_uri[119:120 ]bacam_definition_uri[121:122 ]bccam_definition_uri[123:124 ]becam_definition_uri[125:126 ]c0cam_definition_uri[127:128 ]c2cam_definition_uri[129:130 ]c4cam_definition_uri[131:132 ]c6cam_definition_uri[133:134 ]c8cam_definition_uri[135:136 ]cacam_definition_uri[137:138 ]cccam_definition_uri[139:139 ]resolution_h[0:0 ]ceresolution_h[1:1 ]resolution_v[0:0 ]d0resolution_v[1:1 ]cam_definition_version[0:0 ]d2cam_definition_version[1:1 ]time_boot_ms[0:0 ]d4time_boot_ms[1:2 ]d6time_boot_ms[3:3 ]firmware_version[0:0 ]d8firmware_version[1:2 ]dafirmware_version[3:3 ]focal_length[0:0 ]dcfocal_length[1:2 ]defocal_length[3:3 ]sensor_size_h[0:0 ]e0sensor_size_h[1:2 ]e2sensor_size_h[3:3 ]sensor_size_v[0:0 ]e4sensor_size_v[1:2 ]e6sensor_size_v[3:3 ]flags[0:0 ]e8flags[1:2 ]eaflags[3:3 ]gimbal_device_ideccamera_device_id
Field NameTypeUnitEnum ValuesDescription
vendor_nameuint8_t[32]Name of the camera vendor
model_nameuint8_t[32]Name of the camera model
lens_iduint8_tReserved for a lens ID. Use 0 if not known.
cam_definition_urichar[140]Camera definition URI (if any, otherwise only basic functions will be available). HTTP- (http://) and MAVLink FTP- (mavlinkftp://) formatted URIs are allowed (and both must be supported by any GCS that implements the Camera Protocol). The definition file may be xz compressed, which will be indicated by the file extension .xml.xz (a GCS that implements the protocol must support decompressing the file). The string needs to be zero terminated. Use a zero-length string if not known.
resolution_huint16_tpixHorizontal image resolution. Use 0 if not known.
resolution_vuint16_tpixVertical image resolution. Use 0 if not known.
cam_definition_versionuint16_tCamera definition version (iteration). Use 0 if not known.
time_boot_msuint32_tmsTimestamp (time since system boot).
firmware_versionuint32_tVersion of the camera firmware, encoded as: (Dev & 0xff) << 24 + (Patch & 0xff) << 16 + (Minor & 0xff) << 8 + (Major & 0xff). Use 0 if not known.
focal_lengthfloatmmFocal length. Use NaN if not known.
sensor_size_hfloatmmImage sensor size horizontal. Use NaN if not known.
sensor_size_vfloatmmImage sensor size vertical. Use NaN if not known.
flagsuint32_tCAMERA_CAP_FLAGSBitmap of camera capability flags.
gimbal_device_iduint8_tGimbal id of a gimbal associated with this camera. This is the component id of the gimbal device, or 1-6 for non mavlink gimbals. Use 0 if no gimbal is associated with the camera.
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

CAMERA_SETTINGS (260)

Settings of a camera. Can be requested with a MAV_CMD_REQUEST_MESSAGE command.

0123456789abcdefmode_idtime_boot_ms[0:2 ]0004time_boot_ms[3:3 ]zoomLevel[0:2 ]08zoomLevel[3:3 ]focusLevel[0:2 ]0cfocusLevel[3:3 ]camera_device_id
Field NameTypeUnitEnum ValuesDescription
mode_iduint8_tCAMERA_MODECamera mode
time_boot_msuint32_tmsTimestamp (time since system boot).
zoomLevelfloatCurrent zoom level as a percentage of the full range (0.0 to 100.0, NaN if not known)
focusLevelfloatCurrent focus level as a percentage of the full range (0.0 to 100.0, NaN if not known)
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

STORAGE_INFORMATION (261)

Information about a storage medium. This message is sent in response to a request with MAV_CMD_REQUEST_MESSAGE and whenever the status of the storage changes (STORAGE_STATUS). Use MAV_CMD_REQUEST_MESSAGE.param2 to indicate the index/id of requested storage: 0 for all, 1 for first, 2 for second, etc.

0123456789abcdefstorage_idstorage_countstatustime_boot_ms[0:0 ]0004time_boot_ms[1:3 ]total_capacity[0:0 ]08total_capacity[1:3 ]used_capacity[0:0 ]0cused_capacity[1:3 ]available_capacity[0:0 ]10available_capacity[1:3 ]read_speed[0:0 ]14read_speed[1:3 ]write_speed[0:0 ]18write_speed[1:3 ]type1cname[0:3 ]20name[4:7 ]24name[8:11 ]28name[12:15 ]2cname[16:19 ]30name[20:23 ]34name[24:27 ]38name[28:31 ]3cstorage_usage
Field NameTypeUnitEnum ValuesDescription
storage_iduint8_tStorage ID (1 for first, 2 for second, etc.)
storage_countuint8_tNumber of storage devices
statusuint8_tSTORAGE_STATUSStatus of storage
time_boot_msuint32_tmsTimestamp (time since system boot).
total_capacityfloatMiBTotal capacity. If storage is not ready (STORAGE_STATUS_READY) value will be ignored.
used_capacityfloatMiBUsed capacity. If storage is not ready (STORAGE_STATUS_READY) value will be ignored.
available_capacityfloatMiBAvailable storage capacity. If storage is not ready (STORAGE_STATUS_READY) value will be ignored.
read_speedfloatMiB/sRead speed.
write_speedfloatMiB/sWrite speed.
typeuint8_tSTORAGE_TYPEType of storage
namechar[32]Textual storage name to be used in UI (microSD 1, Internal Memory, etc.) This is a NULL terminated string. If it is exactly 32 characters long, add a terminating NULL. If this string is empty, the generic type is shown to the user.
storage_usageuint8_tSTORAGE_USAGE_FLAGFlags indicating whether this instance is preferred storage for photos, videos, etc.
Note: Implementations should initially set the flags on the system-default storage id used for saving media (if possible/supported).
This setting can then be overridden using MAV_CMD_SET_STORAGE_USAGE.
If the media usage flags are not set, a GCS may assume storage ID 1 is the default storage for all media types.

CAMERA_CAPTURE_STATUS (262)

Information about the status of a capture. Can be requested with a MAV_CMD_REQUEST_MESSAGE command.

0123456789abcdefimage_statusvideo_statustime_boot_ms[0:1 ]0004time_boot_ms[2:3 ]image_interval[0:1 ]08image_interval[2:3 ]recording_time_ms[0:1 ]0crecording_time_ms[2:3 ]available_capacity[0:1 ]10available_capacity[2:3 ]image_count[0:1 ]14image_count[2:3 ]camera_device_id
Field NameTypeUnitDescription
image_statusuint8_tCurrent status of image capturing (0: idle, 1: capture in progress, 2: interval set but idle, 3: interval set and capture in progress)
video_statusuint8_tCurrent status of video capturing (0: idle, 1: capture in progress)
time_boot_msuint32_tmsTimestamp (time since system boot).
image_intervalfloatsImage capture interval
recording_time_msuint32_tmsElapsed time since recording started (0: Not supported/available). A GCS should compute recording time and use non-zero values of this field to correct any discrepancy.
available_capacityfloatMiBAvailable storage capacity.
image_countint32_tTotal number of images captured ('forever', or until reset using MAV_CMD_STORAGE_FORMAT).
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

CAMERA_IMAGE_CAPTURED (263)

Information about a captured image. This is emitted every time a message is captured. MAV_CMD_REQUEST_MESSAGE can be used to (re)request this message for a specific sequence number or range of sequence numbers: MAV_CMD_REQUEST_MESSAGE.param2 indicates the sequence number the first image to send, or set to -1 to send the message for all sequence numbers. MAV_CMD_REQUEST_MESSAGE.param3 is used to specify a range of messages to send: set to 0 (default) to send just the the message for the sequence number in param 2, set to -1 to send the message for the sequence number in param 2 and all the following sequence numbers, set to the sequence number of the final message in the range.

0123456789abcdefcamera_idcapture_resultfile_url[0:1 ]0004file_url[2:5 ]08file_url[6:9 ]0cfile_url[10:13 ]10file_url[14:17 ]14file_url[18:21 ]18file_url[22:25 ]1cfile_url[26:29 ]20file_url[30:33 ]24file_url[34:37 ]28file_url[38:41 ]2cfile_url[42:45 ]30file_url[46:49 ]34file_url[50:53 ]38file_url[54:57 ]3cfile_url[58:61 ]40file_url[62:65 ]44file_url[66:69 ]48file_url[70:73 ]4cfile_url[74:77 ]50file_url[78:81 ]54file_url[82:85 ]58file_url[86:89 ]5cfile_url[90:93 ]60file_url[94:97 ]64file_url[98:101 ]68file_url[102:105 ]6cfile_url[106:109 ]70file_url[110:113 ]74file_url[114:117 ]78file_url[118:121 ]7cfile_url[122:125 ]80file_url[126:129 ]84file_url[130:133 ]88file_url[134:137 ]8cfile_url[138:141 ]90file_url[142:145 ]94file_url[146:149 ]98file_url[150:153 ]9cfile_url[154:157 ]a0file_url[158:161 ]a4file_url[162:165 ]a8file_url[166:169 ]acfile_url[170:173 ]b0file_url[174:177 ]b4file_url[178:181 ]b8file_url[182:185 ]bcfile_url[186:189 ]c0file_url[190:193 ]c4file_url[194:197 ]c8file_url[198:201 ]ccfile_url[202:204 ]time_boot_ms[0:0 ]d0time_boot_ms[1:3 ]lat[0:0 ]d4lat[1:3 ]lon[0:0 ]d8lon[1:3 ]alt[0:0 ]dcalt[1:3 ]relative_alt[0:0 ]e0relative_alt[1:3 ]q[0:0 ]e4q[1:3 ]image_index[0:0 ]e8image_index[1:3 ]time_utc[0:0 ]ectime_utc[1:4 ]f0time_utc[5:7 ]
Field NameTypeUnitEnum ValuesDescription
camera_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id). Field name is usually camera_device_id.
capture_resultint8_tMAV_BOOLImage was captured successfully (MAV_BOOL_TRUE). Values not equal to 0 or 1 are invalid.
file_urlchar[205]URL of image taken. Either local storage or http://foo.jpg if camera provides an HTTP interface.
time_boot_msuint32_tmsTimestamp (time since system boot).
latint32_tdegE7Latitude where image was taken
lonint32_tdegE7Longitude where capture was taken
altint32_tmmAltitude (MSL) where image was taken
relative_altint32_tmmAltitude above ground
qfloat[4]Quaternion of camera orientation (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
image_indexint32_tZero based index of this image (i.e. a new image will have index CAMERA_CAPTURE_STATUS.image count -1)
time_utcuint64_tusTimestamp (time since UNIX epoch) in UTC. 0 for unknown.

FLIGHT_INFORMATION (264)

Flight information. This includes time since boot for arm, takeoff, and land, and a flight number. Takeoff and landing values reset to zero on arm. This can be requested using MAV_CMD_REQUEST_MESSAGE. Note, some fields are misnamed - timestamps are from boot (not UTC) and the flight_uuid is a sequence number.

0123456789abcdeftime_boot_ms0004arming_time_utc[0:3 ]08arming_time_utc[4:7 ]0ctakeoff_time_utc[0:3 ]10takeoff_time_utc[4:7 ]14flight_uuid[0:3 ]18flight_uuid[4:7 ]1clanding_time
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
arming_time_utcuint64_tusTimestamp at arming (since system boot). Set to 0 on boot. Set value on arming. Note, field is misnamed UTC.
takeoff_time_utcuint64_tusTimestamp at takeoff (since system boot). Set to 0 at boot and on arming. Note, field is misnamed UTC.
flight_uuiduint64_tFlight number. Note, field is misnamed UUID.
landing_timeuint32_tmsTimestamp at landing (in ms since system boot). Set to 0 at boot and on arming.

MOUNT_ORIENTATION (265)

Orientation of a mount

0123456789abcdeftime_boot_ms0004roll08pitch0cyaw10yaw_absolute
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
rollfloatdegRoll in global frame (set to NaN for invalid).
pitchfloatdegPitch in global frame (set to NaN for invalid).
yawfloatdegYaw relative to vehicle (set to NaN for invalid).
yaw_absolutefloatdegYaw in absolute frame relative to Earth's North, north is 0 (set to NaN for invalid).

LOGGING_DATA (266)

A message containing logged data (see also MAV_CMD_LOGGING_START)

0123456789abcdeftarget_systemtarget_component0002lengthfirst_message_offset04data[0:1 ]06data[2:3 ]08data[4:5 ]0adata[6:7 ]0cdata[8:9 ]0edata[10:11 ]10data[12:13 ]12data[14:15 ]14data[16:17 ]16data[18:19 ]18data[20:21 ]1adata[22:23 ]1cdata[24:25 ]1edata[26:27 ]20data[28:29 ]22data[30:31 ]24data[32:33 ]26data[34:35 ]28data[36:37 ]2adata[38:39 ]2cdata[40:41 ]2edata[42:43 ]30data[44:45 ]32data[46:47 ]34data[48:49 ]36data[50:51 ]38data[52:53 ]3adata[54:55 ]3cdata[56:57 ]3edata[58:59 ]40data[60:61 ]42data[62:63 ]44data[64:65 ]46data[66:67 ]48data[68:69 ]4adata[70:71 ]4cdata[72:73 ]4edata[74:75 ]50data[76:77 ]52data[78:79 ]54data[80:81 ]56data[82:83 ]58data[84:85 ]5adata[86:87 ]5cdata[88:89 ]5edata[90:91 ]60data[92:93 ]62data[94:95 ]64data[96:97 ]66data[98:99 ]68data[100:101 ]6adata[102:103 ]6cdata[104:105 ]6edata[106:107 ]70data[108:109 ]72data[110:111 ]74data[112:113 ]76data[114:115 ]78data[116:117 ]7adata[118:119 ]7cdata[120:121 ]7edata[122:123 ]80data[124:125 ]82data[126:127 ]84data[128:129 ]86data[130:131 ]88data[132:133 ]8adata[134:135 ]8cdata[136:137 ]8edata[138:139 ]90data[140:141 ]92data[142:143 ]94data[144:145 ]96data[146:147 ]98data[148:149 ]9adata[150:151 ]9cdata[152:153 ]9edata[154:155 ]a0data[156:157 ]a2data[158:159 ]a4data[160:161 ]a6data[162:163 ]a8data[164:165 ]aadata[166:167 ]acdata[168:169 ]aedata[170:171 ]b0data[172:173 ]b2data[174:175 ]b4data[176:177 ]b6data[178:179 ]b8data[180:181 ]badata[182:183 ]bcdata[184:185 ]bedata[186:187 ]c0data[188:189 ]c2data[190:191 ]c4data[192:193 ]c6data[194:195 ]c8data[196:197 ]cadata[198:199 ]ccdata[200:201 ]cedata[202:203 ]d0data[204:205 ]d2data[206:207 ]d4data[208:209 ]d6data[210:211 ]d8data[212:213 ]dadata[214:215 ]dcdata[216:217 ]dedata[218:219 ]e0data[220:221 ]e2data[222:223 ]e4data[224:225 ]e6data[226:227 ]e8data[228:229 ]eadata[230:231 ]ecdata[232:233 ]eedata[234:235 ]f0data[236:237 ]f2data[238:239 ]f4data[240:241 ]f6data[242:243 ]f8data[244:245 ]fadata[246:247 ]fcdata[248:248 ]sequence[0:0 ]fesequence[1:1 ]
Field NameTypeUnitDescription
target_systemuint8_tsystem ID of the target
target_componentuint8_tcomponent ID of the target
lengthuint8_tbytesdata length
first_message_offsetuint8_tbytesoffset into data where first message starts. This can be used for recovery, when a previous message got lost (set to UINT8_MAX if no start exists).
datauint8_t[249]logged data
sequenceuint16_tsequence number (can wrap)

LOGGING_DATA_ACKED (267)

A message containing logged data which requires a LOGGING_ACK to be sent back

0123456789abcdeftarget_systemtarget_component0002lengthfirst_message_offset04data[0:1 ]06data[2:3 ]08data[4:5 ]0adata[6:7 ]0cdata[8:9 ]0edata[10:11 ]10data[12:13 ]12data[14:15 ]14data[16:17 ]16data[18:19 ]18data[20:21 ]1adata[22:23 ]1cdata[24:25 ]1edata[26:27 ]20data[28:29 ]22data[30:31 ]24data[32:33 ]26data[34:35 ]28data[36:37 ]2adata[38:39 ]2cdata[40:41 ]2edata[42:43 ]30data[44:45 ]32data[46:47 ]34data[48:49 ]36data[50:51 ]38data[52:53 ]3adata[54:55 ]3cdata[56:57 ]3edata[58:59 ]40data[60:61 ]42data[62:63 ]44data[64:65 ]46data[66:67 ]48data[68:69 ]4adata[70:71 ]4cdata[72:73 ]4edata[74:75 ]50data[76:77 ]52data[78:79 ]54data[80:81 ]56data[82:83 ]58data[84:85 ]5adata[86:87 ]5cdata[88:89 ]5edata[90:91 ]60data[92:93 ]62data[94:95 ]64data[96:97 ]66data[98:99 ]68data[100:101 ]6adata[102:103 ]6cdata[104:105 ]6edata[106:107 ]70data[108:109 ]72data[110:111 ]74data[112:113 ]76data[114:115 ]78data[116:117 ]7adata[118:119 ]7cdata[120:121 ]7edata[122:123 ]80data[124:125 ]82data[126:127 ]84data[128:129 ]86data[130:131 ]88data[132:133 ]8adata[134:135 ]8cdata[136:137 ]8edata[138:139 ]90data[140:141 ]92data[142:143 ]94data[144:145 ]96data[146:147 ]98data[148:149 ]9adata[150:151 ]9cdata[152:153 ]9edata[154:155 ]a0data[156:157 ]a2data[158:159 ]a4data[160:161 ]a6data[162:163 ]a8data[164:165 ]aadata[166:167 ]acdata[168:169 ]aedata[170:171 ]b0data[172:173 ]b2data[174:175 ]b4data[176:177 ]b6data[178:179 ]b8data[180:181 ]badata[182:183 ]bcdata[184:185 ]bedata[186:187 ]c0data[188:189 ]c2data[190:191 ]c4data[192:193 ]c6data[194:195 ]c8data[196:197 ]cadata[198:199 ]ccdata[200:201 ]cedata[202:203 ]d0data[204:205 ]d2data[206:207 ]d4data[208:209 ]d6data[210:211 ]d8data[212:213 ]dadata[214:215 ]dcdata[216:217 ]dedata[218:219 ]e0data[220:221 ]e2data[222:223 ]e4data[224:225 ]e6data[226:227 ]e8data[228:229 ]eadata[230:231 ]ecdata[232:233 ]eedata[234:235 ]f0data[236:237 ]f2data[238:239 ]f4data[240:241 ]f6data[242:243 ]f8data[244:245 ]fadata[246:247 ]fcdata[248:248 ]sequence[0:0 ]fesequence[1:1 ]
Field NameTypeUnitDescription
target_systemuint8_tsystem ID of the target
target_componentuint8_tcomponent ID of the target
lengthuint8_tbytesdata length
first_message_offsetuint8_tbytesoffset into data where first message starts. This can be used for recovery, when a previous message got lost (set to UINT8_MAX if no start exists).
datauint8_t[249]logged data
sequenceuint16_tsequence number (can wrap)

LOGGING_ACK (268)

An ack for a LOGGING_DATA_ACKED message

0123456789abcdeftarget_systemtarget_componentsequence
Field NameTypeDescription
target_systemuint8_tsystem ID of the target
target_componentuint8_tcomponent ID of the target
sequenceuint16_tsequence number (must match the one in LOGGING_DATA_ACKED)

VIDEO_STREAM_INFORMATION (269)

Information about video stream. It may be requested using MAV_CMD_REQUEST_MESSAGE, where param2 indicates the video stream id: 0 for all streams, 1 for first, 2 for second, etc.

0123456789abcdefstream_idcounttypename[0:0 ]0004name[1:4 ]08name[5:8 ]0cname[9:12 ]10name[13:16 ]14name[17:20 ]18name[21:24 ]1cname[25:28 ]20name[29:31 ]uri[0:0 ]24uri[1:4 ]28uri[5:8 ]2curi[9:12 ]30uri[13:16 ]34uri[17:20 ]38uri[21:24 ]3curi[25:28 ]40uri[29:32 ]44uri[33:36 ]48uri[37:40 ]4curi[41:44 ]50uri[45:48 ]54uri[49:52 ]58uri[53:56 ]5curi[57:60 ]60uri[61:64 ]64uri[65:68 ]68uri[69:72 ]6curi[73:76 ]70uri[77:80 ]74uri[81:84 ]78uri[85:88 ]7curi[89:92 ]80uri[93:96 ]84uri[97:100 ]88uri[101:104 ]8curi[105:108 ]90uri[109:112 ]94uri[113:116 ]98uri[117:120 ]9curi[121:124 ]a0uri[125:128 ]a4uri[129:132 ]a8uri[133:136 ]acuri[137:140 ]b0uri[141:144 ]b4uri[145:148 ]b8uri[149:152 ]bcuri[153:156 ]c0uri[157:159 ]flags[0:0 ]c4flags[1:1 ]resolution_hresolution_v[0:0 ]c8resolution_v[1:1 ]rotationhfov[0:0 ]cchfov[1:1 ]framerate[0:2 ]d0framerate[3:3 ]bitrate[0:2 ]d4bitrate[3:3 ]encodingcamera_device_id
Field NameTypeUnitEnum ValuesDescription
stream_iduint8_tVideo Stream ID (1 for first, 2 for second, etc.)
countuint8_tNumber of streams available.
typeuint8_tVIDEO_STREAM_TYPEType of stream.
namechar[32]Stream name.
urichar[160]Video stream URI (TCP or RTSP URI ground station should connect to) or port number (UDP port ground station should listen to).
flagsuint16_tVIDEO_STREAM_STATUS_FLAGSBitmap of stream status flags.
resolution_huint16_tpixHorizontal resolution.
resolution_vuint16_tpixVertical resolution.
rotationuint16_tdegVideo image rotation clockwise.
hfovuint16_tdegHorizontal Field of view.
frameratefloatHzFrame rate.
bitrateuint32_tbits/sBit rate.
encodinguint8_tVIDEO_STREAM_ENCODINGEncoding of stream.
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

VIDEO_STREAM_STATUS (270)

Information about the status of a video stream. It may be requested using MAV_CMD_REQUEST_MESSAGE.

0123456789abcdefstream_idflagsresolution_h[0:0 ]0004resolution_h[1:1 ]resolution_vrotation[0:0 ]08rotation[1:1 ]hfovframerate[0:0 ]0cframerate[1:3 ]bitrate[0:0 ]10bitrate[1:3 ]camera_device_id
Field NameTypeUnitEnum ValuesDescription
stream_iduint8_tVideo Stream ID (1 for first, 2 for second, etc.)
flagsuint16_tVIDEO_STREAM_STATUS_FLAGSBitmap of stream status flags
resolution_huint16_tpixHorizontal resolution
resolution_vuint16_tpixVertical resolution
rotationuint16_tdegVideo image rotation clockwise
hfovuint16_tdegHorizontal Field of view
frameratefloatHzFrame rate
bitrateuint32_tbits/sBit rate
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

CAMERA_FOV_STATUS (271)

Information about the field of view of a camera. Can be requested with a MAV_CMD_REQUEST_MESSAGE command.

0123456789abcdeftime_boot_ms0004lat_camera08lon_camera0calt_camera10lat_image14lon_image18alt_image1cq20hfov24vfov28camera_device_id
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
lat_cameraint32_tdegE7Latitude of camera (INT32_MAX if unknown).
lon_cameraint32_tdegE7Longitude of camera (INT32_MAX if unknown).
alt_cameraint32_tmmAltitude (MSL) of camera (INT32_MAX if unknown).
lat_imageint32_tdegE7Latitude of center of image (INT32_MAX if unknown, INT32_MIN if at infinity, not intersecting with horizon).
lon_imageint32_tdegE7Longitude of center of image (INT32_MAX if unknown, INT32_MIN if at infinity, not intersecting with horizon).
alt_imageint32_tmmAltitude (MSL) of center of image (INT32_MAX if unknown, INT32_MIN if at infinity, not intersecting with horizon).
qfloat[4]Quaternion of camera orientation (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
hfovfloatdegHorizontal field of view (NaN if unknown).
vfovfloatdegVertical field of view (NaN if unknown).
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

CAMERA_TRACKING_IMAGE_STATUS (275)

Camera tracking status, sent while in active tracking. Use MAV_CMD_SET_MESSAGE_INTERVAL to define message interval.

0123456789abcdeftracking_statustracking_modetarget_datapoint_x[0:0 ]0004point_x[1:3 ]point_y[0:0 ]08point_y[1:3 ]radius[0:0 ]0cradius[1:3 ]rec_top_x[0:0 ]10rec_top_x[1:3 ]rec_top_y[0:0 ]14rec_top_y[1:3 ]rec_bottom_x[0:0 ]18rec_bottom_x[1:3 ]rec_bottom_y[0:0 ]1crec_bottom_y[1:3 ]camera_device_id
Field NameTypeEnum ValuesDescription
tracking_statusuint8_tCAMERA_TRACKING_STATUS_FLAGSCurrent tracking status
tracking_modeuint8_tCAMERA_TRACKING_MODECurrent tracking mode
target_datauint8_tCAMERA_TRACKING_TARGET_DATADefines location of target data
point_xfloatCurrent tracked point x value if CAMERA_TRACKING_MODE_POINT (normalized 0..1, 0 is left, 1 is right), NAN if unknown
point_yfloatCurrent tracked point y value if CAMERA_TRACKING_MODE_POINT (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown
radiusfloatCurrent tracked radius if CAMERA_TRACKING_MODE_POINT (normalized 0..1, 0 is image left, 1 is image right), NAN if unknown
rec_top_xfloatCurrent tracked rectangle top x value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is left, 1 is right), NAN if unknown
rec_top_yfloatCurrent tracked rectangle top y value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown
rec_bottom_xfloatCurrent tracked rectangle bottom x value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is left, 1 is right), NAN if unknown
rec_bottom_yfloatCurrent tracked rectangle bottom y value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

CAMERA_TRACKING_GEO_STATUS (276)

Camera tracking status, sent while in active tracking. Use MAV_CMD_SET_MESSAGE_INTERVAL to define message interval.

0123456789abcdeftracking_statuslat[0:2 ]0004lat[3:3 ]lon[0:2 ]08lon[3:3 ]alt[0:2 ]0calt[3:3 ]h_acc[0:2 ]10h_acc[3:3 ]v_acc[0:2 ]14v_acc[3:3 ]vel_n[0:2 ]18vel_n[3:3 ]vel_e[0:2 ]1cvel_e[3:3 ]vel_d[0:2 ]20vel_d[3:3 ]vel_acc[0:2 ]24vel_acc[3:3 ]dist[0:2 ]28dist[3:3 ]hdg[0:2 ]2chdg[3:3 ]hdg_acc[0:2 ]30hdg_acc[3:3 ]camera_device_id
Field NameTypeUnitEnum ValuesDescription
tracking_statusuint8_tCAMERA_TRACKING_STATUS_FLAGSCurrent tracking status
latint32_tdegE7Latitude of tracked object
lonint32_tdegE7Longitude of tracked object
altfloatmAltitude of tracked object(AMSL, WGS84)
h_accfloatmHorizontal accuracy. NAN if unknown
v_accfloatmVertical accuracy. NAN if unknown
vel_nfloatm/sNorth velocity of tracked object. NAN if unknown
vel_efloatm/sEast velocity of tracked object. NAN if unknown
vel_dfloatm/sDown velocity of tracked object. NAN if unknown
vel_accfloatm/sVelocity accuracy. NAN if unknown
distfloatmDistance between camera and tracked object. NAN if unknown
hdgfloatradHeading in radians, in NED. NAN if unknown
hdg_accfloatradAccuracy of heading, in NED. NAN if unknown
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).

CAMERA_THERMAL_RANGE (277)

Camera absolute thermal range. This can be streamed when the associated VIDEO_STREAM_STATUS flag field bit VIDEO_STREAM_STATUS_FLAGS_THERMAL_RANGE_ENABLED is set, but a GCS may choose to only request it for the current active stream. Use MAV_CMD_SET_MESSAGE_INTERVAL to define message interval (param3 indicates the stream id of the current camera, or 0 for all streams, param4 indicates the target camera_device_id for autopilot-attached cameras or 0 for MAVLink cameras).

0123456789abcdefstream_idcamera_device_idtime_boot_ms[0:1 ]0004time_boot_ms[2:3 ]max[0:1 ]08max[2:3 ]max_point_x[0:1 ]0cmax_point_x[2:3 ]max_point_y[0:1 ]10max_point_y[2:3 ]min[0:1 ]14min[2:3 ]min_point_x[0:1 ]18min_point_x[2:3 ]min_point_y[0:1 ]1cmin_point_y[2:3 ]
Field NameTypeUnitDescription
stream_iduint8_tVideo Stream ID (1 for first, 2 for second, etc.)
camera_device_iduint8_tCamera id of a non-MAVLink camera attached to an autopilot (1-6). 0 if the component is a MAVLink camera (with its own component id).
time_boot_msuint32_tmsTimestamp (time since system boot).
maxfloatdegCTemperature max.
max_point_xfloatTemperature max point x value (normalized 0..1, 0 is left, 1 is right), NAN if unknown.
max_point_yfloatTemperature max point y value (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown.
minfloatdegCTemperature min.
min_point_xfloatTemperature min point x value (normalized 0..1, 0 is left, 1 is right), NAN if unknown.
min_point_yfloatTemperature min point y value (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown.

GIMBAL_MANAGER_INFORMATION (280)

Information about a high level gimbal manager. This message should be requested by a ground station using MAV_CMD_REQUEST_MESSAGE.

0123456789abcdefgimbal_device_idtime_boot_ms[0:2 ]0004time_boot_ms[3:3 ]cap_flags[0:2 ]08cap_flags[3:3 ]roll_min[0:2 ]0croll_min[3:3 ]roll_max[0:2 ]10roll_max[3:3 ]pitch_min[0:2 ]14pitch_min[3:3 ]pitch_max[0:2 ]18pitch_max[3:3 ]yaw_min[0:2 ]1cyaw_min[3:3 ]yaw_max[0:2 ]20yaw_max[3:3 ]
Field NameTypeUnitEnum ValuesDescription
gimbal_device_iduint8_tGimbal device ID that this gimbal manager is responsible for. Component ID of gimbal device (or 1-6 for non-MAVLink gimbal).
time_boot_msuint32_tmsTimestamp (time since system boot).
cap_flagsuint32_tGIMBAL_MANAGER_CAP_FLAGSBitmap of gimbal capability flags.
roll_minfloatradMinimum hardware roll angle (positive: rolling to the right, negative: rolling to the left)
roll_maxfloatradMaximum hardware roll angle (positive: rolling to the right, negative: rolling to the left)
pitch_minfloatradMinimum pitch angle (positive: up, negative: down)
pitch_maxfloatradMaximum pitch angle (positive: up, negative: down)
yaw_minfloatradMinimum yaw angle (positive: to the right, negative: to the left)
yaw_maxfloatradMaximum yaw angle (positive: to the right, negative: to the left)

GIMBAL_MANAGER_STATUS (281)

Current status about a high level gimbal manager. This message should be broadcast at a low regular rate (e.g. 5Hz).

0123456789abcdefgimbal_device_idprimary_control_sysid0002primary_control_compidsecondary_control_sysid04secondary_control_compidtime_boot_ms[0:0 ]06time_boot_ms[1:2 ]08time_boot_ms[3:3 ]flags[0:0 ]0aflags[1:2 ]0cflags[3:3 ]
Field NameTypeUnitEnum ValuesDescription
gimbal_device_iduint8_tGimbal device ID that this gimbal manager is responsible for. Component ID of gimbal device (or 1-6 for non-MAVLink gimbal).
primary_control_sysiduint8_tSystem ID of MAVLink component with primary control, 0 for none.
primary_control_compiduint8_tComponent ID of MAVLink component with primary control, 0 for none.
secondary_control_sysiduint8_tSystem ID of MAVLink component with secondary control, 0 for none.
secondary_control_compiduint8_tComponent ID of MAVLink component with secondary control, 0 for none.
time_boot_msuint32_tmsTimestamp (time since system boot).
flagsuint32_tGIMBAL_MANAGER_FLAGSHigh level gimbal manager flags currently applied.

GIMBAL_MANAGER_SET_ATTITUDE (282)

High level message to control a gimbal's attitude. This message is to be sent to the gimbal manager (e.g. from a ground station). Angles and rates can be set to NaN according to use case.

0123456789abcdeftarget_systemtarget_componentgimbal_device_idflags[0:0 ]0004flags[1:3 ]q[0:0 ]08q[1:3 ]angular_velocity_x[0:0 ]0cangular_velocity_x[1:3 ]angular_velocity_y[0:0 ]10angular_velocity_y[1:3 ]angular_velocity_z[0:0 ]14angular_velocity_z[1:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
gimbal_device_iduint8_tComponent ID of gimbal device to address (or 1-6 for non-MAVLink gimbal), 0 for all gimbal device components. Send command multiple times for more than one gimbal (but not all gimbals).
flagsuint32_tGIMBAL_MANAGER_FLAGSHigh level gimbal manager flags to use.
qfloat[4]Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation, the frame is depends on whether the flag GIMBAL_MANAGER_FLAGS_YAW_LOCK is set)
angular_velocity_xfloatrad/sX component of angular velocity, positive is rolling to the right, NaN to be ignored.
angular_velocity_yfloatrad/sY component of angular velocity, positive is pitching up, NaN to be ignored.
angular_velocity_zfloatrad/sZ component of angular velocity, positive is yawing to the right, NaN to be ignored.

GIMBAL_DEVICE_INFORMATION (283)

Information about a low level gimbal. This message should be requested by the gimbal manager or a ground station using MAV_CMD_REQUEST_MESSAGE. The maximum angles and rates are the limits by hardware. However, the limits by software used are likely different/smaller and dependent on mode/settings/etc..

0123456789abcdefvendor_name[0:3 ]0004vendor_name[4:7 ]08vendor_name[8:11 ]0cvendor_name[12:15 ]10vendor_name[16:19 ]14vendor_name[20:23 ]18vendor_name[24:27 ]1cvendor_name[28:31 ]20model_name[0:3 ]24model_name[4:7 ]28model_name[8:11 ]2cmodel_name[12:15 ]30model_name[16:19 ]34model_name[20:23 ]38model_name[24:27 ]3cmodel_name[28:31 ]40custom_name[0:3 ]44custom_name[4:7 ]48custom_name[8:11 ]4ccustom_name[12:15 ]50custom_name[16:19 ]54custom_name[20:23 ]58custom_name[24:27 ]5ccustom_name[28:31 ]60cap_flagscustom_cap_flags64time_boot_ms68firmware_version6chardware_version70roll_min74roll_max78pitch_min7cpitch_max80yaw_min84yaw_max88uid[0:3 ]8cuid[4:7 ]90gimbal_device_id
Field NameTypeUnitEnum ValuesDescription
vendor_namechar[32]Name of the gimbal vendor.
model_namechar[32]Name of the gimbal model.
custom_namechar[32]Custom name of the gimbal given to it by the user.
cap_flagsuint16_tGIMBAL_DEVICE_CAP_FLAGSBitmap of gimbal capability flags.
custom_cap_flagsuint16_tBitmap for use for gimbal-specific capability flags.
time_boot_msuint32_tmsTimestamp (time since system boot).
firmware_versionuint32_tVersion of the gimbal firmware, encoded as: (Dev & 0xff) << 24 + (Patch & 0xff) << 16 + (Minor & 0xff) << 8 + (Major & 0xff).
hardware_versionuint32_tVersion of the gimbal hardware, encoded as: (Dev & 0xff) << 24 + (Patch & 0xff) << 16 + (Minor & 0xff) << 8 + (Major & 0xff).
roll_minfloatradMinimum hardware roll angle (positive: rolling to the right, negative: rolling to the left). NAN if unknown.
roll_maxfloatradMaximum hardware roll angle (positive: rolling to the right, negative: rolling to the left). NAN if unknown.
pitch_minfloatradMinimum hardware pitch angle (positive: up, negative: down). NAN if unknown.
pitch_maxfloatradMaximum hardware pitch angle (positive: up, negative: down). NAN if unknown.
yaw_minfloatradMinimum hardware yaw angle (positive: to the right, negative: to the left). NAN if unknown.
yaw_maxfloatradMaximum hardware yaw angle (positive: to the right, negative: to the left). NAN if unknown.
uiduint64_tUID of gimbal hardware (0 if unknown).
gimbal_device_iduint8_tThis field is to be used if the gimbal manager and the gimbal device are the same component and hence have the same component ID. This field is then set to a number between 1-6. If the component ID is separate, this field is not required and must be set to 0.

GIMBAL_DEVICE_SET_ATTITUDE (284)

Low level message to control a gimbal device's attitude. This message is to be sent from the gimbal manager to the gimbal device component. The quaternion and angular velocities can be set to NaN according to use case. For the angles encoded in the quaternion and the angular velocities holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME is set, then they are relative to the vehicle heading (vehicle frame). If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME is set, then they are relative to absolute North (earth frame). If neither of these flags are set, then (for backwards compatibility) it holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_LOCK is set, then they are relative to absolute North (earth frame), else they are relative to the vehicle heading (vehicle frame). Setting both GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME and GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME is not allowed. These rules are to ensure backwards compatibility. New implementations should always set either GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME or GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME.

0123456789abcdeftarget_systemtarget_componentflags0004q08angular_velocity_x0cangular_velocity_y10angular_velocity_z
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
flagsuint16_tGIMBAL_DEVICE_FLAGSLow level gimbal flags.
qfloat[4]Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation). The frame is described in the message description. Set fields to NaN to be ignored.
angular_velocity_xfloatrad/sX component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN to be ignored.
angular_velocity_yfloatrad/sY component of angular velocity (positive: pitching up). The frame is described in the message description. NaN to be ignored.
angular_velocity_zfloatrad/sZ component of angular velocity (positive: yawing to the right). The frame is described in the message description. NaN to be ignored.

GIMBAL_DEVICE_ATTITUDE_STATUS (285)

Message reporting the status of a gimbal device. This message should be broadcast by a gimbal device component at a low regular rate (e.g. 5 Hz). For the angles encoded in the quaternion and the angular velocities holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME is set, then they are relative to the vehicle heading (vehicle frame). If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME is set, then they are relative to absolute North (earth frame). If neither of these flags are set, then (for backwards compatibility) it holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_LOCK is set, then they are relative to absolute North (earth frame), else they are relative to the vehicle heading (vehicle frame). Other conditions of the flags are not allowed. The quaternion and angular velocities in the other frame can be calculated from delta_yaw and delta_yaw_velocity as q_earth = q_delta_yaw * q_vehicle and w_earth = w_delta_yaw_velocity + w_vehicle (if not NaN). If neither the GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME nor the GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME flag is set, then (for backwards compatibility) the data in the delta_yaw and delta_yaw_velocity fields are to be ignored. New implementations should always set either GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME or GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME, and always should set delta_yaw and delta_yaw_velocity either to the proper value or NaN.

0123456789abcdeftarget_systemtarget_componentflags0004time_boot_ms08q0cangular_velocity_x10angular_velocity_y14angular_velocity_z18failure_flags1cdelta_yaw20delta_yaw_velocity24gimbal_device_id
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
flagsuint16_tGIMBAL_DEVICE_FLAGSCurrent gimbal flags set.
time_boot_msuint32_tmsTimestamp (time since system boot).
qfloat[4]Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation). The frame is described in the message description.
angular_velocity_xfloatrad/sX component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN if unknown.
angular_velocity_yfloatrad/sY component of angular velocity (positive: pitching up). The frame is described in the message description. NaN if unknown.
angular_velocity_zfloatrad/sZ component of angular velocity (positive: yawing to the right). The frame is described in the message description. NaN if unknown.
failure_flagsuint32_tGIMBAL_DEVICE_ERROR_FLAGSFailure flags (0 for no failure)
delta_yawfloatradYaw angle relating the quaternions in earth and body frames (see message description). NaN if unknown.
delta_yaw_velocityfloatrad/sYaw angular velocity relating the angular velocities in earth and body frames (see message description). NaN if unknown.
gimbal_device_iduint8_tThis field is to be used if the gimbal manager and the gimbal device are the same component and hence have the same component ID. This field is then set a number between 1-6. If the component ID is separate, this field is not required and must be set to 0.

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (286)

Low level message containing autopilot state relevant for a gimbal device. This message is to be sent from the autopilot to the gimbal device component. The data of this message are for the gimbal device's estimator corrections, in particular horizon compensation, as well as indicates autopilot control intentions, e.g. feed forward angular control in the z-axis.

0123456789abcdeftarget_systemtarget_component0002landed_stateestimator_status[0:0 ]04estimator_status[1:1 ]q[0:0 ]06q[1:2 ]08q[3:3 ]q_estimated_delay_us[0:0 ]0aq_estimated_delay_us[1:2 ]0cq_estimated_delay_us[3:3 ]vx[0:0 ]0evx[1:2 ]10vx[3:3 ]vy[0:0 ]12vy[1:2 ]14vy[3:3 ]vz[0:0 ]16vz[1:2 ]18vz[3:3 ]v_estimated_delay_us[0:0 ]1av_estimated_delay_us[1:2 ]1cv_estimated_delay_us[3:3 ]feed_forward_angular_velocity_z[0:0 ]1efeed_forward_angular_velocity_z[1:2 ]20feed_forward_angular_velocity_z[3:3 ]time_boot_us[0:0 ]22time_boot_us[1:2 ]24time_boot_us[3:4 ]26time_boot_us[5:6 ]28time_boot_us[7:7 ]angular_velocity_z[0:0 ]2aangular_velocity_z[1:2 ]2cangular_velocity_z[3:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
landed_stateuint8_tMAV_LANDED_STATEThe landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown.
estimator_statusuint16_tESTIMATOR_STATUS_FLAGSBitmap indicating which estimator outputs are valid.
qfloat[4]Quaternion components of autopilot attitude: w, x, y, z (1 0 0 0 is the null-rotation, Hamilton convention).
q_estimated_delay_usuint32_tusEstimated delay of the attitude data. 0 if unknown.
vxfloatm/sX Speed in NED (North, East, Down). NAN if unknown.
vyfloatm/sY Speed in NED (North, East, Down). NAN if unknown.
vzfloatm/sZ Speed in NED (North, East, Down). NAN if unknown.
v_estimated_delay_usuint32_tusEstimated delay of the speed data. 0 if unknown.
feed_forward_angular_velocity_zfloatrad/sFeed forward Z component of angular velocity (positive: yawing to the right). NaN to be ignored. This is to indicate if the autopilot is actively yawing.
time_boot_usuint64_tusTimestamp (time since system boot).
angular_velocity_zfloatrad/sZ component of angular velocity in NED (North, East, Down). NaN if unknown.

GIMBAL_MANAGER_SET_PITCHYAW (287)

Set gimbal manager pitch and yaw angles (high rate message). This message is to be sent to the gimbal manager (e.g. from a ground station) and will be ignored by gimbal devices. Angles and rates can be set to NaN according to use case. Use MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW for low-rate adjustments that require confirmation.

0123456789abcdeftarget_systemtarget_componentgimbal_device_idflags[0:0 ]0004flags[1:3 ]pitch[0:0 ]08pitch[1:3 ]yaw[0:0 ]0cyaw[1:3 ]pitch_rate[0:0 ]10pitch_rate[1:3 ]yaw_rate[0:0 ]14yaw_rate[1:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
gimbal_device_iduint8_tComponent ID of gimbal device to address (or 1-6 for non-MAVLink gimbal), 0 for all gimbal device components. Send command multiple times for more than one gimbal (but not all gimbals).
flagsuint32_tGIMBAL_MANAGER_FLAGSHigh level gimbal manager flags to use.
pitchfloatradPitch angle (positive: up, negative: down, NaN to be ignored).
yawfloatradYaw angle (positive: to the right, negative: to the left, NaN to be ignored).
pitch_ratefloatrad/sPitch angular rate (positive: up, negative: down, NaN to be ignored).
yaw_ratefloatrad/sYaw angular rate (positive: to the right, negative: to the left, NaN to be ignored).

GIMBAL_MANAGER_SET_MANUAL_CONTROL (288)

High level message to control a gimbal manually. The angles or angular rates are unitless; the actual rates will depend on internal gimbal manager settings/configuration (e.g. set by parameters). This message is to be sent to the gimbal manager (e.g. from a ground station). Angles and rates can be set to NaN according to use case.

0123456789abcdeftarget_systemtarget_componentgimbal_device_idflags[0:0 ]0004flags[1:3 ]pitch[0:0 ]08pitch[1:3 ]yaw[0:0 ]0cyaw[1:3 ]pitch_rate[0:0 ]10pitch_rate[1:3 ]yaw_rate[0:0 ]14yaw_rate[1:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
gimbal_device_iduint8_tComponent ID of gimbal device to address (or 1-6 for non-MAVLink gimbal), 0 for all gimbal device components. Send command multiple times for more than one gimbal (but not all gimbals).
flagsuint32_tGIMBAL_MANAGER_FLAGSHigh level gimbal manager flags.
pitchfloatPitch angle unitless (-1..1, positive: up, negative: down, NaN to be ignored).
yawfloatYaw angle unitless (-1..1, positive: to the right, negative: to the left, NaN to be ignored).
pitch_ratefloatPitch angular rate unitless (-1..1, positive: up, negative: down, NaN to be ignored).
yaw_ratefloatYaw angular rate unitless (-1..1, positive: to the right, negative: to the left, NaN to be ignored).

ESC_INFO (290)

ESC information for lower rate streaming. Recommended streaming rate 1Hz. See ESC_STATUS for higher-rate ESC data.

0123456789abcdefindexcountconnection_typeinfo0004counterfailure_flags[0:1 ]08failure_flags[2:3 ]temperature[0:1 ]0ctemperature[2:3 ]error_count[0:1 ]10error_count[2:3 ]time_usec[0:1 ]14time_usec[2:5 ]18time_usec[6:7 ]
Field NameTypeUnitEnum ValuesDescription
indexuint8_tIndex of the first ESC in this message. minValue = 0, maxValue = 60, increment = 4.
countuint8_tTotal number of ESCs in all messages of this type. Message fields with an index higher than this should be ignored because they contain invalid data.
connection_typeuint8_tESC_CONNECTION_TYPEConnection type protocol for all ESC.
infouint8_tInformation regarding online/offline status of each ESC.
counteruint16_tCounter of data packets received.
failure_flagsuint16_t[4]ESC_FAILURE_FLAGSBitmap of ESC failure flags.
temperatureint16_t[4]cdegCTemperature of each ESC. INT16_MAX: if data not supplied by ESC.
error_countuint32_t[4]Number of reported errors by each ESC since boot.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude the number.

ESC_STATUS (291)

ESC information for higher rate streaming. Recommended streaming rate is ~10 Hz. Information that changes more slowly is sent in ESC_INFO. It should typically only be streamed on high-bandwidth links (i.e. to a companion computer).

0123456789abcdefindexrpm[0:2 ]0004rpm[3:3 ]voltage[0:2 ]08voltage[3:3 ]current[0:2 ]0ccurrent[3:3 ]time_usec[0:2 ]10time_usec[3:6 ]14time_usec[7:7 ]
Field NameTypeUnitDescription
indexuint8_tIndex of the first ESC in this message. minValue = 0, maxValue = 60, increment = 4.
rpmint32_t[4]rpmReported motor RPM from each ESC (negative for reverse rotation).
voltagefloat[4]VVoltage measured from each ESC.
currentfloat[4]ACurrent measured from each ESC.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude the number.

AIRSPEED (295)

Airspeed information from a sensor.

0123456789abcdefidflagstemperature0004airspeed08raw_press
Field NameTypeUnitEnum ValuesDescription
iduint8_tSensor ID.
flagsuint8_tAIRSPEED_SENSOR_FLAGSAirspeed sensor flags.
temperatureint16_tcdegCTemperature.
airspeedfloatm/sCalibrated airspeed (CAS).
raw_pressfloathPaRaw differential pressure.

GLOBAL_POSITION (296)

Global position measurement or estimate.

0123456789abcdefidsourceflagslat[0:0 ]0004lat[1:3 ]lon[0:0 ]08lon[1:3 ]alt[0:0 ]0calt[1:3 ]alt_ellipsoid[0:0 ]10alt_ellipsoid[1:3 ]eph[0:0 ]14eph[1:3 ]epv[0:0 ]18epv[1:3 ]time_usec[0:0 ]1ctime_usec[1:4 ]20time_usec[5:7 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tSensor ID
sourceuint8_tGLOBAL_POSITION_SRCSource of position/estimate (such as GNSS, estimator, etc.)
flagsuint8_tGLOBAL_POSITION_FLAGSStatus flags
latint32_tdegE7Latitude (WGS84)
lonint32_tdegE7Longitude (WGS84)
altfloatmAltitude (MSL - position-system specific value)
alt_ellipsoidfloatmAltitude (WGS84 elipsoid)
ephfloatmStandard deviation of horizontal position error
epvfloatmStandard deviation of vertical position error
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

WIFI_CONFIG_AP (299)

Configure WiFi AP SSID, password, and mode. This message is re-emitted as an acknowledgement by the AP. The message may also be explicitly requested using MAV_CMD_REQUEST_MESSAGE

0123456789abcdefssid[0:3 ]0004ssid[4:7 ]08ssid[8:11 ]0cssid[12:15 ]10ssid[16:19 ]14ssid[20:23 ]18ssid[24:27 ]1cssid[28:31 ]20password[0:3 ]24password[4:7 ]28password[8:11 ]2cpassword[12:15 ]30password[16:19 ]34password[20:23 ]38password[24:27 ]3cpassword[28:31 ]40password[32:35 ]44password[36:39 ]48password[40:43 ]4cpassword[44:47 ]50password[48:51 ]54password[52:55 ]58password[56:59 ]5cpassword[60:63 ]60moderesponse
Field NameTypeEnum ValuesDescription
ssidchar[32]Name of Wi-Fi network (SSID). Blank to leave it unchanged when setting. Current SSID when sent back as a response.
passwordchar[64]Password. Blank for an open AP. MD5 hash when message is sent back as a response.
modeint8_tWIFI_CONFIG_AP_MODEWiFi Mode.
responseint8_tWIFI_CONFIG_AP_RESPONSEMessage acceptance response (sent back to GS).

PROTOCOL_VERSION (300)

Version and capability of protocol version. This message can be requested with MAV_CMD_REQUEST_MESSAGE and is used as part of the handshaking to establish which MAVLink version should be used on the network. Every node should respond to a request for PROTOCOL_VERSION to enable the handshaking. Library implementers should consider adding this into the default decoding state machine to allow the protocol core to respond directly.

0123456789abcdefspec_version_hash[0:1 ]0002spec_version_hash[2:3 ]04spec_version_hash[4:5 ]06spec_version_hash[6:7 ]08library_version_hash[0:1 ]0alibrary_version_hash[2:3 ]0clibrary_version_hash[4:5 ]0elibrary_version_hash[6:7 ]10version12min_version14max_version
Field NameTypeDescription
spec_version_hashuint8_t[8]The first 8 bytes (not characters printed in hex!) of the git hash.
library_version_hashuint8_t[8]The first 8 bytes (not characters printed in hex!) of the git hash.
versionuint16_tCurrently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.
min_versionuint16_tMinimum MAVLink version supported
max_versionuint16_tMaximum MAVLink version supported (set to the same value as version by default)

AIS_VESSEL (301)

The location and information of an AIS vessel

0123456789abcdefturn_ratenavigational_status0002typedimension_port04dimension_starboardcallsign[0:0 ]06callsign[1:2 ]08callsign[3:4 ]0acallsign[5:6 ]0cname[0:1 ]0ename[2:3 ]10name[4:5 ]12name[6:7 ]14name[8:9 ]16name[10:11 ]18name[12:13 ]1aname[14:15 ]1cname[16:17 ]1ename[18:19 ]20COG22heading24velocity26dimension_bow28dimension_stern2atslc2cflags2eMMSI[0:1 ]30MMSI[2:3 ]32lat[0:1 ]34lat[2:3 ]36lon[0:1 ]38lon[2:3 ]
Field NameTypeUnitEnum ValuesDescription
turn_rateint8_tddeg/sTurn rate, 0.1 degrees per second
navigational_statusuint8_tAIS_NAV_STATUSNavigational status
typeuint8_tAIS_TYPEType of vessels
dimension_portuint8_tmDistance from lat/lon location to port side
dimension_starboarduint8_tmDistance from lat/lon location to starboard side
callsignchar[7]The vessel callsign
namechar[20]The vessel name
COGuint16_tcdegCourse over ground
headinguint16_tcdegTrue heading
velocityuint16_tcm/sSpeed over ground
dimension_bowuint16_tmDistance from lat/lon location to bow
dimension_sternuint16_tmDistance from lat/lon location to stern
tslcuint16_tsTime since last communication in seconds
flagsuint16_tAIS_FLAGSBitmask to indicate various statuses including valid data fields
MMSIuint32_tMobile Marine Service Identifier, 9 decimal digits
latint32_tdegE7Latitude
lonint32_tdegE7Longitude

UAVCAN_NODE_STATUS (310)

General status information of an UAVCAN node. Please refer to the definition of the UAVCAN message "uavcan.protocol.NodeStatus" for the background information. The UAVCAN specification is available at http://uavcan.org.

0123456789abcdefhealthmode0002sub_modevendor_specific_status_code[0:0 ]04vendor_specific_status_code[1:1 ]uptime_sec[0:0 ]06uptime_sec[1:2 ]08uptime_sec[3:3 ]time_usec[0:0 ]0atime_usec[1:2 ]0ctime_usec[3:4 ]0etime_usec[5:6 ]10time_usec[7:7 ]
Field NameTypeUnitEnum ValuesDescription
healthuint8_tUAVCAN_NODE_HEALTHGeneralized node health status.
modeuint8_tUAVCAN_NODE_MODEGeneralized operating mode.
sub_modeuint8_tNot used currently.
vendor_specific_status_codeuint16_tVendor-specific status information.
uptime_secuint32_tsTime since the start-up of the node.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

UAVCAN_NODE_INFO (311)

General information describing a particular UAVCAN node. Please refer to the definition of the UAVCAN service "uavcan.protocol.GetNodeInfo" for the background information. This message should be emitted by the system whenever a new node appears online, or an existing node reboots. Additionally, it can be emitted upon request from the other end of the MAVLink channel (see MAV_CMD_UAVCAN_GET_NODE_INFO). It is also not prohibited to emit this message unconditionally at a low frequency. The UAVCAN specification is available at http://uavcan.org.

0123456789abcdefname[0:3 ]0004name[4:7 ]08name[8:11 ]0cname[12:15 ]10name[16:19 ]14name[20:23 ]18name[24:27 ]1cname[28:31 ]20name[32:35 ]24name[36:39 ]28name[40:43 ]2cname[44:47 ]30name[48:51 ]34name[52:55 ]38name[56:59 ]3cname[60:63 ]40name[64:67 ]44name[68:71 ]48name[72:75 ]4cname[76:79 ]50hw_version_majorhw_version_minorhw_unique_id[0:1 ]54hw_unique_id[2:5 ]58hw_unique_id[6:9 ]5chw_unique_id[10:13 ]60hw_unique_id[14:15 ]sw_version_majorsw_version_minor64uptime_sec68sw_vcs_commit6ctime_usec[0:3 ]70time_usec[4:7 ]
Field NameTypeUnitDescription
namechar[80]Node name string. For example, "sapog.px4.io".
hw_version_majoruint8_tHardware major version number.
hw_version_minoruint8_tHardware minor version number.
hw_unique_iduint8_t[16]Hardware unique 128-bit ID.
sw_version_majoruint8_tSoftware major version number.
sw_version_minoruint8_tSoftware minor version number.
uptime_secuint32_tsTime since the start-up of the node.
sw_vcs_commituint32_tVersion control system (VCS) revision identifier (e.g. git short commit hash). 0 if unknown.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

PARAM_EXT_REQUEST_READ (320)

Request to read the value of a parameter with either the param_id string id or param_index. PARAM_EXT_VALUE should be emitted in response.

0123456789abcdeftarget_systemtarget_componentparam_id[0:1 ]0004param_id[2:5 ]08param_id[6:9 ]0cparam_id[10:13 ]10param_id[14:15 ]param_index
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
param_idchar[16]Parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_indexint16_tParameter index. Set to -1 to use the Parameter ID field as identifier (else param_id will be ignored)

PARAM_EXT_REQUEST_LIST (321)

Request all parameters of this component. All parameters should be emitted in response as PARAM_EXT_VALUE.

0123456789abcdeftarget_systemtarget_component
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID

PARAM_EXT_VALUE (322)

Emit the value of a parameter. The inclusion of param_count and param_index in the message allows the recipient to keep track of received parameters and allows them to re-request missing parameters after a loss or timeout.

0123456789abcdefparam_id[0:3 ]0004param_id[4:7 ]08param_id[8:11 ]0cparam_id[12:15 ]10param_value[0:3 ]14param_value[4:7 ]18param_value[8:11 ]1cparam_value[12:15 ]20param_value[16:19 ]24param_value[20:23 ]28param_value[24:27 ]2cparam_value[28:31 ]30param_value[32:35 ]34param_value[36:39 ]38param_value[40:43 ]3cparam_value[44:47 ]40param_value[48:51 ]44param_value[52:55 ]48param_value[56:59 ]4cparam_value[60:63 ]50param_value[64:67 ]54param_value[68:71 ]58param_value[72:75 ]5cparam_value[76:79 ]60param_value[80:83 ]64param_value[84:87 ]68param_value[88:91 ]6cparam_value[92:95 ]70param_value[96:99 ]74param_value[100:103 ]78param_value[104:107 ]7cparam_value[108:111 ]80param_value[112:115 ]84param_value[116:119 ]88param_value[120:123 ]8cparam_value[124:127 ]90param_typeparam_countparam_index[0:0 ]94param_index[1:1 ]
Field NameTypeEnum ValuesDescription
param_idchar[16]Parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_valuechar[128]Parameter value
param_typeuint8_tMAV_PARAM_EXT_TYPEParameter type.
param_countuint16_tTotal number of parameters
param_indexuint16_tIndex of this parameter

PARAM_EXT_SET (323)

Set a parameter value. In order to deal with message loss (and retransmission of PARAM_EXT_SET), when setting a parameter value and the new value is the same as the current value, you will immediately get a PARAM_ACK_ACCEPTED response. If the current state is PARAM_ACK_IN_PROGRESS, you will accordingly receive a PARAM_ACK_IN_PROGRESS in response.

0123456789abcdeftarget_systemtarget_componentparam_id[0:1 ]0004param_id[2:5 ]08param_id[6:9 ]0cparam_id[10:13 ]10param_id[14:15 ]param_value[0:1 ]14param_value[2:5 ]18param_value[6:9 ]1cparam_value[10:13 ]20param_value[14:17 ]24param_value[18:21 ]28param_value[22:25 ]2cparam_value[26:29 ]30param_value[30:33 ]34param_value[34:37 ]38param_value[38:41 ]3cparam_value[42:45 ]40param_value[46:49 ]44param_value[50:53 ]48param_value[54:57 ]4cparam_value[58:61 ]50param_value[62:65 ]54param_value[66:69 ]58param_value[70:73 ]5cparam_value[74:77 ]60param_value[78:81 ]64param_value[82:85 ]68param_value[86:89 ]6cparam_value[90:93 ]70param_value[94:97 ]74param_value[98:101 ]78param_value[102:105 ]7cparam_value[106:109 ]80param_value[110:113 ]84param_value[114:117 ]88param_value[118:121 ]8cparam_value[122:125 ]90param_value[126:127 ]param_type
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
param_idchar[16]Parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_valuechar[128]Parameter value
param_typeuint8_tMAV_PARAM_EXT_TYPEParameter type.

PARAM_EXT_ACK (324)

Response from a PARAM_EXT_SET message.

0123456789abcdefparam_id[0:3 ]0004param_id[4:7 ]08param_id[8:11 ]0cparam_id[12:15 ]10param_value[0:3 ]14param_value[4:7 ]18param_value[8:11 ]1cparam_value[12:15 ]20param_value[16:19 ]24param_value[20:23 ]28param_value[24:27 ]2cparam_value[28:31 ]30param_value[32:35 ]34param_value[36:39 ]38param_value[40:43 ]3cparam_value[44:47 ]40param_value[48:51 ]44param_value[52:55 ]48param_value[56:59 ]4cparam_value[60:63 ]50param_value[64:67 ]54param_value[68:71 ]58param_value[72:75 ]5cparam_value[76:79 ]60param_value[80:83 ]64param_value[84:87 ]68param_value[88:91 ]6cparam_value[92:95 ]70param_value[96:99 ]74param_value[100:103 ]78param_value[104:107 ]7cparam_value[108:111 ]80param_value[112:115 ]84param_value[116:119 ]88param_value[120:123 ]8cparam_value[124:127 ]90param_typeparam_result
Field NameTypeEnum ValuesDescription
param_idchar[16]Parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
param_valuechar[128]Parameter value (new value if PARAM_ACK_ACCEPTED, current value otherwise)
param_typeuint8_tMAV_PARAM_EXT_TYPEParameter type.
param_resultuint8_tPARAM_ACKResult code.

OBSTACLE_DISTANCE (330)

Obstacle distances in front of the sensor, starting from the left in increment degrees to the right

0123456789abcdefsensor_typeincrementdistances[0:1 ]0004distances[2:5 ]08distances[6:9 ]0cdistances[10:13 ]10distances[14:17 ]14distances[18:21 ]18distances[22:25 ]1cdistances[26:29 ]20distances[30:33 ]24distances[34:37 ]28distances[38:41 ]2cdistances[42:45 ]30distances[46:49 ]34distances[50:53 ]38distances[54:57 ]3cdistances[58:61 ]40distances[62:65 ]44distances[66:69 ]48distances[70:71 ]min_distance4cmax_distancetime_usec[0:1 ]50time_usec[2:5 ]54time_usec[6:7 ]increment_f[0:1 ]58increment_f[2:3 ]angle_offset[0:1 ]5cangle_offset[2:3 ]frame
Field NameTypeUnitEnum ValuesDescription
sensor_typeuint8_tMAV_DISTANCE_SENSORClass id of the distance sensor type.
incrementuint8_tdegAngular width in degrees of each array element. Increment direction is clockwise. This field is ignored if increment_f is non-zero.
distancesuint16_t[72]cmDistance of obstacles around the vehicle with index 0 corresponding to north + angle_offset, unless otherwise specified in the frame. A value of 0 is valid and means that the obstacle is practically touching the sensor. A value of max_distance +1 means no obstacle is present. A value of UINT16_MAX for unknown/not used. In a array element, one unit corresponds to 1cm.
min_distanceuint16_tcmMinimum distance the sensor can measure.
max_distanceuint16_tcmMaximum distance the sensor can measure.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
increment_ffloatdegAngular width in degrees of each array element as a float. If non-zero then this value is used instead of the uint8_t increment field. Positive is clockwise direction, negative is counter-clockwise.
angle_offsetfloatdegRelative angle offset of the 0-index element in the distances array. Value of 0 corresponds to forward. Positive is clockwise direction, negative is counter-clockwise.
frameuint8_tMAV_FRAMECoordinate frame of reference for the yaw rotation and offset of the sensor data. Defaults to MAV_FRAME_GLOBAL, which is north aligned. For body-mounted sensors use MAV_FRAME_BODY_FRD, which is vehicle front aligned.

ODOMETRY (331)

Odometry message to communicate odometry information with an external interface. Fits ROS REP 147 standard for aerial vehicles (http://www.ros.org/reps/rep-0147.html).

0123456789abcdefframe_idchild_frame_id0002x[0:1 ]04x[2:3 ]06y[0:1 ]08y[2:3 ]0az[0:1 ]0cz[2:3 ]0eq[0:1 ]10q[2:3 ]12vx[0:1 ]14vx[2:3 ]16vy[0:1 ]18vy[2:3 ]1avz[0:1 ]1cvz[2:3 ]1erollspeed[0:1 ]20rollspeed[2:3 ]22pitchspeed[0:1 ]24pitchspeed[2:3 ]26yawspeed[0:1 ]28yawspeed[2:3 ]2apose_covariance[0:1 ]2cpose_covariance[2:3 ]2epose_covariance[4:5 ]30pose_covariance[6:7 ]32pose_covariance[8:9 ]34pose_covariance[10:11 ]36pose_covariance[12:13 ]38pose_covariance[14:15 ]3apose_covariance[16:17 ]3cpose_covariance[18:19 ]3epose_covariance[20:20 ]velocity_covariance[0:0 ]40velocity_covariance[1:2 ]42velocity_covariance[3:4 ]44velocity_covariance[5:6 ]46velocity_covariance[7:8 ]48velocity_covariance[9:10 ]4avelocity_covariance[11:12 ]4cvelocity_covariance[13:14 ]4evelocity_covariance[15:16 ]50velocity_covariance[17:18 ]52velocity_covariance[19:20 ]54time_usec[0:1 ]56time_usec[2:3 ]58time_usec[4:5 ]5atime_usec[6:7 ]5creset_counterestimator_type5equality
Field NameTypeUnitEnum ValuesDescription
frame_iduint8_tMAV_FRAMECoordinate frame of reference for the pose data.
child_frame_iduint8_tMAV_FRAMECoordinate frame of reference for the velocity in free space (twist) data.
xfloatmX Position
yfloatmY Position
zfloatmZ Position
qfloat[4]Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation)
vxfloatm/sX linear speed
vyfloatm/sY linear speed
vzfloatm/sZ linear speed
rollspeedfloatrad/sRoll angular speed
pitchspeedfloatrad/sPitch angular speed
yawspeedfloatrad/sYaw angular speed
pose_covariancefloat[21]Row-major representation of a 6x6 pose cross-covariance matrix upper right triangle (states: x, y, z, roll, pitch, yaw; first six entries are the first ROW, next five entries are the second ROW, etc.). If unknown, assign NaN value to first element in the array.
velocity_covariancefloat[21]Row-major representation of a 6x6 velocity cross-covariance matrix upper right triangle (states: vx, vy, vz, rollspeed, pitchspeed, yawspeed; first six entries are the first ROW, next five entries are the second ROW, etc.). If unknown, assign NaN value to first element in the array.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
reset_counteruint8_tEstimate reset counter. This should be incremented when the estimate resets in any of the dimensions (position, velocity, attitude, angular speed). This is designed to be used when e.g an external SLAM system detects a loop-closure and the estimate jumps.
estimator_typeuint8_tMAV_ESTIMATOR_TYPEType of estimator that is providing the odometry.
qualityint8_t%Optional odometry quality metric as a percentage. -1 = odometry has failed, 0 = unknown/unset quality, 1 = worst quality, 100 = best quality

TRAJECTORY_REPRESENTATION_WAYPOINTS (332)

Describe a trajectory using an array of up-to 5 waypoints in the local frame (MAV_FRAME_LOCAL_NED).

0123456789abcdefvalid_pointscommand[0:2 ]0004command[3:4 ]pos_x[0:1 ]08pos_x[2:4 ]pos_y[0:0 ]0cpos_y[1:4 ]10pos_z[0:3 ]14pos_z[4:4 ]vel_x[0:2 ]18vel_x[3:4 ]vel_y[0:1 ]1cvel_y[2:4 ]vel_z[0:0 ]20vel_z[1:4 ]24acc_x[0:3 ]28acc_x[4:4 ]acc_y[0:2 ]2cacc_y[3:4 ]acc_z[0:1 ]30acc_z[2:4 ]pos_yaw[0:0 ]34pos_yaw[1:4 ]38vel_yaw[0:3 ]3cvel_yaw[4:4 ]time_usec[0:2 ]40time_usec[3:6 ]44time_usec[7:7 ]
Field NameTypeUnitEnum ValuesDescription
valid_pointsuint8_tNumber of valid points (up-to 5 waypoints are possible)
commanduint16_t[5]MAV_CMDMAV_CMD command id of waypoint, set to UINT16_MAX if not being used.
pos_xfloat[5]mX-coordinate of waypoint, set to NaN if not being used
pos_yfloat[5]mY-coordinate of waypoint, set to NaN if not being used
pos_zfloat[5]mZ-coordinate of waypoint, set to NaN if not being used
vel_xfloat[5]m/sX-velocity of waypoint, set to NaN if not being used
vel_yfloat[5]m/sY-velocity of waypoint, set to NaN if not being used
vel_zfloat[5]m/sZ-velocity of waypoint, set to NaN if not being used
acc_xfloat[5]m/s/sX-acceleration of waypoint, set to NaN if not being used
acc_yfloat[5]m/s/sY-acceleration of waypoint, set to NaN if not being used
acc_zfloat[5]m/s/sZ-acceleration of waypoint, set to NaN if not being used
pos_yawfloat[5]radYaw angle, set to NaN if not being used
vel_yawfloat[5]rad/sYaw rate, set to NaN if not being used
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

TRAJECTORY_REPRESENTATION_BEZIER (333)

Describe a trajectory using an array of up-to 5 bezier control points in the local frame (MAV_FRAME_LOCAL_NED).

0123456789abcdefvalid_pointspos_x[0:2 ]0004pos_x[3:4 ]pos_y[0:1 ]08pos_y[2:4 ]pos_z[0:0 ]0cpos_z[1:4 ]10delta[0:3 ]14delta[4:4 ]pos_yaw[0:2 ]18pos_yaw[3:4 ]time_usec[0:1 ]1ctime_usec[2:5 ]20time_usec[6:7 ]
Field NameTypeUnitDescription
valid_pointsuint8_tNumber of valid control points (up-to 5 points are possible)
pos_xfloat[5]mX-coordinate of bezier control points. Set to NaN if not being used
pos_yfloat[5]mY-coordinate of bezier control points. Set to NaN if not being used
pos_zfloat[5]mZ-coordinate of bezier control points. Set to NaN if not being used
deltafloat[5]sBezier time horizon. Set to NaN if velocity/acceleration should not be incorporated
pos_yawfloat[5]radYaw. Set to NaN for unchanged
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

CELLULAR_STATUS (334)

Report current used cellular network status

0123456789abcdefstatusfailure_reasontypequality0004mccmnc08lac
Field NameTypeEnum ValuesDescription
statusuint8_tCELLULAR_STATUS_FLAGCellular modem status
failure_reasonuint8_tCELLULAR_NETWORK_FAILED_REASONFailure reason when status in in CELLULAR_STATUS_FLAG_FAILED
typeuint8_tCELLULAR_NETWORK_RADIO_TYPECellular network radio type: gsm, cdma, lte...
qualityuint8_tSignal quality in percent. If unknown, set to UINT8_MAX
mccuint16_tMobile country code. If unknown, set to UINT16_MAX
mncuint16_tMobile network code. If unknown, set to UINT16_MAX
lacuint16_tLocation area code. If unknown, set to 0

Status of the Iridium SBD link.

0123456789abcdefsignal_qualityring_pending0002tx_session_pendingrx_session_pending04failed_sessions06successful_sessions08timestamp[0:1 ]0atimestamp[2:3 ]0ctimestamp[4:5 ]0etimestamp[6:7 ]10last_heartbeat[0:1 ]12last_heartbeat[2:3 ]14last_heartbeat[4:5 ]16last_heartbeat[6:7 ]
Field NameTypeUnitDescription
signal_qualityuint8_tSignal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.
ring_pendinguint8_t1: Ring call pending, 0: No call pending.
tx_session_pendinguint8_t1: Transmission session pending, 0: No transmission session pending.
rx_session_pendinguint8_t1: Receiving session pending, 0: No receiving session pending.
failed_sessionsuint16_tNumber of failed SBD sessions.
successful_sessionsuint16_tNumber of successful SBD sessions.
timestampuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
last_heartbeatuint64_tusTimestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

CELLULAR_CONFIG (336)

Configure cellular modems. This message is re-emitted as an acknowledgement by the modem. The message may also be explicitly requested using MAV_CMD_REQUEST_MESSAGE.

0123456789abcdefenable_lteenable_pinpin[0:1 ]0004pin[2:5 ]08pin[6:9 ]0cpin[10:13 ]10pin[14:15 ]new_pin[0:1 ]14new_pin[2:5 ]18new_pin[6:9 ]1cnew_pin[10:13 ]20new_pin[14:15 ]apn[0:1 ]24apn[2:5 ]28apn[6:9 ]2capn[10:13 ]30apn[14:17 ]34apn[18:21 ]38apn[22:25 ]3capn[26:29 ]40apn[30:31 ]puk[0:1 ]44puk[2:5 ]48puk[6:9 ]4cpuk[10:13 ]50puk[14:15 ]roamingresponse
Field NameTypeEnum ValuesDescription
enable_lteuint8_tEnable/disable LTE. 0: setting unchanged, 1: disabled, 2: enabled. Current setting when sent back as a response.
enable_pinuint8_tEnable/disable PIN on the SIM card. 0: setting unchanged, 1: disabled, 2: enabled. Current setting when sent back as a response.
pinchar[16]PIN sent to the SIM card. Blank when PIN is disabled. Empty when message is sent back as a response.
new_pinchar[16]New PIN when changing the PIN. Blank to leave it unchanged. Empty when message is sent back as a response.
apnchar[32]Name of the cellular APN. Blank to leave it unchanged. Current APN when sent back as a response.
pukchar[16]Required PUK code in case the user failed to authenticate 3 times with the PIN. Empty when message is sent back as a response.
roaminguint8_tEnable/disable roaming. 0: setting unchanged, 1: disabled, 2: enabled. Current setting when sent back as a response.
responseuint8_tCELLULAR_CONFIG_RESPONSEMessage acceptance response (sent back to GS).

RAW_RPM (339)

RPM sensor data message.

0123456789abcdefindexfrequency[0:2 ]0004frequency[3:3 ]
Field NameTypeUnitDescription
indexuint8_tIndex of this RPM sensor (0-indexed)
frequencyfloatrpmIndicated rate

UTM_GLOBAL_POSITION (340)

The global position resulting from GPS and sensor fusion.

0123456789abcdefuas_id[0:3 ]0004uas_id[4:7 ]08uas_id[8:11 ]0cuas_id[12:15 ]10uas_id[16:17 ]flight_stateflags14vxvy18vzh_acc1cv_accvel_acc20update_ratelat[0:1 ]24lat[2:3 ]lon[0:1 ]28lon[2:3 ]alt[0:1 ]2calt[2:3 ]relative_alt[0:1 ]30relative_alt[2:3 ]next_lat[0:1 ]34next_lat[2:3 ]next_lon[0:1 ]38next_lon[2:3 ]next_alt[0:1 ]3cnext_alt[2:3 ]time[0:1 ]40time[2:5 ]44time[6:7 ]
Field NameTypeUnitEnum ValuesDescription
uas_iduint8_t[18]Unique UAS ID.
flight_stateuint8_tUTM_FLIGHT_STATEFlight state
flagsuint8_tUTM_DATA_AVAIL_FLAGSBitwise OR combination of the data available flags.
vxint16_tcm/sGround X speed (latitude, positive north)
vyint16_tcm/sGround Y speed (longitude, positive east)
vzint16_tcm/sGround Z speed (altitude, positive down)
h_accuint16_tmmHorizontal position uncertainty (standard deviation)
v_accuint16_tmmAltitude uncertainty (standard deviation)
vel_accuint16_tcm/sSpeed uncertainty (standard deviation)
update_rateuint16_tcsTime until next update. Set to 0 if unknown or in data driven mode.
latint32_tdegE7Latitude (WGS84)
lonint32_tdegE7Longitude (WGS84)
altint32_tmmAltitude (WGS84)
relative_altint32_tmmAltitude above ground
next_latint32_tdegE7Next waypoint, latitude (WGS84)
next_lonint32_tdegE7Next waypoint, longitude (WGS84)
next_altint32_tmmNext waypoint, altitude (WGS84)
timeuint64_tusTime of applicability of position (microseconds since UNIX epoch).

PARAM_ERROR (345)

Parameter set/get error. Returned from a MAVLink node in response to an error in the parameter protocol, for example failing to set a parameter because it does not exist.

0123456789abcdeftarget_systemtarget_componentparam_id[0:1 ]0004param_id[2:5 ]08param_id[6:9 ]0cparam_id[10:13 ]10param_id[14:15 ]errorparam_index[0:0 ]14param_index[1:1 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
param_idchar[16]Parameter id. Terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
erroruint8_tMAV_PARAM_ERRORError being returned to client.
param_indexint16_tParameter index. Will be -1 if the param ID field should be used as an identifier (else the param id will be ignored)

DEBUG_FLOAT_ARRAY (350)

Large debug/prototyping array. The message uses the maximum available payload for data. The array_id and name fields are used to discriminate between messages in code and in user interfaces (respectively). Do not use in production code.

0123456789abcdefname[0:3 ]0004name[4:7 ]08name[8:9 ]array_id0ctime_usec[0:3 ]10time_usec[4:7 ]14data[0:3 ]18data[4:7 ]1cdata[8:11 ]20data[12:15 ]24data[16:19 ]28data[20:23 ]2cdata[24:27 ]30data[28:31 ]34data[32:35 ]38data[36:39 ]3cdata[40:43 ]40data[44:47 ]44data[48:51 ]48data[52:55 ]4cdata[56:57 ]
Field NameTypeUnitDescription
namechar[10]Name, for human-friendly display in a Ground Control Station
array_iduint16_tUnique ID used to discriminate between arrays
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
datafloat[58]data

SET_VELOCITY_LIMITS (354)

Set temporary maximum limits for horizontal speed, vertical speed and yaw rate. The consumer must stream the current limits in VELOCITY_LIMITS at 1 Hz or more (when limits are being set). The consumer should latch the limits until a new limit is received or the mode is changed.

0123456789abcdeftarget_systemtarget_component0002horizontal_speed_limit[0:1 ]04horizontal_speed_limit[2:3 ]06vertical_speed_limit[0:1 ]08vertical_speed_limit[2:3 ]0ayaw_rate_limit[0:1 ]0cyaw_rate_limit[2:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
horizontal_speed_limitfloatm/sLimit for horizontal movement in MAV_FRAME_LOCAL_NED. NaN: Field not used (ignore)
vertical_speed_limitfloatm/sLimit for vertical movement in MAV_FRAME_LOCAL_NED. NaN: Field not used (ignore)
yaw_rate_limitfloatrad/sLimit for vehicle turn rate around its yaw axis. NaN: Field not used (ignore)

VELOCITY_LIMITS (355)

Current limits for horizontal speed, vertical speed and yaw rate, as set by SET_VELOCITY_LIMITS.

0123456789abcdefhorizontal_speed_limit[0:1 ]0002horizontal_speed_limit[2:3 ]04vertical_speed_limit[0:1 ]06vertical_speed_limit[2:3 ]08yaw_rate_limit[0:1 ]0ayaw_rate_limit[2:3 ]
Field NameTypeUnitDescription
horizontal_speed_limitfloatm/sLimit for horizontal movement in MAV_FRAME_LOCAL_NED. NaN: No limit applied
vertical_speed_limitfloatm/sLimit for vertical movement in MAV_FRAME_LOCAL_NED. NaN: No limit applied
yaw_rate_limitfloatrad/sLimit for vehicle turn rate around its yaw axis. NaN: No limit applied

ORBIT_EXECUTION_STATUS (360)

Vehicle status report that is sent out while orbit execution is in progress (see MAV_CMD_DO_ORBIT).

0123456789abcdefframeradius[0:2 ]0004radius[3:3 ]x[0:2 ]08x[3:3 ]y[0:2 ]0cy[3:3 ]z[0:2 ]10z[3:3 ]time_usec[0:2 ]14time_usec[3:6 ]18time_usec[7:7 ]
Field NameTypeUnitEnum ValuesDescription
frameuint8_tMAV_FRAMEThe coordinate system of the fields: x, y, z.
radiusfloatmRadius of the orbit circle. Positive values orbit clockwise, negative values orbit counter-clockwise.
xint32_tX coordinate of center point. Coordinate system depends on frame field: local = x position in meters * 1e4, global = latitude in degrees * 1e7.
yint32_tY coordinate of center point. Coordinate system depends on frame field: local = x position in meters * 1e4, global = latitude in degrees * 1e7.
zfloatmAltitude of center point. Coordinate system depends on frame field.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

FIGURE_EIGHT_EXECUTION_STATUS (361)

Vehicle status report that is sent out while figure eight execution is in progress (see MAV_CMD_DO_FIGURE_EIGHT). This may typically send at low rates: of the order of 2Hz.

0123456789abcdefframemajor_radius[0:2 ]0004major_radius[3:3 ]minor_radius[0:2 ]08minor_radius[3:3 ]orientation[0:2 ]0corientation[3:3 ]x[0:2 ]10x[3:3 ]y[0:2 ]14y[3:3 ]z[0:2 ]18z[3:3 ]time_usec[0:2 ]1ctime_usec[3:6 ]20time_usec[7:7 ]
Field NameTypeUnitEnum ValuesDescription
frameuint8_tMAV_FRAMEThe coordinate system of the fields: x, y, z.
major_radiusfloatmMajor axis radius of the figure eight. Positive: orbit the north circle clockwise. Negative: orbit the north circle counter-clockwise.
minor_radiusfloatmMinor axis radius of the figure eight. Defines the radius of two circles that make up the figure.
orientationfloatradOrientation of the figure eight major axis with respect to true north in [-pi,pi).
xint32_tX coordinate of center point. Coordinate system depends on frame field.
yint32_tY coordinate of center point. Coordinate system depends on frame field.
zfloatmAltitude of center point. Coordinate system depends on frame field.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

BATTERY_STATUS_V2 (369)

Battery dynamic information. This should be streamed (nominally at 1Hz). Static/invariant battery information is sent in BATTERY_INFO. Note that smart batteries should set the MAV_BATTERY_STATUS_FLAGS_CAPACITY_RELATIVE_TO_FULL bit to indicate that supplied capacity values are relative to a battery that is known to be full. Power monitors would not set this bit, indicating that capacity_consumed is relative to drone power-on, and that other values are estimated based on the assumption that the battery was full on power-on.

0123456789abcdefidpercent_remainingtemperature0004voltage08current0ccapacity_consumed10capacity_remaining14status_flags
Field NameTypeUnitEnum ValuesDescription
iduint8_tBattery ID
percent_remaininguint8_t%Remaining battery energy. Values: [0-100], UINT8_MAX: field not provided.
temperatureint16_tcdegCTemperature of the whole battery pack (not internal electronics). INT16_MAX field not provided.
voltagefloatVBattery voltage (total). NaN: field not provided.
currentfloatABattery current (through all cells/loads). Positive value when discharging and negative if charging. NaN: field not provided.
capacity_consumedfloatAhConsumed charge. NaN: field not provided. This is either the consumption since power-on or since the battery was full, depending on the value of MAV_BATTERY_STATUS_FLAGS_CAPACITY_RELATIVE_TO_FULL.
capacity_remainingfloatAhRemaining charge (until empty). NaN: field not provided. Note: If MAV_BATTERY_STATUS_FLAGS_CAPACITY_RELATIVE_TO_FULL is unset, this value is based on the assumption the battery was full when the system was powered.
status_flagsuint32_tMAV_BATTERY_STATUS_FLAGSFault, health, readiness, and other status indications.

SMART_BATTERY_INFO (370)

Smart Battery information (static/infrequent update). Use for updates from: smart battery to flight stack, flight stack to GCS. Use BATTERY_STATUS for the frequent battery updates.

0123456789abcdefidbattery_function0002typeserial_number[0:0 ]04serial_number[1:2 ]06serial_number[3:4 ]08serial_number[5:6 ]0aserial_number[7:8 ]0cserial_number[9:10 ]0eserial_number[11:12 ]10serial_number[13:14 ]12serial_number[15:15 ]device_name[0:0 ]14device_name[1:2 ]16device_name[3:4 ]18device_name[5:6 ]1adevice_name[7:8 ]1cdevice_name[9:10 ]1edevice_name[11:12 ]20device_name[13:14 ]22device_name[15:16 ]24device_name[17:18 ]26device_name[19:20 ]28device_name[21:22 ]2adevice_name[23:24 ]2cdevice_name[25:26 ]2edevice_name[27:28 ]30device_name[29:30 ]32device_name[31:32 ]34device_name[33:34 ]36device_name[35:36 ]38device_name[37:38 ]3adevice_name[39:40 ]3cdevice_name[41:42 ]3edevice_name[43:44 ]40device_name[45:46 ]42device_name[47:48 ]44device_name[49:49 ]cycle_count[0:0 ]46cycle_count[1:1 ]weight[0:0 ]48weight[1:1 ]discharge_minimum_voltage[0:0 ]4adischarge_minimum_voltage[1:1 ]charging_minimum_voltage[0:0 ]4ccharging_minimum_voltage[1:1 ]resting_minimum_voltage[0:0 ]4eresting_minimum_voltage[1:1 ]capacity_full_specification[0:0 ]50capacity_full_specification[1:2 ]52capacity_full_specification[3:3 ]capacity_full[0:0 ]54capacity_full[1:2 ]56capacity_full[3:3 ]charging_maximum_voltage[0:0 ]58charging_maximum_voltage[1:1 ]cells_in_series5adischarge_maximum_current[0:1 ]5cdischarge_maximum_current[2:3 ]5edischarge_maximum_burst_current[0:1 ]60discharge_maximum_burst_current[2:3 ]62manufacture_date[0:1 ]64manufacture_date[2:3 ]66manufacture_date[4:5 ]68manufacture_date[6:7 ]6amanufacture_date[8:9 ]6cmanufacture_date[10:10 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tBattery ID
battery_functionuint8_tMAV_BATTERY_FUNCTIONFunction of the battery
typeuint8_tMAV_BATTERY_TYPEType (chemistry) of the battery
serial_numberchar[16]Serial number in ASCII characters, 0 terminated. All 0: field not provided.
device_namechar[50]Static device name in ASCII characters, 0 terminated. All 0: field not provided. Encode as manufacturer name then product name separated using an underscore.
cycle_countuint16_tCharge/discharge cycle count. UINT16_MAX: field not provided.
weightuint16_tgBattery weight. 0: field not provided.
discharge_minimum_voltageuint16_tmVMinimum per-cell voltage when discharging. If not supplied set to UINT16_MAX value.
charging_minimum_voltageuint16_tmVMinimum per-cell voltage when charging. If not supplied set to UINT16_MAX value.
resting_minimum_voltageuint16_tmVMinimum per-cell voltage when resting. If not supplied set to UINT16_MAX value.
capacity_full_specificationint32_tmAhCapacity when full according to manufacturer, -1: field not provided.
capacity_fullint32_tmAhCapacity when full (accounting for battery degradation), -1: field not provided.
charging_maximum_voltageuint16_tmVMaximum per-cell voltage when charged. 0: field not provided.
cells_in_seriesuint8_tNumber of battery cells in series. 0: field not provided.
discharge_maximum_currentuint32_tmAMaximum pack discharge current. 0: field not provided.
discharge_maximum_burst_currentuint32_tmAMaximum pack discharge burst current. 0: field not provided.
manufacture_datechar[11]Manufacture date (DD/MM/YYYY) in ASCII characters, 0 terminated. All 0: field not provided.

FUEL_STATUS (371)

Fuel status. This message provides "generic" fuel level information for in a GCS and for triggering failsafes in an autopilot. The fuel type and associated units for fields in this message are defined in the enum MAV_FUEL_TYPE.

The reported consumed_fuel and remaining_fuel must only be supplied if measured: they must not be inferred from the maximum_fuel and the other value. A recipient can assume that if these fields are supplied they are accurate. If not provided, the recipient can infer remaining_fuel from maximum_fuel and consumed_fuel on the assumption that the fuel was initially at its maximum (this is what battery monitors assume). Note however that this is an assumption, and the UI should prompt the user appropriately (i.e. notify user that they should fill the tank before boot).

This kind of information may also be sent in fuel-specific messages such as BATTERY_STATUS_V2. If both messages are sent for the same fuel system, the ids and corresponding information must match.

This should be streamed (nominally at 0.1 Hz).

0123456789abcdefidpercent_remainingmaximum_fuel[0:1 ]0004maximum_fuel[2:3 ]consumed_fuel[0:1 ]08consumed_fuel[2:3 ]remaining_fuel[0:1 ]0cremaining_fuel[2:3 ]flow_rate[0:1 ]10flow_rate[2:3 ]temperature[0:1 ]14temperature[2:3 ]fuel_type[0:1 ]18fuel_type[2:3 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tFuel ID. Must match ID of other messages for same fuel system, such as BATTERY_STATUS_V2.
percent_remaininguint8_t%Percentage of remaining fuel, relative to full. Values: [0-100], UINT8_MAX: field not provided.
maximum_fuelfloatCapacity when full. Must be provided.
consumed_fuelfloatConsumed fuel (measured). This value should not be inferred: if not measured set to NaN. NaN: field not provided.
remaining_fuelfloatRemaining fuel until empty (measured). The value should not be inferred: if not measured set to NaN. NaN: field not provided.
flow_ratefloatPositive value when emptying/using, and negative if filling/replacing. NaN: field not provided.
temperaturefloatKFuel temperature. NaN: field not provided.
fuel_typeuint32_tMAV_FUEL_TYPEFuel type. Defines units for fuel capacity and consumption fields above.

BATTERY_INFO (372)

Battery information that is static, or requires infrequent update. This message should requested using MAV_CMD_REQUEST_MESSAGE and/or streamed at very low rate. BATTERY_STATUS_V2 is used for higher-rate battery status information.

0123456789abcdefidbattery_function0002typestate_of_health04cells_in_seriesmanufacture_date[0:0 ]06manufacture_date[1:2 ]08manufacture_date[3:4 ]0amanufacture_date[5:6 ]0cmanufacture_date[7:8 ]0eserial_number[0:1 ]10serial_number[2:3 ]12serial_number[4:5 ]14serial_number[6:7 ]16serial_number[8:9 ]18serial_number[10:11 ]1aserial_number[12:13 ]1cserial_number[14:15 ]1eserial_number[16:17 ]20serial_number[18:19 ]22serial_number[20:21 ]24serial_number[22:23 ]26serial_number[24:25 ]28serial_number[26:27 ]2aserial_number[28:29 ]2cserial_number[30:31 ]2ename[0:1 ]30name[2:3 ]32name[4:5 ]34name[6:7 ]36name[8:9 ]38name[10:11 ]3aname[12:13 ]3cname[14:15 ]3ename[16:17 ]40name[18:19 ]42name[20:21 ]44name[22:23 ]46name[24:25 ]48name[26:27 ]4aname[28:29 ]4cname[30:31 ]4ename[32:33 ]50name[34:35 ]52name[36:37 ]54name[38:39 ]56name[40:41 ]58name[42:43 ]5aname[44:45 ]5cname[46:47 ]5ename[48:49 ]60cycle_count62weight64discharge_minimum_voltage[0:1 ]66discharge_minimum_voltage[2:3 ]68charging_minimum_voltage[0:1 ]6acharging_minimum_voltage[2:3 ]6cresting_minimum_voltage[0:1 ]6eresting_minimum_voltage[2:3 ]70charging_maximum_voltage[0:1 ]72charging_maximum_voltage[2:3 ]74charging_maximum_current[0:1 ]76charging_maximum_current[2:3 ]78nominal_voltage[0:1 ]7anominal_voltage[2:3 ]7cdischarge_maximum_current[0:1 ]7edischarge_maximum_current[2:3 ]80discharge_maximum_burst_current[0:1 ]82discharge_maximum_burst_current[2:3 ]84design_capacity[0:1 ]86design_capacity[2:3 ]88full_charge_capacity[0:1 ]8afull_charge_capacity[2:3 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tBattery ID
battery_functionuint8_tMAV_BATTERY_FUNCTIONFunction of the battery.
typeuint8_tMAV_BATTERY_TYPEType (chemistry) of the battery.
state_of_healthuint8_t%State of Health (SOH) estimate. Typically 100% at the time of manufacture and will decrease over time and use. -1: field not provided.
cells_in_seriesuint8_tNumber of battery cells in series. 0: field not provided.
manufacture_datechar[9]Manufacture date (DDMMYYYY) in ASCII characters, 0 terminated. All 0: field not provided.
serial_numberchar[32]Serial number in ASCII characters, 0 terminated. All 0: field not provided.
namechar[50]Battery device name. Formatted as manufacturer name then product name, separated with an underscore (in ASCII characters), 0 terminated. All 0: field not provided.
cycle_countuint16_tLifetime count of the number of charge/discharge cycles (https://en.wikipedia.org/wiki/Charge_cycle). UINT16_MAX: field not provided.
weightuint16_tgBattery weight. 0: field not provided.
discharge_minimum_voltagefloatVMinimum per-cell voltage when discharging. 0: field not provided.
charging_minimum_voltagefloatVMinimum per-cell voltage when charging. 0: field not provided.
resting_minimum_voltagefloatVMinimum per-cell voltage when resting. 0: field not provided.
charging_maximum_voltagefloatVMaximum per-cell voltage when charged. 0: field not provided.
charging_maximum_currentfloatAMaximum pack continuous charge current. 0: field not provided.
nominal_voltagefloatVBattery nominal voltage. Used for conversion between Wh and Ah. 0: field not provided.
discharge_maximum_currentfloatAMaximum pack discharge current. 0: field not provided.
discharge_maximum_burst_currentfloatAMaximum pack discharge burst current. 0: field not provided.
design_capacityfloatAhFully charged design capacity. 0: field not provided.
full_charge_capacityfloatAhPredicted battery capacity when fully charged (accounting for battery degradation). NAN: field not provided.

GENERATOR_STATUS (373)

Telemetry of power generation system. Alternator or mechanical generator.

0123456789abcdefgenerator_speed0002rectifier_temperature04generator_temperature06battery_current[0:1 ]08battery_current[2:3 ]0aload_current[0:1 ]0cload_current[2:3 ]0epower_generated[0:1 ]10power_generated[2:3 ]12bus_voltage[0:1 ]14bus_voltage[2:3 ]16bat_current_setpoint[0:1 ]18bat_current_setpoint[2:3 ]1aruntime[0:1 ]1cruntime[2:3 ]1etime_until_maintenance[0:1 ]20time_until_maintenance[2:3 ]22status[0:1 ]24status[2:3 ]26status[4:5 ]28status[6:7 ]
Field NameTypeUnitEnum ValuesDescription
generator_speeduint16_trpmSpeed of electrical generator or alternator. UINT16_MAX: field not provided.
rectifier_temperatureint16_tdegCThe temperature of the rectifier or power converter. INT16_MAX: field not provided.
generator_temperatureint16_tdegCThe temperature of the mechanical motor, fuel cell core or generator. INT16_MAX: field not provided.
battery_currentfloatACurrent into/out of battery. Positive for out. Negative for in. NaN: field not provided.
load_currentfloatACurrent going to the UAV. If battery current not available this is the DC current from the generator. Positive for out. Negative for in. NaN: field not provided
power_generatedfloatWThe power being generated. NaN: field not provided
bus_voltagefloatVVoltage of the bus seen at the generator, or battery bus if battery bus is controlled by generator and at a different voltage to main bus.
bat_current_setpointfloatAThe target battery current. Positive for out. Negative for in. NaN: field not provided
runtimeuint32_tsSeconds this generator has run since it was rebooted. UINT32_MAX: field not provided.
time_until_maintenanceint32_tsSeconds until this generator requires maintenance. A negative value indicates maintenance is past-due. INT32_MAX: field not provided.
statusuint64_tMAV_GENERATOR_STATUS_FLAGStatus flags.

ACTUATOR_OUTPUT_STATUS (375)

The raw values of the actuator outputs (e.g. on Pixhawk, from MAIN, AUX ports). This message supersedes SERVO_OUTPUT_RAW.

0123456789abcdefactive0004actuator[0:3 ]08actuator[4:7 ]0cactuator[8:11 ]10actuator[12:15 ]14actuator[16:19 ]18actuator[20:23 ]1cactuator[24:27 ]20actuator[28:31 ]24time_usec[0:3 ]28time_usec[4:7 ]
Field NameTypeUnitDescription
activeuint32_tActive outputs
actuatorfloat[32]Servo / motor output array values. Zero values indicate unused channels.
time_usecuint64_tusTimestamp (since system boot).

TIME_ESTIMATE_TO_TARGET (380)

Time/duration estimates for various events and actions given the current vehicle state and position.

0123456789abcdefsafe_return0004land08mission_next_item0cmission_end10commanded_action
Field NameTypeUnitDescription
safe_returnint32_tsEstimated time to complete the vehicle's configured "safe return" action from its current position (e.g. RTL, Smart RTL, etc.). -1 indicates that the vehicle is landed, or that no time estimate available.
landint32_tsEstimated time for vehicle to complete the LAND action from its current position. -1 indicates that the vehicle is landed, or that no time estimate available.
mission_next_itemint32_tsEstimated time for reaching/completing the currently active mission item. -1 means no time estimate available.
mission_endint32_tsEstimated time for completing the current mission. -1 means no mission active and/or no estimate available.
commanded_actionint32_tsEstimated time for completing the current commanded action (i.e. Go To, Takeoff, Land, etc.). -1 means no action active and/or no estimate available.

TUNNEL (385)

Message for transporting "arbitrary" variable-length data from one component to another (broadcast is not forbidden, but discouraged). The encoding of the data is usually extension specific, i.e. determined by the source, and is usually not documented as part of the MAVLink specification.

0123456789abcdeftarget_systemtarget_componentpayload_lengthpayload[0:0 ]0004payload[1:4 ]08payload[5:8 ]0cpayload[9:12 ]10payload[13:16 ]14payload[17:20 ]18payload[21:24 ]1cpayload[25:28 ]20payload[29:32 ]24payload[33:36 ]28payload[37:40 ]2cpayload[41:44 ]30payload[45:48 ]34payload[49:52 ]38payload[53:56 ]3cpayload[57:60 ]40payload[61:64 ]44payload[65:68 ]48payload[69:72 ]4cpayload[73:76 ]50payload[77:80 ]54payload[81:84 ]58payload[85:88 ]5cpayload[89:92 ]60payload[93:96 ]64payload[97:100 ]68payload[101:104 ]6cpayload[105:108 ]70payload[109:112 ]74payload[113:116 ]78payload[117:120 ]7cpayload[121:124 ]80payload[125:127 ]payload_type[0:0 ]84payload_type[1:1 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID (can be 0 for broadcast, but this is discouraged)
target_componentuint8_tComponent ID (can be 0 for broadcast, but this is discouraged)
payload_lengthuint8_tLength of the data transported in payload
payloaduint8_t[128]Variable length payload. The payload length is defined by payload_length. The entire content of this block is opaque unless you understand the encoding specified by payload_type.
payload_typeuint16_tMAV_TUNNEL_PAYLOAD_TYPEA code that identifies the content of the payload (0 for unknown, which is the default). If this code is less than 32768, it is a 'registered' payload type and the corresponding code should be added to the MAV_TUNNEL_PAYLOAD_TYPE enum. Software creators can register blocks of types as needed. Codes greater than 32767 are considered local experiments and should not be checked in to any widely distributed codebase.

CAN_FRAME (386)

A forwarded CAN frame as requested by MAV_CMD_CAN_FORWARD.

0123456789abcdeftarget_systemtarget_componentbuslen0004data[0:3 ]08data[4:7 ]0cid
Field NameTypeDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
busuint8_tBus number
lenuint8_tFrame length
datauint8_t[8]Frame data
iduint32_tFrame ID

CANFD_FRAME (387)

A forwarded CANFD frame as requested by MAV_CMD_CAN_FORWARD. These are separated from CAN_FRAME as they need different handling (eg. TAO handling)

0123456789abcdeftarget_systemtarget_componentbuslen0004data[0:3 ]08data[4:7 ]0cdata[8:11 ]10data[12:15 ]14data[16:19 ]18data[20:23 ]1cdata[24:27 ]20data[28:31 ]24data[32:35 ]28data[36:39 ]2cdata[40:43 ]30data[44:47 ]34data[48:51 ]38data[52:55 ]3cdata[56:59 ]40data[60:63 ]44id
Field NameTypeDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
busuint8_tbus number
lenuint8_tFrame length
datauint8_t[64]Frame data
iduint32_tFrame ID

CAN_FILTER_MODIFY (388)

Modify the filter of what CAN messages to forward over the mavlink. This can be used to make CAN forwarding work well on low bandwidth links. The filtering is applied on bits 8 to 24 of the CAN id (2nd and 3rd bytes) which corresponds to the DroneCAN message ID for DroneCAN. Filters with more than 16 IDs can be constructed by sending multiple CAN_FILTER_MODIFY messages.

0123456789abcdeftarget_systemtarget_componentbusoperation0004num_idsids[0:2 ]08ids[3:6 ]0cids[7:10 ]10ids[11:14 ]14ids[15:15 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
busuint8_tbus number
operationuint8_tCAN_FILTER_OPwhat operation to perform on the filter list. See CAN_FILTER_OP enum.
num_idsuint8_tnumber of IDs in filter list
idsuint16_t[16]filter IDs, length num_ids

ONBOARD_COMPUTER_STATUS (390)

Hardware status sent by an onboard computer.

0123456789abcdeftypecpu_cores[0:2 ]0004cpu_cores[3:6 ]08cpu_cores[7:7 ]cpu_combined[0:2 ]0ccpu_combined[3:6 ]10cpu_combined[7:9 ]gpu_cores[0:0 ]14gpu_cores[1:3 ]gpu_combined[0:0 ]18gpu_combined[1:4 ]1cgpu_combined[5:8 ]20gpu_combined[9:9 ]temperature_boardtemperature_core[0:1 ]24temperature_core[2:5 ]28temperature_core[6:7 ]fan_speed[0:1 ]2cfan_speed[2:3 ]uptime[0:1 ]30uptime[2:3 ]ram_usage[0:1 ]34ram_usage[2:3 ]ram_total[0:1 ]38ram_total[2:3 ]storage_type[0:1 ]3cstorage_type[2:3 ]storage_usage[0:1 ]40storage_usage[2:3 ]storage_total[0:1 ]44storage_total[2:3 ]link_type[0:1 ]48link_type[2:5 ]4clink_tx_rate[0:3 ]50link_tx_rate[4:5 ]link_rx_rate[0:1 ]54link_rx_rate[2:5 ]58link_tx_max[0:3 ]5clink_tx_max[4:5 ]link_rx_max[0:1 ]60link_rx_max[2:5 ]64time_usec[0:3 ]68time_usec[4:7 ]6cstatus_flags
Field NameTypeUnitEnum ValuesDescription
typeuint8_tType of the onboard computer: 0: Mission computer primary, 1: Mission computer backup 1, 2: Mission computer backup 2, 3: Compute node, 4-5: Compute spares, 6-9: Payload computers.
cpu_coresuint8_t[8]CPU usage on the component in percent (100 - idle). A value of UINT8_MAX implies the field is unused.
cpu_combineduint8_t[10]Combined CPU usage as the last 10 slices of 100 MS (a histogram). This allows to identify spikes in load that max out the system, but only for a short amount of time. A value of UINT8_MAX implies the field is unused.
gpu_coresuint8_t[4]GPU usage on the component in percent (100 - idle). A value of UINT8_MAX implies the field is unused.
gpu_combineduint8_t[10]Combined GPU usage as the last 10 slices of 100 MS (a histogram). This allows to identify spikes in load that max out the system, but only for a short amount of time. A value of UINT8_MAX implies the field is unused.
temperature_boardint8_tdegCTemperature of the board. A value of INT8_MAX implies the field is unused.
temperature_coreint8_t[8]degCTemperature of the CPU core. A value of INT8_MAX implies the field is unused.
fan_speedint16_t[4]rpmFan speeds. A value of INT16_MAX implies the field is unused.
uptimeuint32_tmsTime since system boot.
ram_usageuint32_tMiBAmount of used RAM on the component system. A value of UINT32_MAX implies the field is unused.
ram_totaluint32_tMiBTotal amount of RAM on the component system. A value of UINT32_MAX implies the field is unused.
storage_typeuint32_t[4]Storage type: 0: HDD, 1: SSD, 2: EMMC, 3: SD card (non-removable), 4: SD card (removable). A value of UINT32_MAX implies the field is unused.
storage_usageuint32_t[4]MiBAmount of used storage space on the component system. A value of UINT32_MAX implies the field is unused.
storage_totaluint32_t[4]MiBTotal amount of storage space on the component system. A value of UINT32_MAX implies the field is unused.
link_typeuint32_t[6]Link type: 0-9: UART, 10-19: Wired network, 20-29: Wifi, 30-39: Point-to-point proprietary, 40-49: Mesh proprietary
link_tx_rateuint32_t[6]KiB/sNetwork traffic from the component system. A value of UINT32_MAX implies the field is unused.
link_rx_rateuint32_t[6]KiB/sNetwork traffic to the component system. A value of UINT32_MAX implies the field is unused.
link_tx_maxuint32_t[6]KiB/sNetwork capacity from the component system. A value of UINT32_MAX implies the field is unused.
link_rx_maxuint32_t[6]KiB/sNetwork capacity to the component system. A value of UINT32_MAX implies the field is unused.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
status_flagsuint16_tCOMPUTER_STATUS_FLAGSBitmap of status flags.

COMPONENT_INFORMATION (395)

Component information message, which may be requested using MAV_CMD_REQUEST_MESSAGE.

0123456789abcdefgeneral_metadata_uri[0:1 ]0002general_metadata_uri[2:3 ]04general_metadata_uri[4:5 ]06general_metadata_uri[6:7 ]08general_metadata_uri[8:9 ]0ageneral_metadata_uri[10:11 ]0cgeneral_metadata_uri[12:13 ]0egeneral_metadata_uri[14:15 ]10general_metadata_uri[16:17 ]12general_metadata_uri[18:19 ]14general_metadata_uri[20:21 ]16general_metadata_uri[22:23 ]18general_metadata_uri[24:25 ]1ageneral_metadata_uri[26:27 ]1cgeneral_metadata_uri[28:29 ]1egeneral_metadata_uri[30:31 ]20general_metadata_uri[32:33 ]22general_metadata_uri[34:35 ]24general_metadata_uri[36:37 ]26general_metadata_uri[38:39 ]28general_metadata_uri[40:41 ]2ageneral_metadata_uri[42:43 ]2cgeneral_metadata_uri[44:45 ]2egeneral_metadata_uri[46:47 ]30general_metadata_uri[48:49 ]32general_metadata_uri[50:51 ]34general_metadata_uri[52:53 ]36general_metadata_uri[54:55 ]38general_metadata_uri[56:57 ]3ageneral_metadata_uri[58:59 ]3cgeneral_metadata_uri[60:61 ]3egeneral_metadata_uri[62:63 ]40general_metadata_uri[64:65 ]42general_metadata_uri[66:67 ]44general_metadata_uri[68:69 ]46general_metadata_uri[70:71 ]48general_metadata_uri[72:73 ]4ageneral_metadata_uri[74:75 ]4cgeneral_metadata_uri[76:77 ]4egeneral_metadata_uri[78:79 ]50general_metadata_uri[80:81 ]52general_metadata_uri[82:83 ]54general_metadata_uri[84:85 ]56general_metadata_uri[86:87 ]58general_metadata_uri[88:89 ]5ageneral_metadata_uri[90:91 ]5cgeneral_metadata_uri[92:93 ]5egeneral_metadata_uri[94:95 ]60general_metadata_uri[96:97 ]62general_metadata_uri[98:99 ]64peripherals_metadata_uri[0:1 ]66peripherals_metadata_uri[2:3 ]68peripherals_metadata_uri[4:5 ]6aperipherals_metadata_uri[6:7 ]6cperipherals_metadata_uri[8:9 ]6eperipherals_metadata_uri[10:11 ]70peripherals_metadata_uri[12:13 ]72peripherals_metadata_uri[14:15 ]74peripherals_metadata_uri[16:17 ]76peripherals_metadata_uri[18:19 ]78peripherals_metadata_uri[20:21 ]7aperipherals_metadata_uri[22:23 ]7cperipherals_metadata_uri[24:25 ]7eperipherals_metadata_uri[26:27 ]80peripherals_metadata_uri[28:29 ]82peripherals_metadata_uri[30:31 ]84peripherals_metadata_uri[32:33 ]86peripherals_metadata_uri[34:35 ]88peripherals_metadata_uri[36:37 ]8aperipherals_metadata_uri[38:39 ]8cperipherals_metadata_uri[40:41 ]8eperipherals_metadata_uri[42:43 ]90peripherals_metadata_uri[44:45 ]92peripherals_metadata_uri[46:47 ]94peripherals_metadata_uri[48:49 ]96peripherals_metadata_uri[50:51 ]98peripherals_metadata_uri[52:53 ]9aperipherals_metadata_uri[54:55 ]9cperipherals_metadata_uri[56:57 ]9eperipherals_metadata_uri[58:59 ]a0peripherals_metadata_uri[60:61 ]a2peripherals_metadata_uri[62:63 ]a4peripherals_metadata_uri[64:65 ]a6peripherals_metadata_uri[66:67 ]a8peripherals_metadata_uri[68:69 ]aaperipherals_metadata_uri[70:71 ]acperipherals_metadata_uri[72:73 ]aeperipherals_metadata_uri[74:75 ]b0peripherals_metadata_uri[76:77 ]b2peripherals_metadata_uri[78:79 ]b4peripherals_metadata_uri[80:81 ]b6peripherals_metadata_uri[82:83 ]b8peripherals_metadata_uri[84:85 ]baperipherals_metadata_uri[86:87 ]bcperipherals_metadata_uri[88:89 ]beperipherals_metadata_uri[90:91 ]c0peripherals_metadata_uri[92:93 ]c2peripherals_metadata_uri[94:95 ]c4peripherals_metadata_uri[96:97 ]c6peripherals_metadata_uri[98:99 ]c8time_boot_ms[0:1 ]catime_boot_ms[2:3 ]ccgeneral_metadata_file_crc[0:1 ]cegeneral_metadata_file_crc[2:3 ]d0peripherals_metadata_file_crc[0:1 ]d2peripherals_metadata_file_crc[2:3 ]
Field NameTypeUnitDescription
general_metadata_urichar[100]MAVLink FTP URI for the general metadata file (COMP_METADATA_TYPE_GENERAL), which may be compressed with xz. The file contains general component metadata, and may contain URI links for additional metadata (see COMP_METADATA_TYPE). The information is static from boot, and may be generated at compile time. The string needs to be zero terminated.
peripherals_metadata_urichar[100](Optional) MAVLink FTP URI for the peripherals metadata file (COMP_METADATA_TYPE_PERIPHERALS), which may be compressed with xz. This contains data about "attached components" such as UAVCAN nodes. The peripherals are in a separate file because the information must be generated dynamically at runtime. The string needs to be zero terminated.
time_boot_msuint32_tmsTimestamp (time since system boot).
general_metadata_file_crcuint32_tCRC32 of the general metadata file (general_metadata_uri).
peripherals_metadata_file_crcuint32_tCRC32 of peripherals metadata file (peripherals_metadata_uri).

COMPONENT_INFORMATION_BASIC (396)

Basic component information data. Should be requested using MAV_CMD_REQUEST_MESSAGE on startup, or when required.

0123456789abcdefvendor_name[0:3 ]0004vendor_name[4:7 ]08vendor_name[8:11 ]0cvendor_name[12:15 ]10vendor_name[16:19 ]14vendor_name[20:23 ]18vendor_name[24:27 ]1cvendor_name[28:31 ]20model_name[0:3 ]24model_name[4:7 ]28model_name[8:11 ]2cmodel_name[12:15 ]30model_name[16:19 ]34model_name[20:23 ]38model_name[24:27 ]3cmodel_name[28:31 ]40software_version[0:3 ]44software_version[4:7 ]48software_version[8:11 ]4csoftware_version[12:15 ]50software_version[16:19 ]54software_version[20:23 ]58hardware_version[0:3 ]5chardware_version[4:7 ]60hardware_version[8:11 ]64hardware_version[12:15 ]68hardware_version[16:19 ]6chardware_version[20:23 ]70serial_number[0:3 ]74serial_number[4:7 ]78serial_number[8:11 ]7cserial_number[12:15 ]80serial_number[16:19 ]84serial_number[20:23 ]88serial_number[24:27 ]8cserial_number[28:31 ]90time_boot_ms94time_manufacture_s98capabilities[0:3 ]9ccapabilities[4:7 ]
Field NameTypeUnitEnum ValuesDescription
vendor_namechar[32]Name of the component vendor. Needs to be zero terminated. The field is optional and can be empty/all zeros.
model_namechar[32]Name of the component model. Needs to be zero terminated. The field is optional and can be empty/all zeros.
software_versionchar[24]Software version. The recommended format is SEMVER: 'major.minor.patch' (any format may be used). The field must be zero terminated if it has a value. The field is optional and can be empty/all zeros.
hardware_versionchar[24]Hardware version. The recommended format is SEMVER: 'major.minor.patch' (any format may be used). The field must be zero terminated if it has a value. The field is optional and can be empty/all zeros.
serial_numberchar[32]Hardware serial number. The field must be zero terminated if it has a value. The field is optional and can be empty/all zeros.
time_boot_msuint32_tmsTimestamp (time since system boot).
time_manufacture_suint32_tsDate of manufacture as a UNIX Epoch time (since 1.1.1970) in seconds.
capabilitiesuint64_tMAV_PROTOCOL_CAPABILITYComponent capability flags

COMPONENT_METADATA (397)

Component metadata message, which may be requested using MAV_CMD_REQUEST_MESSAGE.

This contains the MAVLink FTP URI and CRC for the component's general metadata file. The file must be hosted on the component, and may be xz compressed. The file CRC can be used for file caching.

The general metadata file can be read to get the locations of other metadata files (COMP_METADATA_TYPE) and translations, which may be hosted either on the vehicle or the internet. For more information see: https://mavlink.io/en/services/component_information.html.

Note: Camera components should use CAMERA_INFORMATION instead, and autopilots may use both this message and AUTOPILOT_VERSION.

0123456789abcdefuri[0:3 ]0004uri[4:7 ]08uri[8:11 ]0curi[12:15 ]10uri[16:19 ]14uri[20:23 ]18uri[24:27 ]1curi[28:31 ]20uri[32:35 ]24uri[36:39 ]28uri[40:43 ]2curi[44:47 ]30uri[48:51 ]34uri[52:55 ]38uri[56:59 ]3curi[60:63 ]40uri[64:67 ]44uri[68:71 ]48uri[72:75 ]4curi[76:79 ]50uri[80:83 ]54uri[84:87 ]58uri[88:91 ]5curi[92:95 ]60uri[96:99 ]64time_boot_ms68file_crc
Field NameTypeUnitDescription
urichar[100]MAVLink FTP URI for the general metadata file (COMP_METADATA_TYPE_GENERAL), which may be compressed with xz. The file contains general component metadata, and may contain URI links for additional metadata (see COMP_METADATA_TYPE). The information is static from boot, and may be generated at compile time. The string needs to be zero terminated.
time_boot_msuint32_tmsTimestamp (time since system boot).
file_crcuint32_tCRC32 of the general metadata file.

PLAY_TUNE_V2 (400)

Play vehicle tone/tune (buzzer). Supersedes message PLAY_TUNE.

0123456789abcdeftarget_systemtarget_componenttune[0:1 ]0004tune[2:5 ]08tune[6:9 ]0ctune[10:13 ]10tune[14:17 ]14tune[18:21 ]18tune[22:25 ]1ctune[26:29 ]20tune[30:33 ]24tune[34:37 ]28tune[38:41 ]2ctune[42:45 ]30tune[46:49 ]34tune[50:53 ]38tune[54:57 ]3ctune[58:61 ]40tune[62:65 ]44tune[66:69 ]48tune[70:73 ]4ctune[74:77 ]50tune[78:81 ]54tune[82:85 ]58tune[86:89 ]5ctune[90:93 ]60tune[94:97 ]64tune[98:101 ]68tune[102:105 ]6ctune[106:109 ]70tune[110:113 ]74tune[114:117 ]78tune[118:121 ]7ctune[122:125 ]80tune[126:129 ]84tune[130:133 ]88tune[134:137 ]8ctune[138:141 ]90tune[142:145 ]94tune[146:149 ]98tune[150:153 ]9ctune[154:157 ]a0tune[158:161 ]a4tune[162:165 ]a8tune[166:169 ]actune[170:173 ]b0tune[174:177 ]b4tune[178:181 ]b8tune[182:185 ]bctune[186:189 ]c0tune[190:193 ]c4tune[194:197 ]c8tune[198:201 ]cctune[202:205 ]d0tune[206:209 ]d4tune[210:213 ]d8tune[214:217 ]dctune[218:221 ]e0tune[222:225 ]e4tune[226:229 ]e8tune[230:233 ]ectune[234:237 ]f0tune[238:241 ]f4tune[242:245 ]f8tune[246:247 ]format[0:1 ]fcformat[2:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
tunechar[248]Tune definition as a NULL-terminated string.
formatuint32_tTUNE_FORMATTune format

SUPPORTED_TUNES (401)

Tune formats supported by vehicle. This should be emitted as response to MAV_CMD_REQUEST_MESSAGE.

0123456789abcdeftarget_systemtarget_componentformat[0:1 ]0004format[2:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
formatuint32_tTUNE_FORMATBitfield of supported tune formats.

EVENT (410)

Event message. Each new event from a particular component gets a new sequence number. The same message might be sent multiple times if (re-)requested. Most events are broadcast, some can be specific to a target component (as receivers keep track of the sequence for missed events, all events need to be broadcast. Thus we use destination_component instead of target_component).

0123456789abcdefdestination_componentdestination_system0002log_levelsarguments[0:0 ]04arguments[1:2 ]06arguments[3:4 ]08arguments[5:6 ]0aarguments[7:8 ]0carguments[9:10 ]0earguments[11:12 ]10arguments[13:14 ]12arguments[15:16 ]14arguments[17:18 ]16arguments[19:20 ]18arguments[21:22 ]1aarguments[23:24 ]1carguments[25:26 ]1earguments[27:28 ]20arguments[29:30 ]22arguments[31:32 ]24arguments[33:34 ]26arguments[35:36 ]28arguments[37:38 ]2aarguments[39:39 ]sequence[0:0 ]2csequence[1:1 ]id[0:0 ]2eid[1:2 ]30id[3:3 ]event_time_boot_ms[0:0 ]32event_time_boot_ms[1:2 ]34event_time_boot_ms[3:3 ]
Field NameTypeUnitDescription
destination_componentuint8_tComponent ID
destination_systemuint8_tSystem ID
log_levelsuint8_tLog levels: 4 bits MSB: internal (for logging purposes), 4 bits LSB: external. Levels: Emergency = 0, Alert = 1, Critical = 2, Error = 3, Warning = 4, Notice = 5, Info = 6, Debug = 7, Protocol = 8, Disabled = 9
argumentsuint8_t[40]Arguments (depend on event ID).
sequenceuint16_tSequence number.
iduint32_tEvent ID (as defined in the component metadata)
event_time_boot_msuint32_tmsTimestamp (time since system boot when the event happened).

CURRENT_EVENT_SEQUENCE (411)

Regular broadcast for the current latest event sequence number for a component. This is used to check for dropped events.

0123456789abcdefflagssequence
Field NameTypeEnum ValuesDescription
flagsuint8_tMAV_EVENT_CURRENT_SEQUENCE_FLAGSFlag bitset.
sequenceuint16_tSequence number.

REQUEST_EVENT (412)

Request one or more events to be (re-)sent. If first_sequence==last_sequence, only a single event is requested. Note that first_sequence can be larger than last_sequence (because the sequence number can wrap). Each sequence will trigger an EVENT or EVENT_ERROR response.

0123456789abcdeftarget_systemtarget_componentfirst_sequence0004last_sequence
Field NameTypeDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
first_sequenceuint16_tFirst sequence number of the requested event.
last_sequenceuint16_tLast sequence number of the requested event.

RESPONSE_EVENT_ERROR (413)

Response to a REQUEST_EVENT in case of an error (e.g. the event is not available anymore).

0123456789abcdeftarget_systemtarget_component0002reasonsequence[0:0 ]04sequence[1:1 ]sequence_oldest_available[0:0 ]06sequence_oldest_available[1:1 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
reasonuint8_tMAV_EVENT_ERROR_REASONError reason.
sequenceuint16_tSequence number.
sequence_oldest_availableuint16_tOldest Sequence number that is still available after the sequence set in REQUEST_EVENT.

GROUP_START (414)

Emitted during mission execution when control reaches MAV_CMD_GROUP_START.

0123456789abcdefgroup_id0004mission_checksum08time_usec[0:3 ]0ctime_usec[4:7 ]
Field NameTypeUnitDescription
group_iduint32_tMission-unique group id (from MAV_CMD_GROUP_START).
mission_checksumuint32_tCRC32 checksum of current plan for MAV_MISSION_TYPE_ALL. As defined in MISSION_CHECKSUM message.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot).
The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

GROUP_END (415)

Emitted during mission execution when control reaches MAV_CMD_GROUP_END.

0123456789abcdefgroup_id0004mission_checksum08time_usec[0:3 ]0ctime_usec[4:7 ]
Field NameTypeUnitDescription
group_iduint32_tMission-unique group id (from MAV_CMD_GROUP_END).
mission_checksumuint32_tCRC32 checksum of current plan for MAV_MISSION_TYPE_ALL. As defined in MISSION_CHECKSUM message.
time_usecuint64_tusTimestamp (UNIX Epoch time or time since system boot).
The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.

RADIO_RC_CHANNELS (420)

RC channel outputs from a MAVLink RC receiver for input to a flight controller or other components (allows an RC receiver to connect via MAVLink instead of some other protocol such as PPM-Sum or S.BUS). Note that this is not intended to be an over-the-air format, and does not replace RC_CHANNELS and similar messages reported by the flight controller. The target_system field should normally be set to the system id of the system to control, typically the flight controller. The target_component field can normally be set to 0, so that all components of the system can receive the message. The channels array field can publish up to 32 channels; the number of channel items used in the array is specified in the count field. The time_last_update_ms field contains the timestamp of the last received valid channels data in the receiver's time domain. The count field indicates the first index of the channel array that is not used for channel data (this and later indexes are zero-filled). The RADIO_RC_CHANNELS_FLAGS_OUTDATED flag is set by the receiver if the channels data is not up-to-date (for example, if new data from the transmitter could not be validated so the last valid data is resent). The RADIO_RC_CHANNELS_FLAGS_FAILSAFE failsafe flag is set by the receiver if the receiver's failsafe condition is met (implementation dependent, e.g., connection to the RC radio is lost). In this case time_last_update_ms still contains the timestamp of the last valid channels data, but the content of the channels data is not defined by the protocol (it is up to the implementation of the receiver). For instance, the channels data could contain failsafe values configured in the receiver; the default is to carry the last valid data. Note: The RC channels fields are extensions to ensure that they are located at the end of the serialized payload and subject to MAVLink's trailing-zero trimming.

0123456789abcdeftarget_systemtarget_component0002countflags[0:0 ]04flags[1:1 ]time_last_update_ms[0:0 ]06time_last_update_ms[1:2 ]08time_last_update_ms[3:3 ]channels[0:0 ]0achannels[1:2 ]0cchannels[3:4 ]0echannels[5:6 ]10channels[7:8 ]12channels[9:10 ]14channels[11:12 ]16channels[13:14 ]18channels[15:16 ]1achannels[17:18 ]1cchannels[19:20 ]1echannels[21:22 ]20channels[23:24 ]22channels[25:26 ]24channels[27:28 ]26channels[29:30 ]28channels[31:31 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID (ID of target system, normally flight controller).
target_componentuint8_tComponent ID (normally 0 for broadcast).
countuint8_tTotal number of RC channels being received. This can be larger than 32, indicating that more channels are available but not given in this message.
flagsuint16_tRADIO_RC_CHANNELS_FLAGSRadio RC channels status flags.
time_last_update_msuint32_tmsTime when the data in the channels field were last updated (time since boot in the receiver's time domain).
channelsint16_t[32]RC channels.
Channel values are in centered 13 bit format. Range is -4096 to 4096, center is 0. Conversion to PWM is x * 5/32 + 1500.
Channels with indexes equal or above count should be set to 0, to benefit from MAVLink's trailing-zero trimming.

AVAILABLE_MODES (435)

Information about a flight mode.

The message can be enumerated to get information for all modes, or requested for a particular mode, using MAV_CMD_REQUEST_MESSAGE. Specify 0 in param2 to request that the message is emitted for all available modes or the specific index for just one mode. The modes must be available/settable for the current vehicle/frame type. Each mode should only be emitted once (even if it is both standard and custom). Note that the current mode should be emitted in CURRENT_MODE, and that if the mode list can change then AVAILABLE_MODES_MONITOR must be emitted on first change and subsequently streamed. See https://mavlink.io/en/services/standard_modes.html

0123456789abcdefnumber_modesmode_indexstandard_modemode_name[0:0 ]0004mode_name[1:4 ]08mode_name[5:8 ]0cmode_name[9:12 ]10mode_name[13:16 ]14mode_name[17:20 ]18mode_name[21:24 ]1cmode_name[25:28 ]20mode_name[29:32 ]24mode_name[33:34 ]custom_mode[0:1 ]28custom_mode[2:3 ]properties[0:1 ]2cproperties[2:3 ]
Field NameTypeEnum ValuesDescription
number_modesuint8_tThe total number of available modes for the current vehicle type.
mode_indexuint8_tThe current mode index within number_modes, indexed from 1. The index is not guaranteed to be persistent, and may change between reboots or if the set of modes change.
standard_modeuint8_tMAV_STANDARD_MODEStandard mode.
mode_namechar[35]Name of custom mode, with null termination character. Should be omitted for standard modes.
custom_modeuint32_tA bitfield for use for autopilot-specific flags
propertiesuint32_tMAV_MODE_PROPERTYMode properties.

CURRENT_MODE (436)

Get the current mode. This should be emitted on any mode change, and broadcast at low rate (nominally 0.5 Hz). It may be requested using MAV_CMD_REQUEST_MESSAGE. See https://mavlink.io/en/services/standard_modes.html

0123456789abcdefstandard_modecustom_mode[0:0 ]0002custom_mode[1:2 ]04custom_mode[3:3 ]intended_custom_mode[0:0 ]06intended_custom_mode[1:2 ]08intended_custom_mode[3:3 ]
Field NameTypeEnum ValuesDescription
standard_modeuint8_tMAV_STANDARD_MODEStandard mode.
custom_modeuint32_tA bitfield for use for autopilot-specific flags
intended_custom_modeuint32_tThe custom_mode of the mode that was last commanded by the user (for example, with MAV_CMD_DO_SET_STANDARD_MODE, MAV_CMD_DO_SET_MODE or via RC). This should usually be the same as custom_mode. It will be different if the vehicle is unable to enter the intended mode, or has left that mode due to a failsafe condition. 0 indicates the intended custom mode is unknown/not supplied

AVAILABLE_MODES_MONITOR (437)

A change to the sequence number indicates that the set of AVAILABLE_MODES has changed. A receiver must re-request all available modes whenever the sequence number changes. This is only emitted after the first change and should then be broadcast at low rate (nominally 0.3 Hz) and on change. See https://mavlink.io/en/services/standard_modes.html

0123456789abcdefseq
Field NameTypeDescription
sequint8_tSequence number. The value iterates sequentially whenever AVAILABLE_MODES changes (e.g. support for a new mode is added/removed dynamically).

ILLUMINATOR_STATUS (440)

Illuminator status

0123456789abcdefenablemode_bitmaskmodeuptime_ms[0:0 ]0004uptime_ms[1:3 ]error_status[0:0 ]08error_status[1:3 ]brightness[0:0 ]0cbrightness[1:3 ]strobe_period[0:0 ]10strobe_period[1:3 ]strobe_duty_cycle[0:0 ]14strobe_duty_cycle[1:3 ]temp_c[0:0 ]18temp_c[1:3 ]min_strobe_period[0:0 ]1cmin_strobe_period[1:3 ]max_strobe_period[0:0 ]20max_strobe_period[1:3 ]
Field NameTypeUnitEnum ValuesDescription
enableuint8_t0: Illuminators OFF, 1: Illuminators ON
mode_bitmaskuint8_tILLUMINATOR_MODESupported illuminator modes
modeuint8_tILLUMINATOR_MODEIlluminator mode
uptime_msuint32_tmsTime since the start-up of the illuminator in ms
error_statusuint32_tILLUMINATOR_ERROR_FLAGSErrors
brightnessfloat%Illuminator brightness
strobe_periodfloatsIlluminator strobing period in seconds
strobe_duty_cyclefloat%Illuminator strobing duty cycle
temp_cfloatTemperature in Celsius
min_strobe_periodfloatsMinimum strobing period in seconds
max_strobe_periodfloatsMaximum strobing period in seconds

GNSS_INTEGRITY (441)

Information about key components of GNSS receivers, like signal authentication, interference and system errors.

0123456789abcdefidauthentication_state0002jamming_statespoofing_state04raim_statecorrections_quality06system_status_summarygnss_signal_quality08post_processing_qualityraim_hfom[0:0 ]0araim_hfom[1:1 ]raim_vfom[0:0 ]0craim_vfom[1:1 ]system_errors[0:0 ]0esystem_errors[1:2 ]10system_errors[3:3 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tGNSS receiver id. Must match instance ids of other messages from same receiver.
authentication_stateuint8_tGPS_AUTHENTICATION_STATESignal authentication state of the GPS system.
jamming_stateuint8_tGPS_JAMMING_STATESignal jamming state of the GPS system.
spoofing_stateuint8_tGPS_SPOOFING_STATESignal spoofing state of the GPS system.
raim_stateuint8_tGPS_RAIM_STATEThe state of the RAIM processing.
corrections_qualityuint8_tAn abstract value representing the estimated quality of incoming corrections, or 255 if not available.
system_status_summaryuint8_tAn abstract value representing the overall status of the receiver, or 255 if not available.
gnss_signal_qualityuint8_tAn abstract value representing the quality of incoming GNSS signals, or 255 if not available.
post_processing_qualityuint8_tAn abstract value representing the estimated PPK quality, or 255 if not available.
raim_hfomuint16_tcmHorizontal expected accuracy using satellites successfully validated using RAIM.
raim_vfomuint16_tcmVertical expected accuracy using satellites successfully validated using RAIM.
system_errorsuint32_tGPS_SYSTEM_ERROR_FLAGSErrors in the GPS system.

TARGET_ABSOLUTE (510)

Current motion information from sensors on a target

0123456789abcdefidsensor_capabilities0002lat[0:1 ]04lat[2:3 ]06lon[0:1 ]08lon[2:3 ]0aalt[0:1 ]0calt[2:3 ]0evel[0:1 ]10vel[2:2 ]acc[0:0 ]12acc[1:2 ]14q_target[0:1 ]16q_target[2:3 ]18rates[0:1 ]1arates[2:2 ]position_std[0:0 ]1cposition_std[1:1 ]vel_std[0:0 ]1evel_std[1:2 ]20acc_std[0:1 ]22acc_std[2:2 ]timestamp[0:0 ]24timestamp[1:2 ]26timestamp[3:4 ]28timestamp[5:6 ]2atimestamp[7:7 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tThe ID of the target if multiple targets are present
sensor_capabilitiesuint8_tTARGET_ABSOLUTE_SENSOR_CAPABILITY_FLAGSBitmap to indicate the sensor's reporting capabilities
latint32_tdegE7Target's latitude (WGS84)
lonint32_tdegE7Target's longitude (WGS84)
altfloatmTarget's altitude (AMSL)
velfloat[3]m/sTarget's velocity in its body frame
accfloat[3]m/s/sLinear target's acceleration in its body frame
q_targetfloat[4]Quaternion of the target's orientation from its body frame to the vehicle's NED frame.
ratesfloat[3]rad/sTarget's roll, pitch and yaw rates
position_stdfloat[2]mStandard deviation of horizontal (eph) and vertical (epv) position errors
vel_stdfloat[3]m/sStandard deviation of the target's velocity in its body frame
acc_stdfloat[3]m/s/sStandard deviation of the target's acceleration in its body frame
timestampuint64_tusTimestamp (UNIX epoch time).

TARGET_RELATIVE (511)

The location of a target measured by MAV's onboard sensors.

0123456789abcdefidframetypex[0:0 ]0004x[1:3 ]y[0:0 ]08y[1:3 ]z[0:0 ]0cz[1:3 ]pos_std[0:0 ]10pos_std[1:2 ]yaw_std[0:1 ]14yaw_std[2:3 ]q_target[0:1 ]18q_target[2:3 ]q_sensor[0:1 ]1cq_sensor[2:3 ]timestamp[0:1 ]20timestamp[2:5 ]24timestamp[6:7 ]
Field NameTypeUnitEnum ValuesDescription
iduint8_tThe ID of the target if multiple targets are present
frameuint8_tTARGET_OBS_FRAMECoordinate frame used for following fields.
typeuint8_tLANDING_TARGET_TYPEType of target
xfloatmX Position of the target in TARGET_OBS_FRAME
yfloatmY Position of the target in TARGET_OBS_FRAME
zfloatmZ Position of the target in TARGET_OBS_FRAME
pos_stdfloat[3]mStandard deviation of the target's position in TARGET_OBS_FRAME
yaw_stdfloatradStandard deviation of the target's orientation in TARGET_OBS_FRAME
q_targetfloat[4]Quaternion of the target's orientation from the target's frame to the TARGET_OBS_FRAME (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
q_sensorfloat[4]Quaternion of the sensor's orientation from TARGET_OBS_FRAME to vehicle-carried NED. (Ignored if set to (0,0,0,0)) (w, x, y, z order, zero-rotation is 1, 0, 0, 0)
timestampuint64_tusTimestamp (UNIX epoch time)

CONTROL_STATUS (512)

Information about GCS in control of this MAV. This should be broadcast at low rate (nominally 1 Hz) and emitted when ownership or takeover status change. Control over MAV is requested using MAV_CMD_REQUEST_OPERATOR_CONTROL.

0123456789abcdefsysid_in_controlflags
Field NameTypeEnum ValuesDescription
sysid_in_controluint8_tSystem ID of GCS MAVLink component in control (0: no GCS in control).
flagsuint8_tGCS_CONTROL_STATUS_FLAGSControl status. For example, whether takeover is allowed, and whether this message instance defines the default controlling GCS for the whole system.

SENS_POWER (8002)

Voltage and current sensor data

0123456789abcdefadc121_vspb_volt0004adc121_cspb_amp08adc121_cs1_amp0cadc121_cs2_amp
Field NameTypeUnitDescription
adc121_vspb_voltfloatVPower board voltage sensor reading
adc121_cspb_ampfloatAPower board current sensor reading
adc121_cs1_ampfloatABoard current sensor 1 reading
adc121_cs2_ampfloatABoard current sensor 2 reading

SENS_MPPT (8003)

Maximum Power Point Tracker (MPPT) sensor data for solar module power performance tracking

0123456789abcdefmppt1_statusmppt2_statusmppt3_statusmppt1_pwm[0:0 ]0004mppt1_pwm[1:1 ]mppt2_pwmmppt3_pwm[0:0 ]08mppt3_pwm[1:1 ]mppt1_volt[0:2 ]0cmppt1_volt[3:3 ]mppt1_amp[0:2 ]10mppt1_amp[3:3 ]mppt2_volt[0:2 ]14mppt2_volt[3:3 ]mppt2_amp[0:2 ]18mppt2_amp[3:3 ]mppt3_volt[0:2 ]1cmppt3_volt[3:3 ]mppt3_amp[0:2 ]20mppt3_amp[3:3 ]mppt_timestamp[0:2 ]24mppt_timestamp[3:6 ]28mppt_timestamp[7:7 ]
Field NameTypeUnitDescription
mppt1_statusuint8_tMPPT1 status
mppt2_statusuint8_tMPPT2 status
mppt3_statusuint8_tMPPT3 status
mppt1_pwmuint16_tusMPPT1 pwm
mppt2_pwmuint16_tusMPPT2 pwm
mppt3_pwmuint16_tusMPPT3 pwm
mppt1_voltfloatVMPPT1 voltage
mppt1_ampfloatAMPPT1 current
mppt2_voltfloatVMPPT2 voltage
mppt2_ampfloatAMPPT2 current
mppt3_voltfloatVMPPT3 voltage
mppt3_ampfloatAMPPT3 current
mppt_timestampuint64_tusMPPT last timestamp

ASLCTRL_DATA (8004)

ASL-fixed-wing controller data

0123456789abcdefaslctrl_modeSpoilersEngagedh[0:1 ]0004h[2:3 ]hRef[0:1 ]08hRef[2:3 ]hRef_t[0:1 ]0chRef_t[2:3 ]PitchAngle[0:1 ]10PitchAngle[2:3 ]PitchAngleRef[0:1 ]14PitchAngleRef[2:3 ]q[0:1 ]18q[2:3 ]qRef[0:1 ]1cqRef[2:3 ]uElev[0:1 ]20uElev[2:3 ]uThrot[0:1 ]24uThrot[2:3 ]uThrot2[0:1 ]28uThrot2[2:3 ]nZ[0:1 ]2cnZ[2:3 ]AirspeedRef[0:1 ]30AirspeedRef[2:3 ]YawAngle[0:1 ]34YawAngle[2:3 ]YawAngleRef[0:1 ]38YawAngleRef[2:3 ]RollAngle[0:1 ]3cRollAngle[2:3 ]RollAngleRef[0:1 ]40RollAngleRef[2:3 ]p[0:1 ]44p[2:3 ]pRef[0:1 ]48pRef[2:3 ]r[0:1 ]4cr[2:3 ]rRef[0:1 ]50rRef[2:3 ]uAil[0:1 ]54uAil[2:3 ]uRud[0:1 ]58uRud[2:3 ]timestamp[0:1 ]5ctimestamp[2:5 ]60timestamp[6:7 ]
Field NameTypeUnitDescription
aslctrl_modeuint8_tASLCTRL control-mode (manual, stabilized, auto, etc...)
SpoilersEngageduint8_t
hfloatSee sourcecode for a description of these values...
hReffloat
hRef_tfloat
PitchAnglefloatdegPitch angle
PitchAngleReffloatdegPitch angle reference
qfloat
qReffloat
uElevfloat
uThrotfloat
uThrot2float
nZfloat
AirspeedReffloatm/sAirspeed reference
YawAnglefloatdegYaw angle
YawAngleReffloatdegYaw angle reference
RollAnglefloatdegRoll angle
RollAngleReffloatdegRoll angle reference
pfloat
pReffloat
rfloat
rReffloat
uAilfloat
uRudfloat
timestampuint64_tusTimestamp

ASLCTRL_DEBUG (8005)

ASL-fixed-wing controller debug data

0123456789abcdefi8_1i8_2i32_1[0:1 ]0004i32_1[2:3 ]f_1[0:1 ]08f_1[2:3 ]f_2[0:1 ]0cf_2[2:3 ]f_3[0:1 ]10f_3[2:3 ]f_4[0:1 ]14f_4[2:3 ]f_5[0:1 ]18f_5[2:3 ]f_6[0:1 ]1cf_6[2:3 ]f_7[0:1 ]20f_7[2:3 ]f_8[0:1 ]24f_8[2:3 ]
Field NameTypeDescription
i8_1uint8_tDebug data
i8_2uint8_tDebug data
i32_1uint32_tDebug data
f_1floatDebug data
f_2floatDebug data
f_3floatDebug data
f_4floatDebug data
f_5floatDebug data
f_6floatDebug data
f_7floatDebug data
f_8floatDebug data

ASLUAV_STATUS (8006)

Extended state information for ASLUAVs

0123456789abcdefLED_statusSATCOM_statusServo_status[0:1 ]0004Servo_status[2:5 ]08Servo_status[6:7 ]Motor_rpm[0:1 ]0cMotor_rpm[2:3 ]
Field NameTypeDescription
LED_statusuint8_tStatus of the position-indicator LEDs
SATCOM_statusuint8_tStatus of the IRIDIUM satellite communication system
Servo_statusuint8_t[8]Status vector for up to 8 servos
Motor_rpmfloatMotor RPM

EKF_EXT (8007)

Extended EKF state estimates for ASLUAVs

0123456789abcdefWindspeed0004WindDir08WindZ0cAirspeed10beta14alpha18timestamp[0:3 ]1ctimestamp[4:7 ]
Field NameTypeUnitDescription
Windspeedfloatm/sMagnitude of wind velocity (in lateral inertial plane)
WindDirfloatradWind heading angle from North
WindZfloatm/sZ (Down) component of inertial wind velocity
Airspeedfloatm/sMagnitude of air velocity
betafloatradSideslip angle
alphafloatradAngle of attack
timestampuint64_tusTime since system start

ASL_OBCTRL (8008)

Off-board controls/commands for ASLUAVs

0123456789abcdefobctrl_statusuElev[0:2 ]0004uElev[3:3 ]uThrot[0:2 ]08uThrot[3:3 ]uThrot2[0:2 ]0cuThrot2[3:3 ]uAilL[0:2 ]10uAilL[3:3 ]uAilR[0:2 ]14uAilR[3:3 ]uRud[0:2 ]18uRud[3:3 ]timestamp[0:2 ]1ctimestamp[3:6 ]20timestamp[7:7 ]
Field NameTypeUnitDescription
obctrl_statusuint8_tOff-board computer status
uElevfloatElevator command [~]
uThrotfloatThrottle command [~]
uThrot2floatThrottle 2 command [~]
uAilLfloatLeft aileron command [~]
uAilRfloatRight aileron command [~]
uRudfloatRudder command [~]
timestampuint64_tusTime since system start

SENS_ATMOS (8009)

Atmospheric sensors (temperature, humidity, ...)

0123456789abcdefTempAmbient0004Humidity08timestamp[0:3 ]0ctimestamp[4:7 ]
Field NameTypeUnitDescription
TempAmbientfloatdegCAmbient temperature
Humidityfloat%Relative humidity
timestampuint64_tusTime since system boot

SENS_BATMON (8010)

Battery pack monitoring data for Li-Ion batteries

0123456789abcdefSoCvoltagecurrent[0:0 ]0004current[1:1 ]batterystatusserialnumber[0:0 ]08serialnumber[1:1 ]cellvoltage1cellvoltage2[0:0 ]0ccellvoltage2[1:1 ]cellvoltage3cellvoltage4[0:0 ]10cellvoltage4[1:1 ]cellvoltage5cellvoltage6[0:0 ]14cellvoltage6[1:1 ]temperature[0:2 ]18temperature[3:3 ]safetystatus[0:2 ]1csafetystatus[3:3 ]operationstatus[0:2 ]20operationstatus[3:3 ]batmon_timestamp[0:2 ]24batmon_timestamp[3:6 ]28batmon_timestamp[7:7 ]
Field NameTypeUnitDescription
SoCuint8_tBattery pack state-of-charge
voltageuint16_tmVBattery pack voltage
currentint16_tmABattery pack current
batterystatusuint16_tBattery monitor status report bits in Hex
serialnumberuint16_tBattery monitor serial number in Hex
cellvoltage1uint16_tmVBattery pack cell 1 voltage
cellvoltage2uint16_tmVBattery pack cell 2 voltage
cellvoltage3uint16_tmVBattery pack cell 3 voltage
cellvoltage4uint16_tmVBattery pack cell 4 voltage
cellvoltage5uint16_tmVBattery pack cell 5 voltage
cellvoltage6uint16_tmVBattery pack cell 6 voltage
temperaturefloatdegCBattery pack temperature
safetystatusuint32_tBattery monitor safetystatus report bits in Hex
operationstatusuint32_tBattery monitor operation status report bits in Hex
batmon_timestampuint64_tusTime since system start

FW_SOARING_DATA (8011)

Fixed-wing soaring (i.e. thermal seeking) data

0123456789abcdefControlModevalid0002xW[0:1 ]04xW[2:3 ]06xR[0:1 ]08xR[2:3 ]0axLat[0:1 ]0cxLat[2:3 ]0exLon[0:1 ]10xLon[2:3 ]12VarW[0:1 ]14VarW[2:3 ]16VarR[0:1 ]18VarR[2:3 ]1aVarLat[0:1 ]1cVarLat[2:3 ]1eVarLon[0:1 ]20VarLon[2:3 ]22LoiterRadius[0:1 ]24LoiterRadius[2:3 ]26LoiterDirection[0:1 ]28LoiterDirection[2:3 ]2aDistToSoarPoint[0:1 ]2cDistToSoarPoint[2:3 ]2evSinkExp[0:1 ]30vSinkExp[2:3 ]32z1_LocalUpdraftSpeed[0:1 ]34z1_LocalUpdraftSpeed[2:3 ]36z2_DeltaRoll[0:1 ]38z2_DeltaRoll[2:3 ]3az1_exp[0:1 ]3cz1_exp[2:3 ]3ez2_exp[0:1 ]40z2_exp[2:3 ]42ThermalGSNorth[0:1 ]44ThermalGSNorth[2:3 ]46ThermalGSEast[0:1 ]48ThermalGSEast[2:3 ]4aTSE_dot[0:1 ]4cTSE_dot[2:3 ]4eDebugVar1[0:1 ]50DebugVar1[2:3 ]52DebugVar2[0:1 ]54DebugVar2[2:3 ]56timestamp[0:1 ]58timestamp[2:3 ]5atimestamp[4:5 ]5ctimestamp[6:7 ]5etimestampModeChanged[0:1 ]60timestampModeChanged[2:3 ]62timestampModeChanged[4:5 ]64timestampModeChanged[6:7 ]
Field NameTypeUnitDescription
ControlModeuint8_tControl Mode [-]
validuint8_tData valid [-]
xWfloatm/sThermal core updraft strength
xRfloatmThermal radius
xLatfloatdegThermal center latitude
xLonfloatdegThermal center longitude
VarWfloatVariance W
VarRfloatVariance R
VarLatfloatVariance Lat
VarLonfloatVariance Lon
LoiterRadiusfloatmSuggested loiter radius
LoiterDirectionfloatSuggested loiter direction
DistToSoarPointfloatmDistance to soar point
vSinkExpfloatm/sExpected sink rate at current airspeed, roll and throttle
z1_LocalUpdraftSpeedfloatm/sMeasurement / updraft speed at current/local airplane position
z2_DeltaRollfloatdegMeasurement / roll angle tracking error
z1_expfloatExpected measurement 1
z2_expfloatExpected measurement 2
ThermalGSNorthfloatm/sThermal drift (from estimator prediction step only)
ThermalGSEastfloatm/sThermal drift (from estimator prediction step only)
TSE_dotfloatm/sTotal specific energy change (filtered)
DebugVar1floatDebug variable 1
DebugVar2floatDebug variable 2
timestampuint64_tmsTimestamp
timestampModeChangeduint64_tmsTimestamp since last mode change

SENSORPOD_STATUS (8012)

Monitoring of sensorpod status

0123456789abcdefvisensor_rate_1visensor_rate_20002visensor_rate_3visensor_rate_404recording_nodes_countcpu_temp06free_space08timestamp[0:1 ]0atimestamp[2:3 ]0ctimestamp[4:5 ]0etimestamp[6:7 ]
Field NameTypeUnitDescription
visensor_rate_1uint8_tRate of ROS topic 1
visensor_rate_2uint8_tRate of ROS topic 2
visensor_rate_3uint8_tRate of ROS topic 3
visensor_rate_4uint8_tRate of ROS topic 4
recording_nodes_countuint8_tNumber of recording nodes
cpu_tempuint8_tdegCTemperature of sensorpod CPU in
free_spaceuint16_tFree space available in recordings directory in [Gb] * 1e2
timestampuint64_tmsTimestamp in linuxtime (since 1.1.1970)

SENS_POWER_BOARD (8013)

Monitoring of power board status

0123456789abcdefpwr_brd_statuspwr_brd_led_status0002pwr_brd_system_volt[0:1 ]04pwr_brd_system_volt[2:3 ]06pwr_brd_servo_volt[0:1 ]08pwr_brd_servo_volt[2:3 ]0apwr_brd_digital_volt[0:1 ]0cpwr_brd_digital_volt[2:3 ]0epwr_brd_mot_l_amp[0:1 ]10pwr_brd_mot_l_amp[2:3 ]12pwr_brd_mot_r_amp[0:1 ]14pwr_brd_mot_r_amp[2:3 ]16pwr_brd_analog_amp[0:1 ]18pwr_brd_analog_amp[2:3 ]1apwr_brd_digital_amp[0:1 ]1cpwr_brd_digital_amp[2:3 ]1epwr_brd_ext_amp[0:1 ]20pwr_brd_ext_amp[2:3 ]22pwr_brd_aux_amp[0:1 ]24pwr_brd_aux_amp[2:3 ]26timestamp[0:1 ]28timestamp[2:3 ]2atimestamp[4:5 ]2ctimestamp[6:7 ]
Field NameTypeUnitDescription
pwr_brd_statusuint8_tPower board status register
pwr_brd_led_statusuint8_tPower board leds status
pwr_brd_system_voltfloatVPower board system voltage
pwr_brd_servo_voltfloatVPower board servo voltage
pwr_brd_digital_voltfloatVPower board digital voltage
pwr_brd_mot_l_ampfloatAPower board left motor current sensor
pwr_brd_mot_r_ampfloatAPower board right motor current sensor
pwr_brd_analog_ampfloatAPower board analog current sensor
pwr_brd_digital_ampfloatAPower board digital current sensor
pwr_brd_ext_ampfloatAPower board extension current sensor
pwr_brd_aux_ampfloatAPower board aux current sensor
timestampuint64_tusTimestamp

Status of GSM modem (connected to onboard computer)

0123456789abcdefgsm_modem_typegsm_link_typerssirsrp_rscp0004sinr_eciorsrqtimestamp[0:1 ]08timestamp[2:5 ]0ctimestamp[6:7 ]
Field NameTypeUnitEnum ValuesDescription
gsm_modem_typeuint8_tGSM_MODEM_TYPEGSM modem used
gsm_link_typeuint8_tGSM_LINK_TYPEGSM link type
rssiuint8_tRSSI as reported by modem (unconverted)
rsrp_rscpuint8_tRSRP (LTE) or RSCP (WCDMA) as reported by modem (unconverted)
sinr_eciouint8_tSINR (LTE) or ECIO (WCDMA) as reported by modem (unconverted)
rsrquint8_tRSRQ (LTE only) as reported by modem (unconverted)
timestampuint64_tusTimestamp (of OBC)

Status of the SatCom link

0123456789abcdefsignal_qualityring_pending0002tx_session_pendingrx_session_pending04failed_sessions06successful_sessions08timestamp[0:1 ]0atimestamp[2:3 ]0ctimestamp[4:5 ]0etimestamp[6:7 ]10last_heartbeat[0:1 ]12last_heartbeat[2:3 ]14last_heartbeat[4:5 ]16last_heartbeat[6:7 ]
Field NameTypeUnitDescription
signal_qualityuint8_tSignal quality
ring_pendinguint8_tRing call pending
tx_session_pendinguint8_tTransmission session pending
rx_session_pendinguint8_tReceiving session pending
failed_sessionsuint16_tNumber of failed sessions
successful_sessionsuint16_tNumber of successful sessions
timestampuint64_tusTimestamp
last_heartbeatuint64_tusTimestamp of the last successful sbd session

SENSOR_AIRFLOW_ANGLES (8016)

Calibrated airflow angle measurements

0123456789abcdefangleofattack_validsideslip_valid0002angleofattack[0:1 ]04angleofattack[2:3 ]06sideslip[0:1 ]08sideslip[2:3 ]0atimestamp[0:1 ]0ctimestamp[2:3 ]0etimestamp[4:5 ]10timestamp[6:7 ]
Field NameTypeUnitDescription
angleofattack_validuint8_tAngle of attack measurement valid
sideslip_validuint8_tSideslip angle measurement valid
angleofattackfloatdegAngle of attack
sideslipfloatdegSideslip angle
timestampuint64_tusTimestamp

WHEEL_DISTANCE (9000)

Cumulative distance traveled for each reported wheel.

0123456789abcdefcounttime_usec[0:2 ]0004time_usec[3:6 ]08time_usec[7:7 ]distance[0:2 ]0cdistance[3:6 ]10distance[7:10 ]14distance[11:14 ]18distance[15:15 ]
Field NameTypeUnitDescription
countuint8_tNumber of wheels reported.
time_usecuint64_tusTimestamp (synced to UNIX time or since system boot).
distancedouble[16]mDistance reported by individual wheel encoders. Forward rotations increase values, reverse rotations decrease them. Not all wheels will necessarily have wheel encoders; the mapping of encoders to wheel positions must be agreed/understood by the endpoints.

WINCH_STATUS (9005)

Winch status.

0123456789abcdeftemperatureline_length[0:1 ]0004line_length[2:3 ]speed[0:1 ]08speed[2:3 ]tension[0:1 ]0ctension[2:3 ]voltage[0:1 ]10voltage[2:3 ]current[0:1 ]14current[2:3 ]status[0:1 ]18status[2:3 ]time_usec[0:1 ]1ctime_usec[2:5 ]20time_usec[6:7 ]
Field NameTypeUnitEnum ValuesDescription
temperatureint16_tdegCTemperature of the motor. INT16_MAX if unknown
line_lengthfloatmLength of line released. NaN if unknown
speedfloatm/sSpeed line is being released or retracted. Positive values if being released, negative values if being retracted, NaN if unknown
tensionfloatkgTension on the line. NaN if unknown
voltagefloatVVoltage of the battery supplying the winch. NaN if unknown
currentfloatACurrent draw from the winch. NaN if unknown
statusuint32_tMAV_WINCH_STATUS_FLAGStatus flags
time_usecuint64_tusTimestamp (synced to UNIX time or since system boot).

UAVIONIX_ADSB_OUT_CFG (10001)

Static data to configure the ADS-B transponder (send within 10 sec of a POR and every 10 sec thereafter)

0123456789abcdefcallsign[0:3 ]0004callsign[4:7 ]08callsign[8:8 ]emitterTypeaircraftSizegpsOffsetLat0cgpsOffsetLonrfSelectstallSpeed10ICAO
Field NameTypeUnitEnum ValuesDescription
callsignchar[9]Vehicle identifier (8 characters, null terminated, valid characters are A-Z, 0-9, " " only)
emitterTypeuint8_tADSB_EMITTER_TYPETransmitting vehicle type. See ADSB_EMITTER_TYPE enum
aircraftSizeuint8_tUAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZEAircraft length and width encoding (table 2-35 of DO-282B)
gpsOffsetLatuint8_tUAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LATGPS antenna lateral offset (table 2-36 of DO-282B)
gpsOffsetLonuint8_tUAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LONGPS antenna longitudinal offset from nose [if non-zero, take position (in meters) divide by 2 and add one] (table 2-37 DO-282B)
rfSelectuint8_tUAVIONIX_ADSB_OUT_RF_SELECTADS-B transponder receiver and transmit enable flags
stallSpeeduint16_tcm/sAircraft stall speed in cm/s
ICAOuint32_tVehicle address (24 bit)

UAVIONIX_ADSB_OUT_DYNAMIC (10002)

Dynamic data used to generate ADS-B out transponder data (send at 5Hz)

0123456789abcdefgpsFixnumSatsemergencyStatusaccuracyVert[0:0 ]0004accuracyVert[1:1 ]accuracyVelvelVert[0:0 ]08velVert[1:1 ]velNSVelEW[0:0 ]0cVelEW[1:1 ]statesquawk[0:0 ]10squawk[1:1 ]utcTime[0:2 ]14utcTime[3:3 ]gpsLat[0:2 ]18gpsLat[3:3 ]gpsLon[0:2 ]1cgpsLon[3:3 ]gpsAlt[0:2 ]20gpsAlt[3:3 ]baroAltMSL[0:2 ]24baroAltMSL[3:3 ]accuracyHor[0:2 ]28accuracyHor[3:3 ]
Field NameTypeUnitEnum ValuesDescription
gpsFixuint8_tUAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX0-1: no fix, 2: 2D fix, 3: 3D fix, 4: DGPS, 5: RTK
numSatsuint8_tNumber of satellites visible. If unknown set to UINT8_MAX
emergencyStatusuint8_tUAVIONIX_ADSB_EMERGENCY_STATUSEmergency status
accuracyVertuint16_tcmVertical accuracy in cm. If unknown set to UINT16_MAX
accuracyVeluint16_tmm/sVelocity accuracy in mm/s (m * 1E-3). If unknown set to UINT16_MAX
velVertint16_tcm/sGPS vertical speed in cm/s. If unknown set to INT16_MAX
velNSint16_tcm/sNorth-South velocity over ground in cm/s North +ve. If unknown set to INT16_MAX
VelEWint16_tcm/sEast-West velocity over ground in cm/s East +ve. If unknown set to INT16_MAX
stateuint16_tUAVIONIX_ADSB_OUT_DYNAMIC_STATEADS-B transponder dynamic input state flags
squawkuint16_tMode A code (typically 1200 [0x04B0] for VFR)
utcTimeuint32_tsUTC time in seconds since GPS epoch (Jan 6, 1980). If unknown set to UINT32_MAX
gpsLatint32_tdegE7Latitude WGS84 (deg * 1E7). If unknown set to INT32_MAX
gpsLonint32_tdegE7Longitude WGS84 (deg * 1E7). If unknown set to INT32_MAX
gpsAltint32_tmmAltitude (WGS84). UP +ve. If unknown set to INT32_MAX
baroAltMSLint32_tmbarBarometric pressure altitude (MSL) relative to a standard atmosphere of 1013.2 mBar and NOT bar corrected altitude (m * 1E-3). (up +ve). If unknown set to INT32_MAX
accuracyHoruint32_tmmHorizontal accuracy in mm (m * 1E-3). If unknown set to UINT32_MAX

UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (10003)

Transceiver heartbeat with health report (updated every 10s)

0123456789abcdefrfHealth
Field NameTypeEnum ValuesDescription
rfHealthuint8_tUAVIONIX_ADSB_RF_HEALTHADS-B transponder messages

UAVIONIX_ADSB_OUT_CFG_REGISTRATION (10004)

Aircraft Registration.

0123456789abcdefregistration[0:3 ]0004registration[4:7 ]08registration[8:8 ]
Field NameTypeDescription
registrationchar[9]Aircraft Registration (ASCII string A-Z, 0-9 only), e.g. "N8644B ". Trailing spaces (0x20) only. This is null-terminated.

UAVIONIX_ADSB_OUT_CFG_FLIGHTID (10005)

Flight Identification for ADSB-Out vehicles.

0123456789abcdefflight_id[0:3 ]0004flight_id[4:7 ]08flight_id[8:8 ]
Field NameTypeDescription
flight_idchar[9]Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable. Reflects Control message setting. This is null-terminated.

UAVIONIX_ADSB_GET (10006)

Request messages.

0123456789abcdefReqMessageId
Field NameTypeDescription
ReqMessageIduint32_tMessage ID to request. Supports any message in this 10000-10099 range

UAVIONIX_ADSB_OUT_CONTROL (10007)

Control message with all data sent in UCP control message.

0123456789abcdefstateemergencyStatusflight_id[0:1 ]0004flight_id[2:5 ]08flight_id[6:7 ]x_bitsquawk[0:0 ]0csquawk[1:1 ]baroAltMSL[0:2 ]10baroAltMSL[3:3 ]
Field NameTypeUnitEnum ValuesDescription
stateuint8_tUAVIONIX_ADSB_OUT_CONTROL_STATEADS-B transponder control state flags
emergencyStatusuint8_tUAVIONIX_ADSB_EMERGENCY_STATUSEmergency status
flight_idchar[8]Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable.
x_bituint8_tUAVIONIX_ADSB_XBITX-Bit enable (military transponders only)
squawkuint16_tMode A code (typically 1200 [0x04B0] for VFR)
baroAltMSLint32_tmbarBarometric pressure altitude (MSL) relative to a standard atmosphere of 1013.2 mBar and NOT bar corrected altitude (m * 1E-3). (up +ve). If unknown set to INT32_MAX

UAVIONIX_ADSB_OUT_STATUS (10008)

Status message with information from UCP Heartbeat and Status messages.

0123456789abcdefstateNIC_NACpboardTempfault0004flight_id[0:3 ]08flight_id[4:7 ]0csquawk
Field NameTypeEnum ValuesDescription
stateuint8_tUAVIONIX_ADSB_OUT_STATUS_STATEADS-B transponder status state flags
NIC_NACpuint8_tUAVIONIX_ADSB_OUT_STATUS_NIC_NACPIntegrity and Accuracy of traffic reported as a 4-bit value for each field (NACp 7:4 , NIC 3:0 ) and encoded by Containment Radius (HPL) and Estimated Position Uncertainty (HFOM), respectively
boardTempuint8_tBoard temperature in C
faultuint8_tUAVIONIX_ADSB_OUT_STATUS_FAULTADS-B transponder fault flags
flight_idchar[8]Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable.
squawkuint16_tMode A code (typically 1200 [0x04B0] for VFR)

LOWEHEISER_GOV_EFI (10151)

Composite EFI and Governor data from Loweheiser equipment. This message is created by the EFI unit based on its own data and data received from a governor attached to that EFI unit.

0123456789abcdefefi_indexgenerator_status[0:0 ]0002generator_status[1:1 ]efi_status[0:0 ]04efi_status[1:1 ]volt_batt[0:0 ]06volt_batt[1:2 ]08volt_batt[3:3 ]curr_batt[0:0 ]0acurr_batt[1:2 ]0ccurr_batt[3:3 ]curr_gen[0:0 ]0ecurr_gen[1:2 ]10curr_gen[3:3 ]curr_rot[0:0 ]12curr_rot[1:2 ]14curr_rot[3:3 ]fuel_level[0:0 ]16fuel_level[1:2 ]18fuel_level[3:3 ]throttle[0:0 ]1athrottle[1:2 ]1cthrottle[3:3 ]runtime[0:0 ]1eruntime[1:2 ]20runtime[3:3 ]until_maintenance[0:0 ]22until_maintenance[1:2 ]24until_maintenance[3:3 ]rectifier_temp[0:0 ]26rectifier_temp[1:2 ]28rectifier_temp[3:3 ]generator_temp[0:0 ]2agenerator_temp[1:2 ]2cgenerator_temp[3:3 ]efi_batt[0:0 ]2eefi_batt[1:2 ]30efi_batt[3:3 ]efi_rpm[0:0 ]32efi_rpm[1:2 ]34efi_rpm[3:3 ]efi_pw[0:0 ]36efi_pw[1:2 ]38efi_pw[3:3 ]efi_fuel_flow[0:0 ]3aefi_fuel_flow[1:2 ]3cefi_fuel_flow[3:3 ]efi_fuel_consumed[0:0 ]3eefi_fuel_consumed[1:2 ]40efi_fuel_consumed[3:3 ]efi_baro[0:0 ]42efi_baro[1:2 ]44efi_baro[3:3 ]efi_mat[0:0 ]46efi_mat[1:2 ]48efi_mat[3:3 ]efi_clt[0:0 ]4aefi_clt[1:2 ]4cefi_clt[3:3 ]efi_tps[0:0 ]4eefi_tps[1:2 ]50efi_tps[3:3 ]efi_exhaust_gas_temperature[0:0 ]52efi_exhaust_gas_temperature[1:2 ]54efi_exhaust_gas_temperature[3:3 ]
Field NameTypeUnitDescription
efi_indexuint8_tEFI index.
generator_statusuint16_tGenerator status.
efi_statusuint16_tEFI status.
volt_battfloatVGenerator Battery voltage.
curr_battfloatAGenerator Battery current.
curr_genfloatACurrent being produced by generator.
curr_rotfloatALoad current being consumed by the UAV (sum of curr_gen and curr_batt)
fuel_levelfloatlGenerator fuel remaining in litres.
throttlefloat%Throttle Output.
runtimeuint32_tsSeconds this generator has run since it was rebooted.
until_maintenanceint32_tsSeconds until this generator requires maintenance. A negative value indicates maintenance is past due.
rectifier_tempfloatdegCThe Temperature of the rectifier.
generator_tempfloatdegCThe temperature of the mechanical motor, fuel cell core or generator.
efi_battfloatVEFI Supply Voltage.
efi_rpmfloatrpmMotor RPM.
efi_pwfloatmsInjector pulse-width in milliseconds.
efi_fuel_flowfloatFuel flow rate in litres/hour.
efi_fuel_consumedfloatlFuel consumed.
efi_barofloatkPaAtmospheric pressure.
efi_matfloatdegCManifold Air Temperature.
efi_cltfloatdegCCylinder Head Temperature.
efi_tpsfloat%Throttle Position.
efi_exhaust_gas_temperaturefloatdegCExhaust gas temperature.

DEVICE_OP_READ (11000)

Read registers for a device.

0123456789abcdeftarget_systemtarget_componentbustypebus0004addressbusname[0:2 ]08busname[3:6 ]0cbusname[7:10 ]10busname[11:14 ]14busname[15:18 ]18busname[19:22 ]1cbusname[23:26 ]20busname[27:30 ]24busname[31:34 ]28busname[35:38 ]2cbusname[39:39 ]regstartcountrequest_id[0:0 ]30request_id[1:3 ]bank
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
bustypeuint8_tDEVICE_OP_BUSTYPEThe bus type.
busuint8_tBus number.
addressuint8_tBus address.
busnamechar[40]Name of device on bus (for SPI).
regstartuint8_tFirst register to read.
countuint8_tCount of registers to read.
request_iduint32_tRequest ID - copied to reply.
bankuint8_tBank number.

DEVICE_OP_READ_REPLY (11001)

Read registers reply.

0123456789abcdefresultregstartcountdata[0:0 ]0004data[1:4 ]08data[5:8 ]0cdata[9:12 ]10data[13:16 ]14data[17:20 ]18data[21:24 ]1cdata[25:28 ]20data[29:32 ]24data[33:36 ]28data[37:40 ]2cdata[41:44 ]30data[45:48 ]34data[49:52 ]38data[53:56 ]3cdata[57:60 ]40data[61:64 ]44data[65:68 ]48data[69:72 ]4cdata[73:76 ]50data[77:80 ]54data[81:84 ]58data[85:88 ]5cdata[89:92 ]60data[93:96 ]64data[97:100 ]68data[101:104 ]6cdata[105:108 ]70data[109:112 ]74data[113:116 ]78data[117:120 ]7cdata[121:124 ]80data[125:127 ]request_id[0:0 ]84request_id[1:3 ]bank
Field NameTypeDescription
resultuint8_t0 for success, anything else is failure code.
regstartuint8_tStarting register.
countuint8_tCount of bytes read.
datauint8_t[128]Reply data.
request_iduint32_tRequest ID - copied from request.
bankuint8_tBank number.

DEVICE_OP_WRITE (11002)

Write registers for a device.

0123456789abcdeftarget_systemtarget_componentbustypebus0004addressbusname[0:2 ]08busname[3:6 ]0cbusname[7:10 ]10busname[11:14 ]14busname[15:18 ]18busname[19:22 ]1cbusname[23:26 ]20busname[27:30 ]24busname[31:34 ]28busname[35:38 ]2cbusname[39:39 ]regstartcountdata[0:0 ]30data[1:4 ]34data[5:8 ]38data[9:12 ]3cdata[13:16 ]40data[17:20 ]44data[21:24 ]48data[25:28 ]4cdata[29:32 ]50data[33:36 ]54data[37:40 ]58data[41:44 ]5cdata[45:48 ]60data[49:52 ]64data[53:56 ]68data[57:60 ]6cdata[61:64 ]70data[65:68 ]74data[69:72 ]78data[73:76 ]7cdata[77:80 ]80data[81:84 ]84data[85:88 ]88data[89:92 ]8cdata[93:96 ]90data[97:100 ]94data[101:104 ]98data[105:108 ]9cdata[109:112 ]a0data[113:116 ]a4data[117:120 ]a8data[121:124 ]acdata[125:127 ]request_id[0:0 ]b0request_id[1:3 ]bank
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
bustypeuint8_tDEVICE_OP_BUSTYPEThe bus type.
busuint8_tBus number.
addressuint8_tBus address.
busnamechar[40]Name of device on bus (for SPI).
regstartuint8_tFirst register to write.
countuint8_tCount of registers to write.
datauint8_t[128]Write data.
request_iduint32_tRequest ID - copied to reply.
bankuint8_tBank number.

DEVICE_OP_WRITE_REPLY (11003)

Write registers reply.

0123456789abcdefresultrequest_id[0:2 ]0004request_id[3:3 ]
Field NameTypeDescription
resultuint8_t0 for success, anything else is failure code.
request_iduint32_tRequest ID - copied from request.

SECURE_COMMAND (11004)

Send a secure command. Data should be signed with a private key corresponding with a public key known to the recipient. Signature should be over the concatenation of the sequence number (little-endian format), the operation (little-endian format) the data and the session key. For SECURE_COMMAND_GET_SESSION_KEY the session key should be zero length. The data array consists of the data followed by the signature. The sum of the data_length and the sig_length cannot be more than 220. The format of the data is command specific.

0123456789abcdeftarget_systemtarget_componentdata_lengthsig_length0004data[0:3 ]08data[4:7 ]0cdata[8:11 ]10data[12:15 ]14data[16:19 ]18data[20:23 ]1cdata[24:27 ]20data[28:31 ]24data[32:35 ]28data[36:39 ]2cdata[40:43 ]30data[44:47 ]34data[48:51 ]38data[52:55 ]3cdata[56:59 ]40data[60:63 ]44data[64:67 ]48data[68:71 ]4cdata[72:75 ]50data[76:79 ]54data[80:83 ]58data[84:87 ]5cdata[88:91 ]60data[92:95 ]64data[96:99 ]68data[100:103 ]6cdata[104:107 ]70data[108:111 ]74data[112:115 ]78data[116:119 ]7cdata[120:123 ]80data[124:127 ]84data[128:131 ]88data[132:135 ]8cdata[136:139 ]90data[140:143 ]94data[144:147 ]98data[148:151 ]9cdata[152:155 ]a0data[156:159 ]a4data[160:163 ]a8data[164:167 ]acdata[168:171 ]b0data[172:175 ]b4data[176:179 ]b8data[180:183 ]bcdata[184:187 ]c0data[188:191 ]c4data[192:195 ]c8data[196:199 ]ccdata[200:203 ]d0data[204:207 ]d4data[208:211 ]d8data[212:215 ]dcdata[216:219 ]e0sequencee4operation
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
data_lengthuint8_tData length.
sig_lengthuint8_tSignature length.
datauint8_t[220]Signed data.
sequenceuint32_tSequence ID for tagging reply.
operationuint32_tSECURE_COMMAND_OPOperation being requested.

SECURE_COMMAND_REPLY (11005)

Reply from secure command.

0123456789abcdefresultdata_lengthdata[0:1 ]0004data[2:5 ]08data[6:9 ]0cdata[10:13 ]10data[14:17 ]14data[18:21 ]18data[22:25 ]1cdata[26:29 ]20data[30:33 ]24data[34:37 ]28data[38:41 ]2cdata[42:45 ]30data[46:49 ]34data[50:53 ]38data[54:57 ]3cdata[58:61 ]40data[62:65 ]44data[66:69 ]48data[70:73 ]4cdata[74:77 ]50data[78:81 ]54data[82:85 ]58data[86:89 ]5cdata[90:93 ]60data[94:97 ]64data[98:101 ]68data[102:105 ]6cdata[106:109 ]70data[110:113 ]74data[114:117 ]78data[118:121 ]7cdata[122:125 ]80data[126:129 ]84data[130:133 ]88data[134:137 ]8cdata[138:141 ]90data[142:145 ]94data[146:149 ]98data[150:153 ]9cdata[154:157 ]a0data[158:161 ]a4data[162:165 ]a8data[166:169 ]acdata[170:173 ]b0data[174:177 ]b4data[178:181 ]b8data[182:185 ]bcdata[186:189 ]c0data[190:193 ]c4data[194:197 ]c8data[198:201 ]ccdata[202:205 ]d0data[206:209 ]d4data[210:213 ]d8data[214:217 ]dcdata[218:219 ]sequence[0:1 ]e0sequence[2:3 ]operation[0:1 ]e4operation[2:3 ]
Field NameTypeEnum ValuesDescription
resultuint8_tMAV_RESULTResult of command.
data_lengthuint8_tData length.
datauint8_t[220]Reply data.
sequenceuint32_tSequence ID from request.
operationuint32_tSECURE_COMMAND_OPOperation that was requested.

ADAP_TUNING (11010)

Adaptive Controller tuning information.

0123456789abcdefaxisdesired[0:2 ]0004desired[3:3 ]achieved[0:2 ]08achieved[3:3 ]error[0:2 ]0cerror[3:3 ]theta[0:2 ]10theta[3:3 ]omega[0:2 ]14omega[3:3 ]sigma[0:2 ]18sigma[3:3 ]theta_dot[0:2 ]1ctheta_dot[3:3 ]omega_dot[0:2 ]20omega_dot[3:3 ]sigma_dot[0:2 ]24sigma_dot[3:3 ]f[0:2 ]28f[3:3 ]f_dot[0:2 ]2cf_dot[3:3 ]u[0:2 ]30u[3:3 ]
Field NameTypeUnitEnum ValuesDescription
axisuint8_tPID_TUNING_AXISAxis.
desiredfloatdeg/sDesired rate.
achievedfloatdeg/sAchieved rate.
errorfloatError between model and vehicle.
thetafloatTheta estimated state predictor.
omegafloatOmega estimated state predictor.
sigmafloatSigma estimated state predictor.
theta_dotfloatTheta derivative.
omega_dotfloatOmega derivative.
sigma_dotfloatSigma derivative.
ffloatProjection operator value.
f_dotfloatProjection operator derivative.
ufloatu adaptive controlled output command.

VISION_POSITION_DELTA (11011)

Camera vision based attitude and position deltas.

0123456789abcdefangle_deltaposition_delta[0:0 ]0004position_delta[1:2 ]confidence[0:1 ]08confidence[2:3 ]time_usec[0:1 ]0ctime_usec[2:5 ]10time_usec[6:7 ]time_delta_usec[0:1 ]14time_delta_usec[2:5 ]18time_delta_usec[6:7 ]
Field NameTypeUnitDescription
angle_deltafloat[3]radDefines a rotation vector [roll, pitch, yaw] to the current MAV_FRAME_BODY_FRD from the previous MAV_FRAME_BODY_FRD.
position_deltafloat[3]mChange in position to the current MAV_FRAME_BODY_FRD from the previous FRAME_BODY_FRD rotated to the current MAV_FRAME_BODY_FRD.
confidencefloat%Normalised confidence value from 0 to 100.
time_usecuint64_tusTimestamp (synced to UNIX time or since system boot).
time_delta_usecuint64_tusTime since the last reported camera frame.

AOA_SSA (11020)

Angle of Attack and Side Slip Angle.

0123456789abcdefAOA0004SSA08time_usec[0:3 ]0ctime_usec[4:7 ]
Field NameTypeUnitDescription
AOAfloatdegAngle of Attack.
SSAfloatdegSide Slip Angle.
time_usecuint64_tusTimestamp (since boot or Unix epoch).

ESC_TELEMETRY_1_TO_4 (11030)

ESC Telemetry Data for ESCs 1 to 4, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

ESC_TELEMETRY_5_TO_8 (11031)

ESC Telemetry Data for ESCs 5 to 8, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

ESC_TELEMETRY_9_TO_12 (11032)

ESC Telemetry Data for ESCs 9 to 12, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

OSD_PARAM_CONFIG (11033)

Configure an OSD parameter slot.

0123456789abcdeftarget_systemtarget_componentosd_screenosd_index0004param_id[0:3 ]08param_id[4:7 ]0cparam_id[8:11 ]10param_id[12:15 ]14config_typerequest_id[0:2 ]18request_id[3:3 ]min_value[0:2 ]1cmin_value[3:3 ]max_value[0:2 ]20max_value[3:3 ]increment[0:2 ]24increment[3:3 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
osd_screenuint8_tOSD parameter screen index.
osd_indexuint8_tOSD parameter display index.
param_idchar[16]Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
config_typeuint8_tOSD_PARAM_CONFIG_TYPEConfig type.
request_iduint32_tRequest ID - copied to reply.
min_valuefloatOSD parameter minimum value.
max_valuefloatOSD parameter maximum value.
incrementfloatOSD parameter increment.

OSD_PARAM_CONFIG_REPLY (11034)

Configure OSD parameter reply.

0123456789abcdefresultrequest_id[0:2 ]0004request_id[3:3 ]
Field NameTypeEnum ValuesDescription
resultuint8_tOSD_PARAM_CONFIG_ERRORConfig error type.
request_iduint32_tRequest ID - copied from request.

OSD_PARAM_SHOW_CONFIG (11035)

Read a configured an OSD parameter slot.

0123456789abcdeftarget_systemtarget_componentosd_screenosd_index0004request_id
Field NameTypeDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
osd_screenuint8_tOSD parameter screen index.
osd_indexuint8_tOSD parameter display index.
request_iduint32_tRequest ID - copied to reply.

OSD_PARAM_SHOW_CONFIG_REPLY (11036)

Read configured OSD parameter reply.

0123456789abcdefresultparam_id[0:2 ]0004param_id[3:6 ]08param_id[7:10 ]0cparam_id[11:14 ]10param_id[15:15 ]config_typerequest_id[0:1 ]14request_id[2:3 ]min_value[0:1 ]18min_value[2:3 ]max_value[0:1 ]1cmax_value[2:3 ]increment[0:1 ]20increment[2:3 ]
Field NameTypeEnum ValuesDescription
resultuint8_tOSD_PARAM_CONFIG_ERRORConfig error type.
param_idchar[16]Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string
config_typeuint8_tOSD_PARAM_CONFIG_TYPEConfig type.
request_iduint32_tRequest ID - copied from request.
min_valuefloatOSD parameter minimum value.
max_valuefloatOSD parameter maximum value.
incrementfloatOSD parameter increment.

OBSTACLE_DISTANCE_3D (11037)

Obstacle located as a 3D vector.

0123456789abcdefsensor_typeframeobstacle_id0004time_boot_ms08x0cy10z14min_distance18max_distance
Field NameTypeUnitEnum ValuesDescription
sensor_typeuint8_tMAV_DISTANCE_SENSORClass id of the distance sensor type.
frameuint8_tMAV_FRAMECoordinate frame of reference.
obstacle_iduint16_tUnique ID given to each obstacle so that its movement can be tracked. Use UINT16_MAX if object ID is unknown or cannot be determined.
time_boot_msuint32_tmsTimestamp (time since system boot).
xfloatmX position of the obstacle.
yfloatmY position of the obstacle.
zfloatmZ position of the obstacle.
min_distancefloatmMinimum distance the sensor can measure.
max_distancefloatmMaximum distance the sensor can measure.

WATER_DEPTH (11038)

Water depth

0123456789abcdefidhealthytime_boot_ms[0:1 ]0004time_boot_ms[2:3 ]lat[0:1 ]08lat[2:3 ]lng[0:1 ]0clng[2:3 ]alt[0:1 ]10alt[2:3 ]roll[0:1 ]14roll[2:3 ]pitch[0:1 ]18pitch[2:3 ]yaw[0:1 ]1cyaw[2:3 ]distance[0:1 ]20distance[2:3 ]temperature[0:1 ]24temperature[2:3 ]
Field NameTypeUnitDescription
iduint8_tOnboard ID of the sensor
healthyuint8_tSensor data healthy (0=unhealthy, 1=healthy)
time_boot_msuint32_tmsTimestamp (time since system boot)
latint32_tdegE7Latitude
lngint32_tdegE7Longitude
altfloatmAltitude (MSL) of vehicle
rollfloatradRoll angle
pitchfloatradPitch angle
yawfloatradYaw angle
distancefloatmDistance (uncorrected)
temperaturefloatdegCWater temperature

MCU_STATUS (11039)

The MCU status, giving MCU temperature and voltage. The min and max voltages are to allow for detecting power supply instability.

0123456789abcdefidMCU_temperatureMCU_voltage[0:0 ]0004MCU_voltage[1:1 ]MCU_voltage_minMCU_voltage_max[0:0 ]08MCU_voltage_max[1:1 ]
Field NameTypeUnitDescription
iduint8_tMCU instance
MCU_temperatureint16_tcdegCMCU Internal temperature
MCU_voltageuint16_tmVMCU voltage
MCU_voltage_minuint16_tmVMCU voltage minimum
MCU_voltage_maxuint16_tmVMCU voltage maximum

ESC_TELEMETRY_13_TO_16 (11040)

ESC Telemetry Data for ESCs 13 to 16, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

ESC_TELEMETRY_17_TO_20 (11041)

ESC Telemetry Data for ESCs 17 to 20, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

ESC_TELEMETRY_21_TO_24 (11042)

ESC Telemetry Data for ESCs 21 to 24, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

ESC_TELEMETRY_25_TO_28 (11043)

ESC Telemetry Data for ESCs 25 to 28, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

ESC_TELEMETRY_29_TO_32 (11044)

ESC Telemetry Data for ESCs 29 to 32, matching data sent by BLHeli ESCs.

0123456789abcdeftemperature0004voltage08current0ctotalcurrent10rpm14count
Field NameTypeUnitDescription
temperatureuint8_t[4]degCTemperature.
voltageuint16_t[4]cVVoltage.
currentuint16_t[4]cACurrent.
totalcurrentuint16_t[4]mAhTotal current.
rpmuint16_t[4]rpmRPM (eRPM).
countuint16_t[4]count of telemetry packets received (wraps at 65535).

NAMED_VALUE_STRING (11060)

Send a key-value pair as string. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.

0123456789abcdefname[0:3 ]0004name[4:7 ]08name[8:9 ]value[0:1 ]0cvalue[2:5 ]10value[6:9 ]14value[10:13 ]18value[14:17 ]1cvalue[18:21 ]20value[22:25 ]24value[26:29 ]28value[30:33 ]2cvalue[34:37 ]30value[38:41 ]34value[42:45 ]38value[46:49 ]3cvalue[50:53 ]40value[54:57 ]44value[58:61 ]48value[62:63 ]time_boot_ms[0:1 ]4ctime_boot_ms[2:3 ]
Field NameTypeUnitDescription
namechar[10]Name of the debug variable
valuechar[64]Value of the debug variable
time_boot_msuint32_tmsTimestamp (time since system boot).

OPEN_DRONE_ID_BASIC_ID (12900)

Data for filling the OpenDroneID Basic ID message. This and the below messages are primarily meant for feeding data to/from an OpenDroneID implementation. E.g. https://github.com/opendroneid/opendroneid-core-c. These messages are compatible with the ASTM F3411 Remote ID standard and the ASD-STAN prEN 4709-002 Direct Remote ID standard. Additional information and usage of these messages is documented at https://mavlink.io/en/services/opendroneid.html.

0123456789abcdeftarget_systemtarget_componentid_or_mac[0:1 ]0004id_or_mac[2:5 ]08id_or_mac[6:9 ]0cid_or_mac[10:13 ]10id_or_mac[14:17 ]14id_or_mac[18:19 ]id_typeua_type18uas_id[0:3 ]1cuas_id[4:7 ]20uas_id[8:11 ]24uas_id[12:15 ]28uas_id[16:19 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
id_typeuint8_tMAV_ODID_ID_TYPEIndicates the format for the uas_id field of this message.
ua_typeuint8_tMAV_ODID_UA_TYPEIndicates the type of UA (Unmanned Aircraft).
uas_iduint8_t[20]UAS (Unmanned Aircraft System) ID following the format specified by id_type. Shall be filled with nulls in the unused portion of the field.

OPEN_DRONE_ID_LOCATION (12901)

Data for filling the OpenDroneID Location message. The float data types are 32-bit IEEE 754. The Location message provides the location, altitude, direction and speed of the aircraft.

0123456789abcdeftarget_systemtarget_component0002id_or_mac[0:1 ]04id_or_mac[2:3 ]06id_or_mac[4:5 ]08id_or_mac[6:7 ]0aid_or_mac[8:9 ]0cid_or_mac[10:11 ]0eid_or_mac[12:13 ]10id_or_mac[14:15 ]12id_or_mac[16:17 ]14id_or_mac[18:19 ]16statusheight_reference18horizontal_accuracyvertical_accuracy1abarometer_accuracyspeed_accuracy1ctimestamp_accuracydirection[0:0 ]1edirection[1:1 ]speed_horizontal[0:0 ]20speed_horizontal[1:1 ]speed_vertical[0:0 ]22speed_vertical[1:1 ]latitude[0:0 ]24latitude[1:2 ]26latitude[3:3 ]longitude[0:0 ]28longitude[1:2 ]2alongitude[3:3 ]altitude_barometric[0:0 ]2caltitude_barometric[1:2 ]2ealtitude_barometric[3:3 ]altitude_geodetic[0:0 ]30altitude_geodetic[1:2 ]32altitude_geodetic[3:3 ]height[0:0 ]34height[1:2 ]36height[3:3 ]timestamp[0:0 ]38timestamp[1:2 ]3atimestamp[3:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
statusuint8_tMAV_ODID_STATUSIndicates whether the unmanned aircraft is on the ground or in the air.
height_referenceuint8_tMAV_ODID_HEIGHT_REFIndicates the reference point for the height field.
horizontal_accuracyuint8_tMAV_ODID_HOR_ACCThe accuracy of the horizontal position.
vertical_accuracyuint8_tMAV_ODID_VER_ACCThe accuracy of the vertical position.
barometer_accuracyuint8_tMAV_ODID_VER_ACCThe accuracy of the barometric altitude.
speed_accuracyuint8_tMAV_ODID_SPEED_ACCThe accuracy of the horizontal and vertical speed.
timestamp_accuracyuint8_tMAV_ODID_TIME_ACCThe accuracy of the timestamps.
directionuint16_tcdegDirection over ground (not heading, but direction of movement) measured clockwise from true North: 0 - 35999 centi-degrees. If unknown: 36100 centi-degrees.
speed_horizontaluint16_tcm/sGround speed. Positive only. If unknown: 25500 cm/s. If speed is larger than 25425 cm/s, use 25425 cm/s.
speed_verticalint16_tcm/sThe vertical speed. Up is positive. If unknown: 6300 cm/s. If speed is larger than 6200 cm/s, use 6200 cm/s. If lower than -6200 cm/s, use -6200 cm/s.
latitudeint32_tdegE7Current latitude of the unmanned aircraft. If unknown: 0 (both Lat/Lon).
longitudeint32_tdegE7Current longitude of the unmanned aircraft. If unknown: 0 (both Lat/Lon).
altitude_barometricfloatmThe altitude calculated from the barometric pressure. Reference is against 29.92inHg or 1013.2mb. If unknown: -1000 m.
altitude_geodeticfloatmThe geodetic altitude as defined by WGS84. If unknown: -1000 m.
heightfloatmThe current height of the unmanned aircraft above the take-off location or the ground as indicated by height_reference. If unknown: -1000 m.
timestampfloatsSeconds after the full hour with reference to UTC time. Typically the GPS outputs a time-of-week value in milliseconds. First convert that to UTC and then convert for this field using ((float) (time_week_ms % (60601000))) / 1000. If unknown: 0xFFFF.

OPEN_DRONE_ID_AUTHENTICATION (12902)

Data for filling the OpenDroneID Authentication message. The Authentication Message defines a field that can provide a means of authenticity for the identity of the UAS (Unmanned Aircraft System). The Authentication message can have two different formats. For data page 0, the fields PageCount, Length and TimeStamp are present and AuthData is only 17 bytes. For data page 1 through 15, PageCount, Length and TimeStamp are not present and the size of AuthData is 23 bytes.

0123456789abcdeftarget_systemtarget_component0002id_or_mac[0:1 ]04id_or_mac[2:3 ]06id_or_mac[4:5 ]08id_or_mac[6:7 ]0aid_or_mac[8:9 ]0cid_or_mac[10:11 ]0eid_or_mac[12:13 ]10id_or_mac[14:15 ]12id_or_mac[16:17 ]14id_or_mac[18:19 ]16authentication_typedata_page18last_page_indexlength1aauthentication_data[0:1 ]1cauthentication_data[2:3 ]1eauthentication_data[4:5 ]20authentication_data[6:7 ]22authentication_data[8:9 ]24authentication_data[10:11 ]26authentication_data[12:13 ]28authentication_data[14:15 ]2aauthentication_data[16:17 ]2cauthentication_data[18:19 ]2eauthentication_data[20:21 ]30authentication_data[22:22 ]timestamp[0:0 ]32timestamp[1:2 ]34timestamp[3:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
authentication_typeuint8_tMAV_ODID_AUTH_TYPEIndicates the type of authentication.
data_pageuint8_tAllowed range is 0 - 15.
last_page_indexuint8_tThis field is only present for page 0. Allowed range is 0 - 15. See the description of struct ODID_Auth_data at https://github.com/opendroneid/opendroneid-core-c/blob/master/libopendroneid/opendroneid.h.
lengthuint8_tbytesThis field is only present for page 0. Total bytes of authentication_data from all data pages. See the description of struct ODID_Auth_data at https://github.com/opendroneid/opendroneid-core-c/blob/master/libopendroneid/opendroneid.h.
authentication_datauint8_t[23]Opaque authentication data. For page 0, the size is only 17 bytes. For other pages, the size is 23 bytes. Shall be filled with nulls in the unused portion of the field.
timestampuint32_tsThis field is only present for page 0. 32 bit Unix Timestamp in seconds since 00:00:00 01/01/2019.

OPEN_DRONE_ID_SELF_ID (12903)

Data for filling the OpenDroneID Self ID message. The Self ID Message is an opportunity for the operator to (optionally) declare their identity and purpose of the flight. This message can provide additional information that could reduce the threat profile of a UA (Unmanned Aircraft) flying in a particular area or manner. This message can also be used to provide optional additional clarification in an emergency/remote ID system failure situation.

0123456789abcdeftarget_systemtarget_componentid_or_mac[0:1 ]0004id_or_mac[2:5 ]08id_or_mac[6:9 ]0cid_or_mac[10:13 ]10id_or_mac[14:17 ]14id_or_mac[18:19 ]description_typedescription[0:0 ]18description[1:4 ]1cdescription[5:8 ]20description[9:12 ]24description[13:16 ]28description[17:20 ]2cdescription[21:22 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
description_typeuint8_tMAV_ODID_DESC_TYPEIndicates the type of the description field.
descriptionchar[23]Text description or numeric value expressed as ASCII characters. Shall be filled with nulls in the unused portion of the field.

OPEN_DRONE_ID_SYSTEM (12904)

Data for filling the OpenDroneID System message. The System Message contains general system information including the operator location/altitude and possible aircraft group and/or category/class information.

0123456789abcdeftarget_systemtarget_component0002id_or_mac[0:1 ]04id_or_mac[2:3 ]06id_or_mac[4:5 ]08id_or_mac[6:7 ]0aid_or_mac[8:9 ]0cid_or_mac[10:11 ]0eid_or_mac[12:13 ]10id_or_mac[14:15 ]12id_or_mac[16:17 ]14id_or_mac[18:19 ]16operator_location_typeclassification_type18category_euclass_eu1aarea_count1carea_radius1eoperator_latitude[0:1 ]20operator_latitude[2:3 ]22operator_longitude[0:1 ]24operator_longitude[2:3 ]26area_ceiling[0:1 ]28area_ceiling[2:3 ]2aarea_floor[0:1 ]2carea_floor[2:3 ]2eoperator_altitude_geo[0:1 ]30operator_altitude_geo[2:3 ]32timestamp[0:1 ]34timestamp[2:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
operator_location_typeuint8_tMAV_ODID_OPERATOR_LOCATION_TYPESpecifies the operator location type.
classification_typeuint8_tMAV_ODID_CLASSIFICATION_TYPESpecifies the classification type of the UA.
category_euuint8_tMAV_ODID_CATEGORY_EUWhen classification_type is MAV_ODID_CLASSIFICATION_TYPE_EU, specifies the category of the UA.
class_euuint8_tMAV_ODID_CLASS_EUWhen classification_type is MAV_ODID_CLASSIFICATION_TYPE_EU, specifies the class of the UA.
area_countuint16_tNumber of aircraft in the area, group or formation (default 1). Used only for swarms/multiple UA.
area_radiusuint16_tmRadius of the cylindrical area of the group or formation (default 0). Used only for swarms/multiple UA.
operator_latitudeint32_tdegE7Latitude of the operator. If unknown: 0 (both Lat/Lon).
operator_longitudeint32_tdegE7Longitude of the operator. If unknown: 0 (both Lat/Lon).
area_ceilingfloatmArea Operations Ceiling relative to WGS84. If unknown: -1000 m. Used only for swarms/multiple UA.
area_floorfloatmArea Operations Floor relative to WGS84. If unknown: -1000 m. Used only for swarms/multiple UA.
operator_altitude_geofloatmGeodetic altitude of the operator relative to WGS84. If unknown: -1000 m.
timestampuint32_ts32 bit Unix Timestamp in seconds since 00:00:00 01/01/2019.

OPEN_DRONE_ID_OPERATOR_ID (12905)

Data for filling the OpenDroneID Operator ID message, which contains the CAA (Civil Aviation Authority) issued operator ID.

0123456789abcdeftarget_systemtarget_componentid_or_mac[0:1 ]0004id_or_mac[2:5 ]08id_or_mac[6:9 ]0cid_or_mac[10:13 ]10id_or_mac[14:17 ]14id_or_mac[18:19 ]operator_id_typeoperator_id[0:0 ]18operator_id[1:4 ]1coperator_id[5:8 ]20operator_id[9:12 ]24operator_id[13:16 ]28operator_id[17:19 ]
Field NameTypeEnum ValuesDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
operator_id_typeuint8_tMAV_ODID_OPERATOR_ID_TYPEIndicates the type of the operator_id field.
operator_idchar[20]Text description or numeric value expressed as ASCII characters. Shall be filled with nulls in the unused portion of the field.

OPEN_DRONE_ID_MESSAGE_PACK (12915)

An OpenDroneID message pack is a container for multiple encoded OpenDroneID messages (i.e. not in the format given for the above message descriptions but after encoding into the compressed OpenDroneID byte format). Used e.g. when transmitting on Bluetooth 5.0 Long Range/Extended Advertising or on WiFi Neighbor Aware Networking or on WiFi Beacon.

0123456789abcdeftarget_systemtarget_component0002id_or_mac[0:1 ]04id_or_mac[2:3 ]06id_or_mac[4:5 ]08id_or_mac[6:7 ]0aid_or_mac[8:9 ]0cid_or_mac[10:11 ]0eid_or_mac[12:13 ]10id_or_mac[14:15 ]12id_or_mac[16:17 ]14id_or_mac[18:19 ]16single_message_sizemsg_pack_size18messages[0:1 ]1amessages[2:3 ]1cmessages[4:5 ]1emessages[6:7 ]20messages[8:9 ]22messages[10:11 ]24messages[12:13 ]26messages[14:15 ]28messages[16:17 ]2amessages[18:19 ]2cmessages[20:21 ]2emessages[22:23 ]30messages[24:25 ]32messages[26:27 ]34messages[28:29 ]36messages[30:31 ]38messages[32:33 ]3amessages[34:35 ]3cmessages[36:37 ]3emessages[38:39 ]40messages[40:41 ]42messages[42:43 ]44messages[44:45 ]46messages[46:47 ]48messages[48:49 ]4amessages[50:51 ]4cmessages[52:53 ]4emessages[54:55 ]50messages[56:57 ]52messages[58:59 ]54messages[60:61 ]56messages[62:63 ]58messages[64:65 ]5amessages[66:67 ]5cmessages[68:69 ]5emessages[70:71 ]60messages[72:73 ]62messages[74:75 ]64messages[76:77 ]66messages[78:79 ]68messages[80:81 ]6amessages[82:83 ]6cmessages[84:85 ]6emessages[86:87 ]70messages[88:89 ]72messages[90:91 ]74messages[92:93 ]76messages[94:95 ]78messages[96:97 ]7amessages[98:99 ]7cmessages[100:101 ]7emessages[102:103 ]80messages[104:105 ]82messages[106:107 ]84messages[108:109 ]86messages[110:111 ]88messages[112:113 ]8amessages[114:115 ]8cmessages[116:117 ]8emessages[118:119 ]90messages[120:121 ]92messages[122:123 ]94messages[124:125 ]96messages[126:127 ]98messages[128:129 ]9amessages[130:131 ]9cmessages[132:133 ]9emessages[134:135 ]a0messages[136:137 ]a2messages[138:139 ]a4messages[140:141 ]a6messages[142:143 ]a8messages[144:145 ]aamessages[146:147 ]acmessages[148:149 ]aemessages[150:151 ]b0messages[152:153 ]b2messages[154:155 ]b4messages[156:157 ]b6messages[158:159 ]b8messages[160:161 ]bamessages[162:163 ]bcmessages[164:165 ]bemessages[166:167 ]c0messages[168:169 ]c2messages[170:171 ]c4messages[172:173 ]c6messages[174:175 ]c8messages[176:177 ]camessages[178:179 ]ccmessages[180:181 ]cemessages[182:183 ]d0messages[184:185 ]d2messages[186:187 ]d4messages[188:189 ]d6messages[190:191 ]d8messages[192:193 ]damessages[194:195 ]dcmessages[196:197 ]demessages[198:199 ]e0messages[200:201 ]e2messages[202:203 ]e4messages[204:205 ]e6messages[206:207 ]e8messages[208:209 ]eamessages[210:211 ]ecmessages[212:213 ]eemessages[214:215 ]f0messages[216:217 ]f2messages[218:219 ]f4messages[220:221 ]f6messages[222:223 ]f8messages[224:224 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
id_or_macuint8_t[20]Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html.
single_message_sizeuint8_tbytesThis field must currently always be equal to 25 (bytes), since all encoded OpenDroneID messages are specified to have this length.
msg_pack_sizeuint8_tNumber of encoded messages in the pack (not the number of bytes). Allowed range is 1 - 9.
messagesuint8_t[225]Concatenation of encoded OpenDroneID messages. Shall be filled with nulls in the unused portion of the field.

OPEN_DRONE_ID_ARM_STATUS (12918)

Transmitter (remote ID system) is enabled and ready to start sending location and other required information. This is streamed by transmitter. A flight controller uses it as a condition to arm.

0123456789abcdefstatuserror[0:2 ]0004error[3:6 ]08error[7:10 ]0cerror[11:14 ]10error[15:18 ]14error[19:22 ]18error[23:26 ]1cerror[27:30 ]20error[31:34 ]24error[35:38 ]28error[39:42 ]2cerror[43:46 ]30error[47:49 ]
Field NameTypeEnum ValuesDescription
statusuint8_tMAV_ODID_ARM_STATUSStatus level indicating if arming is allowed.
errorchar[50]Text error message, should be empty if status is good to arm. Fill with nulls in unused portion.

OPEN_DRONE_ID_SYSTEM_UPDATE (12919)

Update the data in the OPEN_DRONE_ID_SYSTEM message with new location information. This can be sent to update the location information for the operator when no other information in the SYSTEM message has changed. This message allows for efficient operation on radio links which have limited uplink bandwidth while meeting requirements for update frequency of the operator location.

0123456789abcdeftarget_systemtarget_component0002operator_latitude[0:1 ]04operator_latitude[2:3 ]06operator_longitude[0:1 ]08operator_longitude[2:3 ]0aoperator_altitude_geo[0:1 ]0coperator_altitude_geo[2:3 ]0etimestamp[0:1 ]10timestamp[2:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID (0 for broadcast).
target_componentuint8_tComponent ID (0 for broadcast).
operator_latitudeint32_tdegE7Latitude of the operator. If unknown: 0 (both Lat/Lon).
operator_longitudeint32_tdegE7Longitude of the operator. If unknown: 0 (both Lat/Lon).
operator_altitude_geofloatmGeodetic altitude of the operator relative to WGS84. If unknown: -1000 m.
timestampuint32_ts32 bit Unix Timestamp in seconds since 00:00:00 01/01/2019.

HYGROMETER_SENSOR (12920)

Temperature and humidity from hygrometer.

0123456789abcdefidtemperaturehumidity[0:0 ]0004humidity[1:1 ]
Field NameTypeUnitDescription
iduint8_tHygrometer ID
temperatureint16_tcdegCTemperature
humidityuint16_tc%Humidity

TEST_TYPES (17000)

Test all field types

0123456789abcdefcs[0:2 ]0004s[3:6 ]08s[7:9 ]u80cs8u8_array10s8_arrayu16[0:0 ]14u16[1:1 ]s16u16_array[0:0 ]18u16_array[1:2 ]s16_array[0:1 ]1cs16_array[2:2 ]u32[0:2 ]20u32[3:3 ]s32[0:2 ]24s32[3:3 ]f[0:2 ]28f[3:3 ]u32_array2cs32_arrayf_array[0:0 ]30f_array[1:2 ]u64[0:1 ]34u64[2:5 ]38u64[6:7 ]s64[0:1 ]3cs64[2:5 ]40s64[6:7 ]d[0:1 ]44d[2:5 ]48d[6:7 ]u64_array[0:1 ]4cu64_array[2:2 ]s64_array50d_array
Field NameTypeDescription
ccharchar
schar[10]string
u8uint8_tuint8_t
s8int8_tint8_t
u8_arrayuint8_t[3]uint8_t_array
s8_arrayint8_t[3]int8_t_array
u16uint16_tuint16_t
s16int16_tint16_t
u16_arrayuint16_t[3]uint16_t_array
s16_arrayint16_t[3]int16_t_array
u32uint32_tuint32_t
s32int32_tint32_t
ffloatfloat
u32_arrayuint32_t[3]uint32_t_array
s32_arrayint32_t[3]int32_t_array
f_arrayfloat[3]float_array
u64uint64_tuint64_t
s64int64_tint64_t
ddoubledouble
u64_arrayuint64_t[3]uint64_t_array
s64_arrayint64_t[3]int64_t_array
d_arraydouble[3]double_array

ARRAY_TEST_0 (17150)

Array test #0.

0123456789abcdefv1ar_i8[0:2 ]0004ar_i8[3:3 ]ar_u8[0:2 ]08ar_u8[3:3 ]ar_u16[0:2 ]0car_u16[3:3 ]ar_u32[0:2 ]10ar_u32[3:3 ]
Field NameTypeDescription
v1uint8_tStub field
ar_i8int8_t[4]Value array
ar_u8uint8_t[4]Value array
ar_u16uint16_t[4]Value array
ar_u32uint32_t[4]Value array

ARRAY_TEST_1 (17151)

Array test #1.

0123456789abcdefar_u32
Field NameTypeDescription
ar_u32uint32_t[4]Value array

ARRAY_TEST_3 (17153)

Array test #3.

0123456789abcdefvar_u32[0:2 ]0004ar_u32[3:3 ]
Field NameTypeDescription
vuint8_tStub field
ar_u32uint32_t[4]Value array

ARRAY_TEST_4 (17154)

Array test #4.

0123456789abcdefvar_u32[0:2 ]0004ar_u32[3:3 ]
Field NameTypeDescription
vuint8_tStub field
ar_u32uint32_t[4]Value array

ARRAY_TEST_5 (17155)

Array test #5.

0123456789abcdefc1[0:3 ]0004c1[4:4 ]c2[0:2 ]08c2[3:4 ]
Field NameTypeDescription
c1char[5]Value array
c2char[5]Value array

ARRAY_TEST_6 (17156)

Array test #6.

0123456789abcdefv1ar_u8ar_i8[0:0 ]0004ar_i8[1:1 ]ar_c[0:2 ]08ar_c[3:6 ]0car_c[7:10 ]10ar_c[11:14 ]14ar_c[15:18 ]18ar_c[19:22 ]1car_c[23:26 ]20ar_c[27:30 ]24ar_c[31:31 ]v2ar_u16[0:0 ]28ar_u16[1:1 ]ar_i16v3[0:0 ]2cv3[1:3 ]ar_u32[0:0 ]30ar_u32[1:1 ]ar_i32ar_f[0:0 ]34ar_f[1:1 ]ar_d
Field NameTypeDescription
v1uint8_tStub field
ar_u8uint8_t[2]Value array
ar_i8int8_t[2]Value array
ar_cchar[32]Value array
v2uint16_tStub field
ar_u16uint16_t[2]Value array
ar_i16int16_t[2]Value array
v3uint32_tStub field
ar_u32uint32_t[2]Value array
ar_i32int32_t[2]Value array
ar_ffloat[2]Value array
ar_ddouble[2]Value array

ARRAY_TEST_7 (17157)

Array test #7.

0123456789abcdefar_u8ar_i80004ar_c[0:3 ]08ar_c[4:7 ]0car_c[8:11 ]10ar_c[12:15 ]14ar_c[16:19 ]18ar_c[20:23 ]1car_c[24:27 ]20ar_c[28:31 ]24ar_u16ar_i1628ar_far_u322car_i32ar_d
Field NameTypeDescription
ar_u8uint8_t[2]Value array
ar_i8int8_t[2]Value array
ar_cchar[32]Value array
ar_u16uint16_t[2]Value array
ar_i16int16_t[2]Value array
ar_ffloat[2]Value array
ar_u32uint32_t[2]Value array
ar_i32int32_t[2]Value array
ar_ddouble[2]Value array

ARRAY_TEST_8 (17158)

Array test #8.

0123456789abcdefar_u16v3[0:1 ]0004v3[2:3 ]ar_d
Field NameTypeDescription
ar_u16uint16_t[2]Value array
v3uint32_tStub field
ar_ddouble[2]Value array

ICAROUS_HEARTBEAT (42000)

ICAROUS heartbeat

0123456789abcdefstatus
Field NameTypeEnum ValuesDescription
statusuint8_tICAROUS_FMS_STATESee the FMS_STATE enum.

ICAROUS_KINEMATIC_BANDS (42001)

Kinematic multi bands (track) output from Daidalus

0123456789abcdefnumBandstype1type2type30004type4type5min1[0:1 ]08min1[2:3 ]max1[0:1 ]0cmax1[2:3 ]min2[0:1 ]10min2[2:3 ]max2[0:1 ]14max2[2:3 ]min3[0:1 ]18min3[2:3 ]max3[0:1 ]1cmax3[2:3 ]min4[0:1 ]20min4[2:3 ]max4[0:1 ]24max4[2:3 ]min5[0:1 ]28min5[2:3 ]max5[0:1 ]2cmax5[2:3 ]
Field NameTypeUnitEnum ValuesDescription
numBandsint8_tNumber of track bands
type1uint8_tICAROUS_TRACK_BAND_TYPESSee the TRACK_BAND_TYPES enum.
type2uint8_tICAROUS_TRACK_BAND_TYPESSee the TRACK_BAND_TYPES enum.
type3uint8_tICAROUS_TRACK_BAND_TYPESSee the TRACK_BAND_TYPES enum.
type4uint8_tICAROUS_TRACK_BAND_TYPESSee the TRACK_BAND_TYPES enum.
type5uint8_tICAROUS_TRACK_BAND_TYPESSee the TRACK_BAND_TYPES enum.
min1floatdegmin angle (degrees)
max1floatdegmax angle (degrees)
min2floatdegmin angle (degrees)
max2floatdegmax angle (degrees)
min3floatdegmin angle (degrees)
max3floatdegmax angle (degrees)
min4floatdegmin angle (degrees)
max4floatdegmax angle (degrees)
min5floatdegmin angle (degrees)
max5floatdegmax angle (degrees)

CUBEPILOT_RAW_RC (50001)

Raw RC Data

0123456789abcdefrc_raw[0:3 ]0004rc_raw[4:7 ]08rc_raw[8:11 ]0crc_raw[12:15 ]10rc_raw[16:19 ]14rc_raw[20:23 ]18rc_raw[24:27 ]1crc_raw[28:31 ]
Field NameTypeDescription
rc_rawuint8_t[32]

Information about video stream

0123456789abcdefcamera_idstatusuri[0:1 ]0004uri[2:5 ]08uri[6:9 ]0curi[10:13 ]10uri[14:17 ]14uri[18:21 ]18uri[22:25 ]1curi[26:29 ]20uri[30:33 ]24uri[34:37 ]28uri[38:41 ]2curi[42:45 ]30uri[46:49 ]34uri[50:53 ]38uri[54:57 ]3curi[58:61 ]40uri[62:65 ]44uri[66:69 ]48uri[70:73 ]4curi[74:77 ]50uri[78:81 ]54uri[82:85 ]58uri[86:89 ]5curi[90:93 ]60uri[94:97 ]64uri[98:101 ]68uri[102:105 ]6curi[106:109 ]70uri[110:113 ]74uri[114:117 ]78uri[118:121 ]7curi[122:125 ]80uri[126:129 ]84uri[130:133 ]88uri[134:137 ]8curi[138:141 ]90uri[142:145 ]94uri[146:149 ]98uri[150:153 ]9curi[154:157 ]a0uri[158:161 ]a4uri[162:165 ]a8uri[166:169 ]acuri[170:173 ]b0uri[174:177 ]b4uri[178:181 ]b8uri[182:185 ]bcuri[186:189 ]c0uri[190:193 ]c4uri[194:197 ]c8uri[198:201 ]ccuri[202:205 ]d0uri[206:209 ]d4uri[210:213 ]d8uri[214:217 ]dcuri[218:221 ]e0uri[222:225 ]e4uri[226:229 ]e8resolution_hresolution_vecrotationframerate[0:1 ]f0framerate[2:3 ]bitrate[0:1 ]f4bitrate[2:3 ]
Field NameTypeUnitDescription
camera_iduint8_tVideo Stream ID (1 for first, 2 for second, etc.)
statusuint8_tNumber of streams available.
urichar[230]Video stream URI (TCP or RTSP URI ground station should connect to) or port number (UDP port ground station should listen to).
resolution_huint16_tpixHorizontal resolution.
resolution_vuint16_tpixVertical resolution.
rotationuint16_tdegVideo image rotation clockwise.
frameratefloatHzFrame rate.
bitrateuint32_tbits/sBit rate.

Herelink Telemetry

0123456789abcdefrssisnrcpu_temp[0:0 ]0004cpu_temp[1:1 ]board_temprf_freq[0:0 ]08rf_freq[1:3 ]link_bw[0:0 ]0clink_bw[1:3 ]link_rate[0:0 ]10link_rate[1:3 ]
Field NameTypeDescription
rssiuint8_t
snrint16_t
cpu_tempint16_t
board_tempint16_t
rf_frequint32_t
link_bwuint32_t
link_rateuint32_t

CUBEPILOT_FIRMWARE_UPDATE_START (50004)

Start firmware update with encapsulated data.

0123456789abcdeftarget_systemtarget_componentsize[0:1 ]0004size[2:3 ]crc[0:1 ]08crc[2:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
sizeuint32_tbytesFW Size.
crcuint32_tFW CRC.

CUBEPILOT_FIRMWARE_UPDATE_RESP (50005)

offset response to encapsulated data.

0123456789abcdeftarget_systemtarget_componentoffset[0:1 ]0004offset[2:3 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
offsetuint32_tbytesFW Offset.

Authorization package

0123456789abcdeflogin[0:3 ]0004login[4:7 ]08login[8:11 ]0clogin[12:15 ]10login[16:19 ]14login[20:23 ]18login[24:27 ]1clogin[28:31 ]20login[32:35 ]24login[36:39 ]28login[40:43 ]2clogin[44:47 ]30login[48:49 ]password[0:1 ]34password[2:5 ]38password[6:9 ]3cpassword[10:13 ]40password[14:17 ]44password[18:21 ]48password[22:25 ]4cpassword[26:29 ]50password[30:33 ]54password[34:37 ]58password[38:41 ]5cpassword[42:45 ]60password[46:49 ]
Field NameTypeDescription
loginchar[50]Login
passwordchar[50]Password

Response to the authorization request

0123456789abcdefresp_type
Field NameTypeEnum ValuesDescription
resp_typeuint8_tAIRLINK_AUTH_RESPONSE_TYPEResponse type

CONTROL_LOADING_AXIS (52501)

Send data about a control axis from a control loading system. This is the primary message for logging data from MARSH_TYPE_CONTROL_LOADING.

0123456789abcdefaxistime_boot_ms[0:2 ]0004time_boot_ms[3:3 ]position[0:2 ]08position[3:3 ]velocity[0:2 ]0cvelocity[3:3 ]force[0:2 ]10force[3:3 ]
Field NameTypeUnitEnum ValuesDescription
axisuint8_tCONTROL_AXISControl axis on which the measurements were taken.
time_boot_msuint32_tmsTimestamp (time since system boot).
positionfloatdegAxis position
velocityfloatdeg/sAxis velocity
forcefloatForce applied in the pilot in the direction of movement axis (not gripping force), measured at the position of pilot's third finger (ring). Unit N (Newton), currently not part of mavschema.xsd

MOTION_PLATFORM_STATE (52502)

State report for motion platform used for moving the cockpit with the pilot for motion cueing. This is the primary message for MARSH_TYPE_MOTION_PLATFORM.

0123456789abcdefhealthmodetime_boot_ms[0:1 ]0004time_boot_ms[2:3 ]x[0:1 ]08x[2:3 ]y[0:1 ]0cy[2:3 ]z[0:1 ]10z[2:3 ]roll[0:1 ]14roll[2:3 ]pitch[0:1 ]18pitch[2:3 ]yaw[0:1 ]1cyaw[2:3 ]vel_x[0:1 ]20vel_x[2:3 ]vel_y[0:1 ]24vel_y[2:3 ]vel_z[0:1 ]28vel_z[2:3 ]vel_roll[0:1 ]2cvel_roll[2:3 ]vel_pitch[0:1 ]30vel_pitch[2:3 ]vel_yaw[0:1 ]34vel_yaw[2:3 ]acc_x[0:1 ]38acc_x[2:3 ]acc_y[0:1 ]3cacc_y[2:3 ]acc_z[0:1 ]40acc_z[2:3 ]acc_roll[0:1 ]44acc_roll[2:3 ]acc_pitch[0:1 ]48acc_pitch[2:3 ]acc_yaw[0:1 ]4cacc_yaw[2:3 ]
Field NameTypeUnitEnum ValuesDescription
healthuint8_tMOTION_PLATFORM_HEALTHGeneric system health (error and warning) status.
modeuint8_tMOTION_PLATFORM_MODEGeneric system operating mode.
time_boot_msuint32_tmsTimestamp (time since system boot).
xfloatmX axis (surge) position, positive forward.
yfloatmY axis (sway) position, positive right.
zfloatmZ axis (heave) position, positive down.
rollfloatradRoll position, positive right.
pitchfloatradPitch position, positive nose up.
yawfloatradYaw position, positive right.
vel_xfloatm/sX axis (surge) velocity, positive forward.
vel_yfloatm/sY axis (sway) velocity, positive right.
vel_zfloatm/sZ axis (heave) velocity, positive down.
vel_rollfloatrad/sRoll velocity, positive right.
vel_pitchfloatrad/sPitch velocity, positive nose up.
vel_yawfloatrad/sYaw velocity, positive right.
acc_xfloatm/s/sX axis (surge) acceleration, positive forward.
acc_yfloatm/s/sY axis (sway) acceleration, positive right.
acc_zfloatm/s/sZ axis (heave) acceleration, positive down.
acc_rollfloatRoll acceleration, positive right. Unit rad/s/s, currently not part of mavschema.xsd
acc_pitchfloatPitch acceleration, positive nose up. Unit rad/s/s, currently not part of mavschema.xsd
acc_yawfloatYaw acceleration, positive right. Unit rad/s/s, currently not part of mavschema.xsd

REXROTH_MOTION_PLATFORM (52503)

State report specific for eMotion Motion System by Bosch Rexroth B.V. Values applicable to motion platforms in general are sent in MOTION_PLATFORM_STATE with the same timestamp. Actuators are numbered in a clockwise direction when looking from above, starting from the front right. Actuator position is 0 when actuator is in mid-stroke.

0123456789abcdeferror_codetime_boot_ms[0:0 ]0002time_boot_ms[1:2 ]04time_boot_ms[3:3 ]frame_count[0:0 ]06frame_count[1:2 ]08frame_count[3:3 ]motion_status[0:0 ]0amotion_status[1:2 ]0cmotion_status[3:3 ]actuator1[0:0 ]0eactuator1[1:2 ]10actuator1[3:3 ]actuator2[0:0 ]12actuator2[1:2 ]14actuator2[3:3 ]actuator3[0:0 ]16actuator3[1:2 ]18actuator3[3:3 ]actuator4[0:0 ]1aactuator4[1:2 ]1cactuator4[3:3 ]actuator5[0:0 ]1eactuator5[1:2 ]20actuator5[3:3 ]actuator6[0:0 ]22actuator6[1:2 ]24actuator6[3:3 ]platform_setpoint_x[0:0 ]26platform_setpoint_x[1:2 ]28platform_setpoint_x[3:3 ]platform_setpoint_y[0:0 ]2aplatform_setpoint_y[1:2 ]2cplatform_setpoint_y[3:3 ]platform_setpoint_z[0:0 ]2eplatform_setpoint_z[1:2 ]30platform_setpoint_z[3:3 ]platform_setpoint_roll[0:0 ]32platform_setpoint_roll[1:2 ]34platform_setpoint_roll[3:3 ]platform_setpoint_pitch[0:0 ]36platform_setpoint_pitch[1:2 ]38platform_setpoint_pitch[3:3 ]platform_setpoint_yaw[0:0 ]3aplatform_setpoint_yaw[1:2 ]3cplatform_setpoint_yaw[3:3 ]effect_setpoint_x[0:0 ]3eeffect_setpoint_x[1:2 ]40effect_setpoint_x[3:3 ]effect_setpoint_y[0:0 ]42effect_setpoint_y[1:2 ]44effect_setpoint_y[3:3 ]effect_setpoint_z[0:0 ]46effect_setpoint_z[1:2 ]48effect_setpoint_z[3:3 ]effect_setpoint_roll[0:0 ]4aeffect_setpoint_roll[1:2 ]4ceffect_setpoint_roll[3:3 ]effect_setpoint_pitch[0:0 ]4eeffect_setpoint_pitch[1:2 ]50effect_setpoint_pitch[3:3 ]effect_setpoint_yaw[0:0 ]52effect_setpoint_yaw[1:2 ]54effect_setpoint_yaw[3:3 ]
Field NameTypeUnitDescription
error_codeuint8_tError code extracted from motion status.
time_boot_msuint32_tmsTimestamp (time since system boot).
frame_countuint32_tNumber of message as sent by the Motion System.
motion_statusuint32_tMotion Status variable as sent by the system.
actuator1floatmCurrent actuator 1 position.
actuator2floatmCurrent actuator 2 position.
actuator3floatmCurrent actuator 3 position.
actuator4floatmCurrent actuator 4 position.
actuator5floatmCurrent actuator 5 position.
actuator6floatmCurrent actuator 6 position.
platform_setpoint_xfloatmX axis (surge) platform setpoint, positive forward.
platform_setpoint_yfloatmY axis (sway) platform setpoint, positive right.
platform_setpoint_zfloatmZ axis (heave) platform setpoint, positive down.
platform_setpoint_rollfloatradRoll platform setpoint, positive right.
platform_setpoint_pitchfloatradPitch platform setpoint, positive nose up.
platform_setpoint_yawfloatradYaw platform setpoint, positive right.
effect_setpoint_xfloatmX axis (surge) special effect setpoint, positive forward.
effect_setpoint_yfloatmY axis (sway) special effect setpoint, positive right.
effect_setpoint_zfloatmZ axis (heave) special effect setpoint, positive down.
effect_setpoint_rollfloatradRoll special effect setpoint, positive right.
effect_setpoint_pitchfloatradPitch special effect setpoint, positive nose up.
effect_setpoint_yawfloatradYaw special effect setpoint, positive right.

MOTION_CUE_EXTRA (52504)

These values are an extra cue that should be added to accelerations and rotations etc. resulting from aircraft state, with the resulting cue being the sum of the latest aircraft and extra values. An example use case would be a cockpit shaker.

0123456789abcdeftime_boot_ms0004vel_roll08vel_pitch0cvel_yaw10acc_x14acc_y18acc_z
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since system boot).
vel_rollfloatrad/sRoll velocity, positive right.
vel_pitchfloatrad/sPitch velocity, positive nose up.
vel_yawfloatrad/sYaw velocity, positive right.
acc_xfloatm/s/sX axis (surge) acceleration, positive forward.
acc_yfloatm/s/sY axis (sway) acceleration, positive right.
acc_zfloatm/s/sZ axis (heave) acceleration, positive down.

EYE_TRACKING_DATA (52505)

Data for tracking of pilot eye gaze. This is the primary message for MARSH_TYPE_EYE_TRACKER.

0123456789abcdefsensor_idsurface_idgaze_origin_x[0:1 ]0004gaze_origin_x[2:3 ]gaze_origin_y[0:1 ]08gaze_origin_y[2:3 ]gaze_origin_z[0:1 ]0cgaze_origin_z[2:3 ]gaze_direction_x[0:1 ]10gaze_direction_x[2:3 ]gaze_direction_y[0:1 ]14gaze_direction_y[2:3 ]gaze_direction_z[0:1 ]18gaze_direction_z[2:3 ]video_gaze_x[0:1 ]1cvideo_gaze_x[2:3 ]video_gaze_y[0:1 ]20video_gaze_y[2:3 ]surface_gaze_x[0:1 ]24surface_gaze_x[2:3 ]surface_gaze_y[0:1 ]28surface_gaze_y[2:3 ]time_usec[0:1 ]2ctime_usec[2:5 ]30time_usec[6:7 ]
Field NameTypeUnitDescription
sensor_iduint8_tSensor ID, used for identifying the device and/or person tracked. Set to zero if unknown/unused.
surface_iduint8_tIdentifier of surface for 2D gaze point, or an identified region when surface point is invalid. Set to zero if unknown/unused.
gaze_origin_xfloatmX axis of gaze origin point, NaN if unknown. The reference system depends on specific application.
gaze_origin_yfloatmY axis of gaze origin point, NaN if unknown. The reference system depends on specific application.
gaze_origin_zfloatmZ axis of gaze origin point, NaN if unknown. The reference system depends on specific application.
gaze_direction_xfloatX axis of gaze direction vector, expected to be normalized to unit magnitude, NaN if unknown. The reference system should match origin point.
gaze_direction_yfloatY axis of gaze direction vector, expected to be normalized to unit magnitude, NaN if unknown. The reference system should match origin point.
gaze_direction_zfloatZ axis of gaze direction vector, expected to be normalized to unit magnitude, NaN if unknown. The reference system should match origin point.
video_gaze_xfloatGaze focal point on video feed x value (normalized 0..1, 0 is left, 1 is right), NaN if unknown
video_gaze_yfloatGaze focal point on video feed y value (normalized 0..1, 0 is top, 1 is bottom), NaN if unknown
surface_gaze_xfloatGaze focal point on surface x value (normalized 0..1, 0 is left, 1 is right), NaN if unknown
surface_gaze_yfloatGaze focal point on surface y value (normalized 0..1, 0 is top, 1 is bottom), NaN if unknown
time_usecuint64_tusTimestamp (time since system boot).

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_EXT (60000)

Addition to message AUTOPILOT_STATE_FOR_GIMBAL_DEVICE.

0123456789abcdeftarget_systemtarget_component0002wind_x[0:1 ]04wind_x[2:3 ]06wind_y[0:1 ]08wind_y[2:3 ]0awind_correction_angle[0:1 ]0cwind_correction_angle[2:3 ]0etime_boot_us[0:1 ]10time_boot_us[2:3 ]12time_boot_us[4:5 ]14time_boot_us[6:7 ]
Field NameTypeUnitDescription
target_systemuint8_tSystem ID.
target_componentuint8_tComponent ID.
wind_xfloatm/sWind X speed in NED (North,Est, Down). NAN if unknown.
wind_yfloatm/sWind Y speed in NED (North, East, Down). NAN if unknown.
wind_correction_anglefloatradCorrection angle due to wind. NaN if unknown.
time_boot_usuint64_tusTimestamp (time since system boot).

STORM32_GIMBAL_MANAGER_INFORMATION (60010)

Information about a gimbal manager. This message should be requested by a ground station using MAV_CMD_REQUEST_MESSAGE. It mirrors some fields of the GIMBAL_DEVICE_INFORMATION message, but not all. If the additional information is desired, also GIMBAL_DEVICE_INFORMATION should be requested.

0123456789abcdefgimbal_iddevice_cap_flags[0:2 ]0004device_cap_flags[3:3 ]manager_cap_flags[0:2 ]08manager_cap_flags[3:3 ]roll_min[0:2 ]0croll_min[3:3 ]roll_max[0:2 ]10roll_max[3:3 ]pitch_min[0:2 ]14pitch_min[3:3 ]pitch_max[0:2 ]18pitch_max[3:3 ]yaw_min[0:2 ]1cyaw_min[3:3 ]yaw_max[0:2 ]20yaw_max[3:3 ]
Field NameTypeUnitEnum ValuesDescription
gimbal_iduint8_tGimbal ID (component ID or 1-6 for non-MAVLink gimbal) that this gimbal manager is responsible for.
device_cap_flagsuint32_tGIMBAL_DEVICE_CAP_FLAGSGimbal device capability flags. Same flags as reported by GIMBAL_DEVICE_INFORMATION. The flag is only 16 bit wide, but stored in 32 bit, for backwards compatibility (high word is zero).
manager_cap_flagsuint32_tMAV_STORM32_GIMBAL_MANAGER_CAP_FLAGSGimbal manager capability flags.
roll_minfloatradHardware minimum roll angle (positive: roll to the right). NaN if unknown.
roll_maxfloatradHardware maximum roll angle (positive: roll to the right). NaN if unknown.
pitch_minfloatradHardware minimum pitch/tilt angle (positive: tilt up). NaN if unknown.
pitch_maxfloatradHardware maximum pitch/tilt angle (positive: tilt up). NaN if unknown.
yaw_minfloatradHardware minimum yaw/pan angle (positive: pan to the right, relative to the vehicle/gimbal base). NaN if unknown.
yaw_maxfloatradHardware maximum yaw/pan angle (positive: pan to the right, relative to the vehicle/gimbal base). NaN if unknown.

STORM32_GIMBAL_MANAGER_STATUS (60011)

Message reporting the current status of a gimbal manager. This message should be broadcast at a low regular rate (e.g. 1 Hz, may be increase momentarily to e.g. 5 Hz for a period of 1 sec after a change).

0123456789abcdefgimbal_idsupervisorprofiledevice_flags[0:0 ]0004device_flags[1:1 ]manager_flags
Field NameTypeEnum ValuesDescription
gimbal_iduint8_tGimbal ID (component ID or 1-6 for non-MAVLink gimbal) that this gimbal manager is responsible for.
supervisoruint8_tMAV_STORM32_GIMBAL_MANAGER_CLIENTClient who is currently supervisor (0 = none).
profileuint8_tMAV_STORM32_GIMBAL_MANAGER_PROFILEProfile currently applied (0 = default).
device_flagsuint16_tGIMBAL_DEVICE_FLAGSGimbal device flags currently applied. Same flags as reported by GIMBAL_DEVICE_ATTITUDE_STATUS.
manager_flagsuint16_tMAV_STORM32_GIMBAL_MANAGER_FLAGSGimbal manager flags currently applied.

STORM32_GIMBAL_MANAGER_CONTROL (60012)

Message to a gimbal manager to control the gimbal attitude. Angles and rates can be set to NaN according to use case. A gimbal device is never to react to this message.

0123456789abcdeftarget_systemtarget_componentgimbal_idclient0004device_flagsmanager_flags08q0cangular_velocity_x10angular_velocity_y14angular_velocity_z
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
gimbal_iduint8_tGimbal ID of the gimbal manager to address (component ID or 1-6 for non-MAVLink gimbal, 0 for all gimbals). Send command multiple times for more than one but not all gimbals.
clientuint8_tMAV_STORM32_GIMBAL_MANAGER_CLIENTClient which is contacting the gimbal manager (must be set).
device_flagsuint16_tGIMBAL_DEVICE_FLAGSGimbal device flags to be applied (UINT16_MAX to be ignored). Same flags as used in GIMBAL_DEVICE_SET_ATTITUDE.
manager_flagsuint16_tMAV_STORM32_GIMBAL_MANAGER_FLAGSGimbal manager flags to be applied (0 to be ignored).
qfloat[4]Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation). Set first element to NaN to be ignored. The frame is determined by the GIMBAL_DEVICE_FLAGS_YAW_IN_xxx_FRAME flags.
angular_velocity_xfloatrad/sX component of angular velocity (positive: roll to the right). NaN to be ignored.
angular_velocity_yfloatrad/sY component of angular velocity (positive: tilt up). NaN to be ignored.
angular_velocity_zfloatrad/sZ component of angular velocity (positive: pan to the right). NaN to be ignored. The frame is determined by the GIMBAL_DEVICE_FLAGS_YAW_IN_xxx_FRAME flags.

STORM32_GIMBAL_MANAGER_CONTROL_PITCHYAW (60013)

Message to a gimbal manager to control the gimbal tilt and pan angles. Angles and rates can be set to NaN according to use case. A gimbal device is never to react to this message.

0123456789abcdeftarget_systemtarget_componentgimbal_idclient0004device_flagsmanager_flags08pitch0cyaw10pitch_rate14yaw_rate
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
gimbal_iduint8_tGimbal ID of the gimbal manager to address (component ID or 1-6 for non-MAVLink gimbal, 0 for all gimbals). Send command multiple times for more than one but not all gimbals.
clientuint8_tMAV_STORM32_GIMBAL_MANAGER_CLIENTClient which is contacting the gimbal manager (must be set).
device_flagsuint16_tGIMBAL_DEVICE_FLAGSGimbal device flags to be applied (UINT16_MAX to be ignored). Same flags as used in GIMBAL_DEVICE_SET_ATTITUDE.
manager_flagsuint16_tMAV_STORM32_GIMBAL_MANAGER_FLAGSGimbal manager flags to be applied (0 to be ignored).
pitchfloatradPitch/tilt angle (positive: tilt up). NaN to be ignored.
yawfloatradYaw/pan angle (positive: pan the right). NaN to be ignored. The frame is determined by the GIMBAL_DEVICE_FLAGS_YAW_IN_xxx_FRAME flags.
pitch_ratefloatrad/sPitch/tilt angular rate (positive: tilt up). NaN to be ignored.
yaw_ratefloatrad/sYaw/pan angular rate (positive: pan to the right). NaN to be ignored. The frame is determined by the GIMBAL_DEVICE_FLAGS_YAW_IN_xxx_FRAME flags.

STORM32_GIMBAL_MANAGER_CORRECT_ROLL (60014)

Message to a gimbal manager to correct the gimbal roll angle. This message is typically used to manually correct for a tilted horizon in operation. A gimbal device is never to react to this message.

0123456789abcdeftarget_systemtarget_componentgimbal_idclient0004roll
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID
target_componentuint8_tComponent ID
gimbal_iduint8_tGimbal ID of the gimbal manager to address (component ID or 1-6 for non-MAVLink gimbal, 0 for all gimbals). Send command multiple times for more than one but not all gimbals.
clientuint8_tMAV_STORM32_GIMBAL_MANAGER_CLIENTClient which is contacting the gimbal manager (must be set).
rollfloatradRoll angle (positive to roll to the right).

QSHOT_STATUS (60020)

Information about the shot operation.

0123456789abcdefmodeshot_state
Field NameTypeEnum ValuesDescription
modeuint16_tMAV_QSHOT_MODECurrent shot mode.
shot_stateuint16_tCurrent state in the shot. States are specific to the selected shot mode.

FRSKY_PASSTHROUGH_ARRAY (60040)

Frsky SPort passthrough multi packet container.

0123456789abcdefcountpacket_buf[0:2 ]0004packet_buf[3:6 ]08packet_buf[7:10 ]0cpacket_buf[11:14 ]10packet_buf[15:18 ]14packet_buf[19:22 ]18packet_buf[23:26 ]1cpacket_buf[27:30 ]20packet_buf[31:34 ]24packet_buf[35:38 ]28packet_buf[39:42 ]2cpacket_buf[43:46 ]30packet_buf[47:50 ]34packet_buf[51:54 ]38packet_buf[55:58 ]3cpacket_buf[59:62 ]40packet_buf[63:66 ]44packet_buf[67:70 ]48packet_buf[71:74 ]4cpacket_buf[75:78 ]50packet_buf[79:82 ]54packet_buf[83:86 ]58packet_buf[87:90 ]5cpacket_buf[91:94 ]60packet_buf[95:98 ]64packet_buf[99:102 ]68packet_buf[103:106 ]6cpacket_buf[107:110 ]70packet_buf[111:114 ]74packet_buf[115:118 ]78packet_buf[119:122 ]7cpacket_buf[123:126 ]80packet_buf[127:130 ]84packet_buf[131:134 ]88packet_buf[135:138 ]8cpacket_buf[139:142 ]90packet_buf[143:146 ]94packet_buf[147:150 ]98packet_buf[151:154 ]9cpacket_buf[155:158 ]a0packet_buf[159:162 ]a4packet_buf[163:166 ]a8packet_buf[167:170 ]acpacket_buf[171:174 ]b0packet_buf[175:178 ]b4packet_buf[179:182 ]b8packet_buf[183:186 ]bcpacket_buf[187:190 ]c0packet_buf[191:194 ]c4packet_buf[195:198 ]c8packet_buf[199:202 ]ccpacket_buf[203:206 ]d0packet_buf[207:210 ]d4packet_buf[211:214 ]d8packet_buf[215:218 ]dcpacket_buf[219:222 ]e0packet_buf[223:226 ]e4packet_buf[227:230 ]e8packet_buf[231:234 ]ecpacket_buf[235:238 ]f0packet_buf[239:239 ]time_boot_ms[0:2 ]f4time_boot_ms[3:3 ]
Field NameTypeUnitDescription
countuint8_tNumber of passthrough packets in this message.
packet_bufuint8_t[240]Passthrough packet buffer. A packet has 6 bytes: uint16_t id + uint32_t data. The array has space for 40 packets.
time_boot_msuint32_tmsTimestamp (time since system boot).

PARAM_VALUE_ARRAY (60041)

Parameter multi param value container.

0123456789abcdefparam_array_lenpacket_buf[0:2 ]0004packet_buf[3:6 ]08packet_buf[7:10 ]0cpacket_buf[11:14 ]10packet_buf[15:18 ]14packet_buf[19:22 ]18packet_buf[23:26 ]1cpacket_buf[27:30 ]20packet_buf[31:34 ]24packet_buf[35:38 ]28packet_buf[39:42 ]2cpacket_buf[43:46 ]30packet_buf[47:50 ]34packet_buf[51:54 ]38packet_buf[55:58 ]3cpacket_buf[59:62 ]40packet_buf[63:66 ]44packet_buf[67:70 ]48packet_buf[71:74 ]4cpacket_buf[75:78 ]50packet_buf[79:82 ]54packet_buf[83:86 ]58packet_buf[87:90 ]5cpacket_buf[91:94 ]60packet_buf[95:98 ]64packet_buf[99:102 ]68packet_buf[103:106 ]6cpacket_buf[107:110 ]70packet_buf[111:114 ]74packet_buf[115:118 ]78packet_buf[119:122 ]7cpacket_buf[123:126 ]80packet_buf[127:130 ]84packet_buf[131:134 ]88packet_buf[135:138 ]8cpacket_buf[139:142 ]90packet_buf[143:146 ]94packet_buf[147:150 ]98packet_buf[151:154 ]9cpacket_buf[155:158 ]a0packet_buf[159:162 ]a4packet_buf[163:166 ]a8packet_buf[167:170 ]acpacket_buf[171:174 ]b0packet_buf[175:178 ]b4packet_buf[179:182 ]b8packet_buf[183:186 ]bcpacket_buf[187:190 ]c0packet_buf[191:194 ]c4packet_buf[195:198 ]c8packet_buf[199:202 ]ccpacket_buf[203:206 ]d0packet_buf[207:210 ]d4packet_buf[211:214 ]d8packet_buf[215:218 ]dcpacket_buf[219:222 ]e0packet_buf[223:226 ]e4packet_buf[227:230 ]e8packet_buf[231:234 ]ecpacket_buf[235:238 ]f0packet_buf[239:242 ]f4packet_buf[243:246 ]f8packet_buf[247:247 ]param_countparam_index_first[0:0 ]fcparam_index_first[1:1 ]flags
Field NameTypeDescription
param_array_lenuint8_tNumber of onboard parameters in this array.
packet_bufuint8_t[248]Parameters buffer. Contains a series of variable length parameter blocks, one per parameter, with format as specified elsewhere.
param_countuint16_tTotal number of onboard parameters.
param_index_firstuint16_tIndex of the first onboard parameter in this array.
flagsuint16_tFlags.

Radio link statistics for a MAVLink RC receiver or transmitter and other links. Tx: ground-side device, Rx: vehicle-side device. The message is normally emitted in regular time intervals upon each actual or expected reception of an over-the-air data packet on the link. A MAVLink RC receiver should emit it shortly after it emits a RADIO_RC_CHANNELS message (if it is emitting that message). Per default, rssi values are in MAVLink units: 0 represents weakest signal, 254 represents maximum signal, UINT8_MAX represents unknown. The RADIO_LINK_STATS_FLAGS_RSSI_DBM flag is set if the rssi units are negative dBm: 1..254 correspond to -1..-254 dBm, 0 represents no reception, UINT8_MAX represents unknown. The target_system field should normally be set to the system id of the system the link is connected to, typically the flight controller. The target_component field can normally be set to 0, so that all components of the system can receive the message. Note: The frequency fields are extensions to ensure that they are located at the end of the serialized payload and subject to MAVLink's trailing-zero trimming.

0123456789abcdeftarget_systemtarget_componentrx_LQ_rcrx_LQ_ser0004rx_rssi1rx_snr1tx_LQ_sertx_rssi108tx_snr1rx_rssi2rx_snr2tx_rssi20ctx_snr2flagsfrequency1[0:0 ]10frequency1[1:3 ]frequency2[0:0 ]14frequency2[1:3 ]
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID (ID of target system, normally flight controller).
target_componentuint8_tComponent ID (normally 0 for broadcast).
rx_LQ_rcuint8_tc%Link quality of RC data stream from Tx to Rx. Values: 1..100, 0: no link connection, UINT8_MAX: unknown.
rx_LQ_seruint8_tc%Link quality of serial MAVLink data stream from Tx to Rx. Values: 1..100, 0: no link connection, UINT8_MAX: unknown.
rx_rssi1uint8_tRssi of antenna 1. 0: no reception, UINT8_MAX: unknown.
rx_snr1int8_tNoise on antenna 1. Radio link dependent. INT8_MAX: unknown.
tx_LQ_seruint8_tc%Link quality of serial MAVLink data stream from Rx to Tx. Values: 1..100, 0: no link connection, UINT8_MAX: unknown.
tx_rssi1uint8_tRssi of antenna 1. 0: no reception. UINT8_MAX: unknown.
tx_snr1int8_tNoise on antenna 1. Radio link dependent. INT8_MAX: unknown.
rx_rssi2uint8_tRssi of antenna 2. 0: no reception, UINT8_MAX: use rx_rssi1 if it is known else unknown.
rx_snr2int8_tNoise on antenna 2. Radio link dependent. INT8_MAX: use rx_snr1 if it is known else unknown.
tx_rssi2uint8_tRssi of antenna 2. 0: no reception. UINT8_MAX: use tx_rssi1 if it is known else unknown.
tx_snr2int8_tNoise on antenna 2. Radio link dependent. INT8_MAX: use tx_snr1 if it is known else unknown.
flagsuint16_tMLRS_RADIO_LINK_STATS_FLAGSRadio link statistics flags.
frequency1floatHzFrequency on antenna1 in Hz. 0: unknown.
frequency2floatHzFrequency on antenna2 in Hz. 0: unknown.

Radio link information. Tx: ground-side device, Rx: vehicle-side device. The values of the fields in this message do normally not or only slowly change with time, and for most times the message can be send at a low rate, like 0.2 Hz. If values change then the message should temporarily be send more often to inform the system about the changes. The target_system field should normally be set to the system id of the system the link is connected to, typically the flight controller. The target_component field can normally be set to 0, so that all components of the system can receive the message.

0123456789abcdeftarget_systemtarget_component0002typemode04tx_powerrx_power06mode_str[0:1 ]08mode_str[2:3 ]0amode_str[4:5 ]0cband_str[0:1 ]0eband_str[2:3 ]10band_str[4:5 ]12tx_receive_sensitivityrx_receive_sensitivity14tx_frame_rate16rx_frame_rate18tx_ser_data_rate1arx_ser_data_rate
Field NameTypeUnitEnum ValuesDescription
target_systemuint8_tSystem ID (ID of target system, normally flight controller).
target_componentuint8_tComponent ID (normally 0 for broadcast).
typeuint8_tMLRS_RADIO_LINK_TYPERadio link type. 0: unknown/generic type.
modeuint8_tOperation mode. Radio link dependent. UINT8_MAX: ignore/unknown.
tx_powerint8_tdBmTx transmit power in dBm. INT8_MAX: unknown.
rx_powerint8_tdBmRx transmit power in dBm. INT8_MAX: unknown.
mode_strchar[6]Operation mode as human readable string. Radio link dependent. Terminated by NULL if the string length is less than 6 chars and WITHOUT NULL termination if the length is exactly 6 chars - applications have to provide 6+1 bytes storage if the mode is stored as string. Use a zero-length string if not known.
band_strchar[6]Frequency band as human readable string. Radio link dependent. Terminated by NULL if the string length is less than 6 chars and WITHOUT NULL termination if the length is exactly 6 chars - applications have to provide 6+1 bytes storage if the mode is stored as string. Use a zero-length string if not known.
tx_receive_sensitivityuint8_tReceive sensitivity of Tx in inverted dBm. 1..255 represents -1..-255 dBm, 0: unknown.
rx_receive_sensitivityuint8_tReceive sensitivity of Rx in inverted dBm. 1..255 represents -1..-255 dBm, 0: unknown.
tx_frame_rateuint16_tHzFrame rate in Hz (frames per second) for Tx to Rx transmission. 0: unknown.
rx_frame_rateuint16_tHzFrame rate in Hz (frames per second) for Rx to Tx transmission. Normally equal to tx_packet_rate. 0: unknown.
tx_ser_data_rateuint16_tMaximum data rate of serial stream in bytes/s for Tx to Rx transmission. 0: unknown. UINT16_MAX: data rate is 64 KBytes/s or larger.
rx_ser_data_rateuint16_tMaximum data rate of serial stream in bytes/s for Rx to Tx transmission. 0: unknown. UINT16_MAX: data rate is 64 KBytes/s or larger.

Injected by a radio link endpoint into the MAVLink stream for purposes of flow control. Should be emitted only by components with component id MAV_COMP_ID_TELEMETRY_RADIO.

0123456789abcdeftx_used_ser_bandwidthrx_used_ser_bandwidth0002txbuftx_ser_rate[0:0 ]04tx_ser_rate[1:1 ]rx_ser_rate[0:0 ]06rx_ser_rate[1:1 ]
Field NameTypeUnitDescription
tx_used_ser_bandwidthuint8_tc%Transmit bandwidth consumption. Values: 0..100, UINT8_MAX: invalid/unknown.
rx_used_ser_bandwidthuint8_tc%Receive bandwidth consumption. Values: 0..100, UINT8_MAX: invalid/unknown.
txbufuint8_tc%For compatibility with legacy method. UINT8_MAX: unknown.
tx_ser_rateuint16_tbytes/sTransmitted bytes per second, UINT16_MAX: invalid/unknown.
rx_ser_rateuint16_tbytes/sReceived bytes per second, UINT16_MAX: invalid/unknown.

AVSS_PRS_SYS_STATUS (60050)

AVSS PRS system status.

0123456789abcdefarm_statuscharge_statustime_boot_ms[0:1 ]0004time_boot_ms[2:3 ]error_status[0:1 ]08error_status[2:3 ]battery_status[0:1 ]0cbattery_status[2:3 ]
Field NameTypeUnitDescription
arm_statusuint8_tPRS arm statuses
charge_statusuint8_tPRS battery charge statuses
time_boot_msuint32_tmsTimestamp (time since PRS boot).
error_statusuint32_tPRS error statuses
battery_statusuint32_tEstimated battery run-time without a remote connection and PRS battery voltage

AVSS_DRONE_POSITION (60051)

Drone position.

0123456789abcdeftime_boot_ms0004lat08lon0calt10ground_alt14barometer_alt
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since FC boot).
latint32_tdegE7Latitude, expressed
lonint32_tdegE7Longitude, expressed
altint32_tmmAltitude (MSL). Note that virtually all GPS modules provide both WGS84 and MSL.
ground_altfloatmAltitude above ground, This altitude is measured by a ultrasound, Laser rangefinder or millimeter-wave radar
barometer_altfloatmThis altitude is measured by a barometer

AVSS_DRONE_IMU (60052)

Drone IMU data. Quaternion order is w, x, y, z and a zero rotation would be expressed as (1 0 0 0).

0123456789abcdeftime_boot_ms0004q108q20cq310q414xacc18yacc1czacc20xgyro24ygyro28zgyro
Field NameTypeUnitDescription
time_boot_msuint32_tmsTimestamp (time since FC boot).
q1floatQuaternion component 1, w (1 in null-rotation)
q2floatQuaternion component 2, x (0 in null-rotation)
q3floatQuaternion component 3, y (0 in null-rotation)
q4floatQuaternion component 4, z (0 in null-rotation)
xaccfloatm/s/sX acceleration
yaccfloatm/s/sY acceleration
zaccfloatm/s/sZ acceleration
xgyrofloatrad/sAngular speed around X axis
ygyrofloatrad/sAngular speed around Y axis
zgyrofloatrad/sAngular speed around Z axis

AVSS_DRONE_OPERATION_MODE (60053)

Drone operation mode.

0123456789abcdefM300_operation_modehorsefly_operation_mode0002time_boot_ms[0:1 ]04time_boot_ms[2:3 ]
Field NameTypeUnitDescription
M300_operation_modeuint8_tDJI M300 operation mode
horsefly_operation_modeuint8_thorsefly operation mode
time_boot_msuint32_tmsTimestamp (time since FC boot).