I’m running into an issue trying to configure my drone to enter RTL on radio signal loss. I’m using a TBS Nano RX (CRSF) with a TBS Tango 2 transmitter. The flight controller is a TBS Lucid H7 running ArduCopter 4.6.0.
Goal:
If the radio signal is lost, I want the drone to trigger RTL — not disarm and fall out of the sky. I would like it to RTL with signal loss in any mode including manual
What I’ve Done So Far:
Failsafe Setup in ArduPilot:
FS_THR_ENABLE = 1
FS_THR_VALUE = 975
RC3_MIN = 987
(confirmed from Mission Planner)FS_OPTIONS = 1
(continue in AUTO if already in AUTO)RC_OPTIONS = 8
(treat missing RC channel input as failsafe)
The failsafe screen seems to be set up correctly with signal loss resulting in RTL selected but unfortunately when signal is lost in practice the drone disarms after maybe one second.
Failsafe Mode in Tango 2:
- Set to “Cut” under the failsafe settings for all channels.
- Tested with Pos Hold mode as well, but that results in the RX continuing to output the current stick values — not useful for throttle failsafe as ardupilot doesn’t detect a problem.
What I Observed:
- When I power off the transmitter, the throttle PWM (
ch3in
) stays at 987, even though failsafe is set to “cut.” - Because 987 is both the minimum stick position and the signal the RX sends when powered off, ArduPilot doesn’t detect a failsafe condition.
- This prevents
FS_THR_ENABLE
from triggering RTL — instead, it just says Radio Failsafe and disarms immediately.
Additional Tests:
- I confirmed that
ch3in
(throttle) does not disappear or drop below 975 when the radio is powered off. - Tried setting different values for
RC3_TRIM
,RC3_MIN
, and testedRC_OPTIONS
toggles — no effect. - Verified in the Mission Planner Status tab that PWM values are still seen when the radio is off.
- Even with the drone armed and props spinning, turning off the transmitter just causes disarm via radio failsafe, not RTL.
My Question:
Is there any reliable way to get ArduPilot to detect signal loss via CRSF and trigger RTL instead of disarming — especially when the receiver doesn’t actually drop to PWM = 0 or “cut” like it should?
Or alternatively, is there a way to:
- Force ArduPilot to treat CRSF link loss as a failsafe event (other than PWM logic)?
- Override the behavior and always RTL instead of disarm?
I’ve seen other users online mention Betaflight doing similar disarm behavior when close to home. Not sure if ArduPilot behaves the same, but I am testing on the bench just a few feet from the home point.
Any help would be appreciated. Thanks.