Potential for Trad Heli In-flight motor shutdown in Auto and Guided modes in AC 4.0.7

Trad Heli Users,
I am writing to warn you of the higher probability for an in-flight motor shutdown in Auto or Guided flight modes. This is occurring because the autopilot declares land complete in flight which initiates the auto shutdown and disarm sequence. The root cause of this was determined to be due to the new integrator management implementation. That PR changed the landing detector logic which overrided the suppression of the land complete declaration when the aircraft was not in a landing state in auto or guided modes.

The best way to guard against this other than reverting back to AC 4.0.5 is to set the H_COL_MID parameter as low as possible to prevent the current collective from going below the H_COL_MID value (which is used to determine land complete). Suggest making the H_COL_MID value equivalent to - 2 deg of collective pitch which should be acceptable for extended ground runs with rotors turning in Loiter or althold modes. If you experience any issues with rotors turning on the ground, raise this value as needed but -2 deg should be safe. If you are using the collective to yaw mixing (H_COL_YAW non zero) then you may choose to revert back to AC 4.0.5 or turn off the collective to yaw mixing by setting H_COL_YAW to zero. The reason I say this is that the collective to yaw mixing feature uses the H_COL_MID parameter to set the zero thrust point(minimum torque) for the collective to yaw feedforward.

I am working to implement a fix to this bug as soon as possible. Planning to get it into 4.1.0 before it gets released as stable and potentially providing a point release to 4.0.7.


Trad Heli Users,
I was too late to be able to get this fix into AC 4.1.0. So this issue applies to this version of firmware as well. As I stated above, I will implement a fix as soon as possible and target it for 4.1.1 instead.

Thank you very much for the warning, Bill! I actually was aware of the problem, that setting H_COL_MID too high might lead to an inflight shutdown of the motor. That’s why I had it precisely set to zero thrust. Nevertheless I always was a little bit concerned, because my T-Rex 800 has a pretty low disc loading (like a lot of other helicopters do), so it can hover with very low collective pitch settings. I’m not sure, but I guess under unfavorable wind conditions (e.g. ridge lift) it might reach the H_COL_MID setting.

That’s why I really liked the H_LAND_COL_MIN parameter. Are there important reasons why it was removed from the code? I know it’s an additional parameter which might confuse new users. So I’d suggest the following: What if H_LAND_COL_MIN was added again and if left empty (or -1 or something like that) the code ignores it and uses H_COL_MID, just like it does right now. If the user changes the value (e.g. because he or she knows that the helicopter has a low disc loading and might experience problems) then the code would use H_LAND_COL_MIN instead and safely prevent unwanted motor shutdowns.

@Felix Yes this has been a concern and why there is a warning in the wiki about setting this parameter.

The primary reason for removing H_LAND_COL_MIN was that it was rarely properly set (typically left at default) and the fact it was an additional parameter. I am seeing the need to bring this parameter back

The problem with bringing it back with how the collective pitch is set up currently is that the code has no idea where -1 deg of collective pitch is. Remember that both H_ LAND_COL_MIN and H_COL_MID are set using PWM and there is no reference to actual collective pitch angle. So I just coded up over the weekend a PR that adds two parameters to have the user tell the code what H_COL_MIN and H_COL_MAX equate to in degrees of collective blade pitch. So the code has the PWM value with the corresponding actual collective blade pitch angle. Users know what they set for the min and max collective blade pitch so just have them enter it as two additional Params. Now I can easily set defaults for the zero thrust parameter and the land collective min parameter. They would still be able to adjust them as needed but the guesswork is no longer in question.


Yes, that’s true of course. With setting it to “-1” I meant switching the parameter off. (Telling it to use H_COL_MID instead.) But as we just saw, that can lead to confusion with blade pitch angle.

Wow, that’s a brilliant idea! Everyone knows the min/max collective blade pitch angle so it’s not increasing setup complexity and the code can do the rest… While advanced users still have the possibility to enter whatever value they like. Awesome! I really like your solution! Thanks again for your great work!

1 Like

Trad Heli Users,
This bug has been fixed in AC 4.0. The stable release with the fix is AC 4.0.8. Users can load the firmware but it needs to be done in the Setup Tab and select the Install Firmware. You will see the “All Options” below the install icons for each vehicle type. Select “all options”. You will then use the pull down menus to select the
Version Type: STABLE-4.0.8
Version: 4.0.8
Then click on Upload Firmware. You can see the selections in the image below. In this case, cubeblack was selected as the flight controller.


The bug fix also went into AC 4.1. A beta release will come out soon for AC 4.1.1 with this bug fix and some other fixes for 4.1.0.

If you have any questions, don’t hesitate to post here.

1 Like

two addtional params for min and max pitch degree had added into 4.0.8 ?

No. I didn’t add that change. it was only something I was considering for a future change to 4.1. This change just fixes the bug introduced by the new integrator scheme implementation. Sorry for the confusion

hello , is this bug fixed in 4.1.0 official ( ea559a56 ) ? ,there is a change in the code in github for Copter 4.1.1 : fix tradheli landing detector bug , 12 days ago , is it in relation to this problem?
why in the same time HELI_DYNAMIC_FLIGHT_SPEED_MIN is changed to 250 ?

No it is not fixed in 4.1.0 stable.

Yes that is the fix to this bug. you can use Copter 4.1.1-rc1 or wait for Copter 4.1.1 stable.

I lowered the dynamic flight speed to further lower the probability of getting the land complete flag in auto modes. It was set pretty high. 5 m/s puts the aircraft at speed where the collective is lower because of lower power required for level flight. Cutting the speed in half keeps the power required higher so the collective will remain higher. Of course wind can affect this but these changes are all to make the land detector more robust.

1 Like

In my case in loiter mode while landing the motor never shutdown , i dont know if is normal or a issue ! i dont have all the time Land_COMPLETE , the use param H_RSC_MODE =1 even with external gouvernor , i use potentiometre to change speed for somes tests
i will test in auto mode , so for 4.1.0 to avoid the possibility crash i need to reduce H_COL_MID to -2° ?

This is not an issue. Since the pilot is controlling the aircraft, the motor will remain on after landing and the pilot has to shutdown the motor with the motor interlock switch.

If the land complete flag is not showing in the log every time you land then it is either a setting that is not correct or a problem in the code. Please send me the log if this is happening so I can investigate.

I would recommend just using 4.1.1-rc1. You can look over the changes in the release notes to see if anything applies to you other than the heli fix. If nothing else applies then it is probably safe to use it. And you have the added protection with the heli fix.

There is a parameter i never change is INS_STILL_THRESH = 2,5 , i use coax Heli it vibrates so better change to 5 , maybe it help to detect landing

I really need your help with a problem on a flight, I had something really weird, as if he lost stabilization after that he took control again, I had to stop the motors, no damage because it was on a net for fly tests, but in the log at this moment the pwm servo outputs were frozen for 2 seconds (18:20:29 - 18:20:31), an event is triggered : landing gear deployed, landing gear is not activated in parameter, and strangely a failsafe radio and a land event ! after that PreArm: IOMCU is unhealthy, as if IOMCU restarted during the flight, what is the cause, electrical problem?
thank you
Copter 4.1.0 stable
Pixhawk 4 Holybro

Log : https://drive.google.com/file/d/1nUn1ezGTGrO0FQawJknbjZa51hCCJO-0/view?usp=sharing