The motor output range is not valid
What ArduPilot says:
- Check …PWM_MIN and …PWM_MAX
MOT_PWM_MIN and MOT_PWM_MAX are the pulse lengths, in µs, that mean “stopped” and “full power” to the ESCs: 1000 and 2000 by default. The check fails when MOT_PWM_MIN is below 1, or is not smaller than MOT_PWM_MAX. With DShot no pulse of that length is sent, but ArduPilot still scales the motor output with these two, so they must be valid there as well.
What to do, most likely first
One of them is 0, or the two are swapped: typed by hand, or loaded with a parameter file made for another aircraft or an old version.
CheckRead the two values:
MOT_PWM_MINmust be the smaller, and at least 1.FixSet
MOT_PWM_MINto 1000 andMOT_PWM_MAXto 2000, the values DShot and calibrated PWM ESCs use.PWM ESCs with an unusual range were being matched by hand.
FixProps off: calibrate the ESCs to 1000 and 2000 µs instead, and keep the defaults.
Parameters to look at
| Parameter | What it is |
|---|---|
MOT_PWM_MIN | PWM output minimum |
MOT_PWM_MAX | PWM output maximum |
MOT_PWM_TYPE | Output PWM type |
Where to do it:Setup & Tuning GuideParameter Compare & Migrate
The code that sends it
Check …PWM_MIN and …PWM_MAX
libraries/AP_Motors/AP_MotorsMulticopter.cpp AP_MotorsMulticopter::arming_checks() · Open in ArduPilot Copter-4.7.1