Skip to content

Unexpected Disarm in ACRO mode when Throttle at zero during GCS/RC Failsafe while airborne #31798

@Lqs66

Description

@Lqs66

Bug report

Issue details

In ACRO mode, if the vehicle is airborne and the throttle is at the minimum position, triggering an GCS/RC Failsafe causes the copter to immediately disarm in mid-air.

While the "Disarm on low throttle" logic is expected on the ground, it should not be triggered when the flight controller detects the vehicle is still in flight (Airborne), especially during a failsafe event where a controlled RTL or Land is expected.

See line 472:

bool Copter::should_disarm_on_failsafe() {
if (ap.in_arming_delay) {
return true;
}
switch (flightmode->mode_number()) {
case Mode::Number::STABILIZE:
case Mode::Number::ACRO:
// if throttle is zero OR vehicle is landed disarm motors
return ap.throttle_zero || ap.land_complete;
case Mode::Number::AUTO:
case Mode::Number::AUTO_RTL:
// if mission has not started AND vehicle is landed, disarm motors
return !ap.auto_armed && ap.land_complete;
default:
// used for AltHold, Guided, Loiter, RTL, Circle, Drift, Sport, Flip, Autotune, PosHold
// if landed disarm
return ap.land_complete;
}
}

Steps to Reproduce:

  1. Take off and switch to ACRO mode.
  2. Lower the throttle stick to the minimum position.
  3. param set FS_THR_VALUE -1 (trigger an RC Failsafe)/param set FS_GCS_TIMEOUT 0 (trigger a GCS Failsafe).
  4. The copter disarms immediately and falls.
  5. Expected Result: The copter should trigger the configured Failsafe action (e.g., RTL or Land) regardless of the throttle position, as long as it is airborne.

Version
Copter 4.4 -> main

Platform
[ ] All
[ ] AntennaTracker
[x] Copter
[ ] Plane
[ ] Rover
[ ] Submarine

Airframe type
sitl

Logs
RC Failsafe:
log_0_2025-12-27-12-45-46.zip

GCS Failsafe:
log_0_2026-1-7-16-26-53.bin.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions