Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 88 additions & 2 deletions docs/VTOL.md

Large diffs are not rendered by default.

11 changes: 1 addition & 10 deletions src/main/flight/mixer_profile.c
Original file line number Diff line number Diff line change
Expand Up @@ -865,14 +865,6 @@ static bool mixerATReadyForHotSwitch(const mixerProfileATRequest_e required_acti
const bool usableAirspeedAvailable =
airspeedThresholdCmS > 0 && hasUsableTransitionAirspeed(&airspeedCmS);

if (isTailSitterManualToMcCapture() && !usableAirspeedAvailable) {
// Timer fallback is acceptable for the established tilt/pusher paths,
// but a tailsitter must not rotate into MC at an unknown airspeed.
mixerProfileAT.usedAirspeed = false;
mixerProfileAT.waitReason = MIXERAT_WAIT_REASON_NO_SPEED;
updateHandoffScalingProgress(currentTimeMs);
return false;
}
const mixerTransitionHotSwitchProgress_t hotSwitchProgress = mixerTransitionEvaluateHotSwitch(
direction,
airspeedThresholdCmS,
Expand Down Expand Up @@ -1135,7 +1127,7 @@ bool mixerATUpdateState(mixerProfileATRequest_e required_action)
completeTransition();
}
return true;
} else if ((mixerProfileAT.usedAirspeed || isTailSitterManualToMcCapture()) &&
} else if (mixerProfileAT.usedAirspeed &&
currentMixerConfig.vtolTransitionAirspeedTimeoutMs > 0 &&
(millis() - mixerProfileAT.transitionStartTime) >= currentMixerConfig.vtolTransitionAirspeedTimeoutMs) {
abortTransition(true, false);
Expand Down Expand Up @@ -1271,7 +1263,6 @@ void outputProfileUpdateTask(timeUs_t currentTimeUs)
navigationProfileSwitchWasOwned,
navigationOwnsProfileSwitch,
mixerProfileModePresent,
mixerAT_inuse,
transitionModeActive,
currentMixerProfileIndex,
requestedProfileIndex);
Expand Down
4 changes: 2 additions & 2 deletions src/main/flight/mixer_transition_logic.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,15 +239,15 @@ static inline bool mixerTransitionNavigationHandbackShouldHoldProfile(
bool navigationOwnedProfileSwitchPreviousUpdate,
bool navigationOwnsProfileSwitch,
bool mixerProfileModePresent,
bool autoTransitionActive,
bool transitionModeActive,
int currentProfileIndex,
int requestedProfileIndex)
{
// Capture the ownership edge even if transition outputs are still finishing.
// Waiting for an idle transition would lose this edge on the next update.
return navigationOwnedProfileSwitchPreviousUpdate &&
!navigationOwnsProfileSwitch &&
mixerProfileModePresent &&
!autoTransitionActive &&
(transitionModeActive || currentProfileIndex != requestedProfileIndex);
}

Expand Down
Loading
Loading