Hello,
I use APM:Plane 2.74 with a Graupner GR-16 receiver using PPM-Sum connection to APM2.5.I want to use the Flap System with this configuration, which works fine so far, even with two flap servo, one on each wing. The channel function for both flap servo is set to 3 (flap_auto).
But now I have a problem with failsafe.
I case of failsave the GR-16 receiver switches off the PPM-Sum signal completely.
In case APM was in Manual, Stabilize; FBW-A or Circle mode, then APM also doesn't output a signal on the flap servo. The result is, that both flap servo (HS-85) move to an undefined postion (one full up, the other full down), which will probably make the plane uncontrollable.
In case APM was in Loiter or Auto mode, the flap servo channel outputs the neutral position, which is OK.
Is this an intended behavior?
Would it be possible also to outout the flap servo neutral position in Manual, Stabilize, FBW-A or Circle mode?
Replies
Hello again,
From the documentation: "A short failsafe event in stabilization modes will always cause a change to CIRCLE mode."
From Attitude.pde:
// Auto flap deployment
if(control_mode <FLY_BY_WIRE_B) {
RC_Channel_aux::copy_radio_in_out(RC_Channel_aux::k_flap_auto);
} else if (control_mode >= FLY_BY_WIRE_B) {
.....
if ( g.flap_1_speed != 0 && flapSpeedSource > g.flap_1_speed) {
RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flap_auto, 0);
} else if (g.flap_2_speed != 0 && flapSpeedSource > g.flap_2_speed) {
RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flap_auto, g.flap_1_percent);
} else {
RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flap_auto, g.flap_2_percent);
}
defines.h
CIRCLE = 1,
FLY_BY_WIRE_B = 6,
So if short failsafe CIRCLE is active then "control_mode <FLY_BY_WIRE_B" is true, which directly outputs the receiver input to the flap servo. If the receiver doesn't output a signal on signal loss on the flap channel we have a problem because of no failsafe for the flaps during short failsafe.
If long failsafe gets active then everything is OK!
As a workaround I set FS_LONG_TIMEOUT = 0 to avoid CIRCLE mode in failsafe.