Cleanflight – initialisation failure beeps

I spent quite a while chasing down a problem in a Cleanflight v1.13 flight controller which would not start properly, giving a series of beeps that one might expect hinted the problem.

DS1Z_QucikPrint1

Above is a scope capture of the /BEEP signal, five short beeps (50ms ON, 50ms OFF) then four long beeps (250ms ON, 250ms OFF).

The documentation file Buzzer.md did not mention this beep pattern.

However, deep in the source code in system.c and system.h is the code that generates this beep pattern. The 5 short pulses are a signature for initialisation failure, and the number of long beeps is one higher than the failure mode.

typedef enum {
FAILURE_DEVELOPER = 0,
FAILURE_MISSING_ACC,
FAILURE_ACC_INIT,
FAILURE_ACC_INCOMPATIBLE,
FAILURE_INVALID_EEPROM_CONTENTS,
FAILURE_FLASH_WRITE_FAILED,
FAILURE_GYRO_INIT_FAILED
} failureMode_e;

So, in my case the problem was mode 3 failure, accelerometer incompatibility.