diff --git a/docs/development/msp/README.md b/docs/development/msp/README.md
index 7377eef84bc..324068780b1 100644
--- a/docs/development/msp/README.md
+++ b/docs/development/msp/README.md
@@ -261,8 +261,6 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:
[91 - MSP_SET_ADVANCED_CONFIG](#msp_set_advanced_config)
[92 - MSP_FILTER_CONFIG](#msp_filter_config)
[93 - MSP_SET_FILTER_CONFIG](#msp_set_filter_config)
-[94 - MSP_PID_ADVANCED](#msp_pid_advanced)
-[95 - MSP_SET_PID_ADVANCED](#msp_set_pid_advanced)
[96 - MSP_SENSOR_CONFIG](#msp_sensor_config)
[97 - MSP_SET_SENSOR_CONFIG](#msp_set_sensor_config)
[98 - MSP_SPECIAL_PARAMETERS](#msp_special_parameters)
@@ -1724,50 +1722,6 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:
**Notes:** Requires at least 22 bytes; intermediate length checks enforce legacy Betaflight frame layout and call `pidInitFilters()` once the D-term notch placeholders are consumed.
-## `MSP_PID_ADVANCED (94 / 0x5e)`
-**Description:** Retrieves advanced PID tuning parameters. Many fields are BF compatibility placeholders.
-
-**Request Payload:** **None**
-
-**Reply Payload:**
-|Field|C Type|Size (Bytes)|Units|Description|
-|---|---|---|---|---|
-| `legacyRollPitchItermIgnore` | `uint16_t` | 2 | - | Always 0 (Legacy) |
-| `legacyYawItermIgnore` | `uint16_t` | 2 | - | Always 0 (Legacy) |
-| `legacyYawPLimit` | `uint16_t` | 2 | - | Always 0 (Legacy) |
-| `bfCompatDeltaMethod` | `uint8_t` | 1 | - | Always 0 (BF compatibility) |
-| `bfCompatVbatPidComp` | `uint8_t` | 1 | - | Always 0 (BF compatibility) |
-| `bfCompatSetpointRelaxRatio` | `uint8_t` | 1 | - | Always 0 (BF compatibility) |
-| `reserved1` | `uint8_t` | 1 | - | Always 0 |
-| `legacyPidSumLimit` | `uint16_t` | 2 | - | Always 0 (Legacy) |
-| `bfCompatItermThrottleGain` | `uint8_t` | 1 | - | Always 0 (BF compatibility) |
-| `accelLimitRollPitch` | `uint16_t` | 2 | dps / 10 | Axis acceleration limit for Roll/Pitch / 10 (`pidProfile()->axisAccelerationLimitRollPitch / 10`) |
-| `accelLimitYaw` | `uint16_t` | 2 | dps / 10 | Axis acceleration limit for Yaw / 10 (`pidProfile()->axisAccelerationLimitYaw / 10`) |
-
-**Notes:** Acceleration limits are scaled by 10 for compatibility.
-
-## `MSP_SET_PID_ADVANCED (95 / 0x5f)`
-**Description:** Sets advanced PID tuning parameters.
-
-**Request Payload:**
-|Field|C Type|Size (Bytes)|Units|Description|
-|---|---|---|---|---|
-| `legacyRollPitchItermIgnore` | `uint16_t` | 2 | - | Ignored (legacy compatibility). |
-| `legacyYawItermIgnore` | `uint16_t` | 2 | - | Ignored (legacy compatibility). |
-| `legacyYawPLimit` | `uint16_t` | 2 | - | Ignored (legacy compatibility). |
-| `bfCompatDeltaMethod` | `uint8_t` | 1 | - | Ignored (BF compatibility). |
-| `bfCompatVbatPidComp` | `uint8_t` | 1 | - | Ignored (BF compatibility). |
-| `bfCompatSetpointRelaxRatio` | `uint8_t` | 1 | - | Ignored (BF compatibility). |
-| `reserved1` | `uint8_t` | 1 | - | Ignored (reserved). |
-| `legacyPidSumLimit` | `uint16_t` | 2 | - | Ignored (legacy compatibility). |
-| `bfCompatItermThrottleGain` | `uint8_t` | 1 | - | Ignored (BF compatibility). |
-| `accelLimitRollPitch` | `uint16_t` | 2 | dps / 10 | Sets `pidProfileMutable()->axisAccelerationLimitRollPitch = value * 10`. |
-| `accelLimitYaw` | `uint16_t` | 2 | dps / 10 | Sets `pidProfileMutable()->axisAccelerationLimitYaw = value * 10`. |
-
-**Reply Payload:** **None**
-
-**Notes:** Expects 17 bytes.
-
## `MSP_SENSOR_CONFIG (96 / 0x60)`
**Description:** Retrieves the configured hardware type for various sensors.
diff --git a/docs/development/msp/msp_messages.json b/docs/development/msp/msp_messages.json
index 176833915ad..89b8fc61fc4 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": {
@@ -3304,153 +3304,6 @@
"notes": "Requires at least 22 bytes; intermediate length checks enforce legacy Betaflight frame layout and call `pidInitFilters()` once the D-term notch placeholders are consumed.",
"description": "Sets filter configuration settings. Handles different payload lengths for backward compatibility."
},
- "MSP_PID_ADVANCED": {
- "code": 94,
- "mspv": 1,
- "replaced_by": ["MSP_INAV_PID"],
- "request": null,
- "reply": {
- "payload": [
- {
- "name": "legacyRollPitchItermIgnore",
- "ctype": "uint16_t",
- "desc": "Always 0 (Legacy)",
- "value": 0
- },
- {
- "name": "legacyYawItermIgnore",
- "ctype": "uint16_t",
- "desc": "Always 0 (Legacy)",
- "value": 0
- },
- {
- "name": "legacyYawPLimit",
- "ctype": "uint16_t",
- "desc": "Always 0 (Legacy)",
- "value": 0
- },
- {
- "name": "bfCompatDeltaMethod",
- "ctype": "uint8_t",
- "desc": "Always 0 (BF compatibility)",
- "value": 0
- },
- {
- "name": "bfCompatVbatPidComp",
- "ctype": "uint8_t",
- "desc": "Always 0 (BF compatibility)",
- "value": 0
- },
- {
- "name": "bfCompatSetpointRelaxRatio",
- "ctype": "uint8_t",
- "desc": "Always 0 (BF compatibility)",
- "value": 0
- },
- {
- "name": "reserved1",
- "ctype": "uint8_t",
- "desc": "Always 0",
- "value": 0
- },
- {
- "name": "legacyPidSumLimit",
- "ctype": "uint16_t",
- "desc": "Always 0 (Legacy)",
- "value": 0
- },
- {
- "name": "bfCompatItermThrottleGain",
- "ctype": "uint8_t",
- "desc": "Always 0 (BF compatibility)",
- "value": 0
- },
- {
- "name": "accelLimitRollPitch",
- "ctype": "uint16_t",
- "desc": "Axis acceleration limit for Roll/Pitch / 10 (`pidProfile()->axisAccelerationLimitRollPitch / 10`)",
- "units": "dps / 10"
- },
- {
- "name": "accelLimitYaw",
- "ctype": "uint16_t",
- "desc": "Axis acceleration limit for Yaw / 10 (`pidProfile()->axisAccelerationLimitYaw / 10`)",
- "units": "dps / 10"
- }
- ]
- },
- "notes": "Acceleration limits are scaled by 10 for compatibility.",
- "description": "Retrieves advanced PID tuning parameters. Many fields are BF compatibility placeholders."
- },
- "MSP_SET_PID_ADVANCED": {
- "code": 95,
- "mspv": 1,
- "replaced_by": ["MSP_SET_INAV_PID"],
- "request": {
- "payload": [
- {
- "name": "legacyRollPitchItermIgnore",
- "ctype": "uint16_t",
- "desc": "Ignored (legacy compatibility)."
- },
- {
- "name": "legacyYawItermIgnore",
- "ctype": "uint16_t",
- "desc": "Ignored (legacy compatibility)."
- },
- {
- "name": "legacyYawPLimit",
- "ctype": "uint16_t",
- "desc": "Ignored (legacy compatibility)."
- },
- {
- "name": "bfCompatDeltaMethod",
- "ctype": "uint8_t",
- "desc": "Ignored (BF compatibility)."
- },
- {
- "name": "bfCompatVbatPidComp",
- "ctype": "uint8_t",
- "desc": "Ignored (BF compatibility)."
- },
- {
- "name": "bfCompatSetpointRelaxRatio",
- "ctype": "uint8_t",
- "desc": "Ignored (BF compatibility)."
- },
- {
- "name": "reserved1",
- "ctype": "uint8_t",
- "desc": "Ignored (reserved)."
- },
- {
- "name": "legacyPidSumLimit",
- "ctype": "uint16_t",
- "desc": "Ignored (legacy compatibility)."
- },
- {
- "name": "bfCompatItermThrottleGain",
- "ctype": "uint8_t",
- "desc": "Ignored (BF compatibility)."
- },
- {
- "name": "accelLimitRollPitch",
- "ctype": "uint16_t",
- "desc": "Sets `pidProfileMutable()->axisAccelerationLimitRollPitch = value * 10`.",
- "units": "dps / 10"
- },
- {
- "name": "accelLimitYaw",
- "ctype": "uint16_t",
- "desc": "Sets `pidProfileMutable()->axisAccelerationLimitYaw = value * 10`.",
- "units": "dps / 10"
- }
- ]
- },
- "reply": null,
- "notes": "Expects 17 bytes.",
- "description": "Sets advanced PID tuning parameters."
- },
"MSP_SENSOR_CONFIG": {
"code": 96,
"mspv": 1,
diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c
index 1edf45749e2..17f7c11fe2e 100644
--- a/src/main/fc/fc_msp.c
+++ b/src/main/fc/fc_msp.c
@@ -1443,25 +1443,6 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
sbufWriteU16(dst, 0); //Was gyroConfig()->gyro_stage2_lowpass_hz
break;
- case MSP_PID_ADVANCED:
- sbufWriteU16(dst, 0); // pidProfile()->rollPitchItermIgnoreRate
- sbufWriteU16(dst, 0); // pidProfile()->yawItermIgnoreRate
- sbufWriteU16(dst, 0); //pidProfile()->yaw_p_limit
- sbufWriteU8(dst, 0); //BF: pidProfile()->deltaMethod
- sbufWriteU8(dst, 0); //BF: pidProfile()->vbatPidCompensation
- sbufWriteU8(dst, 0); //BF: pidProfile()->setpointRelaxRatio
- sbufWriteU8(dst, 0);
- sbufWriteU16(dst, 0); //Was pidsum limit
- sbufWriteU8(dst, 0); //BF: pidProfile()->itermThrottleGain
-
- /*
- * To keep compatibility on MSP frame length level with Betaflight, axis axisAccelerationLimitYaw
- * limit will be sent and received in [dps / 10]
- */
- sbufWriteU16(dst, constrain(pidProfile()->axisAccelerationLimitRollPitch / 10, 0, 65535));
- sbufWriteU16(dst, constrain(pidProfile()->axisAccelerationLimitYaw / 10, 0, 65535));
- break;
-
case MSP_INAV_PID:
sbufWriteU8(dst, 0); //Legacy, no longer in use async processing value
sbufWriteU16(dst, 0); //Legacy, no longer in use async processing value
@@ -2874,29 +2855,6 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
return MSP_RESULT_ERROR;
break;
- case MSP_SET_PID_ADVANCED:
- if (dataSize == 17) {
- sbufReadU16(src); // pidProfileMutable()->rollPitchItermIgnoreRate
- sbufReadU16(src); // pidProfileMutable()->yawItermIgnoreRate
- sbufReadU16(src); //pidProfile()->yaw_p_limit
-
- sbufReadU8(src); //BF: pidProfileMutable()->deltaMethod
- sbufReadU8(src); //BF: pidProfileMutable()->vbatPidCompensation
- sbufReadU8(src); //BF: pidProfileMutable()->setpointRelaxRatio
- sbufReadU8(src);
- sbufReadU16(src); // Was pidsumLimit
- sbufReadU8(src); //BF: pidProfileMutable()->itermThrottleGain
-
- /*
- * To keep compatibility on MSP frame length level with Betaflight, axis axisAccelerationLimitYaw
- * limit will be sent and received in [dps / 10]
- */
- pidProfileMutable()->axisAccelerationLimitRollPitch = sbufReadU16(src) * 10;
- pidProfileMutable()->axisAccelerationLimitYaw = sbufReadU16(src) * 10;
- } else
- return MSP_RESULT_ERROR;
- break;
-
case MSP_SET_INAV_PID:
if (dataSize == 15) {
sbufReadU8(src); //Legacy, no longer in use async processing value
diff --git a/src/main/msp/msp_protocol.h b/src/main/msp/msp_protocol.h
index 6b4705a738c..1821fbb2b4b 100644
--- a/src/main/msp/msp_protocol.h
+++ b/src/main/msp/msp_protocol.h
@@ -204,8 +204,6 @@
#define MSP_FILTER_CONFIG 92 //DEPRECATED in INAV 9.1 - use settings system instead. Will be removed in INAV 10.0
#define MSP_SET_FILTER_CONFIG 93 //DEPRECATED in INAV 9.1 - use settings system instead. Will be removed in INAV 10.0
-#define MSP_PID_ADVANCED 94 //DEPRECATED in INAV 9.1 - use MSP_INAV_PID instead. Will be removed in INAV 10.0
-#define MSP_SET_PID_ADVANCED 95 //DEPRECATED in INAV 9.1 - use MSP_SET_INAV_PID instead. Will be removed in INAV 10.0
#define MSP_SENSOR_CONFIG 96
#define MSP_SET_SENSOR_CONFIG 97