diff --git a/src/main/interface/msp.c b/src/main/interface/msp.c index 551e564509..2fd89a87f8 100644 --- a/src/main/interface/msp.c +++ b/src/main/interface/msp.c @@ -412,6 +412,7 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce break; case MSP_BOARD_INFO: + { sbufWriteData(dst, systemConfig()->boardIdentifier, BOARD_IDENTIFIER_LENGTH); #ifdef USE_HARDWARE_REVISION_DETECTION sbufWriteU16(dst, hardwareRevision); @@ -427,7 +428,23 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce sbufWriteU8(dst, 0); // 0 == FC #endif #endif + // Board communication capabilities (uint8) + // Bit 0: 1 iff the board has VCP + // Bit 1: 1 iff the board supports software serial + uint8_t commCapabilities = 0; +#ifdef USE_VCP + commCapabilities |= 1 << 0; +#endif +#if defined(USE_SOFTSERIAL1) || defined(USE_SOFTSERIAL2) + commCapabilities |= 1 << 1; +#endif + sbufWriteU8(dst, commCapabilities); + + // Target name with explicit length + sbufWriteU8(dst, strlen(targetName)); + sbufWriteData(dst, targetName, strlen(targetName)); break; + } case MSP_BUILD_INFO: sbufWriteData(dst, buildDate, BUILD_DATE_LENGTH);