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).
Context / Upgrades from Official MAVLink Docs
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 droneHEARTBEAT- Periodic heartbeat messages so the Ground Control Station knows the drone didn't explodeCOMMAND_LONG- Send a command to the drone (such as telling it to shut down in midair and fall to the ground)

Unfortunately, the Official MAVLink documentation website is:
- Very disorganized and decentralized
- Message types are split among 20 different
.xmlfiles and web pages - This also applies to the MAVLink Github repository
- Message types are split among 20 different
- Out of order when compared to the physical layout of the actual MAVLink packets
- This includes the official
.xmlfiles 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 withMAVLink 2 extensions
- This includes the official
- Missing details compared to what you find in the official
.xmlfiles MAVLinkdocumentation 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+
.xmlfiles, determining the field order for EVERYMAVLinkmessage type using the Serialization Rules (be careful if you're doing this,MAVLink2 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
.jsonand.xmlfiles you can use to manually parseMAVLinkpayloads 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
AeroShieldor Benny open sourcesaeroSH) - Code used to parseall.xmland 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| type | uint8_t | MAV_TYPE | Vehicle 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. |
| autopilot | uint8_t | MAV_AUTOPILOT | Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers. |
| base_mode | uint8_t | MAV_MODE_FLAG | System mode bitmap. |
| system_status | uint8_t | MAV_STATE | System status flag. |
| mavlink_version | uint8_t_mavlink_version | MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version | |
| custom_mode | uint32_t | A 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| battery_remaining | int8_t | % | Battery energy remaining, -1: Battery remaining energy not sent by autopilot | |
| load | uint16_t | d% | Maximum usage in percent of the mainloop time. Values: [0-1000] - should always be below 1000 | |
| voltage_battery | uint16_t | mV | Battery voltage, UINT16_MAX: Voltage not sent by autopilot | |
| current_battery | int16_t | cA | Battery current, -1: Current not sent by autopilot | |
| drop_rate_comm | uint16_t | c% | Communication drop rate, (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) | |
| errors_comm | uint16_t | Communication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) | ||
| errors_count1 | uint16_t | Autopilot-specific errors | ||
| errors_count2 | uint16_t | Autopilot-specific errors | ||
| errors_count3 | uint16_t | Autopilot-specific errors | ||
| errors_count4 | uint16_t | Autopilot-specific errors | ||
| onboard_control_sensors_ present | uint32_t | MAV_SYS_STATUS_SENSOR | Bitmap showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. | |
| onboard_control_sensors_ enabled | uint32_t | MAV_SYS_STATUS_SENSOR | Bitmap showing which onboard controllers and sensors are enabled: Value of 0: not enabled. Value of 1: enabled. | |
| onboard_control_sensors_ health | uint32_t | MAV_SYS_STATUS_SENSOR | Bitmap showing which onboard controllers and sensors have an error (or are operational). Value of 0: error. Value of 1: healthy. | |
| onboard_control_sensors_ present_extended | uint32_t | MAV_SYS_STATUS_SENSOR_EXTENDED | Bitmap showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. | |
| onboard_control_sensors_ enabled_extended | uint32_t | MAV_SYS_STATUS_SENSOR_EXTENDED | Bitmap showing which onboard controllers and sensors are enabled: Value of 0: not enabled. Value of 1: enabled. | |
| onboard_control_sensors_ health_extended | uint32_t | MAV_SYS_STATUS_SENSOR_EXTENDED | Bitmap 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| time_unix_usec | uint64_t | us | Timestamp (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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | 0: 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_component | uint8_t | 0: 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. | |
| seq | uint32_t | PING sequence | |
| time_usec | uint64_t | us | Timestamp (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
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System the GCS requests control for |
| control_request | uint8_t | 0: request control of this MAV, 1: Release control of this MAV |
| version | uint8_t | 0: 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. |
| passkey | char[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
| Field Name | Type | Description |
|---|---|---|
| gcs_system_id | uint8_t | ID of the GCS this message |
| control_request | uint8_t | 0: request control of this MAV, 1: Release control of this MAV |
| ack | uint8_t | 0: 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.
| Field Name | Type | Description |
|---|---|---|
| key | char[32] | key |
LINK_NODE_STATUS (8)
Status generated in each node in the communication chain and injected into MAVLink stream.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| tx_buf | uint8_t | % | Remaining free transmit buffer space |
| rx_buf | uint8_t | % | Remaining free receive buffer space |
| rx_parse_err | uint16_t | bytes | Number of bytes that could not be parsed correctly. |
| tx_overflows | uint16_t | bytes | Transmit buffer overflows. This number wraps around as it reaches UINT16_MAX |
| rx_overflows | uint16_t | bytes | Receive buffer overflows. This number wraps around as it reaches UINT16_MAX |
| tx_rate | uint32_t | bytes/s | Transmit rate |
| rx_rate | uint32_t | bytes/s | Receive rate |
| messages_sent | uint32_t | Messages sent | |
| messages_received | uint32_t | Messages received (estimated from counting seq) | |
| messages_lost | uint32_t | Messages lost (estimated from counting seq) | |
| timestamp | uint64_t | ms | Timestamp (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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | The system setting the mode | |
| base_mode | uint8_t | MAV_MODE | The new base mode. |
| custom_mode | uint32_t | The 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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| param_id | char[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_index | int16_t | Parameter 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
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| param_id | char[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_type | uint8_t | MAV_PARAM_TYPE | Onboard parameter type. |
| param_count | uint16_t | Total number of onboard parameters | |
| param_index | uint16_t | Index of this onboard parameter | |
| param_value | float | Onboard 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| param_id | char[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_type | uint8_t | MAV_PARAM_TYPE | Onboard parameter type. |
| param_value | float | Onboard 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| fix_type | uint8_t | GPS_FIX_TYPE | GPS fix type. | |
| satellites_visible | uint8_t | Number of satellites visible. If unknown, set to UINT8_MAX | ||
| eph | uint16_t | GPS HDOP horizontal dilution of position (unitless * 100). If unknown, set to: UINT16_MAX | ||
| epv | uint16_t | GPS VDOP vertical dilution of position (unitless * 100). If unknown, set to: UINT16_MAX | ||
| vel | uint16_t | cm/s | GPS ground speed. If unknown, set to: UINT16_MAX | |
| cog | uint16_t | cdeg | Course over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: UINT16_MAX | |
| lat | int32_t | degE7 | Latitude (WGS84, EGM96 ellipsoid) | |
| lon | int32_t | degE7 | Longitude (WGS84, EGM96 ellipsoid) | |
| alt | int32_t | mm | Altitude (MSL). Positive for up. Note that virtually all GPS modules provide the MSL altitude in addition to the WGS84 altitude. | |
| time_usec | uint64_t | us | Timestamp (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_ellipsoid | int32_t | mm | Altitude (above WGS84, EGM96 ellipsoid). Positive for up. | |
| h_acc | uint32_t | mm | Position uncertainty. | |
| v_acc | uint32_t | mm | Altitude uncertainty. | |
| vel_acc | uint32_t | mm/s | Speed uncertainty. | |
| hdg_acc | uint32_t | degE5 | Heading / track uncertainty | |
| yaw | uint16_t | cdeg | Yaw 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| satellites_visible | uint8_t | Number of satellites visible | |
| satellite_prn | uint8_t[20] | Global satellite ID | |
| satellite_used | uint8_t[20] | 0: Satellite not used, 1: used for localization | |
| satellite_elevation | uint8_t[20] | deg | Elevation (0: right on top of receiver, 90: on the horizon) of satellite |
| satellite_azimuth | uint8_t[20] | deg | Direction of satellite, 0: 0 deg, 255: 360 deg. |
| satellite_snr | uint8_t[20] | dB | Signal 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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| xacc | int16_t | mG | X acceleration |
| yacc | int16_t | mG | Y acceleration |
| zacc | int16_t | mG | Z acceleration |
| xgyro | int16_t | mrad/s | Angular speed around X axis |
| ygyro | int16_t | mrad/s | Angular speed around Y axis |
| zgyro | int16_t | mrad/s | Angular speed around Z axis |
| xmag | int16_t | mgauss | X Magnetic field |
| ymag | int16_t | mgauss | Y Magnetic field |
| zmag | int16_t | mgauss | Z Magnetic field |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| temperature | int16_t | cdegC | Temperature, 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| xacc | int16_t | X acceleration (raw) | |
| yacc | int16_t | Y acceleration (raw) | |
| zacc | int16_t | Z acceleration (raw) | |
| xgyro | int16_t | Angular speed around X axis (raw) | |
| ygyro | int16_t | Angular speed around Y axis (raw) | |
| zgyro | int16_t | Angular speed around Z axis (raw) | |
| xmag | int16_t | X Magnetic field (raw) | |
| ymag | int16_t | Y Magnetic field (raw) | |
| zmag | int16_t | Z Magnetic field (raw) | |
| time_usec | uint64_t | us | Timestamp (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. |
| id | uint8_t | Id. Ids are numbered from 0 and map to IMUs numbered from 1 (e.g. IMU1 will have a message with id=0) | |
| temperature | int16_t | cdegC | Temperature, 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| press_abs | int16_t | Absolute pressure (raw) | |
| press_diff1 | int16_t | Differential pressure 1 (raw, 0 if nonexistent) | |
| press_diff2 | int16_t | Differential pressure 2 (raw, 0 if nonexistent) | |
| temperature | int16_t | Raw Temperature measurement (raw) | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | int16_t | cdegC | Absolute pressure temperature |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| press_abs | float | hPa | Absolute pressure |
| press_diff | float | hPa | Differential pressure 1 |
| temperature_press_diff | int16_t | cdegC | Differential 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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| roll | float | rad | Roll angle (-pi..+pi) |
| pitch | float | rad | Pitch angle (-pi..+pi) |
| yaw | float | rad | Yaw angle (-pi..+pi) |
| rollspeed | float | rad/s | Roll angular speed |
| pitchspeed | float | rad/s | Pitch angular speed |
| yawspeed | float | rad/s | Yaw 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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| q1 | float | Quaternion component 1, w (1 in null-rotation) | |
| q2 | float | Quaternion component 2, x (0 in null-rotation) | |
| q3 | float | Quaternion component 3, y (0 in null-rotation) | |
| q4 | float | Quaternion component 4, z (0 in null-rotation) | |
| rollspeed | float | rad/s | Roll angular speed |
| pitchspeed | float | rad/s | Pitch angular speed |
| yawspeed | float | rad/s | Yaw angular speed |
| repr_offset_q | float[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)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| x | float | m | X Position |
| y | float | m | Y Position |
| z | float | m | Z Position |
| vx | float | m/s | X Speed |
| vy | float | m/s | Y Speed |
| vz | float | m/s | Z 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| vx | int16_t | cm/s | Ground X Speed (Latitude, positive north) |
| vy | int16_t | cm/s | Ground Y Speed (Longitude, positive east) |
| vz | int16_t | cm/s | Ground Z Speed (Altitude, positive down) |
| hdg | uint16_t | cdeg | Vehicle heading (yaw angle), 0.0..359.99 degrees. If unknown, set to: UINT16_MAX |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| lat | int32_t | degE7 | Latitude, expressed |
| lon | int32_t | degE7 | Longitude, expressed |
| alt | int32_t | mm | Altitude (MSL). Note that virtually all GPS modules provide both WGS84 and MSL. |
| relative_alt | int32_t | mm | Altitude 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| port | uint8_t | Servo output port (set of 8 outputs = 1 port). Flight stacks running on Pixhawk should use: 0 = MAIN, 1 = AUX. | |
| rssi | uint8_t | Receive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown. | |
| chan1_scaled | int16_t | RC channel 1 value scaled. | |
| chan2_scaled | int16_t | RC channel 2 value scaled. | |
| chan3_scaled | int16_t | RC channel 3 value scaled. | |
| chan4_scaled | int16_t | RC channel 4 value scaled. | |
| chan5_scaled | int16_t | RC channel 5 value scaled. | |
| chan6_scaled | int16_t | RC channel 6 value scaled. | |
| chan7_scaled | int16_t | RC channel 7 value scaled. | |
| chan8_scaled | int16_t | RC channel 8 value scaled. | |
| time_boot_ms | uint32_t | ms | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| port | uint8_t | Servo output port (set of 8 outputs = 1 port). Flight stacks running on Pixhawk should use: 0 = MAIN, 1 = AUX. | |
| rssi | uint8_t | Receive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown. | |
| chan1_raw | uint16_t | us | RC channel 1 value. |
| chan2_raw | uint16_t | us | RC channel 2 value. |
| chan3_raw | uint16_t | us | RC channel 3 value. |
| chan4_raw | uint16_t | us | RC channel 4 value. |
| chan5_raw | uint16_t | us | RC channel 5 value. |
| chan6_raw | uint16_t | us | RC channel 6 value. |
| chan7_raw | uint16_t | us | RC channel 7 value. |
| chan8_raw | uint16_t | us | RC channel 8 value. |
| time_boot_ms | uint32_t | ms | Timestamp (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%.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| port | uint8_t | Servo output port (set of 8 outputs = 1 port). Flight stacks running on Pixhawk should use: 0 = MAIN, 1 = AUX. | |
| servo1_raw | uint16_t | us | Servo output 1 value |
| servo2_raw | uint16_t | us | Servo output 2 value |
| servo3_raw | uint16_t | us | Servo output 3 value |
| servo4_raw | uint16_t | us | Servo output 4 value |
| servo5_raw | uint16_t | us | Servo output 5 value |
| servo6_raw | uint16_t | us | Servo output 6 value |
| servo7_raw | uint16_t | us | Servo output 7 value |
| servo8_raw | uint16_t | us | Servo output 8 value |
| time_usec | uint32_t | us | Timestamp (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_raw | uint16_t | us | Servo output 9 value |
| servo10_raw | uint16_t | us | Servo output 10 value |
| servo11_raw | uint16_t | us | Servo output 11 value |
| servo12_raw | uint16_t | us | Servo output 12 value |
| servo13_raw | uint16_t | us | Servo output 13 value |
| servo14_raw | uint16_t | us | Servo output 14 value |
| servo15_raw | uint16_t | us | Servo output 15 value |
| servo16_raw | uint16_t | us | Servo 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| start_index | int16_t | Start index | |
| end_index | int16_t | End index, -1 by default (-1: send list to end). Else a valid index of the list | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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!
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| start_index | int16_t | Start index. Must be smaller / equal to the largest index of the current onboard list. | |
| end_index | int16_t | End index, equal or greater than start index. | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| frame | uint8_t | MAV_FRAME | The coordinate system of the waypoint. |
| current | uint8_t | false:0 , true:1 | |
| autocontinue | uint8_t | Autocontinue to next waypoint. 0: false, 1: true. Set false to pause mission after the item completes. | |
| seq | uint16_t | Sequence | |
| command | uint16_t | MAV_CMD | The scheduled action for the waypoint. |
| param1 | float | PARAM1, see MAV_CMD enum | |
| param2 | float | PARAM2, see MAV_CMD enum | |
| param3 | float | PARAM3, see MAV_CMD enum | |
| param4 | float | PARAM4, see MAV_CMD enum | |
| x | float | PARAM5 / local: X coordinate, global: latitude | |
| y | float | PARAM6 / local: Y coordinate, global: longitude | |
| z | float | PARAM7 / local: Z coordinate, global: altitude (relative or absolute, depending on frame). | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| seq | uint16_t | Sequence | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| seq | uint16_t | Sequence |
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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| seq | uint16_t | Sequence | |
| total | uint16_t | Total 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_state | uint8_t | MISSION_STATE | Mission state machine state. MISSION_STATE_UNKNOWN if state reporting not supported. |
| mission_mode | uint8_t | Vehicle is in a mode that can execute mission items or suspended. 0: Unknown, 1: In mission mode, 2: Suspended (not in mission mode). | |
| mission_id | uint32_t | Id 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_id | uint32_t | Id 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_id | uint32_t | Id 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| count | uint16_t | Number of mission items in the sequence | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission type. |
| opaque_id | uint32_t | Id 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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.
| Field Name | Type | Description |
|---|---|---|
| seq | uint16_t | Sequence |
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).
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| type | uint8_t | MAV_MISSION_RESULT | Mission result. |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission type. |
| opaque_id | uint32_t | Id 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| latitude | int32_t | degE7 | Latitude (WGS84) |
| longitude | int32_t | degE7 | Longitude (WGS84) |
| altitude | int32_t | mm | Altitude (MSL). Positive for up. |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| latitude | int32_t | degE7 | Latitude (WGS84) |
| longitude | int32_t | degE7 | Longitude (WGS84) |
| altitude | int32_t | mm | Altitude (MSL). Positive for up. |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| param_id | char[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_index | uint8_t | Index of parameter RC channel. Not equal to the RC channel id. Typically corresponds to a potentiometer-knob on the RC. |
| param_index | int16_t | Parameter 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_value0 | float | Initial parameter value |
| scale | float | Scale, maps the RC range [-1, 1] to a parameter value |
| param_value_min | float | Minimum param value. The protocol does not define if this overwrites an onboard minimum value. (Depends on implementation) |
| param_value_max | float | Maximum 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| seq | uint16_t | Sequence | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| frame | uint8_t | MAV_FRAME | Coordinate frame. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. | |
| p1x | float | m | x position 1 / Latitude 1 | |
| p1y | float | m | y position 1 / Longitude 1 | |
| p1z | float | m | z position 1 / Altitude 1 | |
| p2x | float | m | x position 2 / Latitude 2 | |
| p2y | float | m | y position 2 / Longitude 2 | |
| p2z | float | m | z position 2 / Altitude 2 |
SAFETY_ALLOWED_AREA (55)
Read out the safety zone the MAV currently assumes.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| frame | uint8_t | MAV_FRAME | Coordinate frame. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. | |
| p1x | float | m | x position 1 / Latitude 1 | |
| p1y | float | m | y position 1 / Longitude 1 | |
| p1z | float | m | z position 1 / Altitude 1 | |
| p2x | float | m | x position 2 / Latitude 2 | |
| p2y | float | m | y position 2 / Longitude 2 | |
| p2z | float | m | z 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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| q | float[4] | Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation) | |
| rollspeed | float | rad/s | Roll angular speed |
| pitchspeed | float | rad/s | Pitch angular speed |
| yawspeed | float | rad/s | Yaw angular speed |
| covariance | float[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_usec | uint64_t | us | Timestamp (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. |
NAV_CONTROLLER_OUTPUT (62)
The state of the navigation and position controller.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| nav_bearing | int16_t | deg | Current desired heading |
| target_bearing | int16_t | deg | Bearing to current waypoint/target |
| wp_dist | uint16_t | m | Distance to active waypoint |
| nav_roll | float | deg | Current desired roll |
| nav_pitch | float | deg | Current desired pitch |
| alt_error | float | m | Current altitude error |
| aspd_error | float | m/s | Current airspeed error |
| xtrack_error | float | m | Current 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| estimator_type | uint8_t | MAV_ESTIMATOR_TYPE | Class id of the estimator this estimate originated from. | |
| lat | int32_t | degE7 | Latitude | |
| lon | int32_t | degE7 | Longitude | |
| alt | int32_t | mm | Altitude in meters above MSL | |
| relative_alt | int32_t | mm | Altitude above ground | |
| vx | float | m/s | Ground X Speed (Latitude) | |
| vy | float | m/s | Ground Y Speed (Longitude) | |
| vz | float | m/s | Ground Z Speed (Altitude) | |
| covariance | float[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_usec | uint64_t | us | Timestamp (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)
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| estimator_type | uint8_t | MAV_ESTIMATOR_TYPE | Class id of the estimator this estimate originated from. | |
| x | float | m | X Position | |
| y | float | m | Y Position | |
| z | float | m | Z Position | |
| vx | float | m/s | X Speed | |
| vy | float | m/s | Y Speed | |
| vz | float | m/s | Z Speed | |
| ax | float | m/s/s | X Acceleration | |
| ay | float | m/s/s | Y Acceleration | |
| az | float | m/s/s | Z Acceleration | |
| covariance | float[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_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| chancount | uint8_t | Total 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. | |
| rssi | uint8_t | Receive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown. | |
| chan1_raw | uint16_t | us | RC channel 1 value. |
| chan2_raw | uint16_t | us | RC channel 2 value. |
| chan3_raw | uint16_t | us | RC channel 3 value. |
| chan4_raw | uint16_t | us | RC channel 4 value. |
| chan5_raw | uint16_t | us | RC channel 5 value. |
| chan6_raw | uint16_t | us | RC channel 6 value. |
| chan7_raw | uint16_t | us | RC channel 7 value. |
| chan8_raw | uint16_t | us | RC channel 8 value. |
| chan9_raw | uint16_t | us | RC channel 9 value. |
| chan10_raw | uint16_t | us | RC channel 10 value. |
| chan11_raw | uint16_t | us | RC channel 11 value. |
| chan12_raw | uint16_t | us | RC channel 12 value. |
| chan13_raw | uint16_t | us | RC channel 13 value. |
| chan14_raw | uint16_t | us | RC channel 14 value. |
| chan15_raw | uint16_t | us | RC channel 15 value. |
| chan16_raw | uint16_t | us | RC channel 16 value. |
| chan17_raw | uint16_t | us | RC channel 17 value. |
| chan18_raw | uint16_t | us | RC channel 18 value. |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
REQUEST_DATA_STREAM (66)
Request a data stream.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | The target requested to send the message stream. | |
| target_component | uint8_t | The target requested to send the message stream. | |
| req_stream_id | uint8_t | The ID of the requested data stream | |
| start_stop | uint8_t | 1 to start sending, 0 to stop sending. | |
| req_message_rate | uint16_t | Hz | The requested message rate |
DATA_STREAM (67)
Data stream status information.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| stream_id | uint8_t | The ID of the requested data stream | |
| on_off | uint8_t | 1 stream is enabled, 0 stream is stopped. | |
| message_rate | uint16_t | Hz | The 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
| Field Name | Type | Description |
|---|---|---|
| target | uint8_t | The system to be controlled. |
| x | int16_t | X-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. |
| y | int16_t | Y-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. |
| z | int16_t | Z-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. |
| r | int16_t | R-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. |
| buttons | uint16_t | A bitfield corresponding to the joystick buttons' 0-15 current state, 1 for pressed, 0 for released. The lowest bit corresponds to Button 1. |
| buttons2 | uint16_t | A bitfield corresponding to the joystick buttons' 16-31 current state, 1 for pressed, 0 for released. The lowest bit corresponds to Button 16. |
| enabled_extensions | uint8_t | Set 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 |
| s | int16_t | Pitch-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. |
| t | int16_t | Roll-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. |
| aux1 | int16_t | Aux 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. |
| aux2 | int16_t | Aux 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. |
| aux3 | int16_t | Aux 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. |
| aux4 | int16_t | Aux 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. |
| aux5 | int16_t | Aux 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. |
| aux6 | int16_t | Aux 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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| chan1_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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_raw | uint16_t | us | RC 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| frame | uint8_t | MAV_FRAME | The coordinate system of the waypoint. |
| current | uint8_t | false:0 , true:1 | |
| autocontinue | uint8_t | Autocontinue to next waypoint. 0: false, 1: true. Set false to pause mission after the item completes. | |
| seq | uint16_t | Waypoint ID (sequence number). Starts at zero. Increases monotonically for each waypoint, no gaps in the sequence (0,1,2,3,4). | |
| command | uint16_t | MAV_CMD | The scheduled action for the waypoint. |
| param1 | float | PARAM1, see MAV_CMD enum | |
| param2 | float | PARAM2, see MAV_CMD enum | |
| param3 | float | PARAM3, see MAV_CMD enum | |
| param4 | float | PARAM4, see MAV_CMD enum | |
| x | int32_t | PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7 | |
| y | int32_t | PARAM6 / y position: local: x position in meters * 1e4, global: longitude in degrees *10^7 | |
| z | float | PARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame. | |
| mission_type | uint8_t | MAV_MISSION_TYPE | Mission type. |
VFR_HUD (74)
Metrics typically displayed on a HUD for fixed wing aircraft.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| heading | int16_t | deg | Current heading in compass units (0-360, 0=north). |
| throttle | uint16_t | % | Current throttle setting (0 to 100). |
| airspeed | float | m/s | Vehicle 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. |
| groundspeed | float | m/s | Current ground speed. |
| alt | float | m | Current altitude (MSL). |
| climb | float | m/s | Current 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| frame | uint8_t | MAV_FRAME | The coordinate system of the COMMAND. |
| current | uint8_t | Not used. | |
| autocontinue | uint8_t | Not used (set 0). | |
| command | uint16_t | MAV_CMD | The scheduled action for the mission item. |
| param1 | float | PARAM1, see MAV_CMD enum | |
| param2 | float | PARAM2, see MAV_CMD enum | |
| param3 | float | PARAM3, see MAV_CMD enum | |
| param4 | float | PARAM4, see MAV_CMD enum | |
| x | int32_t | PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7 | |
| y | int32_t | PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7 | |
| z | float | PARAM7 / 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System which should execute the command | |
| target_component | uint8_t | Component which should execute the command, 0 for all components | |
| confirmation | uint8_t | 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command) | |
| command | uint16_t | MAV_CMD | Command ID (of command to send). |
| param1 | float | Parameter 1 (for the specific command). | |
| param2 | float | Parameter 2 (for the specific command). | |
| param3 | float | Parameter 3 (for the specific command). | |
| param4 | float | Parameter 4 (for the specific command). | |
| param5 | float | Parameter 5 (for the specific command). | |
| param6 | float | Parameter 6 (for the specific command). | |
| param7 | float | Parameter 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
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| result | uint8_t | MAV_RESULT | Result of command. | |
| command | uint16_t | MAV_CMD | Command ID (of acknowledged command). | |
| progress | uint8_t | % | The progress percentage when result is MAV_RESULT_IN_PROGRESS. Values: [0-100], or UINT8_MAX if the progress is unknown. | |
| result_param2 | int32_t | Additional 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_system | uint8_t | System 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_component | uint8_t | Component 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System executing long running command. Should not be broadcast (0). | |
| target_component | uint8_t | Component executing long running command. | |
| command | uint16_t | MAV_CMD | Command ID (of command to cancel). |
MANUAL_SETPOINT (81)
Setpoint in roll, pitch, yaw and thrust from the operator
| Field Name | Type | Unit | Description |
|---|---|---|---|
| mode_switch | uint8_t | Flight mode switch position, 0.. 255 | |
| manual_override_switch | uint8_t | Override mode switch position, 0.. 255 | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| roll | float | rad/s | Desired roll rate |
| pitch | float | rad/s | Desired pitch rate |
| yaw | float | rad/s | Desired yaw rate |
| thrust | float | Collective 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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| type_mask | uint8_t | ATTITUDE_TARGET_TYPEMASK | Bitmap to indicate which dimensions should be ignored by the vehicle. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| q | float[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_rate | float | rad/s | Body roll rate | |
| body_pitch_rate | float | rad/s | Body pitch rate | |
| body_yaw_rate | float | rad/s | Body yaw rate | |
| thrust | float | Collective thrust, normalized to 0 .. 1 (-1 .. 1 for vehicles capable of reverse trust) | ||
| thrust_body | float[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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| type_mask | uint8_t | ATTITUDE_TARGET_TYPEMASK | Bitmap to indicate which dimensions should be ignored by the vehicle. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| q | float[4] | Attitude quaternion (w, x, y, z order, zero-rotation is 1, 0, 0, 0) | ||
| body_roll_rate | float | rad/s | Body roll rate | |
| body_pitch_rate | float | rad/s | Body pitch rate | |
| body_yaw_rate | float | rad/s | Body yaw rate | |
| thrust | float | Collective 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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| coordinate_frame | uint8_t | MAV_FRAME | Valid 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_mask | uint16_t | POSITION_TARGET_TYPEMASK | Bitmap to indicate which dimensions should be ignored by the vehicle. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| x | float | m | X Position in NED frame | |
| y | float | m | Y Position in NED frame | |
| z | float | m | Z Position in NED frame (note, altitude is negative in NED) | |
| vx | float | m/s | X velocity in NED frame | |
| vy | float | m/s | Y velocity in NED frame | |
| vz | float | m/s | Z velocity in NED frame | |
| afx | float | m/s/s | X acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afy | float | m/s/s | Y acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afz | float | m/s/s | Z acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| yaw | float | rad | yaw setpoint | |
| yaw_rate | float | rad/s | yaw 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| coordinate_frame | uint8_t | MAV_FRAME | Valid 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_mask | uint16_t | POSITION_TARGET_TYPEMASK | Bitmap to indicate which dimensions should be ignored by the vehicle. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| x | float | m | X Position in NED frame | |
| y | float | m | Y Position in NED frame | |
| z | float | m | Z Position in NED frame (note, altitude is negative in NED) | |
| vx | float | m/s | X velocity in NED frame | |
| vy | float | m/s | Y velocity in NED frame | |
| vz | float | m/s | Z velocity in NED frame | |
| afx | float | m/s/s | X acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afy | float | m/s/s | Y acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afz | float | m/s/s | Z acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| yaw | float | rad | yaw setpoint | |
| yaw_rate | float | rad/s | yaw 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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| coordinate_frame | uint8_t | MAV_FRAME | Valid 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_mask | uint16_t | POSITION_TARGET_TYPEMASK | Bitmap to indicate which dimensions should be ignored by the vehicle. | |
| time_boot_ms | uint32_t | ms | Timestamp (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_int | int32_t | degE7 | Latitude in WGS84 frame | |
| lon_int | int32_t | degE7 | Longitude in WGS84 frame | |
| alt | float | m | Altitude (MSL, Relative to home, or AGL - depending on frame) | |
| vx | float | m/s | X velocity in NED frame | |
| vy | float | m/s | Y velocity in NED frame | |
| vz | float | m/s | Z velocity in NED frame | |
| afx | float | m/s/s | X acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afy | float | m/s/s | Y acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afz | float | m/s/s | Z acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| yaw | float | rad | yaw setpoint | |
| yaw_rate | float | rad/s | yaw 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| coordinate_frame | uint8_t | MAV_FRAME | Valid 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_mask | uint16_t | POSITION_TARGET_TYPEMASK | Bitmap to indicate which dimensions should be ignored by the vehicle. | |
| time_boot_ms | uint32_t | ms | Timestamp (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_int | int32_t | degE7 | Latitude in WGS84 frame | |
| lon_int | int32_t | degE7 | Longitude in WGS84 frame | |
| alt | float | m | Altitude (MSL, AGL or relative to home altitude, depending on frame) | |
| vx | float | m/s | X velocity in NED frame | |
| vy | float | m/s | Y velocity in NED frame | |
| vz | float | m/s | Z velocity in NED frame | |
| afx | float | m/s/s | X acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afy | float | m/s/s | Y acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| afz | float | m/s/s | Z acceleration or force (if bit 10 of type_mask is set) in NED frame in meter / s^2 or N | |
| yaw | float | rad | yaw setpoint | |
| yaw_rate | float | rad/s | yaw 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)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| x | float | m | X Position |
| y | float | m | Y Position |
| z | float | m | Z Position |
| roll | float | rad | Roll |
| pitch | float | rad | Pitch |
| yaw | float | rad | Yaw |
HIL_STATE (90)
Sent from simulation to autopilot. This packet is useful for high throughput applications such as hardware in the loop simulations.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| vx | int16_t | cm/s | Ground X Speed (Latitude) |
| vy | int16_t | cm/s | Ground Y Speed (Longitude) |
| vz | int16_t | cm/s | Ground Z Speed (Altitude) |
| xacc | int16_t | mG | X acceleration |
| yacc | int16_t | mG | Y acceleration |
| zacc | int16_t | mG | Z acceleration |
| roll | float | rad | Roll angle |
| pitch | float | rad | Pitch angle |
| yaw | float | rad | Yaw angle |
| rollspeed | float | rad/s | Body frame roll / phi angular speed |
| pitchspeed | float | rad/s | Body frame pitch / theta angular speed |
| yawspeed | float | rad/s | Body frame yaw / psi angular speed |
| lat | int32_t | degE7 | Latitude |
| lon | int32_t | degE7 | Longitude |
| alt | int32_t | mm | Altitude |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| mode | uint8_t | MAV_MODE | System mode. | |
| nav_mode | uint8_t | Navigation mode (MAV_NAV_MODE) | ||
| roll_ailerons | float | Control output -1 .. 1 | ||
| pitch_elevator | float | Control output -1 .. 1 | ||
| yaw_rudder | float | Control output -1 .. 1 | ||
| throttle | float | Throttle 0 .. 1 | ||
| aux1 | float | Aux 1, -1 .. 1 | ||
| aux2 | float | Aux 2, -1 .. 1 | ||
| aux3 | float | Aux 3, -1 .. 1 | ||
| aux4 | float | Aux 4, -1 .. 1 | ||
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| rssi | uint8_t | Receive signal strength indicator in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown. | |
| chan1_raw | uint16_t | us | RC channel 1 value |
| chan2_raw | uint16_t | us | RC channel 2 value |
| chan3_raw | uint16_t | us | RC channel 3 value |
| chan4_raw | uint16_t | us | RC channel 4 value |
| chan5_raw | uint16_t | us | RC channel 5 value |
| chan6_raw | uint16_t | us | RC channel 6 value |
| chan7_raw | uint16_t | us | RC channel 7 value |
| chan8_raw | uint16_t | us | RC channel 8 value |
| chan9_raw | uint16_t | us | RC channel 9 value |
| chan10_raw | uint16_t | us | RC channel 10 value |
| chan11_raw | uint16_t | us | RC channel 11 value |
| chan12_raw | uint16_t | us | RC channel 12 value |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| mode | uint8_t | MAV_MODE_FLAG | System mode. Includes arming state. | |
| controls | float[16] | Control outputs -1 .. 1. Channel assignment depends on the simulated hardware. | ||
| time_usec | uint64_t | us | Timestamp (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. | |
| flags | uint64_t | HIL_ACTUATOR_CONTROLS_FLAGS | Flags bitmask. |
OPTICAL_FLOW (100)
Optical flow from a flow sensor (e.g. optical mouse sensor)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| sensor_id | uint8_t | Sensor ID | |
| quality | uint8_t | Optical flow quality / confidence. 0: bad, 255: maximum quality | |
| flow_x | int16_t | dpix | Flow in x-sensor direction |
| flow_y | int16_t | dpix | Flow in y-sensor direction |
| flow_comp_m_x | float | m/s | Flow in x-sensor direction, angular-speed compensated |
| flow_comp_m_y | float | m/s | Flow in y-sensor direction, angular-speed compensated |
| ground_distance | float | m | Ground distance. Positive value: distance known. Negative value: Unknown distance |
| time_usec | uint64_t | us | Timestamp (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_x | float | rad/s | Flow rate about X axis |
| flow_rate_y | float | rad/s | Flow rate about Y axis |
GLOBAL_VISION_POSITION_ESTIMATE (101)
Global position/attitude estimate from a vision source.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| x | float | m | Global X position |
| y | float | m | Global Y position |
| z | float | m | Global Z position |
| roll | float | rad | Roll angle |
| pitch | float | rad | Pitch angle |
| yaw | float | rad | Yaw angle |
| usec | uint64_t | us | Timestamp (UNIX time or since system boot) |
| covariance | float[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_counter | uint8_t | Estimate 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| x | float | m | Local X position |
| y | float | m | Local Y position |
| z | float | m | Local Z position |
| roll | float | rad | Roll angle |
| pitch | float | rad | Pitch angle |
| yaw | float | rad | Yaw angle |
| usec | uint64_t | us | Timestamp (UNIX time or time since system boot) |
| covariance | float[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_counter | uint8_t | Estimate 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| x | float | m/s | Global X speed |
| y | float | m/s | Global Y speed |
| z | float | m/s | Global Z speed |
| usec | uint64_t | us | Timestamp (UNIX time or time since system boot) |
| covariance | float[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_counter | uint8_t | Estimate 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| x | float | m | Global X position |
| y | float | m | Global Y position |
| z | float | m | Global Z position |
| roll | float | rad | Roll angle |
| pitch | float | rad | Pitch angle |
| yaw | float | rad | Yaw angle |
| usec | uint64_t | us | Timestamp (UNIX time or time since system boot) |
| covariance | float[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
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| fields_updated | uint16_t | HIGHRES_IMU_UPDATED_FLAGS | Bitmap for fields that have updated since last message | |
| xacc | float | m/s/s | X acceleration | |
| yacc | float | m/s/s | Y acceleration | |
| zacc | float | m/s/s | Z acceleration | |
| xgyro | float | rad/s | Angular speed around X axis | |
| ygyro | float | rad/s | Angular speed around Y axis | |
| zgyro | float | rad/s | Angular speed around Z axis | |
| xmag | float | gauss | X Magnetic field | |
| ymag | float | gauss | Y Magnetic field | |
| zmag | float | gauss | Z Magnetic field | |
| abs_pressure | float | hPa | Absolute pressure | |
| diff_pressure | float | hPa | Differential pressure | |
| pressure_alt | float | Altitude calculated from pressure | ||
| temperature | float | degC | Temperature | |
| time_usec | uint64_t | us | Timestamp (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. | |
| id | uint8_t | Id. 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)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| sensor_id | uint8_t | Sensor ID | |
| quality | uint8_t | Optical flow quality / confidence. 0: no valid flow, 255: maximum quality | |
| temperature | int16_t | cdegC | Temperature |
| integration_time_us | uint32_t | us | Integration time. Divide integrated_x and integrated_y by the integration time to obtain average flow. The integration time also indicates the. |
| integrated_x | float | rad | Flow 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_y | float | rad | Flow 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_xgyro | float | rad | RH rotation around X axis |
| integrated_ygyro | float | rad | RH rotation around Y axis |
| integrated_zgyro | float | rad | RH rotation around Z axis |
| time_delta_distance_us | uint32_t | us | Time since the distance was sampled. |
| distance | float | m | Distance to the center of the flow field. Positive value (including zero): distance known. Negative value: Unknown distance. |
| time_usec | uint64_t | us | Timestamp (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
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| xacc | float | m/s/s | X acceleration | |
| yacc | float | m/s/s | Y acceleration | |
| zacc | float | m/s/s | Z acceleration | |
| xgyro | float | rad/s | Angular speed around X axis in body frame | |
| ygyro | float | rad/s | Angular speed around Y axis in body frame | |
| zgyro | float | rad/s | Angular speed around Z axis in body frame | |
| xmag | float | gauss | X Magnetic field | |
| ymag | float | gauss | Y Magnetic field | |
| zmag | float | gauss | Z Magnetic field | |
| abs_pressure | float | hPa | Absolute pressure | |
| diff_pressure | float | hPa | Differential pressure (airspeed) | |
| pressure_alt | float | Altitude calculated from pressure | ||
| temperature | float | degC | Temperature | |
| fields_updated | uint32_t | HIL_SENSOR_UPDATED_FLAGS | Bitmap for fields that have updated since last message | |
| time_usec | uint64_t | us | Timestamp (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. | |
| id | uint8_t | Sensor ID (zero indexed). Used for multiple sensor inputs |
SIM_STATE (108)
Status of simulation environment, if used
| Field Name | Type | Unit | Description |
|---|---|---|---|
| q1 | float | True attitude quaternion component 1, w (1 in null-rotation) | |
| q2 | float | True attitude quaternion component 2, x (0 in null-rotation) | |
| q3 | float | True attitude quaternion component 3, y (0 in null-rotation) | |
| q4 | float | True attitude quaternion component 4, z (0 in null-rotation) | |
| roll | float | rad | Attitude roll expressed as Euler angles, not recommended except for human-readable outputs |
| pitch | float | rad | Attitude pitch expressed as Euler angles, not recommended except for human-readable outputs |
| yaw | float | rad | Attitude yaw expressed as Euler angles, not recommended except for human-readable outputs |
| xacc | float | m/s/s | X acceleration |
| yacc | float | m/s/s | Y acceleration |
| zacc | float | m/s/s | Z acceleration |
| xgyro | float | rad/s | Angular speed around X axis |
| ygyro | float | rad/s | Angular speed around Y axis |
| zgyro | float | rad/s | Angular speed around Z axis |
| lat | float | deg | Latitude (lower precision). Both this and the lat_int field should be set. |
| lon | float | deg | Longitude (lower precision). Both this and the lon_int field should be set. |
| alt | float | m | Altitude |
| std_dev_horz | float | Horizontal position standard deviation | |
| std_dev_vert | float | Vertical position standard deviation | |
| vn | float | m/s | True velocity in north direction in earth-fixed NED frame |
| ve | float | m/s | True velocity in east direction in earth-fixed NED frame |
| vd | float | m/s | True velocity in down direction in earth-fixed NED frame |
| lat_int | int32_t | degE7 | Latitude (higher precision). If 0, recipients should use the lat field value (otherwise this field is preferred). |
| lon_int | int32_t | degE7 | Longitude (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| rssi | uint8_t | Local (message sender) received signal strength indication in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown. | |
| remrssi | uint8_t | Remote (message receiver) signal strength indication in device-dependent units/scale. Values: [0-254], UINT8_MAX: invalid/unknown. | |
| txbuf | uint8_t | % | Remaining free transmitter buffer space. |
| noise | uint8_t | Local background noise level. These are device dependent RSSI values (scale as approx 2x dB on SiK radios). Values: [0-254], UINT8_MAX: invalid/unknown. | |
| remnoise | uint8_t | Remote background noise level. These are device dependent RSSI values (scale as approx 2x dB on SiK radios). Values: [0-254], UINT8_MAX: invalid/unknown. | |
| rxerrors | uint16_t | Count of radio packet receive errors (since boot). | |
| fixed | uint16_t | Count of error corrected radio packets (since boot). |
FILE_TRANSFER_PROTOCOL (110)
File transfer protocol message: https://mavlink.io/en/services/ftp.html.
| Field Name | Type | Description |
|---|---|---|
| target_network | uint8_t | Network ID (0 for broadcast) |
| target_system | uint8_t | System ID (0 for broadcast) |
| target_component | uint8_t | Component ID (0 for broadcast) |
| payload | uint8_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| tc1 | int64_t | ns | Time sync timestamp 1. Syncing: 0. Responding: Timestamp of responding component. |
| ts1 | int64_t | ns | Time sync timestamp 2. Timestamp of syncing component (mirrored in response). |
| target_system | uint8_t | Target system id. Request: 0 (broadcast) or id of specific system. Response must contain system id of the requesting component. | |
| target_component | uint8_t | Target 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| seq | uint32_t | Image frame sequence | |
| time_usec | uint64_t | us | Timestamp 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| fix_type | uint8_t | 0-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_visible | uint8_t | Number of satellites visible. If unknown, set to UINT8_MAX | |
| eph | uint16_t | GPS HDOP horizontal dilution of position (unitless * 100). If unknown, set to: UINT16_MAX | |
| epv | uint16_t | GPS VDOP vertical dilution of position (unitless * 100). If unknown, set to: UINT16_MAX | |
| vel | uint16_t | cm/s | GPS ground speed. If unknown, set to: UINT16_MAX |
| vn | int16_t | cm/s | GPS velocity in north direction in earth-fixed NED frame |
| ve | int16_t | cm/s | GPS velocity in east direction in earth-fixed NED frame |
| vd | int16_t | cm/s | GPS velocity in down direction in earth-fixed NED frame |
| cog | uint16_t | cdeg | Course over ground (NOT heading, but direction of movement), 0.0..359.99 degrees. If unknown, set to: UINT16_MAX |
| lat | int32_t | degE7 | Latitude (WGS84) |
| lon | int32_t | degE7 | Longitude (WGS84) |
| alt | int32_t | mm | Altitude (MSL). Positive for up. |
| time_usec | uint64_t | us | Timestamp (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. |
| id | uint8_t | GPS ID (zero indexed). Used for multiple GPS inputs | |
| yaw | uint16_t | cdeg | Yaw 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)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| sensor_id | uint8_t | Sensor ID | |
| quality | uint8_t | Optical flow quality / confidence. 0: no valid flow, 255: maximum quality | |
| temperature | int16_t | cdegC | Temperature |
| integration_time_us | uint32_t | us | Integration time. Divide integrated_x and integrated_y by the integration time to obtain average flow. The integration time also indicates the. |
| integrated_x | float | rad | Flow 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_y | float | rad | Flow 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_xgyro | float | rad | RH rotation around X axis |
| integrated_ygyro | float | rad | RH rotation around Y axis |
| integrated_zgyro | float | rad | RH rotation around Z axis |
| time_delta_distance_us | uint32_t | us | Time since the distance was sampled. |
| distance | float | m | Distance to the center of the flow field. Positive value (including zero): distance known. Negative value: Unknown distance. |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| vx | int16_t | cm/s | Ground X Speed (Latitude) |
| vy | int16_t | cm/s | Ground Y Speed (Longitude) |
| vz | int16_t | cm/s | Ground Z Speed (Altitude) |
| ind_airspeed | uint16_t | cm/s | Indicated airspeed |
| true_airspeed | uint16_t | cm/s | True airspeed |
| xacc | int16_t | mG | X acceleration |
| yacc | int16_t | mG | Y acceleration |
| zacc | int16_t | mG | Z acceleration |
| attitude_quaternion | float[4] | Vehicle attitude expressed as normalized quaternion in w, x, y, z order (with 1 0 0 0 being the null-rotation) | |
| rollspeed | float | rad/s | Body frame roll / phi angular speed |
| pitchspeed | float | rad/s | Body frame pitch / theta angular speed |
| yawspeed | float | rad/s | Body frame yaw / psi angular speed |
| lat | int32_t | degE7 | Latitude |
| lon | int32_t | degE7 | Longitude |
| alt | int32_t | mm | Altitude |
| time_usec | uint64_t | us | Timestamp (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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| xacc | int16_t | mG | X acceleration |
| yacc | int16_t | mG | Y acceleration |
| zacc | int16_t | mG | Z acceleration |
| xgyro | int16_t | mrad/s | Angular speed around X axis |
| ygyro | int16_t | mrad/s | Angular speed around Y axis |
| zgyro | int16_t | mrad/s | Angular speed around Z axis |
| xmag | int16_t | mgauss | X Magnetic field |
| ymag | int16_t | mgauss | Y Magnetic field |
| zmag | int16_t | mgauss | Z Magnetic field |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| temperature | int16_t | cdegC | Temperature, 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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| start | uint16_t | First log id (0 for first available) |
| end | uint16_t | Last log id (0xffff for last available) |
LOG_ENTRY (118)
Reply to LOG_REQUEST_LIST
| Field Name | Type | Unit | Description |
|---|---|---|---|
| id | uint16_t | Log id | |
| num_logs | uint16_t | Total number of logs | |
| last_log_num | uint16_t | High log number | |
| time_utc | uint32_t | s | UTC timestamp of log since 1970, or 0 if not available |
| size | uint32_t | bytes | Size of the log (may be approximate) |
LOG_REQUEST_DATA (119)
Request a chunk of a log
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| id | uint16_t | Log id (from LOG_ENTRY reply) | |
| ofs | uint32_t | Offset into the log | |
| count | uint32_t | bytes | Number of bytes |
LOG_DATA (120)
Reply to LOG_REQUEST_DATA
| Field Name | Type | Unit | Description |
|---|---|---|---|
| count | uint8_t | bytes | Number of bytes (zero for end of log) |
| data | uint8_t[90] | log data | |
| id | uint16_t | Log id (from LOG_ENTRY reply) | |
| ofs | uint32_t | Offset into the log |
LOG_ERASE (121)
Erase all logs
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
LOG_REQUEST_END (122)
Stop log transfer and resume normal logging
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
GPS_INJECT_DATA (123)
Data for injecting into the onboard GPS (used for DGPS)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| len | uint8_t | bytes | Data length |
| data | uint8_t[110] | Raw data (110 is enough for 12 satellites of RTCMv2) |
GPS2_RAW (124)
Second GPS data.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| fix_type | uint8_t | GPS_FIX_TYPE | GPS fix type. | |
| satellites_visible | uint8_t | Number of satellites visible. If unknown, set to UINT8_MAX | ||
| dgps_numch | uint8_t | Number of DGPS satellites | ||
| eph | uint16_t | GPS HDOP horizontal dilution of position (unitless * 100). If unknown, set to: UINT16_MAX | ||
| epv | uint16_t | GPS VDOP vertical dilution of position (unitless * 100). If unknown, set to: UINT16_MAX | ||
| vel | uint16_t | cm/s | GPS ground speed. If unknown, set to: UINT16_MAX | |
| cog | uint16_t | cdeg | Course over ground (NOT heading, but direction of movement): 0.0..359.99 degrees. If unknown, set to: UINT16_MAX | |
| lat | int32_t | degE7 | Latitude (WGS84) | |
| lon | int32_t | degE7 | Longitude (WGS84) | |
| alt | int32_t | mm | Altitude (MSL). Positive for up. | |
| dgps_age | uint32_t | ms | Age of DGPS info | |
| time_usec | uint64_t | us | Timestamp (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. | |
| yaw | uint16_t | cdeg | Yaw 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_ellipsoid | int32_t | mm | Altitude (above WGS84, EGM96 ellipsoid). Positive for up. | |
| h_acc | uint32_t | mm | Position uncertainty. | |
| v_acc | uint32_t | mm | Altitude uncertainty. | |
| vel_acc | uint32_t | mm/s | Speed uncertainty. | |
| hdg_acc | uint32_t | degE5 | Heading / track uncertainty |
POWER_STATUS (125)
Power supply status
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| Vcc | uint16_t | mV | 5V rail voltage. | |
| Vservo | uint16_t | mV | Servo rail voltage. | |
| flags | uint16_t | MAV_POWER_STATUS | Bitmap 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| device | uint8_t | SERIAL_CONTROL_DEV | Serial control device type. | |
| flags | uint8_t | SERIAL_CONTROL_FLAG | Bitmap of serial control flags. | |
| count | uint8_t | bytes | how many bytes in this transfer | |
| data | uint8_t[70] | serial data | ||
| timeout | uint16_t | ms | Timeout for reply data | |
| baudrate | uint32_t | bits/s | Baudrate of transfer. Zero means no change. | |
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID |
GPS_RTK (127)
RTK GPS data. Gives information on the relative baseline calculation the GPS is reporting
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| rtk_receiver_id | uint8_t | Identification of connected RTK receiver. | ||
| rtk_health | uint8_t | GPS-specific health report for RTK data. | ||
| rtk_rate | uint8_t | Hz | Rate of baseline messages being received by GPS | |
| nsats | uint8_t | Current number of sats used for RTK calculation. | ||
| baseline_coords_type | uint8_t | RTK_BASELINE_COORDINATE_SYSTEM | Coordinate system of baseline | |
| wn | uint16_t | GPS Week Number of last baseline | ||
| time_last_baseline_ms | uint32_t | ms | Time since boot of last baseline message received. | |
| tow | uint32_t | ms | GPS Time of Week of last baseline | |
| baseline_a_mm | int32_t | mm | Current baseline in ECEF x or NED north component. | |
| baseline_b_mm | int32_t | mm | Current baseline in ECEF y or NED east component. | |
| baseline_c_mm | int32_t | mm | Current baseline in ECEF z or NED down component. | |
| accuracy | uint32_t | Current estimate of baseline accuracy. | ||
| iar_num_hypotheses | int32_t | Current number of integer ambiguity hypotheses. |
GPS2_RTK (128)
RTK GPS data. Gives information on the relative baseline calculation the GPS is reporting
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| rtk_receiver_id | uint8_t | Identification of connected RTK receiver. | ||
| rtk_health | uint8_t | GPS-specific health report for RTK data. | ||
| rtk_rate | uint8_t | Hz | Rate of baseline messages being received by GPS | |
| nsats | uint8_t | Current number of sats used for RTK calculation. | ||
| baseline_coords_type | uint8_t | RTK_BASELINE_COORDINATE_SYSTEM | Coordinate system of baseline | |
| wn | uint16_t | GPS Week Number of last baseline | ||
| time_last_baseline_ms | uint32_t | ms | Time since boot of last baseline message received. | |
| tow | uint32_t | ms | GPS Time of Week of last baseline | |
| baseline_a_mm | int32_t | mm | Current baseline in ECEF x or NED north component. | |
| baseline_b_mm | int32_t | mm | Current baseline in ECEF y or NED east component. | |
| baseline_c_mm | int32_t | mm | Current baseline in ECEF z or NED down component. | |
| accuracy | uint32_t | Current estimate of baseline accuracy. | ||
| iar_num_hypotheses | int32_t | Current 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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| xacc | int16_t | mG | X acceleration |
| yacc | int16_t | mG | Y acceleration |
| zacc | int16_t | mG | Z acceleration |
| xgyro | int16_t | mrad/s | Angular speed around X axis |
| ygyro | int16_t | mrad/s | Angular speed around Y axis |
| zgyro | int16_t | mrad/s | Angular speed around Z axis |
| xmag | int16_t | mgauss | X Magnetic field |
| ymag | int16_t | mgauss | Y Magnetic field |
| zmag | int16_t | mgauss | Z Magnetic field |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| temperature | int16_t | cdegC | Temperature, 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| type | uint8_t | MAVLINK_DATA_STREAM_TYPE | Type of requested/acknowledged data. | |
| payload | uint8_t | bytes | Payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only). | |
| jpg_quality | uint8_t | % | JPEG quality. Values: [1-100]. | |
| width | uint16_t | Width of a matrix or image. | ||
| height | uint16_t | Height of a matrix or image. | ||
| packets | uint16_t | Number of packets being sent (set on ACK only). | ||
| size | uint32_t | bytes | total 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.
| Field Name | Type | Description |
|---|---|---|
| data | uint8_t[253] | image data bytes |
| seqnr | uint16_t | sequence number (starting with 0 on every transmission) |
DISTANCE_SENSOR (132)
Distance sensor information for an onboard rangefinder.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| type | uint8_t | MAV_DISTANCE_SENSOR | Type of distance sensor. | |
| id | uint8_t | Onboard ID of the sensor | ||
| orientation | uint8_t | MAV_SENSOR_ORIENTATION | Direction 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 | |
| covariance | uint8_t | cm^2 | Measurement variance. Max standard deviation is 6cm. UINT8_MAX if unknown. | |
| min_distance | uint16_t | cm | Minimum distance the sensor can measure | |
| max_distance | uint16_t | cm | Maximum distance the sensor can measure | |
| current_distance | uint16_t | cm | Current distance reading | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| horizontal_fov | float | rad | Horizontal Field of View (angle) where the distance measurement is valid and the field of view is known. Otherwise this is set to 0. | |
| vertical_fov | float | rad | Vertical Field of View (angle) where the distance measurement is valid and the field of view is known. Otherwise this is set to 0. | |
| quaternion | float[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_quality | uint8_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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| grid_spacing | uint16_t | m | Grid spacing |
| lat | int32_t | degE7 | Latitude of SW corner of first grid |
| lon | int32_t | degE7 | Longitude of SW corner of first grid |
| mask | uint64_t | Bitmask 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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| gridbit | uint8_t | bit within the terrain request mask | |
| grid_spacing | uint16_t | m | Grid spacing |
| data | int16_t[16] | m | Terrain data MSL |
| lat | int32_t | degE7 | Latitude of SW corner of first grid |
| lon | int32_t | degE7 | Longitude 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| lat | int32_t | degE7 | Latitude |
| lon | int32_t | degE7 | Longitude |
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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| spacing | uint16_t | grid spacing (zero if terrain at this location unavailable) | |
| pending | uint16_t | Number of 4x4 terrain blocks waiting to be received or read from disk | |
| loaded | uint16_t | Number of 4x4 terrain blocks in memory | |
| lat | int32_t | degE7 | Latitude |
| lon | int32_t | degE7 | Longitude |
| terrain_height | float | m | Terrain height MSL |
| current_height | float | m | Current vehicle height above lat/lon terrain height |
SCALED_PRESSURE2 (137)
Barometer readings for 2nd barometer
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | int16_t | cdegC | Absolute pressure temperature |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| press_abs | float | hPa | Absolute pressure |
| press_diff | float | hPa | Differential pressure |
| temperature_press_diff | int16_t | cdegC | Differential pressure temperature (0, if not available). Report values of 0 (or 1) as 1 cdegC. |
ATT_POS_MOCAP (138)
Motion capture attitude and position
| Field Name | Type | Unit | Description |
|---|---|---|---|
| q | float[4] | Attitude quaternion (w, x, y, z order, zero-rotation is 1, 0, 0, 0) | |
| x | float | m | X position (NED) |
| y | float | m | Y position (NED) |
| z | float | m | Z position (NED) |
| time_usec | uint64_t | us | Timestamp (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. |
| covariance | float[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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| group_mlx | uint8_t | Actuator group. The "_mlx" indicates this is a multi-instance message and a MAVLink parser should use this field to difference between instances. | |
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| controls | float[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_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| group_mlx | uint8_t | Actuator group. The "_mlx" indicates this is a multi-instance message and a MAVLink parser should use this field to difference between instances. | |
| controls | float[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_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| altitude_monotonic | float | m | This 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_amsl | float | m | This 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_local | float | m | This 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_relative | float | m | This is the altitude above the home position. It resets on each change of the current home position. |
| altitude_terrain | float | m | This 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_clearance | float | m | This 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_usec | uint64_t | us | Timestamp (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)
| Field Name | Type | Description |
|---|---|---|
| request_id | uint8_t | Request ID. This ID should be reused when sending back URI contents |
| uri_type | uint8_t | The type of requested URI. 0 = a file via URL. 1 = a UAVCAN binary |
| uri | uint8_t[120] | The requested unique resource identifier (URI). It is not necessarily a straight domain name (depends on the URI type enum) |
| transfer_type | uint8_t | The way the autopilot wants to receive the URI. 0 = MAVLink FTP. 1 = binary stream. |
| storage | uint8_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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | int16_t | cdegC | Absolute pressure temperature |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| press_abs | float | hPa | Absolute pressure |
| press_diff | float | hPa | Differential pressure |
| temperature_press_diff | int16_t | cdegC | Differential 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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| est_capabilities | uint8_t | bit positions for tracker reporting capabilities (POS = 0, VEL = 1, ACCEL = 2, ATT + RATES = 3) | |
| lat | int32_t | degE7 | Latitude (WGS84) |
| lon | int32_t | degE7 | Longitude (WGS84) |
| alt | float | m | Altitude (MSL) |
| vel | float[3] | m/s | target velocity (0,0,0) for unknown |
| acc | float[3] | m/s/s | linear target acceleration (0,0,0) for unknown |
| attitude_q | float[4] | (0 0 0 0 for unknown) | |
| rates | float[3] | (0 0 0 for unknown) | |
| position_cov | float[3] | eph epv | |
| timestamp | uint64_t | ms | Timestamp (time since system boot). |
| custom_state | uint64_t | button 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| x_acc | float | m/s/s | X acceleration in body frame |
| y_acc | float | m/s/s | Y acceleration in body frame |
| z_acc | float | m/s/s | Z acceleration in body frame |
| x_vel | float | m/s | X velocity in body frame |
| y_vel | float | m/s | Y velocity in body frame |
| z_vel | float | m/s | Z velocity in body frame |
| x_pos | float | m | X position in local frame |
| y_pos | float | m | Y position in local frame |
| z_pos | float | m | Z position in local frame |
| airspeed | float | m/s | Airspeed, set to -1 if unknown |
| vel_variance | float[3] | Variance of body velocity estimate | |
| pos_variance | float[3] | Variance in local position | |
| q | float[4] | The attitude, represented as Quaternion | |
| roll_rate | float | rad/s | Angular rate in roll axis |
| pitch_rate | float | rad/s | Angular rate in pitch axis |
| yaw_rate | float | rad/s | Angular rate in yaw axis |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Battery ID | ||
| battery_function | uint8_t | MAV_BATTERY_FUNCTION | Function of the battery | |
| type | uint8_t | MAV_BATTERY_TYPE | Type (chemistry) of the battery | |
| battery_remaining | int8_t | % | Remaining battery energy. Values: [0-100], -1: autopilot does not estimate the remaining battery. | |
| temperature | int16_t | cdegC | Temperature of the battery. INT16_MAX for unknown temperature. | |
| voltages | uint16_t[10] | mV | Battery 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_battery | int16_t | cA | Battery current, -1: autopilot does not measure the current | |
| current_consumed | int32_t | mAh | Consumed charge, -1: autopilot does not provide consumption estimate | |
| energy_consumed | int32_t | hJ | Consumed energy, -1: autopilot does not provide energy consumption estimate | |
| time_remaining | int32_t | s | Remaining battery time, 0: autopilot does not provide remaining battery time estimate | |
| charge_state | uint8_t | MAV_BATTERY_CHARGE_STATE | State for extent of discharge, provided by autopilot for warning or external reactions | |
| voltages_ext | uint16_t[4] | mV | Battery 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. | |
| mode | uint8_t | MAV_BATTERY_MODE | Battery mode. Default (0) is that battery mode reporting is not supported or battery is in normal-use mode. | |
| fault_bitmask | uint32_t | MAV_BATTERY_FAULT | Fault/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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| flight_custom_version | uint8_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_version | uint8_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_version | uint8_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_id | uint16_t | ID of the board vendor | |
| product_id | uint16_t | ID of the product | |
| flight_sw_version | uint32_t | Firmware 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_version | uint32_t | Middleware version number | |
| os_sw_version | uint32_t | Operating system version number | |
| board_version | uint32_t | HW / 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 | |
| capabilities | uint64_t | MAV_PROTOCOL_CAPABILITY | Bitmap of capabilities |
| uid | uint64_t | UID if provided by hardware (see uid2) | |
| uid2 | uint8_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
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_num | uint8_t | The ID of the target if multiple targets are present | ||
| frame | uint8_t | MAV_FRAME | Coordinate frame used for following fields. | |
| angle_x | float | rad | X-axis angular offset of the target from the center of the image | |
| angle_y | float | rad | Y-axis angular offset of the target from the center of the image | |
| distance | float | m | Distance to the target from the vehicle | |
| size_x | float | rad | Size of target along x-axis | |
| size_y | float | rad | Size of target along y-axis | |
| time_usec | uint64_t | us | Timestamp (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. | |
| x | float | m | X Position of the landing target in MAV_FRAME | |
| y | float | m | Y Position of the landing target in MAV_FRAME | |
| z | float | m | Z Position of the landing target in MAV_FRAME | |
| q | float[4] | Quaternion of landing target orientation (w, x, y, z order, zero-rotation is 1, 0, 0, 0) | ||
| type | uint8_t | LANDING_TARGET_TYPE | Type of landing target | |
| position_valid | uint8_t | MAV_BOOL | Position 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
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
FLEXIFUNCTION_READ_REQ (151)
Request reading of flexifunction data
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| read_req_type | int16_t | Type of flexifunction data requested |
| data_index | int16_t | index into data where needed |
FLEXIFUNCTION_BUFFER_FUNCTION (152)
Flexifunction type and parameters for component at function index from buffer
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| data | int8_t[48] | Settings data |
| func_index | uint16_t | Function index |
| func_count | uint16_t | Total count of functions |
| data_address | uint16_t | Address in the flexifunction data, Set to 0xFFFF to use address in target memory |
| data_size | uint16_t | Size of the |
FLEXIFUNCTION_BUFFER_FUNCTION_ACK (153)
Flexifunction type and parameters for component at function index from buffer
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| func_index | uint16_t | Function index |
| result | uint16_t | result of acknowledge, 0=fail, 1=good |
DIGICAM_CONFIGURE (154)
Configure on-board Camera Control System.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| mode | uint8_t | Mode enumeration from 1 to N //P, TV, AV, M, etc. (0 means ignore). | |
| aperture | uint8_t | F stop number x 10 //e.g. 28 means 2.8 (0 means ignore). | |
| iso | uint8_t | ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore). | |
| exposure_type | uint8_t | Exposure type enumeration from 1 to N (0 means ignore). | |
| command_id | uint8_t | Command Identity (incremental loop: 0 to 255). //A command sent multiple times will be executed or pooled just once. | |
| engine_cut_off | uint8_t | ds | Main engine cut-off time before camera trigger (0 means no cut-off). |
| extra_param | uint8_t | Extra parameters enumeration (0 means ignore). | |
| shutter_speed | uint16_t | Divisor number //e.g. 1000 means 1/1000 (0 means ignore). | |
| extra_value | float | Correspondent value to given extra_param. |
FLEXIFUNCTION_DIRECTORY (155)
Acknowledge success or failure of a flexifunction command
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| directory_type | uint8_t | 0=inputs, 1=outputs |
| start_index | uint8_t | index of first directory entry to write |
| count | uint8_t | count of directory entries to write |
| directory_data | int8_t[48] | Settings data |
FLEXIFUNCTION_DIRECTORY_ACK (156)
Acknowledge success or failure of a flexifunction command
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| directory_type | uint8_t | 0=inputs, 1=outputs |
| start_index | uint8_t | index of first directory entry to write |
| count | uint8_t | count of directory entries to write |
| result | uint16_t | result of acknowledge, 0=fail, 1=good |
FLEXIFUNCTION_COMMAND (157)
Acknowledge success or failure of a flexifunction command
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| command_type | uint8_t | Flexifunction command type |
FLEXIFUNCTION_COMMAND_ACK (158)
Acknowledge success or failure of a flexifunction command
| Field Name | Type | Description |
|---|---|---|
| command_type | uint16_t | Command acknowledged |
| result | uint16_t | result 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| idx | uint8_t | Point index (first point is 1, 0 is for return point). | |
| count | uint8_t | Total number of points (for sanity checking). | |
| lat | float | deg | Latitude of point. |
| lng | float | deg | Longitude of point. |
FENCE_FETCH_POINT (161)
Request a current fence point from MAV.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID. |
| target_component | uint8_t | Component ID. |
| idx | uint8_t | Point 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| breach_status | uint8_t | Breach status (0 if currently inside fence, 1 if outside). | ||
| breach_type | uint8_t | FENCE_BREACH | Last breach type. | |
| breach_count | uint16_t | Number of fence breaches. | ||
| breach_time | uint32_t | ms | Time (since boot) of last breach. | |
| breach_mitigation | uint8_t | FENCE_MITIGATE | Active action to prevent fence breach |
AHRS (163)
Status of DCM attitude estimator.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| omegaIx | float | rad/s | X gyro drift estimate. |
| omegaIy | float | rad/s | Y gyro drift estimate. |
| omegaIz | float | rad/s | Z gyro drift estimate. |
| accel_weight | float | Average accel_weight. | |
| renorm_val | float | Average renormalisation value. | |
| error_rp | float | Average error_roll_pitch value. | |
| error_yaw | float | Average error_yaw value. |
SIMSTATE (164)
Status of simulation environment, if used.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| roll | float | rad | Roll angle. |
| pitch | float | rad | Pitch angle. |
| yaw | float | rad | Yaw angle. |
| xacc | float | m/s/s | X acceleration. |
| yacc | float | m/s/s | Y acceleration. |
| zacc | float | m/s/s | Z acceleration. |
| xgyro | float | rad/s | Angular speed around X axis. |
| ygyro | float | rad/s | Angular speed around Y axis. |
| zgyro | float | rad/s | Angular speed around Z axis. |
| lat | int32_t | degE7 | Latitude. |
| lng | int32_t | degE7 | Longitude. |
HWSTATUS (165)
Status of key hardware.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| I2Cerr | uint8_t | I2C error count. | |
| Vcc | uint16_t | mV | Board voltage. |
RADIO (166)
Status generated by radio.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| rssi | uint8_t | Local signal strength. | |
| remrssi | uint8_t | Remote signal strength. | |
| txbuf | uint8_t | % | How full the tx buffer is. |
| noise | uint8_t | Background noise level. | |
| remnoise | uint8_t | Remote background noise level. | |
| rxerrors | uint16_t | Receive errors. | |
| fixed | uint16_t | Count of error corrected packets. |
LIMITS_STATUS (167)
Status of AP_Limits. Sent in extended status stream when AP_Limits is enabled.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| limits_state | uint8_t | LIMITS_STATE | State of AP_Limits. | |
| mods_enabled | uint8_t | LIMIT_MODULE | AP_Limit_Module bitfield of enabled modules. | |
| mods_required | uint8_t | LIMIT_MODULE | AP_Limit_Module bitfield of required modules. | |
| mods_triggered | uint8_t | LIMIT_MODULE | AP_Limit_Module bitfield of triggered modules. | |
| breach_count | uint16_t | Number of fence breaches. | ||
| last_trigger | uint32_t | ms | Time (since boot) of last breach. | |
| last_action | uint32_t | ms | Time (since boot) of last recovery action. | |
| last_recovery | uint32_t | ms | Time (since boot) of last successful recovery. | |
| last_clear | uint32_t | ms | Time (since boot) of last all-clear. |
WIND (168)
Wind estimation.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| direction | float | deg | Wind direction (that wind is coming from). |
| speed | float | m/s | Wind speed in ground plane. |
| speed_z | float | m/s | Vertical wind speed. |
DATA16 (169)
Data packet, size 16.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| type | uint8_t | Data type. | |
| len | uint8_t | bytes | Data length. |
| data | uint8_t[16] | Raw data. |
SERIAL_UDB_EXTRA_F2_A (170)
Backwards compatible MAVLink version of SERIAL_UDB_EXTRA - F2: Format Part A
| Field Name | Type | Description |
|---|---|---|
| sue_status | uint8_t | Serial UDB Extra Status |
| sue_waypoint_index | uint16_t | Serial UDB Extra Waypoint Index |
| sue_rmat0 | int16_t | Serial UDB Extra Rmat 0 |
| sue_rmat1 | int16_t | Serial UDB Extra Rmat 1 |
| sue_rmat2 | int16_t | Serial UDB Extra Rmat 2 |
| sue_rmat3 | int16_t | Serial UDB Extra Rmat 3 |
| sue_rmat4 | int16_t | Serial UDB Extra Rmat 4 |
| sue_rmat5 | int16_t | Serial UDB Extra Rmat 5 |
| sue_rmat6 | int16_t | Serial UDB Extra Rmat 6 |
| sue_rmat7 | int16_t | Serial UDB Extra Rmat 7 |
| sue_rmat8 | int16_t | Serial UDB Extra Rmat 8 |
| sue_cog | uint16_t | Serial UDB Extra GPS Course Over Ground |
| sue_sog | int16_t | Serial UDB Extra Speed Over Ground |
| sue_cpu_load | uint16_t | Serial UDB Extra CPU Load |
| sue_air_speed_3DIMU | uint16_t | Serial UDB Extra 3D IMU Air Speed |
| sue_estimated_wind_0 | int16_t | Serial UDB Extra Estimated Wind 0 |
| sue_estimated_wind_1 | int16_t | Serial UDB Extra Estimated Wind 1 |
| sue_estimated_wind_2 | int16_t | Serial UDB Extra Estimated Wind 2 |
| sue_magFieldEarth0 | int16_t | Serial UDB Extra Magnetic Field Earth 0 |
| sue_magFieldEarth1 | int16_t | Serial UDB Extra Magnetic Field Earth 1 |
| sue_magFieldEarth2 | int16_t | Serial UDB Extra Magnetic Field Earth 2 |
| sue_svs | int16_t | Serial UDB Extra Number of Satellites in View |
| sue_hdop | int16_t | Serial UDB Extra GPS Horizontal Dilution of Precision |
| sue_time | uint32_t | Serial UDB Extra Time |
| sue_latitude | int32_t | Serial UDB Extra Latitude |
| sue_longitude | int32_t | Serial UDB Extra Longitude |
| sue_altitude | int32_t | Serial UDB Extra Altitude |
SERIAL_UDB_EXTRA_F2_B (171)
Backwards compatible version of SERIAL_UDB_EXTRA - F2: Part B
| Field Name | Type | Description |
|---|---|---|
| sue_pwm_input_1 | int16_t | Serial UDB Extra PWM Input Channel 1 |
| sue_pwm_input_2 | int16_t | Serial UDB Extra PWM Input Channel 2 |
| sue_pwm_input_3 | int16_t | Serial UDB Extra PWM Input Channel 3 |
| sue_pwm_input_4 | int16_t | Serial UDB Extra PWM Input Channel 4 |
| sue_pwm_input_5 | int16_t | Serial UDB Extra PWM Input Channel 5 |
| sue_pwm_input_6 | int16_t | Serial UDB Extra PWM Input Channel 6 |
| sue_pwm_input_7 | int16_t | Serial UDB Extra PWM Input Channel 7 |
| sue_pwm_input_8 | int16_t | Serial UDB Extra PWM Input Channel 8 |
| sue_pwm_input_9 | int16_t | Serial UDB Extra PWM Input Channel 9 |
| sue_pwm_input_10 | int16_t | Serial UDB Extra PWM Input Channel 10 |
| sue_pwm_input_11 | int16_t | Serial UDB Extra PWM Input Channel 11 |
| sue_pwm_input_12 | int16_t | Serial UDB Extra PWM Input Channel 12 |
| sue_pwm_output_1 | int16_t | Serial UDB Extra PWM Output Channel 1 |
| sue_pwm_output_2 | int16_t | Serial UDB Extra PWM Output Channel 2 |
| sue_pwm_output_3 | int16_t | Serial UDB Extra PWM Output Channel 3 |
| sue_pwm_output_4 | int16_t | Serial UDB Extra PWM Output Channel 4 |
| sue_pwm_output_5 | int16_t | Serial UDB Extra PWM Output Channel 5 |
| sue_pwm_output_6 | int16_t | Serial UDB Extra PWM Output Channel 6 |
| sue_pwm_output_7 | int16_t | Serial UDB Extra PWM Output Channel 7 |
| sue_pwm_output_8 | int16_t | Serial UDB Extra PWM Output Channel 8 |
| sue_pwm_output_9 | int16_t | Serial UDB Extra PWM Output Channel 9 |
| sue_pwm_output_10 | int16_t | Serial UDB Extra PWM Output Channel 10 |
| sue_pwm_output_11 | int16_t | Serial UDB Extra PWM Output Channel 11 |
| sue_pwm_output_12 | int16_t | Serial UDB Extra PWM Output Channel 12 |
| sue_imu_location_x | int16_t | Serial UDB Extra IMU Location X |
| sue_imu_location_y | int16_t | Serial UDB Extra IMU Location Y |
| sue_imu_location_z | int16_t | Serial UDB Extra IMU Location Z |
| sue_location_error_earth_x | int16_t | Serial UDB Location Error Earth X |
| sue_location_error_earth_y | int16_t | Serial UDB Location Error Earth Y |
| sue_location_error_earth_z | int16_t | Serial UDB Location Error Earth Z |
| sue_osc_fails | int16_t | Serial UDB Extra Oscillator Failure Count |
| sue_imu_velocity_x | int16_t | Serial UDB Extra IMU Velocity X |
| sue_imu_velocity_y | int16_t | Serial UDB Extra IMU Velocity Y |
| sue_imu_velocity_z | int16_t | Serial UDB Extra IMU Velocity Z |
| sue_waypoint_goal_x | int16_t | Serial UDB Extra Current Waypoint Goal X |
| sue_waypoint_goal_y | int16_t | Serial UDB Extra Current Waypoint Goal Y |
| sue_waypoint_goal_z | int16_t | Serial UDB Extra Current Waypoint Goal Z |
| sue_aero_x | int16_t | Aeroforce in UDB X Axis |
| sue_aero_y | int16_t | Aeroforce in UDB Y Axis |
| sue_aero_z | int16_t | Aeroforce in UDB Z axis |
| sue_barom_temp | int16_t | SUE barometer temperature |
| sue_bat_volt | int16_t | SUE battery voltage |
| sue_bat_amp | int16_t | SUE battery current |
| sue_bat_amp_hours | int16_t | SUE battery milli amp hours used |
| sue_desired_height | int16_t | Sue autopilot desired height |
| sue_memory_stack_free | int16_t | Serial UDB Extra Stack Memory Free |
| sue_time | uint32_t | Serial UDB Extra Time |
| sue_flags | uint32_t | Serial UDB Extra Status Flags |
| sue_barom_press | int32_t | SUE barometer pressure |
| sue_barom_alt | int32_t | SUE barometer altitude |
SERIAL_UDB_EXTRA_F4 (172)
Backwards compatible version of SERIAL_UDB_EXTRA F4: format
| Field Name | Type | Description |
|---|---|---|
| sue_ROLL_STABILIZATION_AILERONS | uint8_t | Serial UDB Extra Roll Stabilization with Ailerons Enabled |
| sue_ROLL_STABILIZATION_RUDDER | uint8_t | Serial UDB Extra Roll Stabilization with Rudder Enabled |
| sue_PITCH_STABILIZATION | uint8_t | Serial UDB Extra Pitch Stabilization Enabled |
| sue_YAW_STABILIZATION_RUDDER | uint8_t | Serial UDB Extra Yaw Stabilization using Rudder Enabled |
| sue_YAW_STABILIZATION_AILERON | uint8_t | Serial UDB Extra Yaw Stabilization using Ailerons Enabled |
| sue_AILERON_NAVIGATION | uint8_t | Serial UDB Extra Navigation with Ailerons Enabled |
| sue_RUDDER_NAVIGATION | uint8_t | Serial UDB Extra Navigation with Rudder Enabled |
| sue_ALTITUDEHOLD_STABILIZED | uint8_t | Serial UDB Extra Type of Alitude Hold when in Stabilized Mode |
| sue_ALTITUDEHOLD_WAYPOINT | uint8_t | Serial UDB Extra Type of Alitude Hold when in Waypoint Mode |
| sue_RACING_MODE | uint8_t | Serial UDB Extra Firmware racing mode enabled |
SERIAL_UDB_EXTRA_F5 (173)
Backwards compatible version of SERIAL_UDB_EXTRA F5: format
| Field Name | Type | Description |
|---|---|---|
| sue_YAWKP_AILERON | float | Serial UDB YAWKP_AILERON Gain for Proporional control of navigation |
| sue_YAWKD_AILERON | float | Serial UDB YAWKD_AILERON Gain for Rate control of navigation |
| sue_ROLLKP | float | Serial UDB Extra ROLLKP Gain for Proportional control of roll stabilization |
| sue_ROLLKD | float | Serial UDB Extra ROLLKD Gain for Rate control of roll stabilization |
SERIAL_UDB_EXTRA_F6 (174)
Backwards compatible version of SERIAL_UDB_EXTRA F6: format
| Field Name | Type | Description |
|---|---|---|
| sue_PITCHGAIN | float | Serial UDB Extra PITCHGAIN Proportional Control |
| sue_PITCHKD | float | Serial UDB Extra Pitch Rate Control |
| sue_RUDDER_ELEV_MIX | float | Serial UDB Extra Rudder to Elevator Mix |
| sue_ROLL_ELEV_MIX | float | Serial UDB Extra Roll to Elevator Mix |
| sue_ELEVATOR_BOOST | float | Gain For Boosting Manual Elevator control When Plane Stabilized |
SERIAL_UDB_EXTRA_F7 (175)
Backwards compatible version of SERIAL_UDB_EXTRA F7: format
| Field Name | Type | Description |
|---|---|---|
| sue_YAWKP_RUDDER | float | Serial UDB YAWKP_RUDDER Gain for Proporional control of navigation |
| sue_YAWKD_RUDDER | float | Serial UDB YAWKD_RUDDER Gain for Rate control of navigation |
| sue_ROLLKP_RUDDER | float | Serial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization |
| sue_ROLLKD_RUDDER | float | Serial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization |
| sue_RUDDER_BOOST | float | SERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized |
| sue_RTL_PITCH_DOWN | float | Serial UDB Extra Return To Landing - Angle to Pitch Plane Down |
SERIAL_UDB_EXTRA_F8 (176)
Backwards compatible version of SERIAL_UDB_EXTRA F8: format
| Field Name | Type | Description |
|---|---|---|
| sue_HEIGHT_TARGET_MAX | float | Serial UDB Extra HEIGHT_TARGET_MAX |
| sue_HEIGHT_TARGET_MIN | float | Serial UDB Extra HEIGHT_TARGET_MIN |
| sue_ALT_HOLD_THROTTLE_MIN | float | Serial UDB Extra ALT_HOLD_THROTTLE_MIN |
| sue_ALT_HOLD_THROTTLE_MAX | float | Serial UDB Extra ALT_HOLD_THROTTLE_MAX |
| sue_ALT_HOLD_PITCH_MIN | float | Serial UDB Extra ALT_HOLD_PITCH_MIN |
| sue_ALT_HOLD_PITCH_MAX | float | Serial UDB Extra ALT_HOLD_PITCH_MAX |
| sue_ALT_HOLD_PITCH_HIGH | float | Serial UDB Extra ALT_HOLD_PITCH_HIGH |
SERIAL_UDB_EXTRA_F13 (177)
Backwards compatible version of SERIAL_UDB_EXTRA F13: format
| Field Name | Type | Description |
|---|---|---|
| sue_week_no | int16_t | Serial UDB Extra GPS Week Number |
| sue_lat_origin | int32_t | Serial UDB Extra MP Origin Latitude |
| sue_lon_origin | int32_t | Serial UDB Extra MP Origin Longitude |
| sue_alt_origin | int32_t | Serial UDB Extra MP Origin Altitude Above Sea Level |
SERIAL_UDB_EXTRA_F14 (178)
Backwards compatible version of SERIAL_UDB_EXTRA F14: format
| Field Name | Type | Description |
|---|---|---|
| sue_WIND_ESTIMATION | uint8_t | Serial UDB Extra Wind Estimation Enabled |
| sue_GPS_TYPE | uint8_t | Serial UDB Extra Type of GPS Unit |
| sue_DR | uint8_t | Serial UDB Extra Dead Reckoning Enabled |
| sue_BOARD_TYPE | uint8_t | Serial UDB Extra Type of UDB Hardware |
| sue_AIRFRAME | uint8_t | Serial UDB Extra Type of Airframe |
| sue_CLOCK_CONFIG | uint8_t | Serial UDB Extra UDB Internal Clock Configuration |
| sue_FLIGHT_PLAN_TYPE | uint8_t | Serial UDB Extra Type of Flight Plan |
| sue_RCON | int16_t | Serial UDB Extra Reboot Register of DSPIC |
| sue_TRAP_FLAGS | int16_t | Serial UDB Extra Last dspic Trap Flags |
| sue_osc_fail_count | int16_t | Serial UDB Extra Number of Ocillator Failures |
| sue_TRAP_SOURCE | uint32_t | Serial UDB Extra Type Program Address of Last Trap |
SERIAL_UDB_EXTRA_F15 (179)
Backwards compatible version of SERIAL_UDB_EXTRA F15 format
| Field Name | Type | Description |
|---|---|---|
| sue_ID_VEHICLE_MODEL_NAME | uint8_t[40] | Serial UDB Extra Model Name Of Vehicle |
| sue_ID_VEHICLE_REGISTRATION | uint8_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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| name | char[50] | The name of the mission script, NULL terminated. |
| seq | uint16_t | Sequence |
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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| seq | uint16_t | Sequence |
SCRIPT_REQUEST_LIST (182)
Request the overall list of mission items from the system/component.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
SCRIPT_COUNT (183)
This message is emitted as response to SCRIPT_REQUEST_LIST by the MAV to get the number of mission scripts.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| count | uint16_t | Number of script items in the sequence |
SCRIPT_CURRENT (184)
This message informs about the currently active SCRIPT.
| Field Name | Type | Description |
|---|---|---|
| seq | uint16_t | Active Sequence |
SERIAL_UDB_EXTRA_F19 (185)
Backwards compatible version of SERIAL_UDB_EXTRA F19 format
| Field Name | Type | Description |
|---|---|---|
| sue_aileron_output_channel | uint8_t | SUE aileron output channel |
| sue_aileron_reversed | uint8_t | SUE aileron reversed |
| sue_elevator_output_channel | uint8_t | SUE elevator output channel |
| sue_elevator_reversed | uint8_t | SUE elevator reversed |
| sue_throttle_output_channel | uint8_t | SUE throttle output channel |
| sue_throttle_reversed | uint8_t | SUE throttle reversed |
| sue_rudder_output_channel | uint8_t | SUE rudder output channel |
| sue_rudder_reversed | uint8_t | SUE rudder reversed |
SERIAL_UDB_EXTRA_F20 (186)
Backwards compatible version of SERIAL_UDB_EXTRA F20 format
| Field Name | Type | Description |
|---|---|---|
| sue_number_of_inputs | uint8_t | SUE Number of Input Channels |
| sue_trim_value_input_1 | int16_t | SUE UDB PWM Trim Value on Input 1 |
| sue_trim_value_input_2 | int16_t | SUE UDB PWM Trim Value on Input 2 |
| sue_trim_value_input_3 | int16_t | SUE UDB PWM Trim Value on Input 3 |
| sue_trim_value_input_4 | int16_t | SUE UDB PWM Trim Value on Input 4 |
| sue_trim_value_input_5 | int16_t | SUE UDB PWM Trim Value on Input 5 |
| sue_trim_value_input_6 | int16_t | SUE UDB PWM Trim Value on Input 6 |
| sue_trim_value_input_7 | int16_t | SUE UDB PWM Trim Value on Input 7 |
| sue_trim_value_input_8 | int16_t | SUE UDB PWM Trim Value on Input 8 |
| sue_trim_value_input_9 | int16_t | SUE UDB PWM Trim Value on Input 9 |
| sue_trim_value_input_10 | int16_t | SUE UDB PWM Trim Value on Input 10 |
| sue_trim_value_input_11 | int16_t | SUE UDB PWM Trim Value on Input 11 |
| sue_trim_value_input_12 | int16_t | SUE UDB PWM Trim Value on Input 12 |
SERIAL_UDB_EXTRA_F21 (187)
Backwards compatible version of SERIAL_UDB_EXTRA F21 format
| Field Name | Type | Description |
|---|---|---|
| sue_accel_x_offset | int16_t | SUE X accelerometer offset |
| sue_accel_y_offset | int16_t | SUE Y accelerometer offset |
| sue_accel_z_offset | int16_t | SUE Z accelerometer offset |
| sue_gyro_x_offset | int16_t | SUE X gyro offset |
| sue_gyro_y_offset | int16_t | SUE Y gyro offset |
| sue_gyro_z_offset | int16_t | SUE Z gyro offset |
SERIAL_UDB_EXTRA_F22 (188)
Backwards compatible version of SERIAL_UDB_EXTRA F22 format
| Field Name | Type | Description |
|---|---|---|
| sue_accel_x_at_calibration | int16_t | SUE X accelerometer at calibration time |
| sue_accel_y_at_calibration | int16_t | SUE Y accelerometer at calibration time |
| sue_accel_z_at_calibration | int16_t | SUE Z accelerometer at calibration time |
| sue_gyro_x_at_calibration | int16_t | SUE X gyro at calibration time |
| sue_gyro_y_at_calibration | int16_t | SUE Y gyro at calibration time |
| sue_gyro_z_at_calibration | int16_t | SUE Z gyro at calibration time |
MAG_CAL_PROGRESS (191)
Reports progress of compass calibration.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| compass_id | uint8_t | Compass being calibrated. | ||
| cal_mask | uint8_t | Bitmask of compasses being calibrated. | ||
| cal_status | uint8_t | MAG_CAL_STATUS | Calibration Status. | |
| attempt | uint8_t | Attempt number. | ||
| completion_pct | uint8_t | % | Completion percentage. | |
| completion_mask | uint8_t[10] | Bitmask of sphere sections (see http://en.wikipedia.org/wiki/Geodesic_grid). | ||
| direction_x | float | Body frame direction vector for display. | ||
| direction_y | float | Body frame direction vector for display. | ||
| direction_z | float | Body frame direction vector for display. |
MAG_CAL_REPORT (192)
Reports results of completed compass calibration. Sent until MAG_CAL_ACK received.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| compass_id | uint8_t | Compass being calibrated. | ||
| cal_mask | uint8_t | Bitmask of compasses being calibrated. | ||
| cal_status | uint8_t | MAG_CAL_STATUS | Calibration Status. | |
| autosaved | uint8_t | 0=requires a MAV_CMD_DO_ACCEPT_MAG_CAL, 1=saved to parameters. | ||
| fitness | float | mgauss | RMS milligauss residuals. | |
| ofs_x | float | X offset. | ||
| ofs_y | float | Y offset. | ||
| ofs_z | float | Z offset. | ||
| diag_x | float | X diagonal (matrix 11). | ||
| diag_y | float | Y diagonal (matrix 22). | ||
| diag_z | float | Z diagonal (matrix 33). | ||
| offdiag_x | float | X off-diagonal (matrix 12 and 21). | ||
| offdiag_y | float | Y off-diagonal (matrix 13 and 31). | ||
| offdiag_z | float | Z off-diagonal (matrix 32 and 23). | ||
| orientation_confidence | float | Confidence in orientation (higher is better). | ||
| old_orientation | uint8_t | MAV_SENSOR_ORIENTATION | orientation before calibration. | |
| new_orientation | uint8_t | MAV_SENSOR_ORIENTATION | orientation after calibration. | |
| scale_factor | float | field radius correction factor |
EKF_STATUS_REPORT (193)
EKF Status message including flags and variances.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| flags | uint16_t | EKF_STATUS_FLAGS | Flags. |
| velocity_variance | float | Velocity variance. | |
| pos_horiz_variance | float | Horizontal Position variance. | |
| pos_vert_variance | float | Vertical Position variance. | |
| compass_variance | float | Compass variance. | |
| terrain_alt_variance | float | Terrain Altitude variance. | |
| airspeed_variance | float | Airspeed variance. |
PID_TUNING (194)
PID tuning information.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| axis | uint8_t | PID_TUNING_AXIS | Axis. |
| desired | float | Desired rate. | |
| achieved | float | Achieved rate. | |
| FF | float | FF component. | |
| P | float | P component. | |
| I | float | I component. | |
| D | float | D component. | |
| SRate | float | Slew rate. | |
| PDmod | float | P/D oscillation modifier. |
DEEPSTALL (195)
Deepstall path planning.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| stage | uint8_t | DEEPSTALL_STAGE | Deepstall stage. | |
| landing_lat | int32_t | degE7 | Landing latitude. | |
| landing_lon | int32_t | degE7 | Landing longitude. | |
| path_lat | int32_t | degE7 | Final heading start point, latitude. | |
| path_lon | int32_t | degE7 | Final heading start point, longitude. | |
| arc_entry_lat | int32_t | degE7 | Arc entry point, latitude. | |
| arc_entry_lon | int32_t | degE7 | Arc entry point, longitude. | |
| altitude | float | m | Altitude. | |
| expected_travel_distance | float | m | Distance the aircraft expects to travel during the deepstall. | |
| cross_track_error | float | m | Deepstall cross track error (only valid when in DEEPSTALL_STAGE_LAND). |
GIMBAL_REPORT (200)
3 axis gimbal measurements.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| delta_time | float | s | Time since last update. |
| delta_angle_x | float | rad | Delta angle X. |
| delta_angle_y | float | rad | Delta angle Y. |
| delta_angle_z | float | rad | Delta angle X. |
| delta_velocity_x | float | m/s | Delta velocity X. |
| delta_velocity_y | float | m/s | Delta velocity Y. |
| delta_velocity_z | float | m/s | Delta velocity Z. |
| joint_roll | float | rad | Joint ROLL. |
| joint_el | float | rad | Joint EL. |
| joint_az | float | rad | Joint AZ. |
GIMBAL_CONTROL (201)
Control message for rate gimbal.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| demanded_rate_x | float | rad/s | Demanded angular rate X. |
| demanded_rate_y | float | rad/s | Demanded angular rate Y. |
| demanded_rate_z | float | rad/s | Demanded angular rate Z. |
GIMBAL_TORQUE_CMD_REPORT (214)
100 Hz gimbal torque command telemetry.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID. |
| target_component | uint8_t | Component ID. |
| rl_torque_cmd | int16_t | Roll Torque Command. |
| el_torque_cmd | int16_t | Elevation Torque Command. |
| az_torque_cmd | int16_t | Azimuth Torque Command. |
GOPRO_HEARTBEAT (215)
Heartbeat from a HeroBus attached GoPro.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| status | uint8_t | GOPRO_HEARTBEAT_STATUS | Status. |
| capture_mode | uint8_t | GOPRO_CAPTURE_MODE | Current capture mode. |
| flags | uint8_t | GOPRO_HEARTBEAT_FLAGS | Additional status bits. |
GOPRO_GET_REQUEST (216)
Request a GOPRO_COMMAND response from the GoPro.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| cmd_id | uint8_t | GOPRO_COMMAND | Command ID. |
GOPRO_GET_RESPONSE (217)
Response from a GOPRO_COMMAND get request.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| cmd_id | uint8_t | GOPRO_COMMAND | Command ID. |
| status | uint8_t | GOPRO_REQUEST_STATUS | Status. |
| value | uint8_t[4] | Value. |
GOPRO_SET_REQUEST (218)
Request to set a GOPRO_COMMAND with a desired.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| cmd_id | uint8_t | GOPRO_COMMAND | Command ID. |
| value | uint8_t[4] | Value. |
GOPRO_SET_RESPONSE (219)
Response from a GOPRO_COMMAND set request.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| cmd_id | uint8_t | GOPRO_COMMAND | Command ID. |
| status | uint8_t | GOPRO_REQUEST_STATUS | Status. |
NAV_FILTER_BIAS (220)
Accelerometer and Gyro biases from the navigation filter
| Field Name | Type | Description |
|---|---|---|
| accel_0 | float | b_f[0] |
| accel_1 | float | b_f[1] |
| accel_2 | float | b_f[2] |
| gyro_0 | float | b_f[0] |
| gyro_1 | float | b_f[1] |
| gyro_2 | float | b_f[2] |
| usec | uint64_t | Timestamp (microseconds) |
RADIO_CALIBRATION (221)
Complete set of calibration parameters for the radio
| Field Name | Type | Description |
|---|---|---|
| aileron | uint16_t[3] | Aileron setpoints: left, center, right |
| elevator | uint16_t[3] | Elevator setpoints: nose down, center, nose up |
| rudder | uint16_t[3] | Rudder setpoints: nose left, center, nose right |
| gyro | uint16_t[2] | Tail gyro mode/gain setpoints: heading hold, rate mode |
| pitch | uint16_t[5] | Pitch curve setpoints (every 25%) |
| throttle | uint16_t[5] | Throttle curve setpoints (every 25%) |
UALBERTA_SYS_STATUS (222)
System status specific to ualberta uav
| Field Name | Type | Description |
|---|---|---|
| mode | uint8_t | System mode, see UALBERTA_AUTOPILOT_MODE ENUM |
| nav_mode | uint8_t | Navigation mode, see UALBERTA_NAV_MODE ENUM |
| pilot | uint8_t | Pilot 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| frame | uint8_t | MAV_FRAME | The coordinate system of the COMMAND, as defined by MAV_FRAME enum |
| current | uint8_t | false:0 , true:1 | |
| autocontinue | uint8_t | autocontinue to next wp | |
| command | uint16_t | MAV_CMD | The scheduled action for the mission item, as defined by MAV_CMD enum |
| utc_time | uint32_t | UTC time, seconds elapsed since 01.01.1970 | |
| param1 | float | PARAM1, see MAV_CMD enum | |
| param2 | float | PARAM2, see MAV_CMD enum | |
| param3 | float | PARAM3, see MAV_CMD enum | |
| param4 | float | PARAM4, see MAV_CMD enum | |
| x | int32_t | PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7 | |
| y | int32_t | PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7 | |
| z | float | PARAM7 / z position: global: altitude in meters (MSL, WGS84, AGL or relative to home - depending on frame). | |
| vehicle_timestamp | uint64_t | Microseconds elapsed since vehicle boot |
COMMAND_LONG_STAMPED (224)
Send a command with up to seven parameters to the MAV and additional metadata
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System which should execute the command | |
| target_component | uint8_t | Component which should execute the command, 0 for all components | |
| confirmation | uint8_t | 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command) | |
| command | uint16_t | MAV_CMD | Command ID, as defined by MAV_CMD enum. |
| utc_time | uint32_t | UTC time, seconds elapsed since 01.01.1970 | |
| param1 | float | Parameter 1, as defined by MAV_CMD enum. | |
| param2 | float | Parameter 2, as defined by MAV_CMD enum. | |
| param3 | float | Parameter 3, as defined by MAV_CMD enum. | |
| param4 | float | Parameter 4, as defined by MAV_CMD enum. | |
| param5 | float | Parameter 5, as defined by MAV_CMD enum. | |
| param6 | float | Parameter 6, as defined by MAV_CMD enum. | |
| param7 | float | Parameter 7, as defined by MAV_CMD enum. | |
| vehicle_timestamp | uint64_t | Microseconds elapsed since vehicle boot |
EFI_STATUS (225)
EFI status output
| Field Name | Type | Unit | Description |
|---|---|---|---|
| health | uint8_t | EFI health status | |
| ecu_index | float | ECU index | |
| rpm | float | RPM | |
| fuel_consumed | float | cm^3 | Fuel consumed |
| fuel_flow | float | cm^3/min | Fuel flow rate |
| engine_load | float | % | Engine load |
| throttle_position | float | % | Throttle position |
| spark_dwell_time | float | ms | Spark dwell time |
| barometric_pressure | float | kPa | Barometric pressure |
| intake_manifold_pressure | float | kPa | Intake manifold pressure( |
| intake_manifold_temperature | float | degC | Intake manifold temperature |
| cylinder_head_temperature | float | degC | Cylinder head temperature |
| ignition_timing | float | deg | Ignition timing (Crank angle degrees) |
| injection_time | float | ms | Injection time |
| exhaust_gas_temperature | float | degC | Exhaust gas temperature |
| throttle_out | float | % | Output throttle |
| pt_compensation | float | Pressure/temperature compensation | |
| ignition_voltage | float | V | Supply 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_pressure | float | kPa | Fuel 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.
| Field Name | Type | Description |
|---|---|---|
| rpm1 | float | RPM Sensor1. |
| rpm2 | float | RPM 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| flags | uint16_t | ESTIMATOR_STATUS_FLAGS | Bitmap indicating which EKF outputs are valid. | |
| vel_ratio | float | Velocity innovation test ratio | ||
| pos_horiz_ratio | float | Horizontal position innovation test ratio | ||
| pos_vert_ratio | float | Vertical position innovation test ratio | ||
| mag_ratio | float | Magnetometer innovation test ratio | ||
| hagl_ratio | float | Height above terrain innovation test ratio | ||
| tas_ratio | float | True airspeed innovation test ratio | ||
| pos_horiz_accuracy | float | m | Horizontal position 1-STD accuracy relative to the EKF local origin | |
| pos_vert_accuracy | float | m | Vertical position 1-STD accuracy relative to the EKF local origin | |
| time_usec | uint64_t | us | Timestamp (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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| wind_x | float | m/s | Wind in North (NED) direction (NAN if unknown) |
| wind_y | float | m/s | Wind in East (NED) direction (NAN if unknown) |
| wind_z | float | m/s | Wind in down (NED) direction (NAN if unknown) |
| var_horiz | float | m/s | Variability of wind in XY, 1-STD estimated from a 1 Hz lowpassed wind estimate (NAN if unknown) |
| var_vert | float | m/s | Variability of wind in Z, 1-STD estimated from a 1 Hz lowpassed wind estimate (NAN if unknown) |
| wind_alt | float | m | Altitude (MSL) that this measurement was taken at (NAN if unknown) |
| horiz_accuracy | float | m/s | Horizontal speed 1-STD accuracy (0 if unknown) |
| vert_accuracy | float | m/s | Vertical speed 1-STD accuracy (0 if unknown) |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| gps_id | uint8_t | ID of the GPS for multiple GPS inputs | ||
| fix_type | uint8_t | 0-1: no fix, 2: 2D fix, 3: 3D fix. 4: 3D with DGPS. 5: 3D with RTK | ||
| satellites_visible | uint8_t | Number of satellites visible. | ||
| ignore_flags | uint16_t | GPS_INPUT_IGNORE_FLAGS | Bitmap indicating which GPS input flags fields to ignore. All other fields must be provided. | |
| time_week | uint16_t | GPS week number | ||
| time_week_ms | uint32_t | ms | GPS time (from start of GPS week) | |
| lat | int32_t | degE7 | Latitude (WGS84) | |
| lon | int32_t | degE7 | Longitude (WGS84) | |
| alt | float | m | Altitude (MSL). Positive for up. | |
| hdop | float | GPS HDOP horizontal dilution of position (unitless). If unknown, set to: UINT16_MAX | ||
| vdop | float | GPS VDOP vertical dilution of position (unitless). If unknown, set to: UINT16_MAX | ||
| vn | float | m/s | GPS velocity in north direction in earth-fixed NED frame | |
| ve | float | m/s | GPS velocity in east direction in earth-fixed NED frame | |
| vd | float | m/s | GPS velocity in down direction in earth-fixed NED frame | |
| speed_accuracy | float | m/s | GPS speed accuracy | |
| horiz_accuracy | float | m | GPS horizontal accuracy | |
| vert_accuracy | float | m | GPS vertical accuracy | |
| time_usec | uint64_t | us | Timestamp (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. | |
| yaw | uint16_t | cdeg | Yaw 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)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| flags | uint8_t | LSB: 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. | |
| len | uint8_t | bytes | data length |
| data | uint8_t[180] | RTCM message (may be fragmented) |
HIGH_LATENCY (234)
Message appropriate for high latency connections like Iridium
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| base_mode | uint8_t | MAV_MODE_FLAG | Bitmap of enabled system modes. | |
| landed_state | uint8_t | MAV_LANDED_STATE | The landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown. | |
| throttle | int8_t | % | throttle (percentage) | |
| airspeed | uint8_t | m/s | airspeed | |
| airspeed_sp | uint8_t | m/s | airspeed setpoint | |
| groundspeed | uint8_t | m/s | groundspeed | |
| climb_rate | int8_t | m/s | climb rate | |
| gps_nsat | uint8_t | Number of satellites visible. If unknown, set to UINT8_MAX | ||
| gps_fix_type | uint8_t | GPS_FIX_TYPE | GPS Fix type. | |
| battery_remaining | uint8_t | % | Remaining battery (percentage) | |
| temperature | int8_t | degC | Autopilot temperature (degrees C) | |
| temperature_air | int8_t | degC | Air temperature (degrees C) from airspeed sensor | |
| failsafe | uint8_t | failsafe (each bit represents a failsafe where 0=ok, 1=failsafe active (bit0:RC , bit1:batt , bit2:GPS , bit3:GCS , bit4:fence ) | ||
| wp_num | uint8_t | current waypoint number | ||
| roll | int16_t | cdeg | roll | |
| pitch | int16_t | cdeg | pitch | |
| heading | uint16_t | cdeg | heading | |
| heading_sp | int16_t | cdeg | heading setpoint | |
| altitude_amsl | int16_t | m | Altitude above mean sea level | |
| altitude_sp | int16_t | m | Altitude setpoint relative to the home position | |
| wp_distance | uint16_t | m | distance to target | |
| custom_mode | uint32_t | A bitfield for use for autopilot-specific flags. | ||
| latitude | int32_t | degE7 | Latitude | |
| longitude | int32_t | degE7 | Longitude |
HIGH_LATENCY2 (235)
Message appropriate for high latency connections like Iridium (version 2)
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| type | uint8_t | MAV_TYPE | Type of the MAV (quadrotor, helicopter, etc.) | |
| autopilot | uint8_t | MAV_AUTOPILOT | Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers. | |
| heading | uint8_t | deg/2 | Heading | |
| target_heading | uint8_t | deg/2 | Heading setpoint | |
| throttle | uint8_t | % | Throttle | |
| airspeed | uint8_t | m/s*5 | Airspeed | |
| airspeed_sp | uint8_t | m/s*5 | Airspeed setpoint | |
| groundspeed | uint8_t | m/s*5 | Groundspeed | |
| windspeed | uint8_t | m/s*5 | Windspeed | |
| wind_heading | uint8_t | deg/2 | Wind heading | |
| eph | uint8_t | dm | Maximum error horizontal position since last message | |
| epv | uint8_t | dm | Maximum error vertical position since last message | |
| temperature_air | int8_t | degC | Air temperature | |
| climb_rate | int8_t | dm/s | Maximum climb rate magnitude since last message | |
| battery | int8_t | % | Battery level (-1 if field not provided). | |
| custom0 | int8_t | Field for custom payload. | ||
| custom1 | int8_t | Field for custom payload. | ||
| custom2 | int8_t | Field for custom payload. | ||
| custom_mode | uint16_t | A bitfield for use for autopilot-specific flags (2 byte version). | ||
| altitude | int16_t | m | Altitude above mean sea level | |
| target_altitude | int16_t | m | Altitude setpoint | |
| target_distance | uint16_t | dam | Distance to target waypoint or position | |
| wp_num | uint16_t | Current waypoint number | ||
| failure_flags | uint16_t | HL_FAILURE_FLAG | Bitmap of failure flags. | |
| timestamp | uint32_t | ms | Timestamp (milliseconds since boot or Unix epoch) | |
| latitude | int32_t | degE7 | Latitude | |
| longitude | int32_t | degE7 | Longitude |
VIBRATION (241)
Vibration levels and accelerometer clipping
| Field Name | Type | Unit | Description |
|---|---|---|---|
| vibration_x | float | Vibration levels on X-axis | |
| vibration_y | float | Vibration levels on Y-axis | |
| vibration_z | float | Vibration levels on Z-axis | |
| clipping_0 | uint32_t | first accelerometer clipping count | |
| clipping_1 | uint32_t | second accelerometer clipping count | |
| clipping_2 | uint32_t | third accelerometer clipping count | |
| time_usec | uint64_t | us | Timestamp (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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| latitude | int32_t | degE7 | Latitude (WGS84) |
| longitude | int32_t | degE7 | Longitude (WGS84) |
| altitude | int32_t | mm | Altitude (MSL). Positive for up. |
| x | float | m | Local X position of this position in the local coordinate frame (NED) |
| y | float | m | Local Y position of this position in the local coordinate frame (NED) |
| z | float | m | Local Z position of this position in the local coordinate frame (NED: positive "down") |
| q | float[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_x | float | m | Local 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_y | float | m | Local 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_z | float | m | Local 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_usec | uint64_t | us | Timestamp (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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| latitude | int32_t | degE7 | Latitude (WGS84) |
| longitude | int32_t | degE7 | Longitude (WGS84) |
| altitude | int32_t | mm | Altitude (MSL). Positive for up. |
| x | float | m | Local X position of this position in the local coordinate frame (NED) |
| y | float | m | Local Y position of this position in the local coordinate frame (NED) |
| z | float | m | Local Z position of this position in the local coordinate frame (NED: positive "down") |
| q | float[4] | World to surface normal and heading transformation of the takeoff position. Used to indicate the heading and slope of the ground | |
| approach_x | float | m | Local 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_y | float | m | Local 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_z | float | m | Local 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_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| message_id | uint16_t | The ID of the requested MAVLink message. v1.0 is limited to 254 messages. | |
| interval_us | int32_t | us | The 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| vtol_state | uint8_t | MAV_VTOL_STATE | The VTOL state if applicable. Is set to MAV_VTOL_STATE_UNDEFINED if UAV is not in VTOL configuration. |
| landed_state | uint8_t | MAV_LANDED_STATE | The 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
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| altitude_type | uint8_t | ADSB_ALTITUDE_TYPE | ADSB altitude type. | |
| callsign | char[9] | The callsign, 8+null | ||
| emitter_type | uint8_t | ADSB_EMITTER_TYPE | ADSB emitter type. | |
| tslc | uint8_t | s | Time since last communication in seconds | |
| heading | uint16_t | cdeg | Course over ground | |
| hor_velocity | uint16_t | cm/s | The horizontal velocity | |
| ver_velocity | int16_t | cm/s | The vertical velocity. Positive is up | |
| flags | uint16_t | ADSB_FLAGS | Bitmap to indicate various statuses including valid data fields | |
| squawk | uint16_t | Squawk 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_address | uint32_t | ICAO address | ||
| lat | int32_t | degE7 | Latitude | |
| lon | int32_t | degE7 | Longitude | |
| altitude | int32_t | mm | Altitude(ASL) |
COLLISION (247)
Information about a potential collision
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| src | uint8_t | MAV_COLLISION_SRC | Collision data source | |
| action | uint8_t | MAV_COLLISION_ACTION | Action that is being taken to avoid this collision | |
| threat_level | uint8_t | MAV_COLLISION_THREAT_LEVEL | How concerned the aircraft is about this collision | |
| id | uint32_t | Unique identifier, domain based on src field | ||
| time_to_minimum_delta | float | s | Estimated time until collision occurs | |
| altitude_minimum_delta | float | m | Closest vertical distance between vehicle and object | |
| horizontal_minimum_delta | float | m | Closest horizontal distance between vehicle and object |
V2_EXTENSION (248)
Message implementing parts of the V2 payload specs in V1 frames for transitional support.
| Field Name | Type | Description |
|---|---|---|
| target_network | uint8_t | Network ID (0 for broadcast) |
| target_system | uint8_t | System ID (0 for broadcast) |
| target_component | uint8_t | Component ID (0 for broadcast) |
| payload | uint8_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_type | uint16_t | A 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.
| Field Name | Type | Description |
|---|---|---|
| ver | uint8_t | Version code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below |
| type | uint8_t | Type 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 |
| value | int8_t[32] | Memory contents at specified address |
| address | uint16_t | Starting address of the debug variables |
DEBUG_VECT (250)
To debug something using a named 3D vector.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| name | char[10] | Name | |
| x | float | x | |
| y | float | y | |
| z | float | z | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| name | char[10] | Name of the debug variable | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| value | float | Floating 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| name | char[10] | Name of the debug variable | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| value | int32_t | Signed 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).
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| severity | uint8_t | MAV_SEVERITY | Severity of status. Relies on the definitions within RFC-5424. |
| text | char[50] | Status text message, without null termination character | |
| id | uint16_t | Unique (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_seq | uint8_t | This 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| ind | uint8_t | index of debug variable | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| value | float | DEBUG value |
SETUP_SIGNING (256)
Setup a MAVLink2 signing key. If called with secret_key of all zero and zero initial_timestamp will disable signing
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | system id of the target |
| target_component | uint8_t | component ID of the target |
| secret_key | uint8_t[32] | signing key |
| initial_timestamp | uint64_t | initial timestamp |
BUTTON_CHANGE (257)
Report button state change.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| state | uint8_t | Bitmap for state of buttons. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| last_change_ms | uint32_t | ms | Time of last change of button state. |
PLAY_TUNE (258)
Control vehicle tone generation (buzzer).
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| tune | char[30] | tune in board specific format |
| tune2 | char[200] | tune extension (appended to tune) |
CAMERA_INFORMATION (259)
Information about a camera. Can be requested with a MAV_CMD_REQUEST_MESSAGE command.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| vendor_name | uint8_t[32] | Name of the camera vendor | ||
| model_name | uint8_t[32] | Name of the camera model | ||
| lens_id | uint8_t | Reserved for a lens ID. Use 0 if not known. | ||
| cam_definition_uri | char[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_h | uint16_t | pix | Horizontal image resolution. Use 0 if not known. | |
| resolution_v | uint16_t | pix | Vertical image resolution. Use 0 if not known. | |
| cam_definition_version | uint16_t | Camera definition version (iteration). Use 0 if not known. | ||
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| firmware_version | uint32_t | Version of the camera firmware, encoded as: (Dev & 0xff) << 24 + (Patch & 0xff) << 16 + (Minor & 0xff) << 8 + (Major & 0xff). Use 0 if not known. | ||
| focal_length | float | mm | Focal length. Use NaN if not known. | |
| sensor_size_h | float | mm | Image sensor size horizontal. Use NaN if not known. | |
| sensor_size_v | float | mm | Image sensor size vertical. Use NaN if not known. | |
| flags | uint32_t | CAMERA_CAP_FLAGS | Bitmap of camera capability flags. | |
| gimbal_device_id | uint8_t | Gimbal 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_id | uint8_t | Camera 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| mode_id | uint8_t | CAMERA_MODE | Camera mode | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| zoomLevel | float | Current zoom level as a percentage of the full range (0.0 to 100.0, NaN if not known) | ||
| focusLevel | float | Current focus level as a percentage of the full range (0.0 to 100.0, NaN if not known) | ||
| camera_device_id | uint8_t | Camera 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| storage_id | uint8_t | Storage ID (1 for first, 2 for second, etc.) | ||
| storage_count | uint8_t | Number of storage devices | ||
| status | uint8_t | STORAGE_STATUS | Status of storage | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| total_capacity | float | MiB | Total capacity. If storage is not ready (STORAGE_STATUS_READY) value will be ignored. | |
| used_capacity | float | MiB | Used capacity. If storage is not ready (STORAGE_STATUS_READY) value will be ignored. | |
| available_capacity | float | MiB | Available storage capacity. If storage is not ready (STORAGE_STATUS_READY) value will be ignored. | |
| read_speed | float | MiB/s | Read speed. | |
| write_speed | float | MiB/s | Write speed. | |
| type | uint8_t | STORAGE_TYPE | Type of storage | |
| name | char[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_usage | uint8_t | STORAGE_USAGE_FLAG | Flags 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| image_status | uint8_t | Current status of image capturing (0: idle, 1: capture in progress, 2: interval set but idle, 3: interval set and capture in progress) | |
| video_status | uint8_t | Current status of video capturing (0: idle, 1: capture in progress) | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| image_interval | float | s | Image capture interval |
| recording_time_ms | uint32_t | ms | Elapsed 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_capacity | float | MiB | Available storage capacity. |
| image_count | int32_t | Total number of images captured ('forever', or until reset using MAV_CMD_STORAGE_FORMAT). | |
| camera_device_id | uint8_t | Camera 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| camera_id | uint8_t | Camera 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_result | int8_t | MAV_BOOL | Image was captured successfully (MAV_BOOL_TRUE). Values not equal to 0 or 1 are invalid. | |
| file_url | char[205] | URL of image taken. Either local storage or http://foo.jpg if camera provides an HTTP interface. | ||
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| lat | int32_t | degE7 | Latitude where image was taken | |
| lon | int32_t | degE7 | Longitude where capture was taken | |
| alt | int32_t | mm | Altitude (MSL) where image was taken | |
| relative_alt | int32_t | mm | Altitude above ground | |
| q | float[4] | Quaternion of camera orientation (w, x, y, z order, zero-rotation is 1, 0, 0, 0) | ||
| image_index | int32_t | Zero based index of this image (i.e. a new image will have index CAMERA_CAPTURE_STATUS.image count -1) | ||
| time_utc | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| arming_time_utc | uint64_t | us | Timestamp at arming (since system boot). Set to 0 on boot. Set value on arming. Note, field is misnamed UTC. |
| takeoff_time_utc | uint64_t | us | Timestamp at takeoff (since system boot). Set to 0 at boot and on arming. Note, field is misnamed UTC. |
| flight_uuid | uint64_t | Flight number. Note, field is misnamed UUID. | |
| landing_time | uint32_t | ms | Timestamp at landing (in ms since system boot). Set to 0 at boot and on arming. |
MOUNT_ORIENTATION (265)
Orientation of a mount
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| roll | float | deg | Roll in global frame (set to NaN for invalid). |
| pitch | float | deg | Pitch in global frame (set to NaN for invalid). |
| yaw | float | deg | Yaw relative to vehicle (set to NaN for invalid). |
| yaw_absolute | float | deg | Yaw 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)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | system ID of the target | |
| target_component | uint8_t | component ID of the target | |
| length | uint8_t | bytes | data length |
| first_message_offset | uint8_t | bytes | offset 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). |
| data | uint8_t[249] | logged data | |
| sequence | uint16_t | sequence number (can wrap) |
LOGGING_DATA_ACKED (267)
A message containing logged data which requires a LOGGING_ACK to be sent back
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | system ID of the target | |
| target_component | uint8_t | component ID of the target | |
| length | uint8_t | bytes | data length |
| first_message_offset | uint8_t | bytes | offset 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). |
| data | uint8_t[249] | logged data | |
| sequence | uint16_t | sequence number (can wrap) |
LOGGING_ACK (268)
An ack for a LOGGING_DATA_ACKED message
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | system ID of the target |
| target_component | uint8_t | component ID of the target |
| sequence | uint16_t | sequence 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| stream_id | uint8_t | Video Stream ID (1 for first, 2 for second, etc.) | ||
| count | uint8_t | Number of streams available. | ||
| type | uint8_t | VIDEO_STREAM_TYPE | Type of stream. | |
| name | char[32] | Stream name. | ||
| uri | char[160] | Video stream URI (TCP or RTSP URI ground station should connect to) or port number (UDP port ground station should listen to). | ||
| flags | uint16_t | VIDEO_STREAM_STATUS_FLAGS | Bitmap of stream status flags. | |
| resolution_h | uint16_t | pix | Horizontal resolution. | |
| resolution_v | uint16_t | pix | Vertical resolution. | |
| rotation | uint16_t | deg | Video image rotation clockwise. | |
| hfov | uint16_t | deg | Horizontal Field of view. | |
| framerate | float | Hz | Frame rate. | |
| bitrate | uint32_t | bits/s | Bit rate. | |
| encoding | uint8_t | VIDEO_STREAM_ENCODING | Encoding of stream. | |
| camera_device_id | uint8_t | Camera 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| stream_id | uint8_t | Video Stream ID (1 for first, 2 for second, etc.) | ||
| flags | uint16_t | VIDEO_STREAM_STATUS_FLAGS | Bitmap of stream status flags | |
| resolution_h | uint16_t | pix | Horizontal resolution | |
| resolution_v | uint16_t | pix | Vertical resolution | |
| rotation | uint16_t | deg | Video image rotation clockwise | |
| hfov | uint16_t | deg | Horizontal Field of view | |
| framerate | float | Hz | Frame rate | |
| bitrate | uint32_t | bits/s | Bit rate | |
| camera_device_id | uint8_t | Camera 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| lat_camera | int32_t | degE7 | Latitude of camera (INT32_MAX if unknown). |
| lon_camera | int32_t | degE7 | Longitude of camera (INT32_MAX if unknown). |
| alt_camera | int32_t | mm | Altitude (MSL) of camera (INT32_MAX if unknown). |
| lat_image | int32_t | degE7 | Latitude of center of image (INT32_MAX if unknown, INT32_MIN if at infinity, not intersecting with horizon). |
| lon_image | int32_t | degE7 | Longitude of center of image (INT32_MAX if unknown, INT32_MIN if at infinity, not intersecting with horizon). |
| alt_image | int32_t | mm | Altitude (MSL) of center of image (INT32_MAX if unknown, INT32_MIN if at infinity, not intersecting with horizon). |
| q | float[4] | Quaternion of camera orientation (w, x, y, z order, zero-rotation is 1, 0, 0, 0) | |
| hfov | float | deg | Horizontal field of view (NaN if unknown). |
| vfov | float | deg | Vertical field of view (NaN if unknown). |
| camera_device_id | uint8_t | Camera 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| tracking_status | uint8_t | CAMERA_TRACKING_STATUS_FLAGS | Current tracking status |
| tracking_mode | uint8_t | CAMERA_TRACKING_MODE | Current tracking mode |
| target_data | uint8_t | CAMERA_TRACKING_TARGET_DATA | Defines location of target data |
| point_x | float | Current tracked point x value if CAMERA_TRACKING_MODE_POINT (normalized 0..1, 0 is left, 1 is right), NAN if unknown | |
| point_y | float | Current tracked point y value if CAMERA_TRACKING_MODE_POINT (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown | |
| radius | float | Current tracked radius if CAMERA_TRACKING_MODE_POINT (normalized 0..1, 0 is image left, 1 is image right), NAN if unknown | |
| rec_top_x | float | Current tracked rectangle top x value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is left, 1 is right), NAN if unknown | |
| rec_top_y | float | Current tracked rectangle top y value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown | |
| rec_bottom_x | float | Current tracked rectangle bottom x value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is left, 1 is right), NAN if unknown | |
| rec_bottom_y | float | Current tracked rectangle bottom y value if CAMERA_TRACKING_MODE_RECTANGLE (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown | |
| camera_device_id | uint8_t | Camera 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| tracking_status | uint8_t | CAMERA_TRACKING_STATUS_FLAGS | Current tracking status | |
| lat | int32_t | degE7 | Latitude of tracked object | |
| lon | int32_t | degE7 | Longitude of tracked object | |
| alt | float | m | Altitude of tracked object(AMSL, WGS84) | |
| h_acc | float | m | Horizontal accuracy. NAN if unknown | |
| v_acc | float | m | Vertical accuracy. NAN if unknown | |
| vel_n | float | m/s | North velocity of tracked object. NAN if unknown | |
| vel_e | float | m/s | East velocity of tracked object. NAN if unknown | |
| vel_d | float | m/s | Down velocity of tracked object. NAN if unknown | |
| vel_acc | float | m/s | Velocity accuracy. NAN if unknown | |
| dist | float | m | Distance between camera and tracked object. NAN if unknown | |
| hdg | float | rad | Heading in radians, in NED. NAN if unknown | |
| hdg_acc | float | rad | Accuracy of heading, in NED. NAN if unknown | |
| camera_device_id | uint8_t | Camera 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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| stream_id | uint8_t | Video Stream ID (1 for first, 2 for second, etc.) | |
| camera_device_id | uint8_t | Camera 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_ms | uint32_t | ms | Timestamp (time since system boot). |
| max | float | degC | Temperature max. |
| max_point_x | float | Temperature max point x value (normalized 0..1, 0 is left, 1 is right), NAN if unknown. | |
| max_point_y | float | Temperature max point y value (normalized 0..1, 0 is top, 1 is bottom), NAN if unknown. | |
| min | float | degC | Temperature min. |
| min_point_x | float | Temperature min point x value (normalized 0..1, 0 is left, 1 is right), NAN if unknown. | |
| min_point_y | float | Temperature 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| gimbal_device_id | uint8_t | Gimbal device ID that this gimbal manager is responsible for. Component ID of gimbal device (or 1-6 for non-MAVLink gimbal). | ||
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| cap_flags | uint32_t | GIMBAL_MANAGER_CAP_FLAGS | Bitmap of gimbal capability flags. | |
| roll_min | float | rad | Minimum hardware roll angle (positive: rolling to the right, negative: rolling to the left) | |
| roll_max | float | rad | Maximum hardware roll angle (positive: rolling to the right, negative: rolling to the left) | |
| pitch_min | float | rad | Minimum pitch angle (positive: up, negative: down) | |
| pitch_max | float | rad | Maximum pitch angle (positive: up, negative: down) | |
| yaw_min | float | rad | Minimum yaw angle (positive: to the right, negative: to the left) | |
| yaw_max | float | rad | Maximum 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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| gimbal_device_id | uint8_t | Gimbal device ID that this gimbal manager is responsible for. Component ID of gimbal device (or 1-6 for non-MAVLink gimbal). | ||
| primary_control_sysid | uint8_t | System ID of MAVLink component with primary control, 0 for none. | ||
| primary_control_compid | uint8_t | Component ID of MAVLink component with primary control, 0 for none. | ||
| secondary_control_sysid | uint8_t | System ID of MAVLink component with secondary control, 0 for none. | ||
| secondary_control_compid | uint8_t | Component ID of MAVLink component with secondary control, 0 for none. | ||
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| flags | uint32_t | GIMBAL_MANAGER_FLAGS | High 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| gimbal_device_id | uint8_t | Component 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). | ||
| flags | uint32_t | GIMBAL_MANAGER_FLAGS | High level gimbal manager flags to use. | |
| q | float[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_x | float | rad/s | X component of angular velocity, positive is rolling to the right, NaN to be ignored. | |
| angular_velocity_y | float | rad/s | Y component of angular velocity, positive is pitching up, NaN to be ignored. | |
| angular_velocity_z | float | rad/s | Z 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..
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| vendor_name | char[32] | Name of the gimbal vendor. | ||
| model_name | char[32] | Name of the gimbal model. | ||
| custom_name | char[32] | Custom name of the gimbal given to it by the user. | ||
| cap_flags | uint16_t | GIMBAL_DEVICE_CAP_FLAGS | Bitmap of gimbal capability flags. | |
| custom_cap_flags | uint16_t | Bitmap for use for gimbal-specific capability flags. | ||
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| firmware_version | uint32_t | Version of the gimbal firmware, encoded as: (Dev & 0xff) << 24 + (Patch & 0xff) << 16 + (Minor & 0xff) << 8 + (Major & 0xff). | ||
| hardware_version | uint32_t | Version of the gimbal hardware, encoded as: (Dev & 0xff) << 24 + (Patch & 0xff) << 16 + (Minor & 0xff) << 8 + (Major & 0xff). | ||
| roll_min | float | rad | Minimum hardware roll angle (positive: rolling to the right, negative: rolling to the left). NAN if unknown. | |
| roll_max | float | rad | Maximum hardware roll angle (positive: rolling to the right, negative: rolling to the left). NAN if unknown. | |
| pitch_min | float | rad | Minimum hardware pitch angle (positive: up, negative: down). NAN if unknown. | |
| pitch_max | float | rad | Maximum hardware pitch angle (positive: up, negative: down). NAN if unknown. | |
| yaw_min | float | rad | Minimum hardware yaw angle (positive: to the right, negative: to the left). NAN if unknown. | |
| yaw_max | float | rad | Maximum hardware yaw angle (positive: to the right, negative: to the left). NAN if unknown. | |
| uid | uint64_t | UID of gimbal hardware (0 if unknown). | ||
| gimbal_device_id | uint8_t | This 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| flags | uint16_t | GIMBAL_DEVICE_FLAGS | Low level gimbal flags. | |
| q | float[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_x | float | rad/s | X component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN to be ignored. | |
| angular_velocity_y | float | rad/s | Y component of angular velocity (positive: pitching up). The frame is described in the message description. NaN to be ignored. | |
| angular_velocity_z | float | rad/s | Z 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| flags | uint16_t | GIMBAL_DEVICE_FLAGS | Current gimbal flags set. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| q | float[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_x | float | rad/s | X component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN if unknown. | |
| angular_velocity_y | float | rad/s | Y component of angular velocity (positive: pitching up). The frame is described in the message description. NaN if unknown. | |
| angular_velocity_z | float | rad/s | Z component of angular velocity (positive: yawing to the right). The frame is described in the message description. NaN if unknown. | |
| failure_flags | uint32_t | GIMBAL_DEVICE_ERROR_FLAGS | Failure flags (0 for no failure) | |
| delta_yaw | float | rad | Yaw angle relating the quaternions in earth and body frames (see message description). NaN if unknown. | |
| delta_yaw_velocity | float | rad/s | Yaw angular velocity relating the angular velocities in earth and body frames (see message description). NaN if unknown. | |
| gimbal_device_id | uint8_t | This 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| landed_state | uint8_t | MAV_LANDED_STATE | The landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown. | |
| estimator_status | uint16_t | ESTIMATOR_STATUS_FLAGS | Bitmap indicating which estimator outputs are valid. | |
| q | float[4] | Quaternion components of autopilot attitude: w, x, y, z (1 0 0 0 is the null-rotation, Hamilton convention). | ||
| q_estimated_delay_us | uint32_t | us | Estimated delay of the attitude data. 0 if unknown. | |
| vx | float | m/s | X Speed in NED (North, East, Down). NAN if unknown. | |
| vy | float | m/s | Y Speed in NED (North, East, Down). NAN if unknown. | |
| vz | float | m/s | Z Speed in NED (North, East, Down). NAN if unknown. | |
| v_estimated_delay_us | uint32_t | us | Estimated delay of the speed data. 0 if unknown. | |
| feed_forward_angular_velocity_z | float | rad/s | Feed 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_us | uint64_t | us | Timestamp (time since system boot). | |
| angular_velocity_z | float | rad/s | Z 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| gimbal_device_id | uint8_t | Component 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). | ||
| flags | uint32_t | GIMBAL_MANAGER_FLAGS | High level gimbal manager flags to use. | |
| pitch | float | rad | Pitch angle (positive: up, negative: down, NaN to be ignored). | |
| yaw | float | rad | Yaw angle (positive: to the right, negative: to the left, NaN to be ignored). | |
| pitch_rate | float | rad/s | Pitch angular rate (positive: up, negative: down, NaN to be ignored). | |
| yaw_rate | float | rad/s | Yaw 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| gimbal_device_id | uint8_t | Component 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). | |
| flags | uint32_t | GIMBAL_MANAGER_FLAGS | High level gimbal manager flags. |
| pitch | float | Pitch angle unitless (-1..1, positive: up, negative: down, NaN to be ignored). | |
| yaw | float | Yaw angle unitless (-1..1, positive: to the right, negative: to the left, NaN to be ignored). | |
| pitch_rate | float | Pitch angular rate unitless (-1..1, positive: up, negative: down, NaN to be ignored). | |
| yaw_rate | float | Yaw 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| index | uint8_t | Index of the first ESC in this message. minValue = 0, maxValue = 60, increment = 4. | ||
| count | uint8_t | Total 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_type | uint8_t | ESC_CONNECTION_TYPE | Connection type protocol for all ESC. | |
| info | uint8_t | Information regarding online/offline status of each ESC. | ||
| counter | uint16_t | Counter of data packets received. | ||
| failure_flags | uint16_t[4] | ESC_FAILURE_FLAGS | Bitmap of ESC failure flags. | |
| temperature | int16_t[4] | cdegC | Temperature of each ESC. INT16_MAX: if data not supplied by ESC. | |
| error_count | uint32_t[4] | Number of reported errors by each ESC since boot. | ||
| time_usec | uint64_t | us | Timestamp (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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| index | uint8_t | Index of the first ESC in this message. minValue = 0, maxValue = 60, increment = 4. | |
| rpm | int32_t[4] | rpm | Reported motor RPM from each ESC (negative for reverse rotation). |
| voltage | float[4] | V | Voltage measured from each ESC. |
| current | float[4] | A | Current measured from each ESC. |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Sensor ID. | ||
| flags | uint8_t | AIRSPEED_SENSOR_FLAGS | Airspeed sensor flags. | |
| temperature | int16_t | cdegC | Temperature. | |
| airspeed | float | m/s | Calibrated airspeed (CAS). | |
| raw_press | float | hPa | Raw differential pressure. |
GLOBAL_POSITION (296)
Global position measurement or estimate.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Sensor ID | ||
| source | uint8_t | GLOBAL_POSITION_SRC | Source of position/estimate (such as GNSS, estimator, etc.) | |
| flags | uint8_t | GLOBAL_POSITION_FLAGS | Status flags | |
| lat | int32_t | degE7 | Latitude (WGS84) | |
| lon | int32_t | degE7 | Longitude (WGS84) | |
| alt | float | m | Altitude (MSL - position-system specific value) | |
| alt_ellipsoid | float | m | Altitude (WGS84 elipsoid) | |
| eph | float | m | Standard deviation of horizontal position error | |
| epv | float | m | Standard deviation of vertical position error | |
| time_usec | uint64_t | us | Timestamp (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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| ssid | char[32] | Name of Wi-Fi network (SSID). Blank to leave it unchanged when setting. Current SSID when sent back as a response. | |
| password | char[64] | Password. Blank for an open AP. MD5 hash when message is sent back as a response. | |
| mode | int8_t | WIFI_CONFIG_AP_MODE | WiFi Mode. |
| response | int8_t | WIFI_CONFIG_AP_RESPONSE | Message 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.
| Field Name | Type | Description |
|---|---|---|
| spec_version_hash | uint8_t[8] | The first 8 bytes (not characters printed in hex!) of the git hash. |
| library_version_hash | uint8_t[8] | The first 8 bytes (not characters printed in hex!) of the git hash. |
| version | uint16_t | Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc. |
| min_version | uint16_t | Minimum MAVLink version supported |
| max_version | uint16_t | Maximum MAVLink version supported (set to the same value as version by default) |
AIS_VESSEL (301)
The location and information of an AIS vessel
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| turn_rate | int8_t | ddeg/s | Turn rate, 0.1 degrees per second | |
| navigational_status | uint8_t | AIS_NAV_STATUS | Navigational status | |
| type | uint8_t | AIS_TYPE | Type of vessels | |
| dimension_port | uint8_t | m | Distance from lat/lon location to port side | |
| dimension_starboard | uint8_t | m | Distance from lat/lon location to starboard side | |
| callsign | char[7] | The vessel callsign | ||
| name | char[20] | The vessel name | ||
| COG | uint16_t | cdeg | Course over ground | |
| heading | uint16_t | cdeg | True heading | |
| velocity | uint16_t | cm/s | Speed over ground | |
| dimension_bow | uint16_t | m | Distance from lat/lon location to bow | |
| dimension_stern | uint16_t | m | Distance from lat/lon location to stern | |
| tslc | uint16_t | s | Time since last communication in seconds | |
| flags | uint16_t | AIS_FLAGS | Bitmask to indicate various statuses including valid data fields | |
| MMSI | uint32_t | Mobile Marine Service Identifier, 9 decimal digits | ||
| lat | int32_t | degE7 | Latitude | |
| lon | int32_t | degE7 | Longitude |
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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| health | uint8_t | UAVCAN_NODE_HEALTH | Generalized node health status. | |
| mode | uint8_t | UAVCAN_NODE_MODE | Generalized operating mode. | |
| sub_mode | uint8_t | Not used currently. | ||
| vendor_specific_status_code | uint16_t | Vendor-specific status information. | ||
| uptime_sec | uint32_t | s | Time since the start-up of the node. | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| name | char[80] | Node name string. For example, "sapog.px4.io". | |
| hw_version_major | uint8_t | Hardware major version number. | |
| hw_version_minor | uint8_t | Hardware minor version number. | |
| hw_unique_id | uint8_t[16] | Hardware unique 128-bit ID. | |
| sw_version_major | uint8_t | Software major version number. | |
| sw_version_minor | uint8_t | Software minor version number. | |
| uptime_sec | uint32_t | s | Time since the start-up of the node. |
| sw_vcs_commit | uint32_t | Version control system (VCS) revision identifier (e.g. git short commit hash). 0 if unknown. | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| param_id | char[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_index | int16_t | Parameter 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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| param_id | char[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_value | char[128] | Parameter value | |
| param_type | uint8_t | MAV_PARAM_EXT_TYPE | Parameter type. |
| param_count | uint16_t | Total number of parameters | |
| param_index | uint16_t | Index 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| param_id | char[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_value | char[128] | Parameter value | |
| param_type | uint8_t | MAV_PARAM_EXT_TYPE | Parameter type. |
PARAM_EXT_ACK (324)
Response from a PARAM_EXT_SET message.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| param_id | char[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_value | char[128] | Parameter value (new value if PARAM_ACK_ACCEPTED, current value otherwise) | |
| param_type | uint8_t | MAV_PARAM_EXT_TYPE | Parameter type. |
| param_result | uint8_t | PARAM_ACK | Result code. |
OBSTACLE_DISTANCE (330)
Obstacle distances in front of the sensor, starting from the left in increment degrees to the right
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| sensor_type | uint8_t | MAV_DISTANCE_SENSOR | Class id of the distance sensor type. | |
| increment | uint8_t | deg | Angular width in degrees of each array element. Increment direction is clockwise. This field is ignored if increment_f is non-zero. | |
| distances | uint16_t[72] | cm | Distance 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_distance | uint16_t | cm | Minimum distance the sensor can measure. | |
| max_distance | uint16_t | cm | Maximum distance the sensor can measure. | |
| time_usec | uint64_t | us | Timestamp (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_f | float | deg | Angular 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_offset | float | deg | Relative 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. | |
| frame | uint8_t | MAV_FRAME | Coordinate 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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| frame_id | uint8_t | MAV_FRAME | Coordinate frame of reference for the pose data. | |
| child_frame_id | uint8_t | MAV_FRAME | Coordinate frame of reference for the velocity in free space (twist) data. | |
| x | float | m | X Position | |
| y | float | m | Y Position | |
| z | float | m | Z Position | |
| q | float[4] | Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation) | ||
| vx | float | m/s | X linear speed | |
| vy | float | m/s | Y linear speed | |
| vz | float | m/s | Z linear speed | |
| rollspeed | float | rad/s | Roll angular speed | |
| pitchspeed | float | rad/s | Pitch angular speed | |
| yawspeed | float | rad/s | Yaw angular speed | |
| pose_covariance | float[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_covariance | float[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_usec | uint64_t | us | Timestamp (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_counter | uint8_t | Estimate 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_type | uint8_t | MAV_ESTIMATOR_TYPE | Type of estimator that is providing the odometry. | |
| quality | int8_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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| valid_points | uint8_t | Number of valid points (up-to 5 waypoints are possible) | ||
| command | uint16_t[5] | MAV_CMD | MAV_CMD command id of waypoint, set to UINT16_MAX if not being used. | |
| pos_x | float[5] | m | X-coordinate of waypoint, set to NaN if not being used | |
| pos_y | float[5] | m | Y-coordinate of waypoint, set to NaN if not being used | |
| pos_z | float[5] | m | Z-coordinate of waypoint, set to NaN if not being used | |
| vel_x | float[5] | m/s | X-velocity of waypoint, set to NaN if not being used | |
| vel_y | float[5] | m/s | Y-velocity of waypoint, set to NaN if not being used | |
| vel_z | float[5] | m/s | Z-velocity of waypoint, set to NaN if not being used | |
| acc_x | float[5] | m/s/s | X-acceleration of waypoint, set to NaN if not being used | |
| acc_y | float[5] | m/s/s | Y-acceleration of waypoint, set to NaN if not being used | |
| acc_z | float[5] | m/s/s | Z-acceleration of waypoint, set to NaN if not being used | |
| pos_yaw | float[5] | rad | Yaw angle, set to NaN if not being used | |
| vel_yaw | float[5] | rad/s | Yaw rate, set to NaN if not being used | |
| time_usec | uint64_t | us | Timestamp (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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| valid_points | uint8_t | Number of valid control points (up-to 5 points are possible) | |
| pos_x | float[5] | m | X-coordinate of bezier control points. Set to NaN if not being used |
| pos_y | float[5] | m | Y-coordinate of bezier control points. Set to NaN if not being used |
| pos_z | float[5] | m | Z-coordinate of bezier control points. Set to NaN if not being used |
| delta | float[5] | s | Bezier time horizon. Set to NaN if velocity/acceleration should not be incorporated |
| pos_yaw | float[5] | rad | Yaw. Set to NaN for unchanged |
| time_usec | uint64_t | us | Timestamp (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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| status | uint8_t | CELLULAR_STATUS_FLAG | Cellular modem status |
| failure_reason | uint8_t | CELLULAR_NETWORK_FAILED_REASON | Failure reason when status in in CELLULAR_STATUS_FLAG_FAILED |
| type | uint8_t | CELLULAR_NETWORK_RADIO_TYPE | Cellular network radio type: gsm, cdma, lte... |
| quality | uint8_t | Signal quality in percent. If unknown, set to UINT8_MAX | |
| mcc | uint16_t | Mobile country code. If unknown, set to UINT16_MAX | |
| mnc | uint16_t | Mobile network code. If unknown, set to UINT16_MAX | |
| lac | uint16_t | Location area code. If unknown, set to 0 |
ISBD_LINK_STATUS (335)
Status of the Iridium SBD link.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| signal_quality | uint8_t | Signal 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_pending | uint8_t | 1: Ring call pending, 0: No call pending. | |
| tx_session_pending | uint8_t | 1: Transmission session pending, 0: No transmission session pending. | |
| rx_session_pending | uint8_t | 1: Receiving session pending, 0: No receiving session pending. | |
| failed_sessions | uint16_t | Number of failed SBD sessions. | |
| successful_sessions | uint16_t | Number of successful SBD sessions. | |
| timestamp | uint64_t | us | Timestamp (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_heartbeat | uint64_t | us | Timestamp 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| enable_lte | uint8_t | Enable/disable LTE. 0: setting unchanged, 1: disabled, 2: enabled. Current setting when sent back as a response. | |
| enable_pin | uint8_t | Enable/disable PIN on the SIM card. 0: setting unchanged, 1: disabled, 2: enabled. Current setting when sent back as a response. | |
| pin | char[16] | PIN sent to the SIM card. Blank when PIN is disabled. Empty when message is sent back as a response. | |
| new_pin | char[16] | New PIN when changing the PIN. Blank to leave it unchanged. Empty when message is sent back as a response. | |
| apn | char[32] | Name of the cellular APN. Blank to leave it unchanged. Current APN when sent back as a response. | |
| puk | char[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. | |
| roaming | uint8_t | Enable/disable roaming. 0: setting unchanged, 1: disabled, 2: enabled. Current setting when sent back as a response. | |
| response | uint8_t | CELLULAR_CONFIG_RESPONSE | Message acceptance response (sent back to GS). |
RAW_RPM (339)
RPM sensor data message.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| index | uint8_t | Index of this RPM sensor (0-indexed) | |
| frequency | float | rpm | Indicated rate |
UTM_GLOBAL_POSITION (340)
The global position resulting from GPS and sensor fusion.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| uas_id | uint8_t[18] | Unique UAS ID. | ||
| flight_state | uint8_t | UTM_FLIGHT_STATE | Flight state | |
| flags | uint8_t | UTM_DATA_AVAIL_FLAGS | Bitwise OR combination of the data available flags. | |
| vx | int16_t | cm/s | Ground X speed (latitude, positive north) | |
| vy | int16_t | cm/s | Ground Y speed (longitude, positive east) | |
| vz | int16_t | cm/s | Ground Z speed (altitude, positive down) | |
| h_acc | uint16_t | mm | Horizontal position uncertainty (standard deviation) | |
| v_acc | uint16_t | mm | Altitude uncertainty (standard deviation) | |
| vel_acc | uint16_t | cm/s | Speed uncertainty (standard deviation) | |
| update_rate | uint16_t | cs | Time until next update. Set to 0 if unknown or in data driven mode. | |
| lat | int32_t | degE7 | Latitude (WGS84) | |
| lon | int32_t | degE7 | Longitude (WGS84) | |
| alt | int32_t | mm | Altitude (WGS84) | |
| relative_alt | int32_t | mm | Altitude above ground | |
| next_lat | int32_t | degE7 | Next waypoint, latitude (WGS84) | |
| next_lon | int32_t | degE7 | Next waypoint, longitude (WGS84) | |
| next_alt | int32_t | mm | Next waypoint, altitude (WGS84) | |
| time | uint64_t | us | Time 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| param_id | char[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 | |
| error | uint8_t | MAV_PARAM_ERROR | Error being returned to client. |
| param_index | int16_t | Parameter 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| name | char[10] | Name, for human-friendly display in a Ground Control Station | |
| array_id | uint16_t | Unique ID used to discriminate between arrays | |
| time_usec | uint64_t | us | Timestamp (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. |
| data | float[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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | |
| target_component | uint8_t | Component ID (0 for broadcast). | |
| horizontal_speed_limit | float | m/s | Limit for horizontal movement in MAV_FRAME_LOCAL_NED. NaN: Field not used (ignore) |
| vertical_speed_limit | float | m/s | Limit for vertical movement in MAV_FRAME_LOCAL_NED. NaN: Field not used (ignore) |
| yaw_rate_limit | float | rad/s | Limit 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| horizontal_speed_limit | float | m/s | Limit for horizontal movement in MAV_FRAME_LOCAL_NED. NaN: No limit applied |
| vertical_speed_limit | float | m/s | Limit for vertical movement in MAV_FRAME_LOCAL_NED. NaN: No limit applied |
| yaw_rate_limit | float | rad/s | Limit 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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| frame | uint8_t | MAV_FRAME | The coordinate system of the fields: x, y, z. | |
| radius | float | m | Radius of the orbit circle. Positive values orbit clockwise, negative values orbit counter-clockwise. | |
| x | int32_t | X coordinate of center point. Coordinate system depends on frame field: local = x position in meters * 1e4, global = latitude in degrees * 1e7. | ||
| y | int32_t | Y coordinate of center point. Coordinate system depends on frame field: local = x position in meters * 1e4, global = latitude in degrees * 1e7. | ||
| z | float | m | Altitude of center point. Coordinate system depends on frame field. | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| frame | uint8_t | MAV_FRAME | The coordinate system of the fields: x, y, z. | |
| major_radius | float | m | Major axis radius of the figure eight. Positive: orbit the north circle clockwise. Negative: orbit the north circle counter-clockwise. | |
| minor_radius | float | m | Minor axis radius of the figure eight. Defines the radius of two circles that make up the figure. | |
| orientation | float | rad | Orientation of the figure eight major axis with respect to true north in [-pi,pi). | |
| x | int32_t | X coordinate of center point. Coordinate system depends on frame field. | ||
| y | int32_t | Y coordinate of center point. Coordinate system depends on frame field. | ||
| z | float | m | Altitude of center point. Coordinate system depends on frame field. | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Battery ID | ||
| percent_remaining | uint8_t | % | Remaining battery energy. Values: [0-100], UINT8_MAX: field not provided. | |
| temperature | int16_t | cdegC | Temperature of the whole battery pack (not internal electronics). INT16_MAX field not provided. | |
| voltage | float | V | Battery voltage (total). NaN: field not provided. | |
| current | float | A | Battery current (through all cells/loads). Positive value when discharging and negative if charging. NaN: field not provided. | |
| capacity_consumed | float | Ah | Consumed 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_remaining | float | Ah | Remaining 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_flags | uint32_t | MAV_BATTERY_STATUS_FLAGS | Fault, 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Battery ID | ||
| battery_function | uint8_t | MAV_BATTERY_FUNCTION | Function of the battery | |
| type | uint8_t | MAV_BATTERY_TYPE | Type (chemistry) of the battery | |
| serial_number | char[16] | Serial number in ASCII characters, 0 terminated. All 0: field not provided. | ||
| device_name | char[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_count | uint16_t | Charge/discharge cycle count. UINT16_MAX: field not provided. | ||
| weight | uint16_t | g | Battery weight. 0: field not provided. | |
| discharge_minimum_voltage | uint16_t | mV | Minimum per-cell voltage when discharging. If not supplied set to UINT16_MAX value. | |
| charging_minimum_voltage | uint16_t | mV | Minimum per-cell voltage when charging. If not supplied set to UINT16_MAX value. | |
| resting_minimum_voltage | uint16_t | mV | Minimum per-cell voltage when resting. If not supplied set to UINT16_MAX value. | |
| capacity_full_specification | int32_t | mAh | Capacity when full according to manufacturer, -1: field not provided. | |
| capacity_full | int32_t | mAh | Capacity when full (accounting for battery degradation), -1: field not provided. | |
| charging_maximum_voltage | uint16_t | mV | Maximum per-cell voltage when charged. 0: field not provided. | |
| cells_in_series | uint8_t | Number of battery cells in series. 0: field not provided. | ||
| discharge_maximum_current | uint32_t | mA | Maximum pack discharge current. 0: field not provided. | |
| discharge_maximum_burst_current | uint32_t | mA | Maximum pack discharge burst current. 0: field not provided. | |
| manufacture_date | char[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).
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Fuel ID. Must match ID of other messages for same fuel system, such as BATTERY_STATUS_V2. | ||
| percent_remaining | uint8_t | % | Percentage of remaining fuel, relative to full. Values: [0-100], UINT8_MAX: field not provided. | |
| maximum_fuel | float | Capacity when full. Must be provided. | ||
| consumed_fuel | float | Consumed fuel (measured). This value should not be inferred: if not measured set to NaN. NaN: field not provided. | ||
| remaining_fuel | float | Remaining fuel until empty (measured). The value should not be inferred: if not measured set to NaN. NaN: field not provided. | ||
| flow_rate | float | Positive value when emptying/using, and negative if filling/replacing. NaN: field not provided. | ||
| temperature | float | K | Fuel temperature. NaN: field not provided. | |
| fuel_type | uint32_t | MAV_FUEL_TYPE | Fuel 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | Battery ID | ||
| battery_function | uint8_t | MAV_BATTERY_FUNCTION | Function of the battery. | |
| type | uint8_t | MAV_BATTERY_TYPE | Type (chemistry) of the battery. | |
| state_of_health | uint8_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_series | uint8_t | Number of battery cells in series. 0: field not provided. | ||
| manufacture_date | char[9] | Manufacture date (DDMMYYYY) in ASCII characters, 0 terminated. All 0: field not provided. | ||
| serial_number | char[32] | Serial number in ASCII characters, 0 terminated. All 0: field not provided. | ||
| name | char[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_count | uint16_t | Lifetime count of the number of charge/discharge cycles (https://en.wikipedia.org/wiki/Charge_cycle). UINT16_MAX: field not provided. | ||
| weight | uint16_t | g | Battery weight. 0: field not provided. | |
| discharge_minimum_voltage | float | V | Minimum per-cell voltage when discharging. 0: field not provided. | |
| charging_minimum_voltage | float | V | Minimum per-cell voltage when charging. 0: field not provided. | |
| resting_minimum_voltage | float | V | Minimum per-cell voltage when resting. 0: field not provided. | |
| charging_maximum_voltage | float | V | Maximum per-cell voltage when charged. 0: field not provided. | |
| charging_maximum_current | float | A | Maximum pack continuous charge current. 0: field not provided. | |
| nominal_voltage | float | V | Battery nominal voltage. Used for conversion between Wh and Ah. 0: field not provided. | |
| discharge_maximum_current | float | A | Maximum pack discharge current. 0: field not provided. | |
| discharge_maximum_burst_current | float | A | Maximum pack discharge burst current. 0: field not provided. | |
| design_capacity | float | Ah | Fully charged design capacity. 0: field not provided. | |
| full_charge_capacity | float | Ah | Predicted 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| generator_speed | uint16_t | rpm | Speed of electrical generator or alternator. UINT16_MAX: field not provided. | |
| rectifier_temperature | int16_t | degC | The temperature of the rectifier or power converter. INT16_MAX: field not provided. | |
| generator_temperature | int16_t | degC | The temperature of the mechanical motor, fuel cell core or generator. INT16_MAX: field not provided. | |
| battery_current | float | A | Current into/out of battery. Positive for out. Negative for in. NaN: field not provided. | |
| load_current | float | A | Current 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_generated | float | W | The power being generated. NaN: field not provided | |
| bus_voltage | float | V | Voltage 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_setpoint | float | A | The target battery current. Positive for out. Negative for in. NaN: field not provided | |
| runtime | uint32_t | s | Seconds this generator has run since it was rebooted. UINT32_MAX: field not provided. | |
| time_until_maintenance | int32_t | s | Seconds until this generator requires maintenance. A negative value indicates maintenance is past-due. INT32_MAX: field not provided. | |
| status | uint64_t | MAV_GENERATOR_STATUS_FLAG | Status 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| active | uint32_t | Active outputs | |
| actuator | float[32] | Servo / motor output array values. Zero values indicate unused channels. | |
| time_usec | uint64_t | us | Timestamp (since system boot). |
TIME_ESTIMATE_TO_TARGET (380)
Time/duration estimates for various events and actions given the current vehicle state and position.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| safe_return | int32_t | s | Estimated 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. |
| land | int32_t | s | Estimated 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_item | int32_t | s | Estimated time for reaching/completing the currently active mission item. -1 means no time estimate available. |
| mission_end | int32_t | s | Estimated time for completing the current mission. -1 means no mission active and/or no estimate available. |
| commanded_action | int32_t | s | Estimated 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (can be 0 for broadcast, but this is discouraged) | |
| target_component | uint8_t | Component ID (can be 0 for broadcast, but this is discouraged) | |
| payload_length | uint8_t | Length of the data transported in payload | |
| payload | uint8_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_type | uint16_t | MAV_TUNNEL_PAYLOAD_TYPE | A 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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID. |
| target_component | uint8_t | Component ID. |
| bus | uint8_t | Bus number |
| len | uint8_t | Frame length |
| data | uint8_t[8] | Frame data |
| id | uint32_t | Frame 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)
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID. |
| target_component | uint8_t | Component ID. |
| bus | uint8_t | bus number |
| len | uint8_t | Frame length |
| data | uint8_t[64] | Frame data |
| id | uint32_t | Frame 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| bus | uint8_t | bus number | |
| operation | uint8_t | CAN_FILTER_OP | what operation to perform on the filter list. See CAN_FILTER_OP enum. |
| num_ids | uint8_t | number of IDs in filter list | |
| ids | uint16_t[16] | filter IDs, length num_ids |
ONBOARD_COMPUTER_STATUS (390)
Hardware status sent by an onboard computer.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| type | uint8_t | Type 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_cores | uint8_t[8] | CPU usage on the component in percent (100 - idle). A value of UINT8_MAX implies the field is unused. | ||
| cpu_combined | uint8_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_cores | uint8_t[4] | GPU usage on the component in percent (100 - idle). A value of UINT8_MAX implies the field is unused. | ||
| gpu_combined | uint8_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_board | int8_t | degC | Temperature of the board. A value of INT8_MAX implies the field is unused. | |
| temperature_core | int8_t[8] | degC | Temperature of the CPU core. A value of INT8_MAX implies the field is unused. | |
| fan_speed | int16_t[4] | rpm | Fan speeds. A value of INT16_MAX implies the field is unused. | |
| uptime | uint32_t | ms | Time since system boot. | |
| ram_usage | uint32_t | MiB | Amount of used RAM on the component system. A value of UINT32_MAX implies the field is unused. | |
| ram_total | uint32_t | MiB | Total amount of RAM on the component system. A value of UINT32_MAX implies the field is unused. | |
| storage_type | uint32_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_usage | uint32_t[4] | MiB | Amount of used storage space on the component system. A value of UINT32_MAX implies the field is unused. | |
| storage_total | uint32_t[4] | MiB | Total amount of storage space on the component system. A value of UINT32_MAX implies the field is unused. | |
| link_type | uint32_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_rate | uint32_t[6] | KiB/s | Network traffic from the component system. A value of UINT32_MAX implies the field is unused. | |
| link_rx_rate | uint32_t[6] | KiB/s | Network traffic to the component system. A value of UINT32_MAX implies the field is unused. | |
| link_tx_max | uint32_t[6] | KiB/s | Network capacity from the component system. A value of UINT32_MAX implies the field is unused. | |
| link_rx_max | uint32_t[6] | KiB/s | Network capacity to the component system. A value of UINT32_MAX implies the field is unused. | |
| time_usec | uint64_t | us | Timestamp (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_flags | uint16_t | COMPUTER_STATUS_FLAGS | Bitmap of status flags. |
COMPONENT_INFORMATION (395)
Component information message, which may be requested using MAV_CMD_REQUEST_MESSAGE.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| general_metadata_uri | char[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_uri | char[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_ms | uint32_t | ms | Timestamp (time since system boot). |
| general_metadata_file_crc | uint32_t | CRC32 of the general metadata file (general_metadata_uri). | |
| peripherals_metadata_file_crc | uint32_t | CRC32 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| vendor_name | char[32] | Name of the component vendor. Needs to be zero terminated. The field is optional and can be empty/all zeros. | ||
| model_name | char[32] | Name of the component model. Needs to be zero terminated. The field is optional and can be empty/all zeros. | ||
| software_version | char[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_version | char[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_number | char[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_ms | uint32_t | ms | Timestamp (time since system boot). | |
| time_manufacture_s | uint32_t | s | Date of manufacture as a UNIX Epoch time (since 1.1.1970) in seconds. | |
| capabilities | uint64_t | MAV_PROTOCOL_CAPABILITY | Component 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| uri | char[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_ms | uint32_t | ms | Timestamp (time since system boot). |
| file_crc | uint32_t | CRC32 of the general metadata file. |
PLAY_TUNE_V2 (400)
Play vehicle tone/tune (buzzer). Supersedes message PLAY_TUNE.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| tune | char[248] | Tune definition as a NULL-terminated string. | |
| format | uint32_t | TUNE_FORMAT | Tune format |
SUPPORTED_TUNES (401)
Tune formats supported by vehicle. This should be emitted as response to MAV_CMD_REQUEST_MESSAGE.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| format | uint32_t | TUNE_FORMAT | Bitfield 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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| destination_component | uint8_t | Component ID | |
| destination_system | uint8_t | System ID | |
| log_levels | uint8_t | Log 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 | |
| arguments | uint8_t[40] | Arguments (depend on event ID). | |
| sequence | uint16_t | Sequence number. | |
| id | uint32_t | Event ID (as defined in the component metadata) | |
| event_time_boot_ms | uint32_t | ms | Timestamp (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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| flags | uint8_t | MAV_EVENT_CURRENT_SEQUENCE_FLAGS | Flag bitset. |
| sequence | uint16_t | Sequence 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.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID |
| target_component | uint8_t | Component ID |
| first_sequence | uint16_t | First sequence number of the requested event. |
| last_sequence | uint16_t | Last 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).
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID | |
| target_component | uint8_t | Component ID | |
| reason | uint8_t | MAV_EVENT_ERROR_REASON | Error reason. |
| sequence | uint16_t | Sequence number. | |
| sequence_oldest_available | uint16_t | Oldest 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| group_id | uint32_t | Mission-unique group id (from MAV_CMD_GROUP_START). | |
| mission_checksum | uint32_t | CRC32 checksum of current plan for MAV_MISSION_TYPE_ALL. As defined in MISSION_CHECKSUM message. | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| group_id | uint32_t | Mission-unique group id (from MAV_CMD_GROUP_END). | |
| mission_checksum | uint32_t | CRC32 checksum of current plan for MAV_MISSION_TYPE_ALL. As defined in MISSION_CHECKSUM message. | |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID (ID of target system, normally flight controller). | ||
| target_component | uint8_t | Component ID (normally 0 for broadcast). | ||
| count | uint8_t | Total number of RC channels being received. This can be larger than 32, indicating that more channels are available but not given in this message. | ||
| flags | uint16_t | RADIO_RC_CHANNELS_FLAGS | Radio RC channels status flags. | |
| time_last_update_ms | uint32_t | ms | Time when the data in the channels field were last updated (time since boot in the receiver's time domain). | |
| channels | int16_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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| number_modes | uint8_t | The total number of available modes for the current vehicle type. | |
| mode_index | uint8_t | The 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_mode | uint8_t | MAV_STANDARD_MODE | Standard mode. |
| mode_name | char[35] | Name of custom mode, with null termination character. Should be omitted for standard modes. | |
| custom_mode | uint32_t | A bitfield for use for autopilot-specific flags | |
| properties | uint32_t | MAV_MODE_PROPERTY | Mode 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
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| standard_mode | uint8_t | MAV_STANDARD_MODE | Standard mode. |
| custom_mode | uint32_t | A bitfield for use for autopilot-specific flags | |
| intended_custom_mode | uint32_t | The 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
| Field Name | Type | Description |
|---|---|---|
| seq | uint8_t | Sequence 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
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| enable | uint8_t | 0: Illuminators OFF, 1: Illuminators ON | ||
| mode_bitmask | uint8_t | ILLUMINATOR_MODE | Supported illuminator modes | |
| mode | uint8_t | ILLUMINATOR_MODE | Illuminator mode | |
| uptime_ms | uint32_t | ms | Time since the start-up of the illuminator in ms | |
| error_status | uint32_t | ILLUMINATOR_ERROR_FLAGS | Errors | |
| brightness | float | % | Illuminator brightness | |
| strobe_period | float | s | Illuminator strobing period in seconds | |
| strobe_duty_cycle | float | % | Illuminator strobing duty cycle | |
| temp_c | float | Temperature in Celsius | ||
| min_strobe_period | float | s | Minimum strobing period in seconds | |
| max_strobe_period | float | s | Maximum strobing period in seconds |
GNSS_INTEGRITY (441)
Information about key components of GNSS receivers, like signal authentication, interference and system errors.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | GNSS receiver id. Must match instance ids of other messages from same receiver. | ||
| authentication_state | uint8_t | GPS_AUTHENTICATION_STATE | Signal authentication state of the GPS system. | |
| jamming_state | uint8_t | GPS_JAMMING_STATE | Signal jamming state of the GPS system. | |
| spoofing_state | uint8_t | GPS_SPOOFING_STATE | Signal spoofing state of the GPS system. | |
| raim_state | uint8_t | GPS_RAIM_STATE | The state of the RAIM processing. | |
| corrections_quality | uint8_t | An abstract value representing the estimated quality of incoming corrections, or 255 if not available. | ||
| system_status_summary | uint8_t | An abstract value representing the overall status of the receiver, or 255 if not available. | ||
| gnss_signal_quality | uint8_t | An abstract value representing the quality of incoming GNSS signals, or 255 if not available. | ||
| post_processing_quality | uint8_t | An abstract value representing the estimated PPK quality, or 255 if not available. | ||
| raim_hfom | uint16_t | cm | Horizontal expected accuracy using satellites successfully validated using RAIM. | |
| raim_vfom | uint16_t | cm | Vertical expected accuracy using satellites successfully validated using RAIM. | |
| system_errors | uint32_t | GPS_SYSTEM_ERROR_FLAGS | Errors in the GPS system. |
TARGET_ABSOLUTE (510)
Current motion information from sensors on a target
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | The ID of the target if multiple targets are present | ||
| sensor_capabilities | uint8_t | TARGET_ABSOLUTE_SENSOR_CAPABILITY_FLAGS | Bitmap to indicate the sensor's reporting capabilities | |
| lat | int32_t | degE7 | Target's latitude (WGS84) | |
| lon | int32_t | degE7 | Target's longitude (WGS84) | |
| alt | float | m | Target's altitude (AMSL) | |
| vel | float[3] | m/s | Target's velocity in its body frame | |
| acc | float[3] | m/s/s | Linear target's acceleration in its body frame | |
| q_target | float[4] | Quaternion of the target's orientation from its body frame to the vehicle's NED frame. | ||
| rates | float[3] | rad/s | Target's roll, pitch and yaw rates | |
| position_std | float[2] | m | Standard deviation of horizontal (eph) and vertical (epv) position errors | |
| vel_std | float[3] | m/s | Standard deviation of the target's velocity in its body frame | |
| acc_std | float[3] | m/s/s | Standard deviation of the target's acceleration in its body frame | |
| timestamp | uint64_t | us | Timestamp (UNIX epoch time). |
TARGET_RELATIVE (511)
The location of a target measured by MAV's onboard sensors.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| id | uint8_t | The ID of the target if multiple targets are present | ||
| frame | uint8_t | TARGET_OBS_FRAME | Coordinate frame used for following fields. | |
| type | uint8_t | LANDING_TARGET_TYPE | Type of target | |
| x | float | m | X Position of the target in TARGET_OBS_FRAME | |
| y | float | m | Y Position of the target in TARGET_OBS_FRAME | |
| z | float | m | Z Position of the target in TARGET_OBS_FRAME | |
| pos_std | float[3] | m | Standard deviation of the target's position in TARGET_OBS_FRAME | |
| yaw_std | float | rad | Standard deviation of the target's orientation in TARGET_OBS_FRAME | |
| q_target | float[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_sensor | float[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) | ||
| timestamp | uint64_t | us | Timestamp (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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| sysid_in_control | uint8_t | System ID of GCS MAVLink component in control (0: no GCS in control). | |
| flags | uint8_t | GCS_CONTROL_STATUS_FLAGS | Control 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
| Field Name | Type | Unit | Description |
|---|---|---|---|
| adc121_vspb_volt | float | V | Power board voltage sensor reading |
| adc121_cspb_amp | float | A | Power board current sensor reading |
| adc121_cs1_amp | float | A | Board current sensor 1 reading |
| adc121_cs2_amp | float | A | Board current sensor 2 reading |
SENS_MPPT (8003)
Maximum Power Point Tracker (MPPT) sensor data for solar module power performance tracking
| Field Name | Type | Unit | Description |
|---|---|---|---|
| mppt1_status | uint8_t | MPPT1 status | |
| mppt2_status | uint8_t | MPPT2 status | |
| mppt3_status | uint8_t | MPPT3 status | |
| mppt1_pwm | uint16_t | us | MPPT1 pwm |
| mppt2_pwm | uint16_t | us | MPPT2 pwm |
| mppt3_pwm | uint16_t | us | MPPT3 pwm |
| mppt1_volt | float | V | MPPT1 voltage |
| mppt1_amp | float | A | MPPT1 current |
| mppt2_volt | float | V | MPPT2 voltage |
| mppt2_amp | float | A | MPPT2 current |
| mppt3_volt | float | V | MPPT3 voltage |
| mppt3_amp | float | A | MPPT3 current |
| mppt_timestamp | uint64_t | us | MPPT last timestamp |
ASLCTRL_DATA (8004)
ASL-fixed-wing controller data
| Field Name | Type | Unit | Description |
|---|---|---|---|
| aslctrl_mode | uint8_t | ASLCTRL control-mode (manual, stabilized, auto, etc...) | |
| SpoilersEngaged | uint8_t | ||
| h | float | See sourcecode for a description of these values... | |
| hRef | float | ||
| hRef_t | float | ||
| PitchAngle | float | deg | Pitch angle |
| PitchAngleRef | float | deg | Pitch angle reference |
| q | float | ||
| qRef | float | ||
| uElev | float | ||
| uThrot | float | ||
| uThrot2 | float | ||
| nZ | float | ||
| AirspeedRef | float | m/s | Airspeed reference |
| YawAngle | float | deg | Yaw angle |
| YawAngleRef | float | deg | Yaw angle reference |
| RollAngle | float | deg | Roll angle |
| RollAngleRef | float | deg | Roll angle reference |
| p | float | ||
| pRef | float | ||
| r | float | ||
| rRef | float | ||
| uAil | float | ||
| uRud | float | ||
| timestamp | uint64_t | us | Timestamp |
ASLCTRL_DEBUG (8005)
ASL-fixed-wing controller debug data
| Field Name | Type | Description |
|---|---|---|
| i8_1 | uint8_t | Debug data |
| i8_2 | uint8_t | Debug data |
| i32_1 | uint32_t | Debug data |
| f_1 | float | Debug data |
| f_2 | float | Debug data |
| f_3 | float | Debug data |
| f_4 | float | Debug data |
| f_5 | float | Debug data |
| f_6 | float | Debug data |
| f_7 | float | Debug data |
| f_8 | float | Debug data |
ASLUAV_STATUS (8006)
Extended state information for ASLUAVs
| Field Name | Type | Description |
|---|---|---|
| LED_status | uint8_t | Status of the position-indicator LEDs |
| SATCOM_status | uint8_t | Status of the IRIDIUM satellite communication system |
| Servo_status | uint8_t[8] | Status vector for up to 8 servos |
| Motor_rpm | float | Motor RPM |
EKF_EXT (8007)
Extended EKF state estimates for ASLUAVs
| Field Name | Type | Unit | Description |
|---|---|---|---|
| Windspeed | float | m/s | Magnitude of wind velocity (in lateral inertial plane) |
| WindDir | float | rad | Wind heading angle from North |
| WindZ | float | m/s | Z (Down) component of inertial wind velocity |
| Airspeed | float | m/s | Magnitude of air velocity |
| beta | float | rad | Sideslip angle |
| alpha | float | rad | Angle of attack |
| timestamp | uint64_t | us | Time since system start |
ASL_OBCTRL (8008)
Off-board controls/commands for ASLUAVs
| Field Name | Type | Unit | Description |
|---|---|---|---|
| obctrl_status | uint8_t | Off-board computer status | |
| uElev | float | Elevator command [~] | |
| uThrot | float | Throttle command [~] | |
| uThrot2 | float | Throttle 2 command [~] | |
| uAilL | float | Left aileron command [~] | |
| uAilR | float | Right aileron command [~] | |
| uRud | float | Rudder command [~] | |
| timestamp | uint64_t | us | Time since system start |
SENS_ATMOS (8009)
Atmospheric sensors (temperature, humidity, ...)
| Field Name | Type | Unit | Description |
|---|---|---|---|
| TempAmbient | float | degC | Ambient temperature |
| Humidity | float | % | Relative humidity |
| timestamp | uint64_t | us | Time since system boot |
SENS_BATMON (8010)
Battery pack monitoring data for Li-Ion batteries
| Field Name | Type | Unit | Description |
|---|---|---|---|
| SoC | uint8_t | Battery pack state-of-charge | |
| voltage | uint16_t | mV | Battery pack voltage |
| current | int16_t | mA | Battery pack current |
| batterystatus | uint16_t | Battery monitor status report bits in Hex | |
| serialnumber | uint16_t | Battery monitor serial number in Hex | |
| cellvoltage1 | uint16_t | mV | Battery pack cell 1 voltage |
| cellvoltage2 | uint16_t | mV | Battery pack cell 2 voltage |
| cellvoltage3 | uint16_t | mV | Battery pack cell 3 voltage |
| cellvoltage4 | uint16_t | mV | Battery pack cell 4 voltage |
| cellvoltage5 | uint16_t | mV | Battery pack cell 5 voltage |
| cellvoltage6 | uint16_t | mV | Battery pack cell 6 voltage |
| temperature | float | degC | Battery pack temperature |
| safetystatus | uint32_t | Battery monitor safetystatus report bits in Hex | |
| operationstatus | uint32_t | Battery monitor operation status report bits in Hex | |
| batmon_timestamp | uint64_t | us | Time since system start |
FW_SOARING_DATA (8011)
Fixed-wing soaring (i.e. thermal seeking) data
| Field Name | Type | Unit | Description |
|---|---|---|---|
| ControlMode | uint8_t | Control Mode [-] | |
| valid | uint8_t | Data valid [-] | |
| xW | float | m/s | Thermal core updraft strength |
| xR | float | m | Thermal radius |
| xLat | float | deg | Thermal center latitude |
| xLon | float | deg | Thermal center longitude |
| VarW | float | Variance W | |
| VarR | float | Variance R | |
| VarLat | float | Variance Lat | |
| VarLon | float | Variance Lon | |
| LoiterRadius | float | m | Suggested loiter radius |
| LoiterDirection | float | Suggested loiter direction | |
| DistToSoarPoint | float | m | Distance to soar point |
| vSinkExp | float | m/s | Expected sink rate at current airspeed, roll and throttle |
| z1_LocalUpdraftSpeed | float | m/s | Measurement / updraft speed at current/local airplane position |
| z2_DeltaRoll | float | deg | Measurement / roll angle tracking error |
| z1_exp | float | Expected measurement 1 | |
| z2_exp | float | Expected measurement 2 | |
| ThermalGSNorth | float | m/s | Thermal drift (from estimator prediction step only) |
| ThermalGSEast | float | m/s | Thermal drift (from estimator prediction step only) |
| TSE_dot | float | m/s | Total specific energy change (filtered) |
| DebugVar1 | float | Debug variable 1 | |
| DebugVar2 | float | Debug variable 2 | |
| timestamp | uint64_t | ms | Timestamp |
| timestampModeChanged | uint64_t | ms | Timestamp since last mode change |
SENSORPOD_STATUS (8012)
Monitoring of sensorpod status
| Field Name | Type | Unit | Description |
|---|---|---|---|
| visensor_rate_1 | uint8_t | Rate of ROS topic 1 | |
| visensor_rate_2 | uint8_t | Rate of ROS topic 2 | |
| visensor_rate_3 | uint8_t | Rate of ROS topic 3 | |
| visensor_rate_4 | uint8_t | Rate of ROS topic 4 | |
| recording_nodes_count | uint8_t | Number of recording nodes | |
| cpu_temp | uint8_t | degC | Temperature of sensorpod CPU in |
| free_space | uint16_t | Free space available in recordings directory in [Gb] * 1e2 | |
| timestamp | uint64_t | ms | Timestamp in linuxtime (since 1.1.1970) |
SENS_POWER_BOARD (8013)
Monitoring of power board status
| Field Name | Type | Unit | Description |
|---|---|---|---|
| pwr_brd_status | uint8_t | Power board status register | |
| pwr_brd_led_status | uint8_t | Power board leds status | |
| pwr_brd_system_volt | float | V | Power board system voltage |
| pwr_brd_servo_volt | float | V | Power board servo voltage |
| pwr_brd_digital_volt | float | V | Power board digital voltage |
| pwr_brd_mot_l_amp | float | A | Power board left motor current sensor |
| pwr_brd_mot_r_amp | float | A | Power board right motor current sensor |
| pwr_brd_analog_amp | float | A | Power board analog current sensor |
| pwr_brd_digital_amp | float | A | Power board digital current sensor |
| pwr_brd_ext_amp | float | A | Power board extension current sensor |
| pwr_brd_aux_amp | float | A | Power board aux current sensor |
| timestamp | uint64_t | us | Timestamp |
GSM_LINK_STATUS (8014)
Status of GSM modem (connected to onboard computer)
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| gsm_modem_type | uint8_t | GSM_MODEM_TYPE | GSM modem used | |
| gsm_link_type | uint8_t | GSM_LINK_TYPE | GSM link type | |
| rssi | uint8_t | RSSI as reported by modem (unconverted) | ||
| rsrp_rscp | uint8_t | RSRP (LTE) or RSCP (WCDMA) as reported by modem (unconverted) | ||
| sinr_ecio | uint8_t | SINR (LTE) or ECIO (WCDMA) as reported by modem (unconverted) | ||
| rsrq | uint8_t | RSRQ (LTE only) as reported by modem (unconverted) | ||
| timestamp | uint64_t | us | Timestamp (of OBC) |
SATCOM_LINK_STATUS (8015)
Status of the SatCom link
| Field Name | Type | Unit | Description |
|---|---|---|---|
| signal_quality | uint8_t | Signal quality | |
| ring_pending | uint8_t | Ring call pending | |
| tx_session_pending | uint8_t | Transmission session pending | |
| rx_session_pending | uint8_t | Receiving session pending | |
| failed_sessions | uint16_t | Number of failed sessions | |
| successful_sessions | uint16_t | Number of successful sessions | |
| timestamp | uint64_t | us | Timestamp |
| last_heartbeat | uint64_t | us | Timestamp of the last successful sbd session |
SENSOR_AIRFLOW_ANGLES (8016)
Calibrated airflow angle measurements
| Field Name | Type | Unit | Description |
|---|---|---|---|
| angleofattack_valid | uint8_t | Angle of attack measurement valid | |
| sideslip_valid | uint8_t | Sideslip angle measurement valid | |
| angleofattack | float | deg | Angle of attack |
| sideslip | float | deg | Sideslip angle |
| timestamp | uint64_t | us | Timestamp |
WHEEL_DISTANCE (9000)
Cumulative distance traveled for each reported wheel.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| count | uint8_t | Number of wheels reported. | |
| time_usec | uint64_t | us | Timestamp (synced to UNIX time or since system boot). |
| distance | double[16] | m | Distance 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| temperature | int16_t | degC | Temperature of the motor. INT16_MAX if unknown | |
| line_length | float | m | Length of line released. NaN if unknown | |
| speed | float | m/s | Speed line is being released or retracted. Positive values if being released, negative values if being retracted, NaN if unknown | |
| tension | float | kg | Tension on the line. NaN if unknown | |
| voltage | float | V | Voltage of the battery supplying the winch. NaN if unknown | |
| current | float | A | Current draw from the winch. NaN if unknown | |
| status | uint32_t | MAV_WINCH_STATUS_FLAG | Status flags | |
| time_usec | uint64_t | us | Timestamp (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)
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| callsign | char[9] | Vehicle identifier (8 characters, null terminated, valid characters are A-Z, 0-9, " " only) | ||
| emitterType | uint8_t | ADSB_EMITTER_TYPE | Transmitting vehicle type. See ADSB_EMITTER_TYPE enum | |
| aircraftSize | uint8_t | UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE | Aircraft length and width encoding (table 2-35 of DO-282B) | |
| gpsOffsetLat | uint8_t | UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT | GPS antenna lateral offset (table 2-36 of DO-282B) | |
| gpsOffsetLon | uint8_t | UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON | GPS antenna longitudinal offset from nose [if non-zero, take position (in meters) divide by 2 and add one] (table 2-37 DO-282B) | |
| rfSelect | uint8_t | UAVIONIX_ADSB_OUT_RF_SELECT | ADS-B transponder receiver and transmit enable flags | |
| stallSpeed | uint16_t | cm/s | Aircraft stall speed in cm/s | |
| ICAO | uint32_t | Vehicle address (24 bit) |
UAVIONIX_ADSB_OUT_DYNAMIC (10002)
Dynamic data used to generate ADS-B out transponder data (send at 5Hz)
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| gpsFix | uint8_t | UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX | 0-1: no fix, 2: 2D fix, 3: 3D fix, 4: DGPS, 5: RTK | |
| numSats | uint8_t | Number of satellites visible. If unknown set to UINT8_MAX | ||
| emergencyStatus | uint8_t | UAVIONIX_ADSB_EMERGENCY_STATUS | Emergency status | |
| accuracyVert | uint16_t | cm | Vertical accuracy in cm. If unknown set to UINT16_MAX | |
| accuracyVel | uint16_t | mm/s | Velocity accuracy in mm/s (m * 1E-3). If unknown set to UINT16_MAX | |
| velVert | int16_t | cm/s | GPS vertical speed in cm/s. If unknown set to INT16_MAX | |
| velNS | int16_t | cm/s | North-South velocity over ground in cm/s North +ve. If unknown set to INT16_MAX | |
| VelEW | int16_t | cm/s | East-West velocity over ground in cm/s East +ve. If unknown set to INT16_MAX | |
| state | uint16_t | UAVIONIX_ADSB_OUT_DYNAMIC_STATE | ADS-B transponder dynamic input state flags | |
| squawk | uint16_t | Mode A code (typically 1200 [0x04B0] for VFR) | ||
| utcTime | uint32_t | s | UTC time in seconds since GPS epoch (Jan 6, 1980). If unknown set to UINT32_MAX | |
| gpsLat | int32_t | degE7 | Latitude WGS84 (deg * 1E7). If unknown set to INT32_MAX | |
| gpsLon | int32_t | degE7 | Longitude WGS84 (deg * 1E7). If unknown set to INT32_MAX | |
| gpsAlt | int32_t | mm | Altitude (WGS84). UP +ve. If unknown set to INT32_MAX | |
| baroAltMSL | int32_t | mbar | Barometric 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 | |
| accuracyHor | uint32_t | mm | Horizontal 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)
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| rfHealth | uint8_t | UAVIONIX_ADSB_RF_HEALTH | ADS-B transponder messages |
UAVIONIX_ADSB_OUT_CFG_REGISTRATION (10004)
Aircraft Registration.
| Field Name | Type | Description |
|---|---|---|
| registration | char[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.
| Field Name | Type | Description |
|---|---|---|
| flight_id | char[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.
| Field Name | Type | Description |
|---|---|---|
| ReqMessageId | uint32_t | Message 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| state | uint8_t | UAVIONIX_ADSB_OUT_CONTROL_STATE | ADS-B transponder control state flags | |
| emergencyStatus | uint8_t | UAVIONIX_ADSB_EMERGENCY_STATUS | Emergency status | |
| flight_id | char[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_bit | uint8_t | UAVIONIX_ADSB_XBIT | X-Bit enable (military transponders only) | |
| squawk | uint16_t | Mode A code (typically 1200 [0x04B0] for VFR) | ||
| baroAltMSL | int32_t | mbar | Barometric 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| state | uint8_t | UAVIONIX_ADSB_OUT_STATUS_STATE | ADS-B transponder status state flags |
| NIC_NACp | uint8_t | UAVIONIX_ADSB_OUT_STATUS_NIC_NACP | Integrity 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 |
| boardTemp | uint8_t | Board temperature in C | |
| fault | uint8_t | UAVIONIX_ADSB_OUT_STATUS_FAULT | ADS-B transponder fault flags |
| flight_id | char[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. | |
| squawk | uint16_t | Mode 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| efi_index | uint8_t | EFI index. | |
| generator_status | uint16_t | Generator status. | |
| efi_status | uint16_t | EFI status. | |
| volt_batt | float | V | Generator Battery voltage. |
| curr_batt | float | A | Generator Battery current. |
| curr_gen | float | A | Current being produced by generator. |
| curr_rot | float | A | Load current being consumed by the UAV (sum of curr_gen and curr_batt) |
| fuel_level | float | l | Generator fuel remaining in litres. |
| throttle | float | % | Throttle Output. |
| runtime | uint32_t | s | Seconds this generator has run since it was rebooted. |
| until_maintenance | int32_t | s | Seconds until this generator requires maintenance. A negative value indicates maintenance is past due. |
| rectifier_temp | float | degC | The Temperature of the rectifier. |
| generator_temp | float | degC | The temperature of the mechanical motor, fuel cell core or generator. |
| efi_batt | float | V | EFI Supply Voltage. |
| efi_rpm | float | rpm | Motor RPM. |
| efi_pw | float | ms | Injector pulse-width in milliseconds. |
| efi_fuel_flow | float | Fuel flow rate in litres/hour. | |
| efi_fuel_consumed | float | l | Fuel consumed. |
| efi_baro | float | kPa | Atmospheric pressure. |
| efi_mat | float | degC | Manifold Air Temperature. |
| efi_clt | float | degC | Cylinder Head Temperature. |
| efi_tps | float | % | Throttle Position. |
| efi_exhaust_gas_temperature | float | degC | Exhaust gas temperature. |
DEVICE_OP_READ (11000)
Read registers for a device.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| bustype | uint8_t | DEVICE_OP_BUSTYPE | The bus type. |
| bus | uint8_t | Bus number. | |
| address | uint8_t | Bus address. | |
| busname | char[40] | Name of device on bus (for SPI). | |
| regstart | uint8_t | First register to read. | |
| count | uint8_t | Count of registers to read. | |
| request_id | uint32_t | Request ID - copied to reply. | |
| bank | uint8_t | Bank number. |
DEVICE_OP_READ_REPLY (11001)
Read registers reply.
| Field Name | Type | Description |
|---|---|---|
| result | uint8_t | 0 for success, anything else is failure code. |
| regstart | uint8_t | Starting register. |
| count | uint8_t | Count of bytes read. |
| data | uint8_t[128] | Reply data. |
| request_id | uint32_t | Request ID - copied from request. |
| bank | uint8_t | Bank number. |
DEVICE_OP_WRITE (11002)
Write registers for a device.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| bustype | uint8_t | DEVICE_OP_BUSTYPE | The bus type. |
| bus | uint8_t | Bus number. | |
| address | uint8_t | Bus address. | |
| busname | char[40] | Name of device on bus (for SPI). | |
| regstart | uint8_t | First register to write. | |
| count | uint8_t | Count of registers to write. | |
| data | uint8_t[128] | Write data. | |
| request_id | uint32_t | Request ID - copied to reply. | |
| bank | uint8_t | Bank number. |
DEVICE_OP_WRITE_REPLY (11003)
Write registers reply.
| Field Name | Type | Description |
|---|---|---|
| result | uint8_t | 0 for success, anything else is failure code. |
| request_id | uint32_t | Request 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| data_length | uint8_t | Data length. | |
| sig_length | uint8_t | Signature length. | |
| data | uint8_t[220] | Signed data. | |
| sequence | uint32_t | Sequence ID for tagging reply. | |
| operation | uint32_t | SECURE_COMMAND_OP | Operation being requested. |
SECURE_COMMAND_REPLY (11005)
Reply from secure command.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| result | uint8_t | MAV_RESULT | Result of command. |
| data_length | uint8_t | Data length. | |
| data | uint8_t[220] | Reply data. | |
| sequence | uint32_t | Sequence ID from request. | |
| operation | uint32_t | SECURE_COMMAND_OP | Operation that was requested. |
ADAP_TUNING (11010)
Adaptive Controller tuning information.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| axis | uint8_t | PID_TUNING_AXIS | Axis. | |
| desired | float | deg/s | Desired rate. | |
| achieved | float | deg/s | Achieved rate. | |
| error | float | Error between model and vehicle. | ||
| theta | float | Theta estimated state predictor. | ||
| omega | float | Omega estimated state predictor. | ||
| sigma | float | Sigma estimated state predictor. | ||
| theta_dot | float | Theta derivative. | ||
| omega_dot | float | Omega derivative. | ||
| sigma_dot | float | Sigma derivative. | ||
| f | float | Projection operator value. | ||
| f_dot | float | Projection operator derivative. | ||
| u | float | u adaptive controlled output command. |
VISION_POSITION_DELTA (11011)
Camera vision based attitude and position deltas.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| angle_delta | float[3] | rad | Defines a rotation vector [roll, pitch, yaw] to the current MAV_FRAME_BODY_FRD from the previous MAV_FRAME_BODY_FRD. |
| position_delta | float[3] | m | Change in position to the current MAV_FRAME_BODY_FRD from the previous FRAME_BODY_FRD rotated to the current MAV_FRAME_BODY_FRD. |
| confidence | float | % | Normalised confidence value from 0 to 100. |
| time_usec | uint64_t | us | Timestamp (synced to UNIX time or since system boot). |
| time_delta_usec | uint64_t | us | Time since the last reported camera frame. |
AOA_SSA (11020)
Angle of Attack and Side Slip Angle.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| AOA | float | deg | Angle of Attack. |
| SSA | float | deg | Side Slip Angle. |
| time_usec | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_t[4] | count of telemetry packets received (wraps at 65535). |
OSD_PARAM_CONFIG (11033)
Configure an OSD parameter slot.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| osd_screen | uint8_t | OSD parameter screen index. | |
| osd_index | uint8_t | OSD parameter display index. | |
| param_id | char[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_type | uint8_t | OSD_PARAM_CONFIG_TYPE | Config type. |
| request_id | uint32_t | Request ID - copied to reply. | |
| min_value | float | OSD parameter minimum value. | |
| max_value | float | OSD parameter maximum value. | |
| increment | float | OSD parameter increment. |
OSD_PARAM_CONFIG_REPLY (11034)
Configure OSD parameter reply.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| result | uint8_t | OSD_PARAM_CONFIG_ERROR | Config error type. |
| request_id | uint32_t | Request ID - copied from request. |
OSD_PARAM_SHOW_CONFIG (11035)
Read a configured an OSD parameter slot.
| Field Name | Type | Description |
|---|---|---|
| target_system | uint8_t | System ID. |
| target_component | uint8_t | Component ID. |
| osd_screen | uint8_t | OSD parameter screen index. |
| osd_index | uint8_t | OSD parameter display index. |
| request_id | uint32_t | Request ID - copied to reply. |
OSD_PARAM_SHOW_CONFIG_REPLY (11036)
Read configured OSD parameter reply.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| result | uint8_t | OSD_PARAM_CONFIG_ERROR | Config error type. |
| param_id | char[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_type | uint8_t | OSD_PARAM_CONFIG_TYPE | Config type. |
| request_id | uint32_t | Request ID - copied from request. | |
| min_value | float | OSD parameter minimum value. | |
| max_value | float | OSD parameter maximum value. | |
| increment | float | OSD parameter increment. |
OBSTACLE_DISTANCE_3D (11037)
Obstacle located as a 3D vector.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| sensor_type | uint8_t | MAV_DISTANCE_SENSOR | Class id of the distance sensor type. | |
| frame | uint8_t | MAV_FRAME | Coordinate frame of reference. | |
| obstacle_id | uint16_t | Unique 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_ms | uint32_t | ms | Timestamp (time since system boot). | |
| x | float | m | X position of the obstacle. | |
| y | float | m | Y position of the obstacle. | |
| z | float | m | Z position of the obstacle. | |
| min_distance | float | m | Minimum distance the sensor can measure. | |
| max_distance | float | m | Maximum distance the sensor can measure. |
WATER_DEPTH (11038)
Water depth
| Field Name | Type | Unit | Description |
|---|---|---|---|
| id | uint8_t | Onboard ID of the sensor | |
| healthy | uint8_t | Sensor data healthy (0=unhealthy, 1=healthy) | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot) |
| lat | int32_t | degE7 | Latitude |
| lng | int32_t | degE7 | Longitude |
| alt | float | m | Altitude (MSL) of vehicle |
| roll | float | rad | Roll angle |
| pitch | float | rad | Pitch angle |
| yaw | float | rad | Yaw angle |
| distance | float | m | Distance (uncorrected) |
| temperature | float | degC | Water 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| id | uint8_t | MCU instance | |
| MCU_temperature | int16_t | cdegC | MCU Internal temperature |
| MCU_voltage | uint16_t | mV | MCU voltage |
| MCU_voltage_min | uint16_t | mV | MCU voltage minimum |
| MCU_voltage_max | uint16_t | mV | MCU voltage maximum |
ESC_TELEMETRY_13_TO_16 (11040)
ESC Telemetry Data for ESCs 13 to 16, matching data sent by BLHeli ESCs.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| temperature | uint8_t[4] | degC | Temperature. |
| voltage | uint16_t[4] | cV | Voltage. |
| current | uint16_t[4] | cA | Current. |
| totalcurrent | uint16_t[4] | mAh | Total current. |
| rpm | uint16_t[4] | rpm | RPM (eRPM). |
| count | uint16_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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| name | char[10] | Name of the debug variable | |
| value | char[64] | Value of the debug variable | |
| time_boot_ms | uint32_t | ms | Timestamp (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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | |
| target_component | uint8_t | Component ID (0 for broadcast). | |
| id_or_mac | uint8_t[20] | Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html. | |
| id_type | uint8_t | MAV_ODID_ID_TYPE | Indicates the format for the uas_id field of this message. |
| ua_type | uint8_t | MAV_ODID_UA_TYPE | Indicates the type of UA (Unmanned Aircraft). |
| uas_id | uint8_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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | ||
| target_component | uint8_t | Component ID (0 for broadcast). | ||
| id_or_mac | uint8_t[20] | Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html. | ||
| status | uint8_t | MAV_ODID_STATUS | Indicates whether the unmanned aircraft is on the ground or in the air. | |
| height_reference | uint8_t | MAV_ODID_HEIGHT_REF | Indicates the reference point for the height field. | |
| horizontal_accuracy | uint8_t | MAV_ODID_HOR_ACC | The accuracy of the horizontal position. | |
| vertical_accuracy | uint8_t | MAV_ODID_VER_ACC | The accuracy of the vertical position. | |
| barometer_accuracy | uint8_t | MAV_ODID_VER_ACC | The accuracy of the barometric altitude. | |
| speed_accuracy | uint8_t | MAV_ODID_SPEED_ACC | The accuracy of the horizontal and vertical speed. | |
| timestamp_accuracy | uint8_t | MAV_ODID_TIME_ACC | The accuracy of the timestamps. | |
| direction | uint16_t | cdeg | Direction over ground (not heading, but direction of movement) measured clockwise from true North: 0 - 35999 centi-degrees. If unknown: 36100 centi-degrees. | |
| speed_horizontal | uint16_t | cm/s | Ground speed. Positive only. If unknown: 25500 cm/s. If speed is larger than 25425 cm/s, use 25425 cm/s. | |
| speed_vertical | int16_t | cm/s | The 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. | |
| latitude | int32_t | degE7 | Current latitude of the unmanned aircraft. If unknown: 0 (both Lat/Lon). | |
| longitude | int32_t | degE7 | Current longitude of the unmanned aircraft. If unknown: 0 (both Lat/Lon). | |
| altitude_barometric | float | m | The altitude calculated from the barometric pressure. Reference is against 29.92inHg or 1013.2mb. If unknown: -1000 m. | |
| altitude_geodetic | float | m | The geodetic altitude as defined by WGS84. If unknown: -1000 m. | |
| height | float | m | The current height of the unmanned aircraft above the take-off location or the ground as indicated by height_reference. If unknown: -1000 m. | |
| timestamp | float | s | Seconds 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | ||
| target_component | uint8_t | Component ID (0 for broadcast). | ||
| id_or_mac | uint8_t[20] | Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html. | ||
| authentication_type | uint8_t | MAV_ODID_AUTH_TYPE | Indicates the type of authentication. | |
| data_page | uint8_t | Allowed range is 0 - 15. | ||
| last_page_index | uint8_t | This 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. | ||
| length | uint8_t | bytes | This 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_data | uint8_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. | ||
| timestamp | uint32_t | s | This 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | |
| target_component | uint8_t | Component ID (0 for broadcast). | |
| id_or_mac | uint8_t[20] | Only used for drone ID data received from other UAs. See detailed description at https://mavlink.io/en/services/opendroneid.html. | |
| description_type | uint8_t | MAV_ODID_DESC_TYPE | Indicates the type of the description field. |
| description | char[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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | ||
| target_component | uint8_t | Component ID (0 for broadcast). | ||
| id_or_mac | uint8_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_type | uint8_t | MAV_ODID_OPERATOR_LOCATION_TYPE | Specifies the operator location type. | |
| classification_type | uint8_t | MAV_ODID_CLASSIFICATION_TYPE | Specifies the classification type of the UA. | |
| category_eu | uint8_t | MAV_ODID_CATEGORY_EU | When classification_type is MAV_ODID_CLASSIFICATION_TYPE_EU, specifies the category of the UA. | |
| class_eu | uint8_t | MAV_ODID_CLASS_EU | When classification_type is MAV_ODID_CLASSIFICATION_TYPE_EU, specifies the class of the UA. | |
| area_count | uint16_t | Number of aircraft in the area, group or formation (default 1). Used only for swarms/multiple UA. | ||
| area_radius | uint16_t | m | Radius of the cylindrical area of the group or formation (default 0). Used only for swarms/multiple UA. | |
| operator_latitude | int32_t | degE7 | Latitude of the operator. If unknown: 0 (both Lat/Lon). | |
| operator_longitude | int32_t | degE7 | Longitude of the operator. If unknown: 0 (both Lat/Lon). | |
| area_ceiling | float | m | Area Operations Ceiling relative to WGS84. If unknown: -1000 m. Used only for swarms/multiple UA. | |
| area_floor | float | m | Area Operations Floor relative to WGS84. If unknown: -1000 m. Used only for swarms/multiple UA. | |
| operator_altitude_geo | float | m | Geodetic altitude of the operator relative to WGS84. If unknown: -1000 m. | |
| timestamp | uint32_t | s | 32 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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | |
| target_component | uint8_t | Component ID (0 for broadcast). | |
| id_or_mac | uint8_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_type | uint8_t | MAV_ODID_OPERATOR_ID_TYPE | Indicates the type of the operator_id field. |
| operator_id | char[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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | |
| target_component | uint8_t | Component ID (0 for broadcast). | |
| id_or_mac | uint8_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_size | uint8_t | bytes | This field must currently always be equal to 25 (bytes), since all encoded OpenDroneID messages are specified to have this length. |
| msg_pack_size | uint8_t | Number of encoded messages in the pack (not the number of bytes). Allowed range is 1 - 9. | |
| messages | uint8_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.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| status | uint8_t | MAV_ODID_ARM_STATUS | Status level indicating if arming is allowed. |
| error | char[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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID (0 for broadcast). | |
| target_component | uint8_t | Component ID (0 for broadcast). | |
| operator_latitude | int32_t | degE7 | Latitude of the operator. If unknown: 0 (both Lat/Lon). |
| operator_longitude | int32_t | degE7 | Longitude of the operator. If unknown: 0 (both Lat/Lon). |
| operator_altitude_geo | float | m | Geodetic altitude of the operator relative to WGS84. If unknown: -1000 m. |
| timestamp | uint32_t | s | 32 bit Unix Timestamp in seconds since 00:00:00 01/01/2019. |
HYGROMETER_SENSOR (12920)
Temperature and humidity from hygrometer.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| id | uint8_t | Hygrometer ID | |
| temperature | int16_t | cdegC | Temperature |
| humidity | uint16_t | c% | Humidity |
TEST_TYPES (17000)
Test all field types
| Field Name | Type | Description |
|---|---|---|
| c | char | char |
| s | char[10] | string |
| u8 | uint8_t | uint8_t |
| s8 | int8_t | int8_t |
| u8_array | uint8_t[3] | uint8_t_array |
| s8_array | int8_t[3] | int8_t_array |
| u16 | uint16_t | uint16_t |
| s16 | int16_t | int16_t |
| u16_array | uint16_t[3] | uint16_t_array |
| s16_array | int16_t[3] | int16_t_array |
| u32 | uint32_t | uint32_t |
| s32 | int32_t | int32_t |
| f | float | float |
| u32_array | uint32_t[3] | uint32_t_array |
| s32_array | int32_t[3] | int32_t_array |
| f_array | float[3] | float_array |
| u64 | uint64_t | uint64_t |
| s64 | int64_t | int64_t |
| d | double | double |
| u64_array | uint64_t[3] | uint64_t_array |
| s64_array | int64_t[3] | int64_t_array |
| d_array | double[3] | double_array |
ARRAY_TEST_0 (17150)
Array test #0.
| Field Name | Type | Description |
|---|---|---|
| v1 | uint8_t | Stub field |
| ar_i8 | int8_t[4] | Value array |
| ar_u8 | uint8_t[4] | Value array |
| ar_u16 | uint16_t[4] | Value array |
| ar_u32 | uint32_t[4] | Value array |
ARRAY_TEST_1 (17151)
Array test #1.
| Field Name | Type | Description |
|---|---|---|
| ar_u32 | uint32_t[4] | Value array |
ARRAY_TEST_3 (17153)
Array test #3.
| Field Name | Type | Description |
|---|---|---|
| v | uint8_t | Stub field |
| ar_u32 | uint32_t[4] | Value array |
ARRAY_TEST_4 (17154)
Array test #4.
| Field Name | Type | Description |
|---|---|---|
| v | uint8_t | Stub field |
| ar_u32 | uint32_t[4] | Value array |
ARRAY_TEST_5 (17155)
Array test #5.
| Field Name | Type | Description |
|---|---|---|
| c1 | char[5] | Value array |
| c2 | char[5] | Value array |
ARRAY_TEST_6 (17156)
Array test #6.
| Field Name | Type | Description |
|---|---|---|
| v1 | uint8_t | Stub field |
| ar_u8 | uint8_t[2] | Value array |
| ar_i8 | int8_t[2] | Value array |
| ar_c | char[32] | Value array |
| v2 | uint16_t | Stub field |
| ar_u16 | uint16_t[2] | Value array |
| ar_i16 | int16_t[2] | Value array |
| v3 | uint32_t | Stub field |
| ar_u32 | uint32_t[2] | Value array |
| ar_i32 | int32_t[2] | Value array |
| ar_f | float[2] | Value array |
| ar_d | double[2] | Value array |
ARRAY_TEST_7 (17157)
Array test #7.
| Field Name | Type | Description |
|---|---|---|
| ar_u8 | uint8_t[2] | Value array |
| ar_i8 | int8_t[2] | Value array |
| ar_c | char[32] | Value array |
| ar_u16 | uint16_t[2] | Value array |
| ar_i16 | int16_t[2] | Value array |
| ar_f | float[2] | Value array |
| ar_u32 | uint32_t[2] | Value array |
| ar_i32 | int32_t[2] | Value array |
| ar_d | double[2] | Value array |
ARRAY_TEST_8 (17158)
Array test #8.
| Field Name | Type | Description |
|---|---|---|
| ar_u16 | uint16_t[2] | Value array |
| v3 | uint32_t | Stub field |
| ar_d | double[2] | Value array |
ICAROUS_HEARTBEAT (42000)
ICAROUS heartbeat
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| status | uint8_t | ICAROUS_FMS_STATE | See the FMS_STATE enum. |
ICAROUS_KINEMATIC_BANDS (42001)
Kinematic multi bands (track) output from Daidalus
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| numBands | int8_t | Number of track bands | ||
| type1 | uint8_t | ICAROUS_TRACK_BAND_TYPES | See the TRACK_BAND_TYPES enum. | |
| type2 | uint8_t | ICAROUS_TRACK_BAND_TYPES | See the TRACK_BAND_TYPES enum. | |
| type3 | uint8_t | ICAROUS_TRACK_BAND_TYPES | See the TRACK_BAND_TYPES enum. | |
| type4 | uint8_t | ICAROUS_TRACK_BAND_TYPES | See the TRACK_BAND_TYPES enum. | |
| type5 | uint8_t | ICAROUS_TRACK_BAND_TYPES | See the TRACK_BAND_TYPES enum. | |
| min1 | float | deg | min angle (degrees) | |
| max1 | float | deg | max angle (degrees) | |
| min2 | float | deg | min angle (degrees) | |
| max2 | float | deg | max angle (degrees) | |
| min3 | float | deg | min angle (degrees) | |
| max3 | float | deg | max angle (degrees) | |
| min4 | float | deg | min angle (degrees) | |
| max4 | float | deg | max angle (degrees) | |
| min5 | float | deg | min angle (degrees) | |
| max5 | float | deg | max angle (degrees) |
CUBEPILOT_RAW_RC (50001)
Raw RC Data
| Field Name | Type | Description |
|---|---|---|
| rc_raw | uint8_t[32] |
HERELINK_VIDEO_STREAM_INFORMATION (50002)
Information about video stream
| Field Name | Type | Unit | Description |
|---|---|---|---|
| camera_id | uint8_t | Video Stream ID (1 for first, 2 for second, etc.) | |
| status | uint8_t | Number of streams available. | |
| uri | char[230] | Video stream URI (TCP or RTSP URI ground station should connect to) or port number (UDP port ground station should listen to). | |
| resolution_h | uint16_t | pix | Horizontal resolution. |
| resolution_v | uint16_t | pix | Vertical resolution. |
| rotation | uint16_t | deg | Video image rotation clockwise. |
| framerate | float | Hz | Frame rate. |
| bitrate | uint32_t | bits/s | Bit rate. |
HERELINK_TELEM (50003)
Herelink Telemetry
| Field Name | Type | Description |
|---|---|---|
| rssi | uint8_t | |
| snr | int16_t | |
| cpu_temp | int16_t | |
| board_temp | int16_t | |
| rf_freq | uint32_t | |
| link_bw | uint32_t | |
| link_rate | uint32_t |
CUBEPILOT_FIRMWARE_UPDATE_START (50004)
Start firmware update with encapsulated data.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| size | uint32_t | bytes | FW Size. |
| crc | uint32_t | FW CRC. |
CUBEPILOT_FIRMWARE_UPDATE_RESP (50005)
offset response to encapsulated data.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| offset | uint32_t | bytes | FW Offset. |
AIRLINK_AUTH (52000)
Authorization package
| Field Name | Type | Description |
|---|---|---|
| login | char[50] | Login |
| password | char[50] | Password |
AIRLINK_AUTH_RESPONSE (52001)
Response to the authorization request
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| resp_type | uint8_t | AIRLINK_AUTH_RESPONSE_TYPE | Response 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| axis | uint8_t | CONTROL_AXIS | Control axis on which the measurements were taken. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| position | float | deg | Axis position | |
| velocity | float | deg/s | Axis velocity | |
| force | float | Force 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| health | uint8_t | MOTION_PLATFORM_HEALTH | Generic system health (error and warning) status. | |
| mode | uint8_t | MOTION_PLATFORM_MODE | Generic system operating mode. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). | |
| x | float | m | X axis (surge) position, positive forward. | |
| y | float | m | Y axis (sway) position, positive right. | |
| z | float | m | Z axis (heave) position, positive down. | |
| roll | float | rad | Roll position, positive right. | |
| pitch | float | rad | Pitch position, positive nose up. | |
| yaw | float | rad | Yaw position, positive right. | |
| vel_x | float | m/s | X axis (surge) velocity, positive forward. | |
| vel_y | float | m/s | Y axis (sway) velocity, positive right. | |
| vel_z | float | m/s | Z axis (heave) velocity, positive down. | |
| vel_roll | float | rad/s | Roll velocity, positive right. | |
| vel_pitch | float | rad/s | Pitch velocity, positive nose up. | |
| vel_yaw | float | rad/s | Yaw velocity, positive right. | |
| acc_x | float | m/s/s | X axis (surge) acceleration, positive forward. | |
| acc_y | float | m/s/s | Y axis (sway) acceleration, positive right. | |
| acc_z | float | m/s/s | Z axis (heave) acceleration, positive down. | |
| acc_roll | float | Roll acceleration, positive right. Unit rad/s/s, currently not part of mavschema.xsd | ||
| acc_pitch | float | Pitch acceleration, positive nose up. Unit rad/s/s, currently not part of mavschema.xsd | ||
| acc_yaw | float | Yaw 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| error_code | uint8_t | Error code extracted from motion status. | |
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| frame_count | uint32_t | Number of message as sent by the Motion System. | |
| motion_status | uint32_t | Motion Status variable as sent by the system. | |
| actuator1 | float | m | Current actuator 1 position. |
| actuator2 | float | m | Current actuator 2 position. |
| actuator3 | float | m | Current actuator 3 position. |
| actuator4 | float | m | Current actuator 4 position. |
| actuator5 | float | m | Current actuator 5 position. |
| actuator6 | float | m | Current actuator 6 position. |
| platform_setpoint_x | float | m | X axis (surge) platform setpoint, positive forward. |
| platform_setpoint_y | float | m | Y axis (sway) platform setpoint, positive right. |
| platform_setpoint_z | float | m | Z axis (heave) platform setpoint, positive down. |
| platform_setpoint_roll | float | rad | Roll platform setpoint, positive right. |
| platform_setpoint_pitch | float | rad | Pitch platform setpoint, positive nose up. |
| platform_setpoint_yaw | float | rad | Yaw platform setpoint, positive right. |
| effect_setpoint_x | float | m | X axis (surge) special effect setpoint, positive forward. |
| effect_setpoint_y | float | m | Y axis (sway) special effect setpoint, positive right. |
| effect_setpoint_z | float | m | Z axis (heave) special effect setpoint, positive down. |
| effect_setpoint_roll | float | rad | Roll special effect setpoint, positive right. |
| effect_setpoint_pitch | float | rad | Pitch special effect setpoint, positive nose up. |
| effect_setpoint_yaw | float | rad | Yaw 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since system boot). |
| vel_roll | float | rad/s | Roll velocity, positive right. |
| vel_pitch | float | rad/s | Pitch velocity, positive nose up. |
| vel_yaw | float | rad/s | Yaw velocity, positive right. |
| acc_x | float | m/s/s | X axis (surge) acceleration, positive forward. |
| acc_y | float | m/s/s | Y axis (sway) acceleration, positive right. |
| acc_z | float | m/s/s | Z 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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| sensor_id | uint8_t | Sensor ID, used for identifying the device and/or person tracked. Set to zero if unknown/unused. | |
| surface_id | uint8_t | Identifier of surface for 2D gaze point, or an identified region when surface point is invalid. Set to zero if unknown/unused. | |
| gaze_origin_x | float | m | X axis of gaze origin point, NaN if unknown. The reference system depends on specific application. |
| gaze_origin_y | float | m | Y axis of gaze origin point, NaN if unknown. The reference system depends on specific application. |
| gaze_origin_z | float | m | Z axis of gaze origin point, NaN if unknown. The reference system depends on specific application. |
| gaze_direction_x | float | X axis of gaze direction vector, expected to be normalized to unit magnitude, NaN if unknown. The reference system should match origin point. | |
| gaze_direction_y | float | Y axis of gaze direction vector, expected to be normalized to unit magnitude, NaN if unknown. The reference system should match origin point. | |
| gaze_direction_z | float | Z axis of gaze direction vector, expected to be normalized to unit magnitude, NaN if unknown. The reference system should match origin point. | |
| video_gaze_x | float | Gaze focal point on video feed x value (normalized 0..1, 0 is left, 1 is right), NaN if unknown | |
| video_gaze_y | float | Gaze focal point on video feed y value (normalized 0..1, 0 is top, 1 is bottom), NaN if unknown | |
| surface_gaze_x | float | Gaze focal point on surface x value (normalized 0..1, 0 is left, 1 is right), NaN if unknown | |
| surface_gaze_y | float | Gaze focal point on surface y value (normalized 0..1, 0 is top, 1 is bottom), NaN if unknown | |
| time_usec | uint64_t | us | Timestamp (time since system boot). |
AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_EXT (60000)
Addition to message AUTOPILOT_STATE_FOR_GIMBAL_DEVICE.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| target_system | uint8_t | System ID. | |
| target_component | uint8_t | Component ID. | |
| wind_x | float | m/s | Wind X speed in NED (North,Est, Down). NAN if unknown. |
| wind_y | float | m/s | Wind Y speed in NED (North, East, Down). NAN if unknown. |
| wind_correction_angle | float | rad | Correction angle due to wind. NaN if unknown. |
| time_boot_us | uint64_t | us | Timestamp (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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| gimbal_id | uint8_t | Gimbal ID (component ID or 1-6 for non-MAVLink gimbal) that this gimbal manager is responsible for. | ||
| device_cap_flags | uint32_t | GIMBAL_DEVICE_CAP_FLAGS | Gimbal 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_flags | uint32_t | MAV_STORM32_GIMBAL_MANAGER_CAP_FLAGS | Gimbal manager capability flags. | |
| roll_min | float | rad | Hardware minimum roll angle (positive: roll to the right). NaN if unknown. | |
| roll_max | float | rad | Hardware maximum roll angle (positive: roll to the right). NaN if unknown. | |
| pitch_min | float | rad | Hardware minimum pitch/tilt angle (positive: tilt up). NaN if unknown. | |
| pitch_max | float | rad | Hardware maximum pitch/tilt angle (positive: tilt up). NaN if unknown. | |
| yaw_min | float | rad | Hardware minimum yaw/pan angle (positive: pan to the right, relative to the vehicle/gimbal base). NaN if unknown. | |
| yaw_max | float | rad | Hardware 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).
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| gimbal_id | uint8_t | Gimbal ID (component ID or 1-6 for non-MAVLink gimbal) that this gimbal manager is responsible for. | |
| supervisor | uint8_t | MAV_STORM32_GIMBAL_MANAGER_CLIENT | Client who is currently supervisor (0 = none). |
| profile | uint8_t | MAV_STORM32_GIMBAL_MANAGER_PROFILE | Profile currently applied (0 = default). |
| device_flags | uint16_t | GIMBAL_DEVICE_FLAGS | Gimbal device flags currently applied. Same flags as reported by GIMBAL_DEVICE_ATTITUDE_STATUS. |
| manager_flags | uint16_t | MAV_STORM32_GIMBAL_MANAGER_FLAGS | Gimbal 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| gimbal_id | uint8_t | Gimbal 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. | ||
| client | uint8_t | MAV_STORM32_GIMBAL_MANAGER_CLIENT | Client which is contacting the gimbal manager (must be set). | |
| device_flags | uint16_t | GIMBAL_DEVICE_FLAGS | Gimbal device flags to be applied (UINT16_MAX to be ignored). Same flags as used in GIMBAL_DEVICE_SET_ATTITUDE. | |
| manager_flags | uint16_t | MAV_STORM32_GIMBAL_MANAGER_FLAGS | Gimbal manager flags to be applied (0 to be ignored). | |
| q | float[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_x | float | rad/s | X component of angular velocity (positive: roll to the right). NaN to be ignored. | |
| angular_velocity_y | float | rad/s | Y component of angular velocity (positive: tilt up). NaN to be ignored. | |
| angular_velocity_z | float | rad/s | Z 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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| gimbal_id | uint8_t | Gimbal 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. | ||
| client | uint8_t | MAV_STORM32_GIMBAL_MANAGER_CLIENT | Client which is contacting the gimbal manager (must be set). | |
| device_flags | uint16_t | GIMBAL_DEVICE_FLAGS | Gimbal device flags to be applied (UINT16_MAX to be ignored). Same flags as used in GIMBAL_DEVICE_SET_ATTITUDE. | |
| manager_flags | uint16_t | MAV_STORM32_GIMBAL_MANAGER_FLAGS | Gimbal manager flags to be applied (0 to be ignored). | |
| pitch | float | rad | Pitch/tilt angle (positive: tilt up). NaN to be ignored. | |
| yaw | float | rad | Yaw/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_rate | float | rad/s | Pitch/tilt angular rate (positive: tilt up). NaN to be ignored. | |
| yaw_rate | float | rad/s | Yaw/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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID | ||
| target_component | uint8_t | Component ID | ||
| gimbal_id | uint8_t | Gimbal 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. | ||
| client | uint8_t | MAV_STORM32_GIMBAL_MANAGER_CLIENT | Client which is contacting the gimbal manager (must be set). | |
| roll | float | rad | Roll angle (positive to roll to the right). |
QSHOT_STATUS (60020)
Information about the shot operation.
| Field Name | Type | Enum Values | Description |
|---|---|---|---|
| mode | uint16_t | MAV_QSHOT_MODE | Current shot mode. |
| shot_state | uint16_t | Current state in the shot. States are specific to the selected shot mode. |
FRSKY_PASSTHROUGH_ARRAY (60040)
Frsky SPort passthrough multi packet container.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| count | uint8_t | Number of passthrough packets in this message. | |
| packet_buf | uint8_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_ms | uint32_t | ms | Timestamp (time since system boot). |
PARAM_VALUE_ARRAY (60041)
Parameter multi param value container.
| Field Name | Type | Description |
|---|---|---|
| param_array_len | uint8_t | Number of onboard parameters in this array. |
| packet_buf | uint8_t[248] | Parameters buffer. Contains a series of variable length parameter blocks, one per parameter, with format as specified elsewhere. |
| param_count | uint16_t | Total number of onboard parameters. |
| param_index_first | uint16_t | Index of the first onboard parameter in this array. |
| flags | uint16_t | Flags. |
MLRS_RADIO_LINK_STATS (60045)
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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID (ID of target system, normally flight controller). | ||
| target_component | uint8_t | Component ID (normally 0 for broadcast). | ||
| rx_LQ_rc | uint8_t | c% | Link quality of RC data stream from Tx to Rx. Values: 1..100, 0: no link connection, UINT8_MAX: unknown. | |
| rx_LQ_ser | uint8_t | c% | Link quality of serial MAVLink data stream from Tx to Rx. Values: 1..100, 0: no link connection, UINT8_MAX: unknown. | |
| rx_rssi1 | uint8_t | Rssi of antenna 1. 0: no reception, UINT8_MAX: unknown. | ||
| rx_snr1 | int8_t | Noise on antenna 1. Radio link dependent. INT8_MAX: unknown. | ||
| tx_LQ_ser | uint8_t | c% | Link quality of serial MAVLink data stream from Rx to Tx. Values: 1..100, 0: no link connection, UINT8_MAX: unknown. | |
| tx_rssi1 | uint8_t | Rssi of antenna 1. 0: no reception. UINT8_MAX: unknown. | ||
| tx_snr1 | int8_t | Noise on antenna 1. Radio link dependent. INT8_MAX: unknown. | ||
| rx_rssi2 | uint8_t | Rssi of antenna 2. 0: no reception, UINT8_MAX: use rx_rssi1 if it is known else unknown. | ||
| rx_snr2 | int8_t | Noise on antenna 2. Radio link dependent. INT8_MAX: use rx_snr1 if it is known else unknown. | ||
| tx_rssi2 | uint8_t | Rssi of antenna 2. 0: no reception. UINT8_MAX: use tx_rssi1 if it is known else unknown. | ||
| tx_snr2 | int8_t | Noise on antenna 2. Radio link dependent. INT8_MAX: use tx_snr1 if it is known else unknown. | ||
| flags | uint16_t | MLRS_RADIO_LINK_STATS_FLAGS | Radio link statistics flags. | |
| frequency1 | float | Hz | Frequency on antenna1 in Hz. 0: unknown. | |
| frequency2 | float | Hz | Frequency on antenna2 in Hz. 0: unknown. |
MLRS_RADIO_LINK_INFORMATION (60046)
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.
| Field Name | Type | Unit | Enum Values | Description |
|---|---|---|---|---|
| target_system | uint8_t | System ID (ID of target system, normally flight controller). | ||
| target_component | uint8_t | Component ID (normally 0 for broadcast). | ||
| type | uint8_t | MLRS_RADIO_LINK_TYPE | Radio link type. 0: unknown/generic type. | |
| mode | uint8_t | Operation mode. Radio link dependent. UINT8_MAX: ignore/unknown. | ||
| tx_power | int8_t | dBm | Tx transmit power in dBm. INT8_MAX: unknown. | |
| rx_power | int8_t | dBm | Rx transmit power in dBm. INT8_MAX: unknown. | |
| mode_str | char[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_str | char[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_sensitivity | uint8_t | Receive sensitivity of Tx in inverted dBm. 1..255 represents -1..-255 dBm, 0: unknown. | ||
| rx_receive_sensitivity | uint8_t | Receive sensitivity of Rx in inverted dBm. 1..255 represents -1..-255 dBm, 0: unknown. | ||
| tx_frame_rate | uint16_t | Hz | Frame rate in Hz (frames per second) for Tx to Rx transmission. 0: unknown. | |
| rx_frame_rate | uint16_t | Hz | Frame rate in Hz (frames per second) for Rx to Tx transmission. Normally equal to tx_packet_rate. 0: unknown. | |
| tx_ser_data_rate | uint16_t | Maximum 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_rate | uint16_t | Maximum 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. |
MLRS_RADIO_LINK_FLOW_CONTROL (60047)
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.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| tx_used_ser_bandwidth | uint8_t | c% | Transmit bandwidth consumption. Values: 0..100, UINT8_MAX: invalid/unknown. |
| rx_used_ser_bandwidth | uint8_t | c% | Receive bandwidth consumption. Values: 0..100, UINT8_MAX: invalid/unknown. |
| txbuf | uint8_t | c% | For compatibility with legacy method. UINT8_MAX: unknown. |
| tx_ser_rate | uint16_t | bytes/s | Transmitted bytes per second, UINT16_MAX: invalid/unknown. |
| rx_ser_rate | uint16_t | bytes/s | Received bytes per second, UINT16_MAX: invalid/unknown. |
AVSS_PRS_SYS_STATUS (60050)
AVSS PRS system status.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| arm_status | uint8_t | PRS arm statuses | |
| charge_status | uint8_t | PRS battery charge statuses | |
| time_boot_ms | uint32_t | ms | Timestamp (time since PRS boot). |
| error_status | uint32_t | PRS error statuses | |
| battery_status | uint32_t | Estimated battery run-time without a remote connection and PRS battery voltage |
AVSS_DRONE_POSITION (60051)
Drone position.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since FC boot). |
| lat | int32_t | degE7 | Latitude, expressed |
| lon | int32_t | degE7 | Longitude, expressed |
| alt | int32_t | mm | Altitude (MSL). Note that virtually all GPS modules provide both WGS84 and MSL. |
| ground_alt | float | m | Altitude above ground, This altitude is measured by a ultrasound, Laser rangefinder or millimeter-wave radar |
| barometer_alt | float | m | This 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).
| Field Name | Type | Unit | Description |
|---|---|---|---|
| time_boot_ms | uint32_t | ms | Timestamp (time since FC boot). |
| q1 | float | Quaternion component 1, w (1 in null-rotation) | |
| q2 | float | Quaternion component 2, x (0 in null-rotation) | |
| q3 | float | Quaternion component 3, y (0 in null-rotation) | |
| q4 | float | Quaternion component 4, z (0 in null-rotation) | |
| xacc | float | m/s/s | X acceleration |
| yacc | float | m/s/s | Y acceleration |
| zacc | float | m/s/s | Z acceleration |
| xgyro | float | rad/s | Angular speed around X axis |
| ygyro | float | rad/s | Angular speed around Y axis |
| zgyro | float | rad/s | Angular speed around Z axis |
AVSS_DRONE_OPERATION_MODE (60053)
Drone operation mode.
| Field Name | Type | Unit | Description |
|---|---|---|---|
| M300_operation_mode | uint8_t | DJI M300 operation mode | |
| horsefly_operation_mode | uint8_t | horsefly operation mode | |
| time_boot_ms | uint32_t | ms | Timestamp (time since FC boot). |