Motor shutdown in air

firmware : 4.1.2
here is another motor shutdown when helicopter still in air

auducopter detect land complete and shtudown the motor then the vehicle still 50 meters above ground in RTL mode.
log attach for reference

@jinchengde I am very sorry that you had an in-flight motor shutdown. I have been trying very hard to design the code to keep this from happening. Please give me the actual collective blade pitch in degress for the following parameters


@jinchengde I reviewed the data. The code behaved as designed. This means that once the speed was below 2.5 m/s, vertical speed was less than 1 m/s, the autopilot was in a landing mode (i.e. RTL), and collective as below H_COL_MID then the aircraft declared land complete and did the autonomous shutdown sequence.

So it really comes down to what was the collective pitch angle set for H_COL_MID. It seems to me and I’m speculating based on what I’m seeing in the log that H_COL_MID was not set for a zero degree collective blade pitch angle. The way the collective parameters are set up, it appears that H_COL_MID was kept at midpoint (i.e. 1500 pwm) and H_COL_MAX and H_COL_MIN were set at equal distance (+/- 160 PWM) from it. So at first glance this would indicate that you may have a 3D collective blade pitch setup (like -10 deg to 10 deg). However you kept the collective blade pitch near H_COL_MIN during runup which would not be practical if it were a 3D setup and you would have severe vibration. In any case, I need more information to confirm my assessment as to the cause.

Currently I am assuming that it was an improperly set collective blade pitch angle for the H_COL_MID setting. Please provide me the collective blade pitch angles for the H_COL_MIN, H_COL_MID, and H_COL_MAX parameters.


hi bill, thanks for you reply
yes, the collective pitch is setup for 3D
H_COL_MAX 10 degree
H_COL_MID 0 degree
H_COL_MIN -10 degree

In messages, we see that “LAND_COMPLETE_MAYBE”, so check the land_detector code

the detect condition include

so , let’s check the motor_at_lower_limit

RTL flightmode have auto throttle but not manual, so it looks like no relation with collective pitch

This check is definitely related to collective pitch. So the code is misleading because it was written for multicopters. These checks that refer to throttle are actually for collective. the throttle lower limit flag is set in the motors class here

So the motor shutdown is definitely due to the H_COL_MID setting. Even though it was a 3D collective blade pitch setup. Some how the PWM setting for H_COL_MID still produced enough lift to meet the other criteria, specifically descent rate less than 1m/s. In 3D setups, the hover collective blade pitch angle can be pretty low especially with the high rotor speeds. I’ve been corresponding with @JasonSiu on Discord and he informed me that this was a 450 size heli. Based on the collective min and max you provided and the Hover collective (0.65) that was in the log, the collective blade pitch in a hover was 3 deg. What I find curious is that the heli was able to hold less than a 1 m/s descent rate with a collective setting of less than 0 deg blade pitch. See the graph below

So where my cursor is showing the actual CTUN.ThO (which is collective position). CTUN.ThO is scaled from 0 which is the H_COL_MIN to 1 which is H_COL_MAX. So 0.5 should be 0 deg collective blade pitch. And you can see in the CTUN.CRt signal (climb rate) that the aircraft is not descending more than 1 m/s. You can see that the autopilot drops the collective even further to get the aircraft to descend faster. the collective is at nearly -2 deg before it starts descending at a faster rate. I would recommend setting the H_COL_MID at a more negative collective blade pitch setting to keep from having this happen again.

so you can see that the time from CTUN.ThO less 0.5 to shutdown the motor, only 1 second (that is what we define in LAND_DETECTOR_TRIGGER_SEC). if the vehicle in altitude hold mode(like rtl or loiter) and have some ascending air, special for the small helicopter with high rotor speed, that is real possibility to have negative collective pitch and keep more than 1 second

Good point. Then it would be good for the H_COL_MID to be set to -1 or -2 deg. In that case since H_COL_MID is no longer set for zero thrust then I would recommend setting H_COLYAW to zero because that mixing feature uses the mid collective parameter.
I have merged a change in master that separates the landed collective from the H_MID_COL but the parameters are in degrees thus making them easier to set by default. Then users can set the landed collective to the lower collective used when rotors turning on the ground with out affecting the collective to yaw feature. This will be released with 4.2 which is anticipated to become stable in April.