Repository navigation
Don't let logic condition arming override defeat failsafe DROP disarm - #12161
Conversation
OVERRIDE_ARMING_SAFETY bypassed every arming-disabled flag in tryArm(), including ARMING_DISABLED_FAILSAFE_SYSTEM. After failsafe DROP disarmed, the craft re-armed ~0.1 s later and the motors stayed at their last value. The override no longer applies while the failsafe lockout is set.
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoPrevent arming-safety override from bypassing failsafe lockout
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can move or hide resolved findings to focus on what still needs action |
|
RAM / Flash usage vs. base commit
See RAM/flash optimization guide for techniques to reduce usage. |
|
Test firmware build ready — commit Download firmware for PR #12161 251 targets built. Find your board's
|
Problem
With a logic condition using operation 22 (Override Arming Safety) active, failsafe DROP disarms and sets
ARMING_DISABLED_FAILSAFE_SYSTEM, thentryArm()re-arms about 0.1 s later because the override bypasses every arming-disabled flag. Motors stay at their last value (found on a boat with reversible motors).Fix
In
tryArm(), the override no longer applies whileARMING_DISABLED_FAILSAFE_SYSTEMis set. The flag clears through the existing path (RX good for 30 s and arm switch off). Docs row for operation 22 updated.Testing
SITL: failsafe_procedure=DROP, MSP receiver, LC
logic 0 1 -1 22 0 0 0 0 0, link loss with the arm switch still high. Before the fix the FC reported ARMED together withARMING_DISABLED_FAILSAFE_SYSTEM; after, it stays disarmed.Also confirmed on hardware