The throttle channel reads below the failsafe value
What ArduPilot says:
- PreArm: … below failsafe
The throttle channel's pulse is shorter than FS_THR_VALUE (975 µs by default). In flight that is how ArduPilot recognises a lost radio link, so on the ground it refuses to arm: it would be in radio failsafe at once.
What to do, most likely first
The transmitter is off: the receiver sends its failsafe throttle, which is set low on purpose.
CheckSwitch the transmitter on and look at the throttle bar in the Radio Calibration screen: with the stick down it should read close to
RC3_MIN.FixSwitch the transmitter on before arming.
FS_THR_VALUEis above what the throttle stick gives at the bottom.CheckCompare the two:
FS_THR_VALUEmust be at least 10 µs below the lowest throttle the stick gives (RC3_MINafter calibration) and above what the receiver sends when the link is lost.FixCalibrate the radio, then set
FS_THR_VALUEbetween the receiver's failsafe throttle andRC3_MINminus 10.The throttle is on another channel than ArduPilot thinks, or reversed in the transmitter.
CheckMove only the throttle stick and see which bar moves, and in which direction: it should be the channel
RCMAP_THROTTLEnames (3 by default), rising as the stick goes up.FixSet the channel order in the transmitter (AETR for the default mapping) or
RCMAP_THROTTLEto the channel that moves, and reboot.
Parameters to look at
| Parameter | What it is |
|---|---|
FS_THR_VALUE | Throttle Failsafe Value |
RC3_MIN | RC min PWM |
RCMAP_THROTTLE | Throttle channel |
FS_THR_ENABLE | Throttle Failsafe Enable |
Where to do it:Setup & Tuning GuideFailsafe Explainer
The code that sends it
PreArm: … below failsafe
ArduCopter/AP_Arming.cpp AP_Arming_Copter::rc_throttle_failsafe_checks() · Open in ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::rc_throttle_failsafe_checks() · Open in ArduPilot Copter-4.7.1