diff --git a/src/drivers/barometer/bmp388/bmp388_i2c.cpp b/src/drivers/barometer/bmp388/bmp388_i2c.cpp index 73fe042705..8d47b8a09b 100644 --- a/src/drivers/barometer/bmp388/bmp388_i2c.cpp +++ b/src/drivers/barometer/bmp388/bmp388_i2c.cpp @@ -71,11 +71,20 @@ IBMP388 *bmp388_i2c_interface(uint8_t busnum, uint32_t device, int bus_frequency BMP388_I2C::BMP388_I2C(uint8_t bus, uint32_t device, int bus_frequency) : I2C(DRV_BARO_DEVTYPE_BMP388, MODULE_NAME, bus, device, bus_frequency) { + _retries = 1; } int BMP388_I2C::init() { - return I2C::init(); + for (int i = 0; i < 10; i++) { + if (I2C::init() == OK) { + return OK; + } + + px4_usleep(10000); + } + + return PX4_ERROR; } int BMP388_I2C::get_reg(uint8_t addr, uint8_t *value)