← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

Take-off is held back until the motors are seen to spin

Stops itMotors, ESCs and outputs

What ArduPilot says:

With TKOFF_RPM_MIN above 0, after arming the motors are kept at their idle speed until every ESC reports by telemetry at least TKOFF_RPM_MIN RPM (and no more than TKOFF_RPM_MAX, if that is set). “waiting for ESC RPM”: one ESC or more has never sent telemetry. “ESC RPM out of range”: telemetry arrives, but a motor turns slower than the minimum or faster than the maximum, or its data has gone stale: it may not be spinning at all. The line repeats every 5 s until all motors pass.

What to do, most likely first

  1. A motor is not spinning: its ESC did not start, it lost sync, or the motor or a wire is damaged. The check is doing its job.

    CheckLook at the motors after arming: one stands still or stutters. ESC telemetry in the ground station shows its RPM at 0.

    FixDisarm and find the motor that stays still. With the props off, run the motor test on each output.

  2. ESC telemetry does not cover every motor: bidirectional DShot is not switched on for all outputs, or a telemetry wire is missing.

    CheckThe ground station's ESC telemetry lists fewer ESCs than the copter has motors.

    FixSet SERVO_BLH_BDMASK to cover every motor output (or wire each ESC's telemetry) and reboot.

  3. TKOFF_RPM_MIN is higher than the motors turn at when armed and idling.

    CheckAll motors spin evenly, yet the message “ESC RPM out of range” stays.

    FixRead the idle RPM from telemetry after arming (props off for the first look) and set TKOFF_RPM_MIN to about half of it.

  4. “CPU overload”: the flight controller is asked to do more than it can: high loop or logging rates, heavy scripts, many filters.

    CheckPM.Load in the log stays close to 100%, and the percentage in the message says the same.

    FixLower SCHED_LOOP_RATE or the logging rates, stop scripts you do not need, and reduce the number of notch filters; the load must stay under 95%.

Parameters to look at

ParameterWhat it is
TKOFF_RPM_MINTakeoff Check RPM minimum
TKOFF_RPM_MAXTakeoff Check RPM maximum
SERVO_BLH_BDMASKBLHeli bitmask of bi-directional dshot channels
MOT_SPIN_ARMMotor Spin armed
SCHED_LOOP_RATEScheduling main loop rate
The code that sends it

… ESC RPM out of range

ArduCopter/takeoff_check.cpp Copter::takeoff_check() · Open in ArduPilot Copter-4.6.3

libraries/AP_Vehicle/AP_Vehicle.cpp AP_Vehicle::motors_takeoff_check() · Open in ArduPilot Copter-4.7.1

… waiting for ESC RPM

ArduCopter/takeoff_check.cpp Copter::takeoff_check() · Open in ArduPilot Copter-4.6.3

libraries/AP_Vehicle/AP_Vehicle.cpp AP_Vehicle::motors_takeoff_check() · Open in ArduPilot Copter-4.7.1

… CPU overload (N.N%)

ArduCopter/takeoff_check.cpp Copter::takeoff_check() · Open in ArduPilot Copter-4.7.1

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer