Could not land! Forced crash as I fought for control over continuous auto failsafe into RTL

I’ll start this post by saying I did, for the first time, intentionally set the BATT_FS_LOW_ACT to 1:RTL prior to flight (hey it sounds perfectly prudent until you keep reading). Also, my battery was severely sagging and/or the volt/current meter is not calibrated correctly - so I have some work to do there.

The Flight:
I took off in FBWA, climbed out at about 60% throttle and, almost immediately I hear “RTL” from Yaapu telemetry - and the plane takes off into the sky at full speed to presumably get into position to start circling.

I’m a 22 year experienced RC pilot (new to Ardupilot however) and so I immediately switched to manual to figure it out. The problem is that almost immediately after switching to manual it auto switches back to RTL! This fight for literal control continues for the rest of the flight with me mad pressing manual mode, having a second of control followed by an automatic switch back to RTL (with full power out in random directions). I never truly regain control, but manage to get it lower with each cycle and force ditch the plane into the ground at a high rate of speed. It was a hard hit, and did I mention this is an old school wooden plane! I got lucky and only broke the horizontal stab. Not to mention a few more gray hairs.


  • Plane: 1.5M powered wooden frame glider - custom electric engine pod - flies really well in manual, FBWA and FBWB (if you can keep it there!)
  • FC: Pixhawk 1-2M, running 4.1dev.


Some observations:

  • Compass calibration is off and yeah it warns about that in the log - and I didn’t have that in my arming checks (woops). However, I’m not sure that matters much to this scenario.
  • Increased throttle seems clearly related to voltage drop and “seems” to correlate to the auto RTL as you would expect from BATT_FS_LOW_ACT.

So here’s where I need help:
In the logs:

  • (see log) why would all of the reason codes for the switch to mode RTL state code 1? From the enumerated list in ModeReason.h, 1 is RC_COMMAND. Should it not have been a 4 for BATTERY_FAILSAFE?
  • Why does the log show a switch to RTL twice each time (filter by mode and you will see)? Maybe it doesn’t matter, but when fighting for manual control it would be nice to not be out ruled twice each time!

Lessons already learned:

  • Disable BATT_FS_*** until further notice!
  • Add Compass to arming checks!
  • Troubleshoot voltage sensor.
  • Troubleshoot battery sag.
  • Lower throttle max - its WAY too high for a glider at full power in auto mode.

The three big questions I need help with:

  1. Am I correct in thinking that BATT_FS_LOW_ACT was the primary issue here? What else am I missing?

  2. And… if so, can someone please explain how a pilot is expected to land a plane using BATT_FS_LOW_ACT and/or BATT_FS_CRT_ACT (without a land mission set) when the system keeps flipping back in to RTL as the voltage goes above and below the critical levels? Battery sag is a real thing even if your system is tuned properly.

  3. The most critical thing for me is: How can I override all auto mode switching and keep the damn thing in manual if this ever happens again?

Final thoughts

  • Thank god for audible telemetry telling me about the automatic mode switching in the moment.
  • I did think about disarming as i do have that on a switch, but I couldn’t remember if it would disable control surfaces (turns out it doesn’t) or, if it did, would I regain arming. So yeah, in hindsight I could have flipped to disarm and glided gently to my feet. Still would be nice to find a proper master override that keeps me in control of the throttle and doesn’t bypass throttle safety.

Thanks for reading till the end. I appreciate any and all help.

Here’s a pic of the plane:

Nothing to do with battery failsafe, you have RTL set on channel 11 (RC11_OPTION = 4)

This is the plot of RC11. I have also included the mode switch on channel 8, and the mode number.

The signal on channel 11 was more or less right on the 1800us threshold. Every time it was above you would get put into RTL, every time it went lower, or you switched you flight mode switch then you would get that mode.

Since the other RC channels seem to be working OK, I guess that RC11 is not set to a switch on the transmitter, maybe a pot or knob?

The TLDR is that AP was doing what it was told by the transmitter, just need to find why the transmitter was not doing what you thought you had told it to do.

1 Like

Oh wow! First, thank you for such a fast response! Second, yup, I just confirmed and its totally a configuration error on my part. When I first setup I put the RTL switch on Ch11 using the OpenTX “mixes” menu. Some days later I looked through my radio “outputs” and found Ch11 available so I added RSSI to that! Well crap!

At least its an obvious correctable error.

Again, thank you for the quick troubleshooting and response.

Edit: just goes to show I should have believed the mode reason!

Would you mind confirming something for me though? If the craft does enter battery failsafe and I then switch to manual and then the voltage goes above and then below the threshold, would it switch back in to the failsafe mode or should it be ignored in manual?

The manual only talks about hitting the second failsafe, but no mention of re-triggering the first one:

Battery failsafe is a one time mode change, it will change modes when you pass the threshold the first time, after then you can do whatever manually.

Thank you for confirming.

Hi buddy glad you worked it out

( I’m a 22 year experienced RC pilot (new to Ardupilot however)
question why are running 4.1dev and not stable 4.0.9
4.1 dev changes ever day as the find bugs ?

Because 4.1 is the only version that supports Crossfire for Yaapu telemetry as well as DJI OSD.

1 Like

yes i am waiting for that as well
why not use 4.1.0 beta release lot safer to fly with ?

1 Like