I am using Pixhawk orange cube plus as a flight controller and my swashplate type is H-3 120.
I want to limit the Maximum servo output to limit the maximum blade pitch. I changed the SERVOX_MAX parameters but when i rebooted the pixhawk it came back to the default.
Are there any limitations to changing these parameters?
Yes, the code mandates that these limits never change. You can modify the limit of the collective pitch range using the H_COL_MIN and H_COL_MAX. You limit the range of cyclic pitch using H_CYC_MAX.
Please refer to the wiki for proper setup procedures
But in my setup my blades are in 12 degree when the collective is maxed. Then when I max the pitch from my remote the blade goes around 17 degrees. I want to set a max limit for my servos so that they will never go over 12 degree.
Why the limitation of 12 deg for the blade pitch angle? in most heli’s it is good to have at least 8-10 deg of max collective blade pitch. Depends on your setup.
So what will your collective pitch range be? the cyclic blade pitch is meant to be added to what ever your collective pitch is at the time. So if your collective is at 12 deg and you have a maximum of 6 deg cyclic pitch, then the blade pitch will be at 18 deg at some point in the rotor arc if you apply max cyclic.
Most likely you would never have full cyclic in with full collective. Pretty unlikely unless you are autorotating and over control on the final pull but then you got bigger problems.
AP_MotorsHeli_Swash.cpp:
// set_linear_servo_out - sets swashplate servo output to be linear
float AP_MotorsHeli_Swash::get_linear_servo_output(float input) const
{
input = constrain_float(input, -1.0f, 1.0f);
//servo output is calculated by normalizing input to 50 deg arm rotation as full input for a linear throw
return safe_asin(0.766044f * input) * 1.145916;
so for good linearise we need to check that servo min max of swash conducts -50° to + 50° servo leg deflection?
if we have more than -50° to +50+ deflection we must recuce servo min max to have -50° to +50+ deflection?
I just check the real angle value, so with original swash servo params set from 1000 to 2000 range, I get -60° to + 60° range on the canbus pos feedback for the servo.
Is there a reason you require servo linearization feature? Do you have a four servo swashplate? Otherwise I don’t think this is necessary, but we are looking at providing the ability to change the default angle for the linearization feature. This Most likely won’t go in until 4.6.