diff --git a/libraries/AP_HAL_ChibiOS/SPIDevice.cpp b/libraries/AP_HAL_ChibiOS/SPIDevice.cpp index 14d88da32d..35fb9d79a0 100644 --- a/libraries/AP_HAL_ChibiOS/SPIDevice.cpp +++ b/libraries/AP_HAL_ChibiOS/SPIDevice.cpp @@ -207,7 +207,9 @@ bool SPIDevice::do_transfer(const uint8_t *send, uint8_t *recv, uint32_t len) osalSysUnlock(); if (msg == MSG_TIMEOUT) { ret = false; - AP::internalerror().error(AP_InternalError::error_t::spi_fail); + if (!hal.scheduler->in_expected_delay()) { + AP::internalerror().error(AP_InternalError::error_t::spi_fail); + } spiAbort(spi_devices[device_desc.bus].driver); } bus.bouncebuffer_finish(send, recv, len);