From 56d53b60c039c658f9afe343b34d2f053383df33 Mon Sep 17 00:00:00 2001 From: Niklas Hauser Date: Thu, 15 May 2025 17:11:55 +0200 Subject: [PATCH] [bmp388] Initialize multiple times with delay --- src/drivers/barometer/bmp388/bmp388_i2c.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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)