← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

A test of the configuration link to one ESC

InformationMotors, ESCs and outputs

What ArduPilot says:

Setting SERVO_BLH_TEST to a motor number makes ArduPilot try to reach that ESC's bootloader over its signal wire: the link an ESC configurator uses through the flight controller (BLHeli pass-through). “Running test on channel n” counts the motors from 0. “Test PASSED”: the ESC answered and its memory could be read. “Test FAILED”: five tries got no answer. “bad channel”: the number is higher than the motors pass-through knows of. The parameter goes back to 0 by itself.

What to do, most likely first

  1. “FAILED”: the ESC has no power; on USB alone it is off.

    FixProps off, connect the battery, and set SERVO_BLH_TEST again.

  2. “FAILED”: the motor is on an output that cannot do pass-through (one driven by the IOMCU), or its signal wire is on another output than its function says.

    FixUse an output driven by the main processor (AUX on a Pixhawk or Cube) and check the SERVOn_FUNCTION of the output the wire really goes to.

  3. “bad channel”, or no message at all: pass-through is not switched on for the motors.

    FixSet SERVO_BLH_AUTO to 1 (or the motors' outputs in SERVO_BLH_MASK), reboot, and test again.

Parameters to look at

ParameterWhat it is
SERVO_BLH_TESTBLHeli internal interface test
SERVO_BLH_AUTOBLHeli pass-thru auto-enable for multicopter motors
SERVO_BLH_MASKBLHeli Channel Bitmask
SERVO_BLH_DEBUGBLHeli debug level
The code that sends it

ESC: Test …

libraries/AP_BLHeli/AP_BLHeli.cpp AP_BLHeli::run_connection_test() · Open in ArduPilot Copter-4.7.1

ESC: Running test on channel N

libraries/AP_BLHeli/AP_BLHeli.cpp AP_BLHeli::run_connection_test() · Open in ArduPilot Copter-4.7.1

ESC: bad channel N

libraries/AP_BLHeli/AP_BLHeli.cpp AP_BLHeli::run_connection_test() · 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