Bmp388 power on/off

I have a bmp388 sensor that works perfect when plugged directly into the main board, using i2c

But I have a sensor board with external power module with other sensors with a separate power source, I have no way to make it work.

I have a bmp280 module on the same sensors board, (using the gnd, vcc, sda, scl pins) it works, replacing it with bmp388 and changing the code to bmp388 doesn't work. This module with bmp380 has worked for several years

I have left the sensors board without sensors, only the bmp388 and it still does not work

If I connect the vcc pin of the bmp388 module to the one on the main board, it works.

All running 3.3v, SDA and SCL with 2.2k pull-up resistors.

I have checked the voltages and everything is correct. (3.3v)

Any idea?
Does the bmp388 have to be powered on in some special way?
Is there any way to hard reset the bmp388?

Same problem with Adafruit bmp388 library.

Thank you in advance

Code:

///////////////////////////////////////////////////////////////////////////////
// BMP388_DEV - I2C Communications, Default Configuration, Normal Conversion
///////////////////////////////////////////////////////////////////////////////

#include <BMP388_DEV.h>                           // Include the BMP388_DEV.h library
#define SENSORS_VCC  9    //external power source pin

float temperature, pressure, altitude;            // Create the temperature, pressure and altitude variables
BMP388_DEV bmp388;                                // Instantiate (create) a BMP388_DEV object and set-up for I2C operation (address 0x77)

void setup() 
{

 pinMode(SENSORS_VCC,OUTPUT);
digitalWrite(SENSORS_VCC,HIGH);  // power on  external module  3.3V 

  Serial.begin(115200);                           // Initialise the serial port
  bmp388.begin();                                 // Default initialisation, place the BMP388 into SLEEP_MODE 
  bmp388.setTimeStandby(TIME_STANDBY_1280MS);     // Set the standby time to 1.3 seconds
  bmp388.startNormalConversion();                 // Start BMP388 continuous conversion in NORMAL_MODE  
}

void loop() 
{
  if (bmp388.getMeasurements(temperature, pressure, altitude))    // Check if the measurement is complete
  {
    Serial.print(temperature);                    // Display the results    
    Serial.print(F("*C   "));
    Serial.print(pressure);    
    Serial.print(F("hPa   "));
    Serial.print(altitude);
    Serial.println(F("m"));  
  }
}

Not sure what your hardware setup looks like from the explanation above, but to connect the I2C sensor on another board you must provide common reference ground.
Also other option would be to connect the both microcontroller themself over I2C to read sensor data from the native board over I2C and send via MCU over I2C.

Can you post a schematic showing how it is wired, a frizzy picture is generally useless.

ARDUINO PRO MICRO 3.3V WITH TWO POWER REGULATORS MIC5219

MIC5219_A 3.3V
MIC5219_B WITH "EN" PIN CONNECTED TO PIN9
WHEN PIN9 IS HIGH => 3.3V
WHEN PIN9 IS LOW => 0V

BMP388 ---- ARDUINO PRO MICRO 3.3V
WORKING FINE
VCC --- 3.3V
GND ---- GND
SDA --- SDA
SCL --- SCL

Not working:
BMP388 ---- ARDUINO PRO MICRO 3.3V (PIN 9 == MIC5219 ENABLE HIGH)
VCC --- MIC5219 ENABLE HIGH -> 3.3V (GIVES 3.3V, Verified)
GND ---- GND
SDA --- SDA
SCL --- SCL

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.