Servo limit exceeded with Pixhawk

Plane: X8 wing
Firmware: Tested 3.2.0 & 3.4, problem occurs with both
AP: Pixhawk (Tested APM board with 3.1 and problem didn’t occur)
Servos: New MKS DS6125 wing servo and JR NX3425

Problem description:
I have two servo brand/models which power off (leaving a limp control surface) if the pwm exceeds a given limit.
For MKS DS6125: 500 = no power 499 - 2499 = power, 2550 = no power
JR NX3425 500-125 = no power, 125-2125 = power, 2150-2500 = no power

Now this power off behavior is unexpected but won’t cause a problem if I can contain the pwm values within sensible limits. This is where the problem lies.
Despite servo limits for channels 1 & 2 being set to 900-2100, it is possible for the servo out pwm values to reach 2500. This happened on a hard bank during flight and the plane crashed as a result.
Turns out it’s really easy to test for this on the bench. With AP installed and turned on go into stabilize mode and manually turn the aircraft to an extreme 60 degree bank angle. In Mission planner’s status tab look at the ch1out and ch2out values. With an APM board these values don’t exceed the corresponding limit parameters, however with Pixhawk h/w they exceed these values. So if your servos power off instead of just locking for extreme pwm values your plane could easily crash when banking, particularly if there is some wind about so the servos are working there hardest.
I will try and find some alternative servos that don’t power off at extremes.

Would it be possible for someone to investigate what’s required to fix the Pixhawk firmware so limits set are ALWAYS honoured?

Cheers :smiley:

What happens if you set the limits to 1100/1900 or less, do you still see the exceedance? (it is a word :slight_smile:)

The problem may be that there is a feature to support a previous version of elevon mixing that seems to be enabled by default.

I was able to re-create the problem (bench test) just as you explained.
Changing the RC1 & RC2 min/max values had no effect on the outputs.

Finally changing ELEVON_MIXING to 0 (zero) seems to resolve the issue.
The ELEVON_MIXING parameter is only available is Full parameter list/tree.

After going back to the Intial Setup-Radio calibration tab , (where elevon mixing is normally setup) , I toggled the check-boxes off ad then back on (enabled) again, and the problem returned.

Checking the parameter-tree setting again, I found that the older elevon mode was re-enabled and needed to set to zero once. after doing this the servo outputs were proper once again.

I think that this may be a bug in the way that Mission Planner handles these [elevon] particular parameters.
My last APM elevon setup was with the APM 1.4 version flight controller so I do not have up-to-date experience with elevons , and I suggest that you consult the APM manual http://plane.ardupilot.com/wiki/reversing-servos-and-setting-normalelevon-mode/
and for now you should probably set up the elevons using the parameter tree , not the Radio-Calibration tab.
Hope this helps.

Regards
Chris

1 Like

Excellent response Chris. I think you might have nailed it.
I have set ELEVON_MIXING to zero and ELEVON_OUTPUT to 3 and everything appears to work correctly on the bench test. Hope to try it out in the air on Sunday/Monday.
I’ll let you know how it goes!

Cheers from
One happy hopefulFlyer :smiley:

1 Like