diff --git a/src/main/io/serial_msp.c b/src/main/io/serial_msp.c index ad59c02410..2c347dc5cd 100644 --- a/src/main/io/serial_msp.c +++ b/src/main/io/serial_msp.c @@ -1272,7 +1272,7 @@ static bool processOutCommand(uint8_t cmdMSP) serialize16(currentProfile->pidProfile.yaw_lpf_hz); break; case MSP_ADVANCED_TUNING: - headSerialReply(3 * 3); + headSerialReply(3 * 2); serialize16(currentProfile->pidProfile.rollPitchItermIgnoreRate); serialize16(currentProfile->pidProfile.yawItermIgnoreRate); serialize16(currentProfile->pidProfile.yaw_p_limit); @@ -1281,6 +1281,12 @@ static bool processOutCommand(uint8_t cmdMSP) headSerialReply(1); serialize8(currentControlRateProfile->rcYawRate8); break; + case MSP_SENSOR_CONFIG: + headSerialReply(3); + serialize8(masterConfig.acc_hardware); + serialize8(masterConfig.baro_hardware); + serialize8(masterConfig.mag_hardware); + break; default: return false; @@ -1848,6 +1854,11 @@ static bool processInCommand(void) case MSP_SET_TEMPORARY_COMMANDS: currentControlRateProfile->rcYawRate8 = read8(); break; + case MSP_SET_SENSOR_CONFIG: + masterConfig.acc_hardware = read8(); + masterConfig.baro_hardware = read8(); + masterConfig.mag_hardware = read8(); + break; default: // we do not know how to handle the (valid) message, indicate error MSP $M! return false; diff --git a/src/main/io/serial_msp.h b/src/main/io/serial_msp.h index 15a73bab18..7acb92a252 100644 --- a/src/main/io/serial_msp.h +++ b/src/main/io/serial_msp.h @@ -203,6 +203,9 @@ static const char * const boardIdentifier = TARGET_BOARD_IDENTIFIER; #define MSP_ADVANCED_TUNING 94 #define MSP_SET_ADVANCED_TUNING 95 +#define MSP_SENSOR_CONFIG 96 +#define MSP_SET_SENSOR_CONFIG 97 + #define MSP_TEMPORARY_COMMANDS 98 // Temporary Commands before cleanup #define MSP_SET_TEMPORARY_COMMANDS 99 // Temporary Commands before cleanup