diff --git a/ArduPlane/failsafe.pde b/ArduPlane/failsafe.pde index 4b54eeae96df23ce033d2b08a74e940ee08fc582..8f9046da39f4cbdff9690e2c39dc0cead8be45a7 100644 --- a/ArduPlane/failsafe.pde +++ b/ArduPlane/failsafe.pde @@ -59,12 +59,18 @@ void failsafe_check(void) channel_throttle->radio_out = channel_throttle->read(); channel_rudder->radio_out = channel_rudder->read(); + int16_t roll = channel_roll->pwm_to_angle_dz(0); + int16_t pitch = channel_pitch->pwm_to_angle_dz(0); + int16_t rudder = channel_rudder->pwm_to_angle_dz(0); + // setup secondary output channels that don't have // corresponding input channels - RC_Channel_aux::set_servo_out(RC_Channel_aux::k_aileron, channel_roll->radio_out); - RC_Channel_aux::set_servo_out(RC_Channel_aux::k_elevator, channel_pitch->radio_out); - RC_Channel_aux::set_servo_out(RC_Channel_aux::k_rudder, channel_rudder->radio_out); - RC_Channel_aux::set_servo_out(RC_Channel_aux::k_steering, channel_rudder->radio_out); + RC_Channel_aux::set_servo_out(RC_Channel_aux::k_aileron, roll); + RC_Channel_aux::set_servo_out(RC_Channel_aux::k_elevator, pitch); + RC_Channel_aux::set_servo_out(RC_Channel_aux::k_rudder, rudder); + RC_Channel_aux::set_servo_out(RC_Channel_aux::k_steering, rudder); + RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flaperon1, roll); + RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flaperon2, roll); if (g.vtail_output != MIXING_DISABLED) { channel_output_mixer(g.vtail_output, channel_pitch->radio_out, channel_rudder->radio_out);