A test of the configuration link to one ESC
What ArduPilot says:
- ESC: Test …
- ESC: Running test on channel N
- ESC: bad channel N
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
“FAILED”: the ESC has no power; on USB alone it is off.
FixProps off, connect the battery, and set
SERVO_BLH_TESTagain.“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_FUNCTIONof the output the wire really goes to.“bad channel”, or no message at all: pass-through is not switched on for the motors.
FixSet
SERVO_BLH_AUTOto 1 (or the motors' outputs inSERVO_BLH_MASK), reboot, and test again.
Parameters to look at
| Parameter | What it is |
|---|---|
SERVO_BLH_TEST | BLHeli internal interface test |
SERVO_BLH_AUTO | BLHeli pass-thru auto-enable for multicopter motors |
SERVO_BLH_MASK | BLHeli Channel Bitmask |
SERVO_BLH_DEBUG | BLHeli debug level |
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
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