Introduction to BME280

Hello friends! Hope you’re well. In today’s tutorial, we’ll cover a detailed Introduction to BME280. BME280 is a digital environmental pressure, humidity, and temperature sensor mainly designed for mobile applications. This module comes with extremely compact metal-lid LGA packages. It has low power consumption (consumes only 5µA during idle and less than 1mA during measurements) and small dimensions that make it a perfect fit for battery-driven devices such as GPS, mobiles, and smartwatches. The BME280 working protocols are I2C and SPI which consist of separate pinouts. The module contains a built-in LM6260 regulator, allowing you to effortlessly use it with a 3.3V or 5V logic microcontroller or Raspberry Pi.

BME280 is used in a range of industrial projects and electronic devices and provides high performance in all applications where pressure and humidity measurement is required. From gaming controls to weather monitoring to altitude measurement, this module serves the purpose of all with high precision and accuracy. The device comes with many filtering and sampling options that can be customized to make it compatible with the scores of applications.

In today’s post, we will have a look at its pinout, features, specifications, modes, applications, etc. I will also share the information where I have interfaced with other microcontroller.

Let’s get started with an introduction to Introduction to BME280.

Where To Buy?
No.ComponentsDistributorLink To Buy
1BME280AmazonBuy Now

Introduction to BME280

  • BME280 is a digital device designed to sense pressure, humidity, and temperature. This module consists of extremely concise metal casing.
  • This device is used to measure humidity, temperature, and pressure with high accuracy and high linearity in an 8-pin metal-lid 2.5 x 2.5 x 0.93 mm³ LGA package.
  • BM230 is developed for low current consumption (3.6 µA), high EMC robustness and long-term stability.
  • This device can perfectly work with Bosch Sensortec BMP280 digital pressure sensor.
  • As it provides high performance in humidity and pressure measurement, it is used in advanced and emerging applications such as home automation, indoor navigation, health care, GPS, and a low TCO.
  • The BME280 humidity sensing part provides a fast response time for context-awareness applications and high accuracy over a wide temperature range. This device can measure humidity with the range of 0 to 100% maintaining an accuracy of ±3%. Know that the maximum measurable humidity of the module reduces at high or low temperatures.
  • Its pressure sensing part is an absolute barometric pressure sensor having high accuracy, resolution, and drastically lower noise than the Bosch Sensortec BMP280. Know that the pressure and altitude are related to each other, the reason this device is also used as an altimeter with ±1 meter accuracy. Plus, it can measure pressure ranging from 300 to 1100 hPa maintaining an accuracy of ±1.0 hPa. To maintain 100% accuracy, a temperature range from 0 to 65°C is required.
  • Its temperature sensing part has been optimized for the lowest noise and high resolution.
  • This sensor is available in both I2C and SPI interfaces and it can be supplied with 1.71 to 3.6 V for sensor supply Vdd and 1.2 to 3.6 V for the interface supply Vddio.
  • Whenever the sensor is disabled, current consumption drops to 0.1µA.
  • It supports a full suite of operating modes that optimize the device for power consumption, filter performance, and resolution.

BME280 Pinout

BME280 environmental sensor comes with 10 pins but more often only 6 pins are employed at a single time. The pin description of each pin is described below.

The following figure shows the pinout diagram of this module.

BME280 Datasheet

If you want to incorporate this module into your relevant project, make sure you thoroughly look at the datasheet of BME280. The characteristics of the device are listed in this datasheet. Click the link below to check the datasheet of BME280.

 

BME280 Arduino Interfacing

In this section, we’ll explain An Arduino Weather Station project with the BME280 sensor.

The components used in this setting include:

      • An Arduino Mega
      • A BME280 sensor
      • An LCD shield for Arduino
      • A power bank
      • Wires

Here, we are using Arduino Mega but Arduino UNO can also be used.

  • First, we connect LCD to Arduino. After this, we connect the Vin pin of a sensor with the Arduino 5v output pin. Next, we connect the GND pin of a sensor to the SCL pin of Arduino and the SDA pin of a sensor to the SDA pin of Arduino.
  • Know that the module runs at 3.3V. If you’re using an SPI interface, level shifting is required to avoid any damage, however, if you’re running the I2C interface which is a preferred interface to apply, no level shifting is required since it is an open-drain interface carrying 10K pull-up resistors, providing Vcc 3.3V.
  • That’s all connected, if we load the code and power up the project we can see the reading from the sensor on the screen. For better understanding let's see a diagram of this project below.

BME280 Features

BME280 comes with the following features:

  • Get this device in a metal lid LGA package with dimensions of 2.5x 2.5x 0.93 mm³
  • The Interface protocols are I²C and SPI
  • Supply Voltage is 1.71 to 3.6 V
  • The temperature range is -40 to +85°C
  • Humidity range is 0-100% real humidity
  • The pressure range is 300-1100 hPa
  • The humidity sensor and pressure sensor can be independently enabled/disabled
  • This module is Register and performance compatible with Bosch Sensortec BMP280 digital pressure sensor
  • It is RoHS compliant, halogen-free, MSL1
  • It gets a more precise temperature, atmospheric pressure values, humidity, and approximate altitude data fast
  • It is Grove compatible and easy to use
  • It has a highly abstracted library for building projects quickly

BME280 Modes

This module comes with three modes named:

  • Sleep mode
  • Forced mode
  • Normal mode

The sleep mode is by default selected when the sensor gets activated. In this mode, no measurements take place and the sensor stays at the lowest power consumption. Plus, all registers can be accessed and you can read the chip-ID and compensation coefficients.

In the forced mode only one measurement takes place. The sensor goes back to the default sleep mode after the measurement is performed. The data registers store the measurement results before the forced mode is selected again for the next measurement. The forced mode is a good fit for the applications that need host-based synchronization and a low sampling rate.

The normal mode consists of automated continuous cycling between the inactive standby period and the active measurement period. Know that the sleep mode current is slightly lower than the standby period current. When you enable the normal mode, the determined measurement results can be gathered from information stored in data registers.

The timing diagram of normal mode is shown below:

BME280 Specifications

In this section, we’ll cover the specifications of BME280 so you can get a hold of what this device projects in terms of electrical, pressure, temperature, and humidity specifications.

A few things to consider before you look out at those specifications:

  • All values mentioned in the tables are valid with the full voltage range.
  • And min/max values are provided with the temperature range with full accuracy.
  • The typical state machine timings and currents values are discovered at 25 °C.
  • The state machine min/max values are available with 0 to 65 °C temperature range.

BME280 Electrical Specifications

The following table shows the general electrical specifications.

Parameter
Symbol Condition Min Typ Max Unit
Supply Voltage Internal Domains VDD Ripple max. 50 mVpp   1.71 1.8 3.6 V
Supply Voltage I/O Domain VDDIO 1.2 1.8 3.6 V
Sleep Current IDDSL 0.1 0.3 µA
Standby Current IDDSB 0.2 0.5 µA
Current during humidity measurement IDDH Max value at 85 °C 340 µA
Current during pressure measurement IDDP Max value at - 40 °C   714 µA
Current during temperature measurement IDDT Max value at 85 °C 350 µA
Startup time Tstartup Time to first communication after both VDD > 1.58 V and VDDIO > 0.65 V   2 ms
Power supply Rejection Ratio PSRR Full VDD range   ± 0.01 ± 5   % RH/V Pa/V  
Standby time accuracy tstandby ±5 ±25 %

Humidity Parameter Specifications

The following table shows the humidity parameter specifications.

Parameter Symbol Condition Min Typ Max Unit
Operating Range RH For temperatures < 0 °C and > 60 °C   -40 0 25 85 100 °C % RH
Supply Current IDD.H 1 Hz forced mode, humidity and temperature 1.8 2.8 µA
Absolute accuracy tolerance AH 20...80 % RH, 25 °C, including hysteresis   ± 3 % RH
Hysteresis HH 10-90-10 %RH 25 °C   ± 1 % RH
NonLinearity NLH 10-90 % RH, 25 °C   1 % RH
Response time to Complete 63%   T63% 90-0 or 0-90 % RH, 25 °C     1 s
Resolution RH 0.008 % RH
Noise in humidity NH Highest oversampling   .02 % RH
Long term stability Hstab 10...90 % RH, 25 °C   0.5     % RH/year  

Pressure Sensor Specifications

The following table shows the pressure sensor specifications.

Parameter Symbol Condition Min Typ Max Unit
Operating Temp. Range TA Operational   Full accuracy   -40 0 25 +85 +65 °C
Operating pressure range P Full accuracy 300 1100 hPa
Supply Current IDDLP 1 Hz forced mode, pressure and temperature, lowest power   2.8 4.2 µA
Temperature coefficient of offset TCOP   25... 65 °C, 900 hPa   ± 1.5 ± 12.6   Pa/K cm/K
Absolute accuracy pressure Apex   AP,full   AP       300 . . 1100 hPa -20 . . . 0 °C   300 . . 1100 hPa 0 . . . 65 °C   1100 . . 1250 hPa 25 . . . 40 °C     ± 1.7   ± 1   ± 1.5     hPa hPa hPa
Relative accuracy pressure VDD = 3.3V   Arel 700 ... 900hPa 25 . . . 40 °C   ± .12 hPa
Resolution of pressure output data RP Highest Oversampling 0.18 Pa
Noise in pressure NP, fullBW   NP, filtered     Full bandwidth, highest oversampling Reduced bandwidth, highest oversampling   1.3 11 .2 1.7 Pa cm Pa cm  
Solder drift Minimum solder height 50µm -0.5 +2 hPa
Long term stability Pstab Per year   ±1 hPa
Possible sampling rate fsample_P   Lowest Sampling 157 182 Hz

Temperature Sensor Specifications

The following table shows the temperature sensor specifications.

Parameter Symbol Condition Min Typ Max Unit
Operating Temp. Range T Operational   Full accuracy   -40 0 25 +85 +65 °C
Supply Current IDD, T 1 Hz forced mode, Temp. measurement only 1 1100 µA
AT,25   25 °C ± 0.5   °C
Absolute Accuracy Temperature   AT,full   Aext   Aext       0 ... 65 °C   -20 ... 0 °C   -40 ... -20 °C     ± 1   ± 1.25   ± 1.5     °C
Output Resolution   RT API output resolution 0.01 °C
RMS noise   NT Lowest Oversampling   0.005 °C

BME280 Absolute Maximum Ratings

It is important to note that these ratings are available over complete temperature range.

The following table shows the absolute maximum ratings of BME280.

Parameter Condition Min Max Unit
Voltage at any supply pin VDD and VDDIO pin   -0.3 4.25 V
Voltage at any interface pin -0.3 VDDIO + 0.3   V
Storage Temp. = 65% RH   -45 +85 °C
Pressure 0 20,000 hPa
ESD HBM, at any pin   CDM   Machine Model   ± 2   ± 500   ± 200 KV V V
Condensation No power supplied allowed allowed

BME280 Applications

Due to its SPI and I2C compatibility, the BME280 sensor is employed in a range of applications especially weather monitoring and health monitoring. The applications it can be used for include:

  • Skin detection, room change detection
  • Health monitoring/well-being
  • Warning regarding dehydration or heat stroke
  • Measurement of lung volume and airflow
  • Home automation control
  • Control heating, ventilation, air conditioning (HVAC)
  • Internet of things
  • GPS enhancement (e.g. time-to-first-fix improvement, dead reckoning, slope detection)
  • Indoor navigation (change of floor detection, elevator detection)
  • Outdoor navigation, leisure, and sports applications
  • Weather forecast
  • Vertical velocity indication (rise/sink speed)

That was all about the Introduction to BME280. If your mind is brimmed with questions regarding this device, you can ask me in the section below. I’d love to assist you the best way I can. Feel free to share your feedback and suggestions about the content we share, so we keep improving our content and deliver exact as per your needs and expectations. Thank you for reading the article.

Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir