diff --git a/src/main/fc/fc_msp_box.c b/src/main/fc/fc_msp_box.c index 79704a7aa9..78e3131156 100644 --- a/src/main/fc/fc_msp_box.c +++ b/src/main/fc/fc_msp_box.c @@ -182,11 +182,14 @@ void initActiveBoxIds(void) activeBoxIds[activeBoxIdCount++] = BOXSURFACE; } - // if ((feature(FEATURE_GPS) && sensors(SENSOR_MAG) && sensors(SENSOR_ACC)) || - // ((1) && sensors(SENSOR_MAG) && sensors(SENSOR_ACC)) || - // (STATE(FIXED_WING) && sensors(SENSOR_ACC) && feature(FEATURE_GPS))) { - if (sensors(SENSOR_ACC)) { + const bool navReadyQuads = !STATE(FIXED_WING) && sensors(SENSOR_MAG) && sensors(SENSOR_ACC) && feature(FEATURE_GPS); + const bool navReadyPlanes = STATE(FIXED_WING) && sensors(SENSOR_ACC) && feature(FEATURE_GPS); + const bool navFlowDeadReckoning = sensors(SENSOR_OPFLOW) && sensors(SENSOR_ACC) && positionEstimationConfig()->allow_dead_reckoning; + if (navFlowDeadReckoning || navReadyQuads || navReadyPlanes) { activeBoxIds[activeBoxIdCount++] = BOXNAVPOSHOLD; + } + + if (navReadyQuads || navReadyPlanes) { activeBoxIds[activeBoxIdCount++] = BOXNAVRTH; activeBoxIds[activeBoxIdCount++] = BOXNAVWP; activeBoxIds[activeBoxIdCount++] = BOXHOMERESET; @@ -329,7 +332,7 @@ uint16_t packSensorStatus(void) IS_ENABLED(sensors(SENSOR_MAG)) << 2 | IS_ENABLED(sensors(SENSOR_GPS)) << 3 | IS_ENABLED(sensors(SENSOR_RANGEFINDER)) << 4 | - //IS_ENABLED(sensors(SENSOR_OPFLOW)) << 5 | + IS_ENABLED(sensors(SENSOR_OPFLOW)) << 5 | IS_ENABLED(sensors(SENSOR_PITOT)) << 6; // Hardware failure indication bit