Potentially fatal bug in Arducopter?

My Arducopter RC2 turned off all four motors at about 100' up today, and plunged to its death with no rotors spinning.

 

I believe there is a software bug or misguided feature at the root of it.

 

I was using GPS Hold to pin position, and the Arducopter was ascending.  I brought the throttle stick down (while still in GPS Hold) to slow the ascent.  I brought the stick all the way down.  It was still a bit higher than I would have liked, so I switched GPS Hold Off and moved the throttle quickly to center/hover position.

 

This is when the motors turned off.

 

I can actually recreate this same scenario on the Configurator!  In fact, any quick motion of the throttle stick from full down to mid-stick, while in flight, will kill all the motors and disarm.

 

Go try it and let me know if this is intentional/normal.  It seems to auto-disarm if you bring the stick up quickly.  That can't be good.

 

I have to get a new frame kit and a new motor/prop from Thailand now.  I'm going to go look for the responsible bit of code and excise it.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Cindi the 'Copter probably met a similar fate:

    http://www.diydrones.com/profiles/blogs/four-arducopter-flights-in-a

     

  • After repair to both the Arducopter and the code, it flew again!

     

    Marvelous.  I could yank the throttle all over (and in GPS Hold, you sometimes have to), without any spontaneous shutdown.

     

    Again, I removed the "SAFETY" code altogether.  I recommend the Pirates do the same for their released build, since it's just a matter of time before someone else drops one out of the sky.

  • And also, note that the ArduCopter kit uses 28cm arms.

     

    Even though FahPah sells 21.5cm arms as "ArduCopter Arm set", and might be out of all the others, it's the 28cm arms that you want.

     

    Anyone want to buy a set of 21.5cm arms? :)

     

  • is this in the heli code too ? how about something like if descent rate +5mtrs s and if altitude above 10 feet hold altitude (give you time to think about what your doing or turn your transmitter back on), or just disable safety above 10 or 15 feet,( beware of going canyon flying)
  • I also noticed that the Safety code is engaging sooner than the comment indicates:

    #define SAFETY_DELAY 25   // how long you need to keep throttle to min before safety activates and does not allow sudden throttle increases

    // Safety logic: hold throttle low for more than 1 second, safety comes on which stops sudden increases in throttle

     

    If units are 20mS, then the safety delay is really only 1/2 second.

    So, if you bring the throttle stick down low for 1/2 second, then bring it up quickly, your bird falls out of the sky.

     

    This is a deadly combination with the GPS Hold mode, where the throttle behaves quite differently than normal flight, and more severe deflections are normal.

     

    I'm surprised I'm the only one to hit this, and on my very first Magnetometer flight with a working GPS Hold.

  • I saw this bit in code too. Its around line 60 in the radio tab.

    // throttle safety check
        if( motorSafety == 1 ) {
            if( motorArmed == 1 ) {
                if( ch_throttle > MIN_THROTTLE + 100 ) { // if throttle is now over MIN..
                    // if throttle has increased suddenly, disarm motors
                    if( (tempThrottle - ch_throttle) > SAFETY_MAX_THROTTLE_INCREASE  ) {    
                        motorArmed = 0;
                    }else{ // if it hasn't increased too quickly turn off the safety
                        motorSafety = 0;
                    }
                }
            }

     

    The theory is that it will save you from accidentally getting cut up if you hit your throttle stick without knowing it. (Say you are holding the quad inspecting it and your foot hits the throttle stick, this way it wont shred you to pieces)

     

    I dont like that feature myself, so to disable it, Im just going to increase the SAFETY MAX THROTTLE INCREASE to 2000. The way I see it is that its a great idea to keep less than meticulous people from cutting themselves up. But for anyone who already disarms the quad before they pick it up, it would only cause problems. That was the whole reason for having a specific arming sequence.

     

    Sorry about your quad, may she rest in peace

     

    (edit: Chris beat me to it)

  • 3D Robotics

    That was intentional, but maybe not well-advised. It was a safety measure to avoid "instant on" catastrophes on the benchtop, such as when people turned off their RC transmitter, which on some RC sends an all-on signal.  Perhaps we set it to be too sensitive, or perhaps it wasn't a good idea at all, but it was designed to ensure that your quad won't hurt you if you do something wrong.

     

    It is not in ACM, and the ArduPirates may decide to take it out or modify it in NG.

  • Just to clarify, to reproduce the bug in Configurator (with ESCs disconnected or props removed):

     

    1) ARM the Arducopter so all motors are idling.

    2) Bring the stick up to mid-stick/hover.  Motors should be at mid-speed.

    3) Now bring the throttle to full descent (down).

    4) Now bring it back up to hover quickly.  All four motor signals will go full-off and disarm.

     

    I can't see how this would be desirable.

This reply was deleted.

Activity