A PiccoloCAN ESC or servo is missing or inhibited
What ArduPilot says:
- ESC N not detected
- ESC N is hardware inhibited
- Servo N not detected
Shown as “PreArm: PiccoloCAN: …” on aircraft with Currawong CAN ESCs or servos. For every motor set in CAN_D1_PC_ESC_BM and every servo output set in CAN_D1_PC_SRV_BM, ArduPilot expects to hear from that device. “ESC n not detected” or “Servo n not detected”: nothing has been received from it. “ESC n is hardware inhibited”: the ESC answers but its hardware enable input holds it off.
What to do, most likely first
The device has no power or is not on the CAN bus.
FixPower it and check the CAN wiring and termination.
The bitmask names a motor or servo output that has no CAN device.
CheckCompare the bits set with the devices fitted; bit 0 is ESC 1 (Motor1) in the first mask and servo output 1 in the second.
FixClear its bit in
CAN_D1_PC_ESC_BMorCAN_D1_PC_SRV_BMand reboot.“hardware inhibited”: the ESC's enable line is not driven.
FixWire or release the ESC's hardware enable input as its manual describes.
Parameters to look at
| Parameter | What it is |
|---|---|
CAN_D1_PROTOCOL | Enable use of specific protocol over virtual driver |
CAN_D1_PC_ESC_BM | ESC channels |
CAN_D1_PC_SRV_BM | Servo channels |
The code that sends it
ESC N not detected
libraries/AP_PiccoloCAN/AP_PiccoloCAN.cpp AP_PiccoloCAN::pre_arm_check() · Open in ArduPilot Copter-4.7.1
ESC N is hardware inhibited
libraries/AP_PiccoloCAN/AP_PiccoloCAN.cpp AP_PiccoloCAN::pre_arm_check() · Open in ArduPilot Copter-4.7.1
Servo N not detected
libraries/AP_PiccoloCAN/AP_PiccoloCAN.cpp AP_PiccoloCAN::pre_arm_check() · Open in ArduPilot Copter-4.7.1