Collective jerk when disarming after land

The problem:
During bench test I notice that after the arducopter thinks it has landed and proceed with disarming the motor, the collective servo does a jerk from full negative to positive and back to full negative. I do have the PILOT_THR_BHV set to 4 (disarm on land detection), and it is successfully disarming the motor, but I do not know the reason for the collective behavior at this moment.

My setup:
Xcell 99SE converted to electric
Align 750MX 530kv motor
CC Phoenix Edge MV 160 in governor mode
Pixhawk 1, Arducopter 3.5.5

Bellow is a link to a youtube video where the problem can be seen:

0:04 - Arming via MP
0:08 - Ch8 throttle its being activated for the governor on the ESC
0:10 - Full Positive Collective applied
from 0:10 to 0:18 - Spool up time
0:18 - It tries to takeoff
0:20 - Full Negative Collective applied in order to “land”
0:24 - Disarm + Collective Jerk

This is a printscreen of the tuning window in the MP that shows the ch3 (collective) reaction:

Logs in Dropbox below:

Please post a parameter file. I am not at a computer where I can view your log at the moment. The parameter file will give me a little bit of background on your set up. Also what flight mode where are you in?

Hi Bill, I have tried this on AtlHold and Loiter. Please see parameters file attached.Xcell 99SE Electric v1.param (13.5 KB)

We have seen this behavior before in althold. I would also expect it in loiter since the same controller is used for the vertical axis. I will have to look at this. Thanks for the log and parameters

Thanks for pointing out that this happens in the bench. You say that you disarm when it happens, I assume that disables motor interlock at the same time.
We originally thought this might have been due to an effect of the pressure field around the aircraft changing that could have caused it when disengaging the rotor. This points to it being more of a programming issue. Do you notice that if you don’t disarm (disable motor interlock) immediately after putting the throttle full down that this behavior goes away?

I manually do not disarm the system (not pressing any switch of bottom), it does it by himself using the PILOT_THR_BHV, and I think that it will do both things (motor interlock and disarm system).

i.e. after the “takeoff sequence”, when I put the collective stick down and with the motor interlock switch in a off position (motor engaged), it will sens that the heli has landed and will disarm the system and the motor interlock will kick in, even with the switch on the OFF position (motor engaged). after this, if I want to engage the motor again, I will need to flip the motor interlock switch to ON position (motor disengaged) and restart the sequence.

If I disable the PILOT_THR_BHV parameter, hence, will need to manually disarm the system and manually flip the motor interlock switch after a land, It will not do the Jerk on the collective.

Another thing is that the collective jerk will only happen in AltHold and Loiter mode. I have tested in Stabilize mode and will not do it.

I think it has to do with the system kicking in the motor interlock automatically.

I’m going to do more testing this afternoon to see if find any behavior related to this. Will try to do some videos too.

Thnks for taking a look to it Bill.

This is not a function of the motor interlock specifically. I believe it is due to the autopilot in the vertical axis. The code has the commanded descent rate go from the max allowable commanded from the collective going full down to a much smaller descent rate when the motor interlock switch is actuated. There is another thread where Chris and I discuss this issue but I can’t remember which one.


I noticed that with the PILOT_THR_BHV set to 0 (manually disarm needed) the jerk will only happen if I turn on the motor interlock immediately, but if I wait a couple of seconds, it will not do it. Maybe its because I’m doing this on the bench, I will try it while flying and will share the results.

There are a number of people that I’ve seen this including myself on shutdown. I just didn’t realize that it was repeatable on the bench. I haven’t seen this cause the aircraft to lift back off the ground. But it definitely will surprise you the first time it happens. Now, I just wait a few seconds before hitting the motor interlock switch But it is probably something we should get fixed.

Thnks for the support, and I will report how everything goes on the field.

Certainly. Here is a link to the other thread that discusses this issue.

Say, I would recommend being careful with this. That setting is not actually throttle in a heli. It is collective pitch. The landing detector can be fooled with a heli by being caught in a wind gust, the heli goes into translational lift, the system detects the “bump” from the lift and no more descent. It disarms and shuts down the engine in flight. In Stabilize no big deal - you have full collective control and can autorotate it. In any augmented mode, including Alt Hold, you have zero collective control if it happens and it will crash.

I would only leave that set to zero.

I am an old stick-in-the-mud on this. But I recommend never flying a helicopter in a critical flight profile with any augmented mode. Only use Stabilize or Acro where you have 100% control of the collective and cyclic pitch for success in never crashing your heli due to an autopilot mistake. And there is several ways the autopilot can be fooled close to the ground in critical flight profile.

Thanks Chris for your comments

I got it figured out during bench test but it will also engage the Motor Interlock, so I would say that it works with both functions (collective and motor).

I did tried today and did not liked what the aircraft did. After a couple of hovers in Stab, AltHold and Loiter, I tried a couple of landings from 1/2 meters of height with the PILOT_THR_BHV set to 4 (Disarm on land detection) but in the time between the touchdown and the disarm/spool down, the aircraft started an oscillation I think on the collective axis like if it was a ground resonance on full size aircraft. I could not got it in video but in a couple of minutes I will upload some videos of the other flights done today.

Hover test in Loiter mode:

Enabling motor interlock function while flying in Loiter mode to see aircraft reaction:

Full Auto Mission:

Just be aware that if the engine quits either in or above the dead man’s curve in any altitude controlled flight mode your heli will crash without pilot intervention. All it does is increase the collective pitch to try to hold altitude until the rotor stalls. The pilot does not have control of the collective in either Alt Hold or Loiter, even when landing. All your collective does is request a climb or descent rate to the autopilot. You only have control of the collective in Stabilize or Acro.

I completely agree with you, and understand the consequences if the motor quits in those cases. In most of the flying time, the aircraft was in line of sight and the remote control was in hand to take full control in stabilize mode if needed.

I spent couple of flights doing grid auto missions, do you have any advice on planning it to maintain a fluent forward flight even in turns? will like to have the turns made like a plane and not waste much energy stoping in WP, I notice that in some cases the aircraft will do a full stop to change heading, specially if the turn was 90 deg or more.

Thanks for your advices.

Yeah, what you’re seeing is an indirect engagement of the throttle hold (or “motor interlock” - where did that term come from anyhow?) because the FC disarms. The throttle to a helicopter can’t be active unless the FC is armed.

Because of a very strange design, all thru the code “throttle” is really collective pitch in a heli. The actual throttle that controls the engine is called the RSC (Rotor Speed Control) in ArduPilot. So even in the parameters, anything with “throttle” has nothing to do with the actual throttle for the engine.

In Helicopters we have the H_COL_LAND setting to determine auto-disarm (and simultaneous shutdown of the engine). Since the autopilot was designed primarily for multicopters, and thru further testing I’ve done, it does not like this H_COL_LAND setting that normally pulls the pitch a bit negative to make sure the heli is on the ground before shutting it down. So in an alt controlled flight mode the thing jumps the collective back up. Well, just because you shut down the engine and disarm the FC doesn’t mean a helicopter is done flying yet. Multirotor props just stop. A heli rotor has a lot of energy stored in it. So you can shut down, shove the collective up and it will jump the heli back off the ground just on what’s stored in the main rotor. With a 800 class you can shut down and disarm in Stabilize, lift the heli back off and hover it for a few seconds.

So please leave that PILOT_THR_BHV setting to zero. That is a multicopter setting and should not even be in heli. There should be a sanity check on that for heli frames to force it to zero if a heli pilot tries to set to any other value. It can easily cause an in-flight shutdown with a heli, especially in augmented modes, in which you have NO control of the helicopter if it shuts down and disarms.

@bnsgeyer we should strongly take a look at that and hard-code disable that param for heli frames.

1 Like

I’m also seeing this issue guys. It wasn’t there in 3.3, not sure if it appeared in 3.4, but I’m seeing it now in 3.5.

From me. Because Motor Interlock is the correct technical term. Throttle Hold is an anachronism of RC helis.

No, please don’t ever do that sort of thing without checking.

I am using PILOT_THR_BHV = 1. I use self-centering throttle, the only sensible option when flying a UAV primarily in auto-collective modes.

Rob, you mean you’re using self-centering collective on heli? I never considered that anybody would do that.

What are you seeing on disarm? The collective increases immediately after it hits H_COL_LAND? That’s what I noted and I originally thought it might be a barometric pressure change issue under the main close to the ground. But I later found out it’s something else causing it. And I don’t know even what is causing it because it will happen with the collective all the way down. And it doesn’t require a disarm either - I’ve gotten it to happen simply engaging the throttle hold.

I got this to happen a few days ago. Two problems simultaneous after studying the log. I landed in Loiter (which again, I do not recommend). Everything was fine until I engaged the throttle hold at which point the heli jumped like somebody kicked it. That was the collective reaction. Simultaneous with a GPS glitch that caused an EKF switch that tried to put it into dynamic rollover in spooldown. Over which I had ZERO control even with the FC armed yet - until I switched it to Acro, hunted for the “ghost” a bit and got it square on the skids. The EKF was still switching back and forth about once every 5 seconds when I shut the engine down, and continued after shutdown, until the GPS glitch cleared. And it was making the swashplate tip back and forth like it had gone nuts.

I was since able to duplicate the issue on the bench after I figured out how to reliably create a GPS glitch by forcing the receiver to pick up a multi-pathed GPS signal that has the time stamp off.

Yes, we’re using self-centering collective. Our customers only get Alt Hold and Loiter as their manual modes, so self-centering is way better.

I personally have flown Stabilize like this as well, quite a bit actually as much of my testing is in Stabilize mode. It’s fine if you set up the collective pitch curve properly.

So what I’m seeing, is that when landing in Alt Hold or Loiter, not 100% of the time, maybe about 50%, it gives a little collective kick. The kick occurs immediately as I switch off the Interlock. Has nothing to do with Disarm as I haven’t Disarmed yet.

I suspect it’s a bug that crept in with Leonard refactored the “spool logic” but I don’t know.

What you showed in that video… holy crap! That’s scary. I’ve never seen that. It really shouldn’t do that regardless of GPS glitch. At least it didn’t used to. Used to be that it would “guess” when it’s on the ground, and would not chase a GPS glitch around like that. So I don’t know what’s going on in your case. Either your settings don’t allow it to guess that it’s disarmed. Or it is something changed in the code.