diff --git a/docs/development/msp/README.md b/docs/development/msp/README.md
index 7377eef84bc..e1306c6b856 100644
--- a/docs/development/msp/README.md
+++ b/docs/development/msp/README.md
@@ -202,8 +202,6 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:
[13 - MSP_SET_NAV_POSHOLD](#msp_set_nav_poshold)
[14 - MSP_CALIBRATION_DATA](#msp_calibration_data)
[15 - MSP_SET_CALIBRATION_DATA](#msp_set_calibration_data)
-[16 - MSP_POSITION_ESTIMATION_CONFIG](#msp_position_estimation_config)
-[17 - MSP_SET_POSITION_ESTIMATION_CONFIG](#msp_set_position_estimation_config)
[18 - MSP_WP_MISSION_LOAD](#msp_wp_mission_load)
[19 - MSP_WP_MISSION_SAVE](#msp_wp_mission_save)
[20 - MSP_WP_GETINFO](#msp_wp_getinfo)
@@ -681,40 +679,6 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:
**Notes:** Minimum payload 18 bytes. Adds +6 bytes for magnetometer zeros, +2 for optical flow scale, and +6 for magnetometer gains when those features (`USE_MAG`, `USE_OPFLOW`) are compiled in.
-## `MSP_POSITION_ESTIMATION_CONFIG (16 / 0x10)`
-**Description:** Retrieves parameters related to the INAV position estimation fusion weights and GPS minimum satellite count.
-
-**Request Payload:** **None**
-
-**Reply Payload:**
-|Field|C Type|Size (Bytes)|Units|Description|
-|---|---|---|---|---|
-| `weightZBaroP` | `uint16_t` | 2 | Weight * 100 | Barometer Z position fusion weight (`positionEstimationConfig()->w_z_baro_p * 100`) |
-| `weightZGPSP` | `uint16_t` | 2 | Weight * 100 | GPS Z position fusion weight (`positionEstimationConfig()->w_z_gps_p * 100`) |
-| `weightZGPSV` | `uint16_t` | 2 | Weight * 100 | GPS Z velocity fusion weight (`positionEstimationConfig()->w_z_gps_v * 100`) |
-| `weightXYGPSP` | `uint16_t` | 2 | Weight * 100 | GPS XY position fusion weight (`positionEstimationConfig()->w_xy_gps_p * 100`) |
-| `weightXYGPSV` | `uint16_t` | 2 | Weight * 100 | GPS XY velocity fusion weight (`positionEstimationConfig()->w_xy_gps_v * 100`) |
-| `minSats` | `uint8_t` | 1 | Count | Minimum satellites required for GPS use (`gpsConfigMutable()->gpsMinSats`) |
-| `useGPSVelNED` | `uint8_t` | 1 | Boolean | Legacy flag, always 1 (GPS velocity is always used if available) |
-
-## `MSP_SET_POSITION_ESTIMATION_CONFIG (17 / 0x11)`
-**Description:** Sets parameters related to the INAV position estimation fusion weights and GPS minimum satellite count.
-
-**Request Payload:**
-|Field|C Type|Size (Bytes)|Units|Description|
-|---|---|---|---|---|
-| `weightZBaroP` | `uint16_t` | 2 | Weight * 100 | Sets `positionEstimationConfigMutable()->w_z_baro_p = value / 100.0f` (constrained 0.0-10.0) |
-| `weightZGPSP` | `uint16_t` | 2 | Weight * 100 | Sets `positionEstimationConfigMutable()->w_z_gps_p = value / 100.0f` (constrained 0.0-10.0) |
-| `weightZGPSV` | `uint16_t` | 2 | Weight * 100 | Sets `positionEstimationConfigMutable()->w_z_gps_v = value / 100.0f` (constrained 0.0-10.0) |
-| `weightXYGPSP` | `uint16_t` | 2 | Weight * 100 | Sets `positionEstimationConfigMutable()->w_xy_gps_p = value / 100.0f` (constrained 0.0-10.0) |
-| `weightXYGPSV` | `uint16_t` | 2 | Weight * 100 | Sets `positionEstimationConfigMutable()->w_xy_gps_v = value / 100.0f` (constrained 0.0-10.0) |
-| `minSats` | `uint8_t` | 1 | Count | Sets `gpsConfigMutable()->gpsMinSats` (constrained 5-10) |
-| `useGPSVelNED` | `uint8_t` | 1 | Boolean | Legacy flag, ignored |
-
-**Reply Payload:** **None**
-
-**Notes:** Expects 12 bytes.
-
## `MSP_WP_MISSION_LOAD (18 / 0x12)`
**Description:** Commands the FC to load the waypoint mission stored in non-volatile memory (e.g., EEPROM or FlashFS) into the active mission buffer.
diff --git a/docs/development/msp/msp_messages.json b/docs/development/msp/msp_messages.json
index 176833915ad..1908e6413ff 100644
--- a/docs/development/msp/msp_messages.json
+++ b/docs/development/msp/msp_messages.json
@@ -1,7 +1,7 @@
{
"version": {
- "major": 2,
- "minor": 1,
+ "major": 3,
+ "minor": 0,
"patch": 0
},
"messages": {
@@ -676,115 +676,6 @@
"notes": "Minimum payload 18 bytes. Adds +6 bytes for magnetometer zeros, +2 for optical flow scale, and +6 for magnetometer gains when those features (`USE_MAG`, `USE_OPFLOW`) are compiled in.",
"description": "Sets sensor calibration data."
},
- "MSP_POSITION_ESTIMATION_CONFIG": {
- "code": 16,
- "mspv": 1,
- "replaced_by": ["MSP2_COMMON_SETTING"],
- "request": null,
- "reply": {
- "payload": [
- {
- "name": "weightZBaroP",
- "ctype": "uint16_t",
- "desc": "Barometer Z position fusion weight (`positionEstimationConfig()->w_z_baro_p * 100`)",
- "units": "Weight * 100"
- },
- {
- "name": "weightZGPSP",
- "ctype": "uint16_t",
- "desc": "GPS Z position fusion weight (`positionEstimationConfig()->w_z_gps_p * 100`)",
- "units": "Weight * 100"
- },
- {
- "name": "weightZGPSV",
- "ctype": "uint16_t",
- "desc": "GPS Z velocity fusion weight (`positionEstimationConfig()->w_z_gps_v * 100`)",
- "units": "Weight * 100"
- },
- {
- "name": "weightXYGPSP",
- "ctype": "uint16_t",
- "desc": "GPS XY position fusion weight (`positionEstimationConfig()->w_xy_gps_p * 100`)",
- "units": "Weight * 100"
- },
- {
- "name": "weightXYGPSV",
- "ctype": "uint16_t",
- "desc": "GPS XY velocity fusion weight (`positionEstimationConfig()->w_xy_gps_v * 100`)",
- "units": "Weight * 100"
- },
- {
- "name": "minSats",
- "ctype": "uint8_t",
- "desc": "Minimum satellites required for GPS use (`gpsConfigMutable()->gpsMinSats`)",
- "units": "Count"
- },
- {
- "name": "useGPSVelNED",
- "ctype": "uint8_t",
- "desc": "Legacy flag, always 1 (GPS velocity is always used if available)",
- "units": "Boolean",
- "value": 1
- }
- ]
- },
- "notes": "",
- "description": "Retrieves parameters related to the INAV position estimation fusion weights and GPS minimum satellite count."
- },
- "MSP_SET_POSITION_ESTIMATION_CONFIG": {
- "code": 17,
- "mspv": 1,
- "replaced_by": ["MSP2_COMMON_SET_SETTING"],
- "request": {
- "payload": [
- {
- "name": "weightZBaroP",
- "ctype": "uint16_t",
- "desc": "Sets `positionEstimationConfigMutable()->w_z_baro_p = value / 100.0f` (constrained 0.0-10.0)",
- "units": "Weight * 100"
- },
- {
- "name": "weightZGPSP",
- "ctype": "uint16_t",
- "desc": "Sets `positionEstimationConfigMutable()->w_z_gps_p = value / 100.0f` (constrained 0.0-10.0)",
- "units": "Weight * 100"
- },
- {
- "name": "weightZGPSV",
- "ctype": "uint16_t",
- "desc": "Sets `positionEstimationConfigMutable()->w_z_gps_v = value / 100.0f` (constrained 0.0-10.0)",
- "units": "Weight * 100"
- },
- {
- "name": "weightXYGPSP",
- "ctype": "uint16_t",
- "desc": "Sets `positionEstimationConfigMutable()->w_xy_gps_p = value / 100.0f` (constrained 0.0-10.0)",
- "units": "Weight * 100"
- },
- {
- "name": "weightXYGPSV",
- "ctype": "uint16_t",
- "desc": "Sets `positionEstimationConfigMutable()->w_xy_gps_v = value / 100.0f` (constrained 0.0-10.0)",
- "units": "Weight * 100"
- },
- {
- "name": "minSats",
- "ctype": "uint8_t",
- "desc": "Sets `gpsConfigMutable()->gpsMinSats` (constrained 5-10)",
- "units": "Count"
- },
- {
- "name": "useGPSVelNED",
- "ctype": "uint8_t",
- "desc": "Legacy flag, ignored",
- "units": "Boolean"
- }
- ]
- },
- "reply": null,
- "notes": "Expects 12 bytes.",
- "description": "Sets parameters related to the INAV position estimation fusion weights and GPS minimum satellite count."
- },
"MSP_WP_MISSION_LOAD": {
"code": 18,
"mspv": 1,
diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c
index 1edf45749e2..c2e988680a0 100644
--- a/src/main/fc/fc_msp.c
+++ b/src/main/fc/fc_msp.c
@@ -1575,18 +1575,6 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
break;
- case MSP_POSITION_ESTIMATION_CONFIG:
-
- sbufWriteU16(dst, positionEstimationConfig()->w_z_baro_p * 100); // inav_w_z_baro_p float as value * 100
- sbufWriteU16(dst, positionEstimationConfig()->w_z_gps_p * 100); // 2 inav_w_z_gps_p float as value * 100
- sbufWriteU16(dst, positionEstimationConfig()->w_z_gps_v * 100); // 2 inav_w_z_gps_v float as value * 100
- sbufWriteU16(dst, positionEstimationConfig()->w_xy_gps_p * 100); // 2 inav_w_xy_gps_p float as value * 100
- sbufWriteU16(dst, positionEstimationConfig()->w_xy_gps_v * 100); // 2 inav_w_xy_gps_v float as value * 100
- sbufWriteU8(dst, gpsConfigMutable()->gpsMinSats); // 1
- sbufWriteU8(dst, 1); // 1 inav_use_gps_velned ON/OFF
-
- break;
-
case MSP_WP_GETINFO:
sbufWriteU8(dst, 0); // Reserved for waypoint capabilities
sbufWriteU8(dst, NAV_MAX_WAYPOINTS); // Maximum number of waypoints supported
@@ -3034,19 +3022,6 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
return MSP_RESULT_ERROR;
break;
- case MSP_SET_POSITION_ESTIMATION_CONFIG:
- if (dataSize == 12) {
- positionEstimationConfigMutable()->w_z_baro_p = constrainf(sbufReadU16(src) / 100.0f, 0.0f, 10.0f);
- positionEstimationConfigMutable()->w_z_gps_p = constrainf(sbufReadU16(src) / 100.0f, 0.0f, 10.0f);
- positionEstimationConfigMutable()->w_z_gps_v = constrainf(sbufReadU16(src) / 100.0f, 0.0f, 10.0f);
- positionEstimationConfigMutable()->w_xy_gps_p = constrainf(sbufReadU16(src) / 100.0f, 0.0f, 10.0f);
- positionEstimationConfigMutable()->w_xy_gps_v = constrainf(sbufReadU16(src) / 100.0f, 0.0f, 10.0f);
- gpsConfigMutable()->gpsMinSats = constrain(sbufReadU8(src), 5, 10);
- sbufReadU8(src); // was positionEstimationConfigMutable()->use_gps_velned
- } else
- return MSP_RESULT_ERROR;
- break;
-
case MSP_RESET_CONF:
if (!ARMING_FLAG(ARMED)) {
suspendRxSignal();
diff --git a/src/main/msp/msp_protocol.h b/src/main/msp/msp_protocol.h
index 6b4705a738c..cc49f9ea7e9 100644
--- a/src/main/msp/msp_protocol.h
+++ b/src/main/msp/msp_protocol.h
@@ -110,9 +110,6 @@
#define MSP_CALIBRATION_DATA 14
#define MSP_SET_CALIBRATION_DATA 15
-#define MSP_POSITION_ESTIMATION_CONFIG 16 //DEPRECATED in INAV 9.1 - use settings system instead. Will be removed in INAV 10.0
-#define MSP_SET_POSITION_ESTIMATION_CONFIG 17 //DEPRECATED in INAV 9.1 - use settings system instead. Will be removed in INAV 10.0
-
#define MSP_WP_MISSION_LOAD 18 // Load mission from NVRAM
#define MSP_WP_MISSION_SAVE 19 // Save mission to NVRAM
#define MSP_WP_GETINFO 20