BLHeli passthrough fails with a DakeFPV 4-in-1 ESC running Bluejay 0.21.0.
Issue details BLHeli passthrough fails with a DakeFPV 4-in-1 ESC running Bluejay 0.21.0.
SERVO_BLH_TEST=1 consistently fails with:
Debug log:
22/08/2026 19:34:42 : ESC: Test FAILED
22/08/2026 19:34:42 : ESC: BL_SendCMDSetAddress 0x7C00
22/08/2026 19:34:42 : ESC: Unknown interface type 0xE8B5
22/08/2026 19:34:42 : ESC: BL_ReadBuf 8 -> 9
22/08/2026 19:34:42 : ESC: BL_ConnectEx 1/4 at 1
22/08/2026 19:34:42 : ESC: Running test on channel 1
The ESC and motors operate normally. The same ESC can be detected and configured successfully through Betaflight passthrough.
ArduPilot 4.7.0 explicitly accepts several SiLabs BLHeli bootloader device IDs in AP_BLHeli.cpp, including 0xE8B1 and 0xE8B2, but not 0xE8B5. Therefore connecting and testing this device results in:
ESC: Unknown interface type 0xE8B5
Betaflight instead detects SiLabs devices using a range check:
(pDeviceInfo->words[0] > 0xE800) && (pDeviceInfo->words[0] < 0xF900)
so 0xE8B5 in Betaflight is accepted as a SiLabs BLHeli bootloader.
This appears to be a missing SiLabs device detection case in ArduPilot rather than an ESC communication failure.
Troubleshooting performed:
- ESC powered and motors operating normally
- Bluejay 0.21.0 confirmed
- ArduPilot BLHeli passthrough/configuration fails
SERVO_BLH_TEST=1consistently fails atUnknown interface type 0xE8B5- Same ESC detects and configures correctly through Betaflight passthrough
Relevant source: ArduPilot 4.7.0: https://github.com/ArduPilot/ardupilot/blob/Copter-4.7.0/libraries/AP_BLHeli/AP_BLHeli.cpp
Betaflight: https://github.com/betaflight/betaflight/blob/master/src/main/io/serial_4way.c
Version: ArduCopter 4.7.0 Stable and ESC Bluejay V0.21.0 Platform: Copter Airframe type: Quadcopter, Quad X Hardware type
- TBS Lucid H7
- DakeFPV 70A 4-in-1 ESC
Logs
No flight log is required to reproduce the issue.
Source: ArduPilot/ardupilot