Is it possible to configure ArduCopter (2.7.3) to do and RTL (and optionally land) if the battery voltage becomes too low?

I read the Wiki over and I'm not sure how to do it.

I have battery monitoring on my setup (APM1) and can read the correct battery voltage on the Mission Planner (via telemetry).

Alternatively, can MP be set up to sound a loud alarm when the battery voltage is too low?


Views: 2676

Reply to This

Replies to This Discussion

I would really like it to work like the Naza (below) or better :)

I build a voltage devider with 2 resistors (metal film, low tolerance) for 3S setup here http://diydrones.com/forum/topics/no-serious-problems-just-some-que... . After calibration with a simple multimeter in the missionplanner i get very good readings in my OSD. Perhaps this could be the first step for you. BTW i always disable this autolanding feature on my naza setup in the first place. Because i have too much water, trees and obstacles in my flying area and i don't want an automatic landing when i just need 2 sec more flighttime to navigate to a secure landing place. You can bet everything on this: if there is only one place where you can wreck your copter - you will def. find it with an low voltage autolanding feature. So, yes, low voltage protections are not fun - indeed.

That is offtopic and just my point of view.

So long

Kraut Rob

No need for a voltage divider, at least with APM1 and 3S battery there's support for battary voltage monitoring already in place and working well.

What I need is to take a (programmable) action on low battery level.  RTL is what I would choose - you can avoid landing (the default with RTL).

By the way this should be similar to the failsafe mode (loss of RC control) which is already implemented.


One step further, for auto-mode i would suggest:

a) a "Go to next clear waypoint" mode

b) an extra waypoint variable, to define, if the copter could or could not land (auto) on this point

c) a wind-estimation, the copter could itself decide

- is it save to return to home, if not

- go to the *next* clear waypoint on the mission

- (maybe with the possibility to decide to go to the *last* clear waypoint as well)

d) a keep on route (trees) or crossing option (free field / + alt) to return to home


Just raising this discussion again because it seems to be lost among the 2.7.x discussions.  I believe this is an important feature and would like to have the developers' opinions.


RTL on low battery it's a desirable feature.


In events.pde you'll find this :

static void low_battery_event(void)
    static uint32_t last_low_battery_message;
    uint32_t tnow = millis();
    if (((uint32_t)(tnow - last_low_battery_message)) > 5000) {
        // only send this message at 5s intervals at most or we may
        // flood the link
        gcs_send_text_P(SEVERITY_LOW,PSTR("Low Battery!"));
        last_low_battery_message = tnow;
    low_batt = true;
    // if we are in Auto mode, come home
    if(control_mode >= AUTO)

You need to set #define BATTERY_EVENT ENABLED in apm_config.h for it to work AND it is commented out by default.  To enable it you need to remove the // in sensors.pde, line 82

    //if(battery_voltage < g.low_voltage)
    //  low_battery_event();

So set #define BATTERY_EVENT = ENABLED in apm_config.h and remove the comment (//) before the 2 lines in sensors.pde and then it should work.

Ow, you should also set the low battery limit with # define LOW_VOLTAGE                    9.6 or you can also set it in mission planner.

The default is 9.6V (if you don't set it) and also configure voltage measuring so it measures correctly.

Carefull however !  It will always switch to RTL when in auto and battery drops low.

So I guess most of the code is there.  So what is required:

  • Make it configurable from MP
  • Do it not just for Auto mode but for other modes as well; I suggest adopting the failsafe model, where you can configure what to do (land in place, fly home etc.)
  • We may also want to have two thresholds, one for when there's still time to RTL, and a lower one where you really want to land ASAP.


Thing is, it's kinda dangerous and VERY scary to have your drone suddenly do stuff you didn't expect (land or RTL).  That's why it's commented out by default I guess, so only experienced users can get it working.

I found having warning leds is much safer : U4eake's showleds (copterleds will also do it I think).

As usual : suggestions there are plenty.  Devellopers to turn the suggestions into reality : too few.  But you should be able to get it working now.  Just be carefull with it and test it in safe conditions !

The LEDs are of course important and good indicators, but they should not preclude RTL.  My experience with LED indicators in the past is that they me be dificult to see when the quad is far and in daylight.

By the way, it would be great if your solution would be part of the standard build and will not require source code changes and compilation.


This discussion sort of fizzled out...  but I still think it's an important feature.

Any chance of it getting into an upcoming release?


Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service