Skip to content

Commit 9f8c2e4

Browse files
committed
MAVLink messages update Thu Nov 27 19:15:27 UTC 2025
1 parent 08d2c7b commit 9f8c2e4

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

en/messages/all.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ span.warning {
6060

6161
Type | Defined | Included
6262
--- | --- | ---
63-
[Messages](#messages) | 0 | 384
64-
[Enums](#enumerated-types) | 0 | 249
63+
[Messages](#messages) | 0 | 385
64+
[Enums](#enumerated-types) | 0 | 250
6565
[Commands](#mav_commands) | 223 | 0
6666

6767
The following sections list all entities in the dialect (both included and defined in this file).

en/messages/development.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,43 @@ span.warning {
3636

3737
Type | Defined | Included
3838
--- | --- | ---
39-
[Messages](#messages) | 11 | 232
40-
[Enums](#enumerated-types) | 13 | 152
39+
[Messages](#messages) | 12 | 232
40+
[Enums](#enumerated-types) | 14 | 152
4141
[Commands](#mav_commands) | 177 | 0
4242

4343
The following sections list all entities in the dialect (both included and defined in this file).
4444

4545
## Messages
4646

47+
### ESC_EEPROM (292) — [WIP] {#ESC_EEPROM}
48+
49+
<span class="warning">**WORK IN PROGRESS**: Do not use in stable production environments (it may change).</span>
50+
51+
ESC EEPROM data message for reading and writing ESC configuration.
52+
53+
Supports multiple ESC firmware types including AM32, Bluejay, and BLHeli32.
54+
ESC data is read by sending the [MAV_CMD_REQUEST_MESSAGE](#MAV_CMD_REQUEST_MESSAGE) with `param1=292` and `param2=esc_index`, where esc_index is the zero-indexed ESC number for the corresponding motor, and 255 is used to request data for all ESC.
55+
The message can be sent to set the ESC value.
56+
For write requests, a bitmask allows selective writing of specific bytes to avoid corrupting unchanged values.
57+
58+
The data format is opaque to the autopilot.
59+
A GCS is required to understand the format in order to create an appropriate UI for display and setting configuration values, and to inform users when the ESC uses an unsupported data format.
60+
Note that for AM32 EEPROMs the data layout is defined in: https://github.com/am32-firmware/AM32/blob/main/Inc/eeprom.h (the second byte in the structure is the eeprom_version).
61+
The firmware field indicates which ESC firmware is in use, allowing the GCS to interpret the data correctly.
62+
63+
Field Name | Type | Values | Description
64+
--- | --- | --- | ---
65+
target_system | `uint8_t` | | System ID (ID of target system, normally flight controller).
66+
target_component | `uint8_t` | | Component ID (normally 0 for broadcast).
67+
firmware | `uint8_t` | [ESC_FIRMWARE](#ESC_FIRMWARE) | ESC firmware type.
68+
msg_index | `uint8_t` | | Zero-indexed sequence number of this message when multiple messages are required to transfer the complete EEPROM data. The first message has index 0. For single-message transfers, set to 0.
69+
msg_count | `uint8_t` | | Total number of messages required to transfer the complete EEPROM data. For single-message transfers, set to 1. Receivers should collect all messages from index 0 to msg_count-1 before reconstructing the complete data.
70+
esc_index | `uint8_t` | max:254 | Index of the ESC (0 = ESC1, 1 = ESC2, etc.).
71+
write_mask | `uint32_t[6]` | | Bitmask indicating which bytes in the data array should be written. Each bit corresponds to a byte index in the data array (bit 0 of write_mask[0] = data[0], bit 31 of write_mask[0] = data[31], bit 0 of write_mask[1] = data[32], etc.). Set bits indicate bytes to write, cleared bits indicate bytes to skip. This allows precise updates of individual parameters without overwriting the entire EEPROM.
72+
length | `uint8_t` | max:222 | Number of valid bytes in data array.
73+
data | `uint8_t[192]` | | Raw ESC EEPROM data. Unused bytes should be set to zero.
74+
75+
4776
### GLOBAL_POSITION (296) — [WIP] {#GLOBAL_POSITION}
4877

4978
<span class="warning">**WORK IN PROGRESS**: Do not use in stable production environments (it may change).</span>
@@ -440,6 +469,19 @@ Value | Name | Description
440469
<a id='GLOBAL_POSITION_UNHEALTHY'></a>1 | [GLOBAL_POSITION_UNHEALTHY](#GLOBAL_POSITION_UNHEALTHY) | Unhealthy sensor/estimator.
441470
<a id='GLOBAL_POSITION_PRIMARY'></a>2 | [GLOBAL_POSITION_PRIMARY](#GLOBAL_POSITION_PRIMARY) | True if the data originates from or is consumed by the primary estimator.
442471

472+
### ESC_FIRMWARE — [WIP] {#ESC_FIRMWARE}
473+
474+
<span class="warning">**WORK IN PROGRESS**: Do not use in stable production environments (it may change).</span>
475+
476+
ESC firmware type identifier.
477+
478+
Value | Name | Description
479+
--- | --- | ---
480+
<a id='ESC_FIRMWARE_UNKNOWN'></a>0 | [ESC_FIRMWARE_UNKNOWN](#ESC_FIRMWARE_UNKNOWN) | Unknown firmware.
481+
<a id='ESC_FIRMWARE_AM32'></a>1 | [ESC_FIRMWARE_AM32](#ESC_FIRMWARE_AM32) | AM32 open source ESC firmware.
482+
<a id='ESC_FIRMWARE_BLUEJAY'></a>2 | [ESC_FIRMWARE_BLUEJAY](#ESC_FIRMWARE_BLUEJAY) | Bluejay open source ESC firmware.
483+
<a id='ESC_FIRMWARE_BLHELI32'></a>3 | [ESC_FIRMWARE_BLHELI32](#ESC_FIRMWARE_BLHELI32) | BLHeli32 ESC firmware.
484+
443485
## Commands (MAV_CMD) {#mav_commands}
444486

445487
### MAV_CMD_NAV_ARC_WAYPOINT (36) — [WIP] {#MAV_CMD_NAV_ARC_WAYPOINT}

0 commit comments

Comments
 (0)