Copter flipped over when taking off in Stabilize Mode

Using 3.4.2-RC3 after doing an Auto Tune for Yaw and landed, taking off in Stabilized caused copter to flip over the first time I tried to take off. The logs show at 125 that the desired roll was all over the map even though no input was given by the stick control.

Log attached: 199.bin



In stabilize mode, the attitude is not controlled when the throttle is at zero. So I think in this case, the pilot gave two little spurts of throttle (i.e. raised it and then brought it back down to zero). When the throttle is at zero, it’s not stabilizing so basically it rolls over.

After the crash, I notice that the pilot is being very slow to raise the throttle. So after arming the throttle is raised just above zero for about 11 seconds. During this time there is “I term” buildup because there’s a bit of yaw error but the vehicle is sitting on the ground unable to fix it’s heading. We can see this because the counter clockwise motors (1 and 2) go high while the clockwise motors (3 and 4) stay low. Generally it’s not a great idea to spend a lot of time in stabilize mode with the throttle just above zero (so it’s trying to stabilize) but actually on the ground where physically it cannot stabilize itself.

One small thing, looks like MOT_SPIN_MIN (0.075) is less than MOT_SPIN_ARM (0.1). MOT_SPIN_MIN should be higher than MOT_SPIN_ARM. I’ll fix the parameter documentation to make this more clear.

Thanks again for testing, it’s really appreciated!

Yes, I raise the throttle slowly because it’s a 250 size quad and I don’t want it to jump into the air. That’s why I set MOT_SPIN_MIN to 7.5%. This causes the motors to spin up slower but I get a good takeoff with no issues other than the motors are a little off.
I use to take off this way in 3.2.1 and 3.3 but after the motor mix revamp in 3.4 it doesn’t work the same.

My concern here is that the Desired roll went to 172 and then -168 when no stick input was given. Shouldn’t Desired roll follow the stick input?


The desired attitude gets reset to the current attitude when landed or when the throttle is at zero in ACRO or Stabilize mode. So I think this is what we’re seeing in the log.