Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use BMP388: Examples, Pinouts, and Specs

Image of BMP388
Cirkit Designer LogoDesign with BMP388 in Cirkit Designer

Introduction

The BMP388 is a high-precision barometric pressure sensor designed to measure atmospheric pressure and temperature with exceptional accuracy. It is a compact and versatile sensor that operates over a wide range of pressures and temperatures, making it suitable for a variety of applications. The BMP388 is commonly used in weather forecasting, altitude measurement, indoor navigation, and drone flight stabilization. Its small size and low power consumption make it ideal for portable and battery-powered devices.

Explore Projects Built with BMP388

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32 and BMP388 Bluetooth-Enabled Weather Station with Servo Control
Image of Auto Vents: A project utilizing BMP388 in a practical application
This circuit features an ESP32 microcontroller that controls a servo motor and reads data from a BMP388 sensor. The ESP32 receives commands via Bluetooth to adjust the servo's position and transmits temperature and pressure readings from the BMP388 sensor back via Bluetooth. The system also enters a deep sleep mode to conserve power.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-CAM Smart Security System with PIR Sensor and BMP280, Battery-Powered and Wi-Fi Controlled
Image of ESP 32: A project utilizing BMP388 in a practical application
This circuit is a wireless surveillance system using an ESP32-CAM module, a PIR motion sensor, and a BMP280 sensor. The ESP32-CAM captures images and sends them via Telegram when motion is detected by the PIR sensor, while the BMP280 provides environmental data. The system is powered by a 3.7V battery, regulated to 5V using an LM340T5 7805 voltage regulator, and includes a TP4056 for battery charging.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Environmental Monitoring System with Solar Charging
Image of IoT Ola (Final): A project utilizing BMP388 in a practical application
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental monitoring and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a SIM800L module for GSM communication, connected to the ESP32 via serial (TXD, RXD). Power management is handled by two TP4056 modules for charging 18650 Li-ion batteries via solar panels, with a step-up boost converter to provide consistent voltage to the MH-Z19B, and voltage regulation for the SIM800L. Decoupling capacitors are used to stabilize the power supply to the BME/BMP280 and ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
Solar-Powered Environmental Monitoring System with ESP32 and Cellular Connectivity
Image of IoT Ola: A project utilizing BMP388 in a practical application
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental data and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a TP4056 module for charging an 18650 Li-ion battery from a solar panel, with a step-up boost converter to provide stable voltage to the MH-Z19B sensor and a voltage regulator for the SIM800L GSM module. The capacitors are likely used for power supply filtering or decoupling.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with BMP388

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Auto Vents: A project utilizing BMP388 in a practical application
ESP32 and BMP388 Bluetooth-Enabled Weather Station with Servo Control
This circuit features an ESP32 microcontroller that controls a servo motor and reads data from a BMP388 sensor. The ESP32 receives commands via Bluetooth to adjust the servo's position and transmits temperature and pressure readings from the BMP388 sensor back via Bluetooth. The system also enters a deep sleep mode to conserve power.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP 32: A project utilizing BMP388 in a practical application
ESP32-CAM Smart Security System with PIR Sensor and BMP280, Battery-Powered and Wi-Fi Controlled
This circuit is a wireless surveillance system using an ESP32-CAM module, a PIR motion sensor, and a BMP280 sensor. The ESP32-CAM captures images and sends them via Telegram when motion is detected by the PIR sensor, while the BMP280 provides environmental data. The system is powered by a 3.7V battery, regulated to 5V using an LM340T5 7805 voltage regulator, and includes a TP4056 for battery charging.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of IoT Ola (Final): A project utilizing BMP388 in a practical application
ESP32-Based Environmental Monitoring System with Solar Charging
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental monitoring and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a SIM800L module for GSM communication, connected to the ESP32 via serial (TXD, RXD). Power management is handled by two TP4056 modules for charging 18650 Li-ion batteries via solar panels, with a step-up boost converter to provide consistent voltage to the MH-Z19B, and voltage regulation for the SIM800L. Decoupling capacitors are used to stabilize the power supply to the BME/BMP280 and ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of IoT Ola: A project utilizing BMP388 in a practical application
Solar-Powered Environmental Monitoring System with ESP32 and Cellular Connectivity
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental data and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a TP4056 module for charging an 18650 Li-ion battery from a solar panel, with a step-up boost converter to provide stable voltage to the MH-Z19B sensor and a voltage regulator for the SIM800L GSM module. The capacitors are likely used for power supply filtering or decoupling.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

The BMP388 offers impressive performance and flexibility. Below are its key technical details:

Key Specifications

Parameter Value
Operating Voltage 1.65V to 3.6V
Operating Current 3.4 µA (typical in low-power mode)
Pressure Range 300 hPa to 1250 hPa
Temperature Range -40°C to +85°C
Pressure Accuracy ±0.08 hPa (typical)
Temperature Accuracy ±0.5°C
Interface I2C and SPI
Dimensions 2.0 mm x 2.0 mm x 0.75 mm

Pin Configuration

The BMP388 comes in a small LGA package with the following pinout:

Pin Number Pin Name Description
1 VDD Power supply (1.65V to 3.6V)
2 GND Ground
3 SCL/SPC I2C clock / SPI clock input
4 SDA/SDI I2C data / SPI data input
5 CSB Chip select for SPI (active low)
6 SDO SPI data output / I2C address selection
7 VDDIO I/O voltage reference (optional)

Usage Instructions

The BMP388 can be easily integrated into a circuit using either the I2C or SPI communication protocol. Below are the steps to use the BMP388 in a typical setup:

Connecting the BMP388 to an Arduino UNO

  1. Wiring: Connect the BMP388 to the Arduino UNO as follows:

    • VDD to 3.3V on the Arduino.
    • GND to GND on the Arduino.
    • SCL/SPC to A5 (I2C clock pin on Arduino UNO).
    • SDA/SDI to A4 (I2C data pin on Arduino UNO).
    • Leave CSB and SDO unconnected for I2C mode.
  2. Install Libraries: Use the Adafruit BMP3XX library for easy integration. Install it via the Arduino Library Manager.

  3. Example Code: Below is a sample Arduino sketch to read pressure and temperature data from the BMP388:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP3XX.h>

// Create an instance of the BMP3XX sensor
Adafruit_BMP3XX bmp;

void setup() {
  Serial.begin(9600);
  while (!Serial); // Wait for Serial Monitor to open

  // Initialize I2C communication
  if (!bmp.begin_I2C()) {
    Serial.println("Could not find a valid BMP388 sensor, check wiring!");
    while (1);
  }

  // Configure the sensor
  bmp.setTemperatureOversampling(BMP3_OVERSAMPLING_8X);
  bmp.setPressureOversampling(BMP3_OVERSAMPLING_4X);
  bmp.setIIRFilterCoeff(BMP3_IIR_FILTER_COEFF_3);
  bmp.setOutputDataRate(BMP3_ODR_50_HZ);
}

void loop() {
  // Read pressure and temperature
  if (!bmp.performReading()) {
    Serial.println("Failed to perform reading!");
    return;
  }

  // Print the results
  Serial.print("Temperature = ");
  Serial.print(bmp.temperature);
  Serial.println(" °C");

  Serial.print("Pressure = ");
  Serial.print(bmp.pressure / 100.0); // Convert Pa to hPa
  Serial.println(" hPa");

  delay(1000); // Wait 1 second before the next reading
}

Important Considerations

  • Power Supply: Ensure the BMP388 is powered with a voltage between 1.65V and 3.6V. If using a 5V microcontroller, use a level shifter for I2C/SPI lines.
  • I2C Address: The default I2C address is 0x76. If SDO is connected to VDD, the address changes to 0x77.
  • Environmental Factors: Avoid exposing the sensor to water or dust, as this may affect its accuracy.

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected:

    • Cause: Incorrect wiring or I2C address mismatch.
    • Solution: Double-check the connections and ensure the correct I2C address is used in the code.
  2. Inaccurate Readings:

    • Cause: Improper calibration or environmental interference.
    • Solution: Use the sensor in a stable environment and apply any necessary calibration.
  3. No Data Output:

    • Cause: Faulty sensor initialization.
    • Solution: Verify the sensor is properly powered and initialized in the code.

FAQs

  • Can the BMP388 measure altitude? Yes, the BMP388 can calculate altitude based on pressure readings using the barometric formula.

  • What is the maximum sampling rate? The BMP388 supports an output data rate of up to 200 Hz.

  • Is the BMP388 waterproof? No, the BMP388 is not waterproof. Use a protective enclosure if operating in humid or wet conditions.

By following this documentation, you can effectively integrate and use the BMP388 in your projects.