diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index 20b30a71f1..1ba0d3780f 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -2916,12 +2916,12 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src) #ifdef USE_RX_MSP case MSP2_COMMON_SET_MSP_RC_LINK_STATS: - if (dataSize >= 8) { + if (dataSize >= 7) { uint8_t sublinkID = sbufReadU8(src); // Sublink ID sbufReadU8(src); // Valid link (Failsafe backup) - if (sublinkID == 1) { + if (sublinkID == 0) { setRSSIFromMSP_RC(sbufReadU8(src)); // RSSI % - rxLinkStatistics.uplinkRSSI = -sbufReadU16(src); + rxLinkStatistics.uplinkRSSI = -sbufReadU8(src); rxLinkStatistics.downlinkLQ = sbufReadU8(src); rxLinkStatistics.uplinkLQ = sbufReadU8(src); rxLinkStatistics.uplinkSNR = sbufReadI8(src); @@ -2934,7 +2934,7 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src) if (dataSize >= 15) { uint8_t sublinkID = sbufReadU8(src); - if (sublinkID == 1) { + if (sublinkID == 0) { rxLinkStatistics.uplinkTXPower = sbufReadU16(src); rxLinkStatistics.downlinkTXPower = sbufReadU16(src); diff --git a/src/main/rx/rx.c b/src/main/rx/rx.c index 5743f51495..00ed23ab25 100755 --- a/src/main/rx/rx.c +++ b/src/main/rx/rx.c @@ -579,7 +579,7 @@ void setRSSIFromMSP_RC(uint8_t newMspRssi) } if (activeRssiSource == RSSI_SOURCE_MSP) { - rssi = constrain(scaleRange(newMspRssi, 0, 100, 0, RSSI_MAX_VALUE), 0, RSSI_MAX_VALUE); + rssi = constrain(scaleRange(constrain(newMspRssi, 0, 100), 0, 100, 0, RSSI_MAX_VALUE), 0, RSSI_MAX_VALUE); lastMspRssiUpdateUs = micros(); } }