BME280 Combined humidity and pressure sensor BME280 – Data sheet Document revision 1.6 Document release date September 2018 Document number BST-BME280-DS002-15 Technical reference code 0 273 141 185 Notes Data and descriptions in this document are subject to change without notice.
| 55 Bosch Sensortec | BME280 Data sheet BME280 Digital humidity, pressure and temperature sensor Key features Package Digital interface Supply voltage 2.5 mm x 2.5 mm x 0.93 mm metal lid LGA I²C (up to 3.4 MHz) and SPI (3 and 4 wire, up to 10 MHz) VDD main supply voltage range: 1.71 V to 3.6 V VDDIO interface voltage range: 1.2 V to 3.6 V Current consumption 1.8 µA @ 1 Hz humidity and temperature 2.8 µA @ 1 Hz pressure and temperature 3.
Bosch Sensortec | BME280 Data sheet 3 | 55 General Description The BME280 is as combined digital humidity, pressure and temperature sensor based on proven sensing principles. The sensor module is housed in an extremely compact metal-lid LGA package with a footprint of only 2.5 × 2.5 mm² with a height of 0.93 mm. Its small dimensions and its low power consumption allow the implementation in battery driven devices such as handsets, GPS modules or watches.
Bosch Sensortec | BME280 Data sheet 4 | 55 Index of Contents 1. Specification ......................................................................................................................................8 1.1 General electrical specification .................................................................................................. 8 1.2 Humidity parameter specification .............................................................................................. 9 1.
Bosch Sensortec | BME280 Data sheet 5 | 55 4.2 Output compensation .............................................................................................................. 23 4.2.1 Computational requirements .................................................................................. 23 4.2.2 Trimming parameter readout .................................................................................. 24 4.2.3 Compensation formulas ...............................................................
Bosch Sensortec | BME280 Data sheet 6 | 55 7. Pin-out and connection diagram .................................................................................................. 38 7.1 Pin-out ..................................................................................................................................... 38 7.2 Connection diagram I2C........................................................................................................... 39 7.3 Connection diagram 4-wire SPI ...........
Bosch Sensortec | BME280 Data sheet 7 | 55 9.5 Current consumption ............................................................................................................... 52 10. Legal disclaimer ............................................................................................................................. 53 10.1 Engineering samples ............................................................................................................... 53 10.2 Product use.....................
| 55 Bosch Sensortec | BME280 Data sheet 1.
| 55 Bosch Sensortec | BME280 Data sheet 1.2 Humidity parameter specification Table 2: Humidity parameter specification Parameter Operating range1 Supply current Symbol Condition Min Typ Max Unit RH For temperatures < 0 °C and > 60 °C see Figure 1 -40 25 85 °C 100 %RH 2.8 µA 0 IDD,H 1 Hz forced mode, humidity and temperature 1.
| 55 Bosch Sensortec | BME280 Data sheet 100 Relative humidity [%] 80 60 40 20 0 -40 -20 0 20 40 Temperature [°C] 60 80 Figure 1: humidity sensor operating range 1.
| 55 Bosch Sensortec | BME280 Data sheet Temperature coefficient of offset5 TCOP Absolute accuracy pressure APext 25…65 °C, 900 hPa ±1.5 Pa/K ±12.6 cm/K 300. . 1100 hPa -20 . . . 0 °C ±1.7 hPa AP,full 300 . . . 1100 hPa 0 . . . 65 °C ±1.0 hPa AP 1100 . . . 1250 hPa ±1.5 hPa ±0.12 hPa 25 . . . 40 °C Relative accuracy pressure Arel 700 … 900hPa 25 . . . 40 °C VDD = 3.3V Resolution of pressure output data Noise in pressure RP Highest oversampling 0.
| 55 Bosch Sensortec | BME280 Data sheet Absolute accuracy temperature7 AT,full 0…65 °C ±1.0 °C AT,ext8 -20 …. 0 °C ±1.25 °C AT,ext9 -40 … -20 °C ±1.5 °C Output resolution RT API output resolution 0.01 °C RMS noise NT Lowest oversampling 0.005 °C 7 Temperature measured by the internal temperature sensor. This temperature value depends on the PCB temperature, sensor element self-heating and ambient temperature and is typically above ambient temperature.
| 55 Bosch Sensortec | BME280 Data sheet 2. Absolute maximum ratings The absolute maximum ratings are determined over complete temperature range using corner lots. The values are provided in Table 5. Table 5: Absolute maximum ratings Parameter Voltage at any supply pin Condition Min Max Unit VDD and VDDIO pin -0.3 4.25 V -0.3 VDDIO + 0.
| 55 Bosch Sensortec | BME280 Data sheet 3. Functional description 3.1 Block diagram Figure 2 shows a simplified block diagram of the BME280: VDD Pressure sensing element Pressure front-end Humidity sensing element Humidity front-end Temperature sensing element Temperature front-end Voltage regulator (analog & digital) VDDIO Voltage reference ADC Logic I n t e r f a c e SDI SDO SCK CSB OSC POR NVM GND Figure 2: Block diagram of BME280 3.
| 55 Bosch Sensortec | BME280 Data sheet The modes will be explained in detail in chapters 3.3.2 (sleep mode), 3.3.3 (forced mode) and 3.3.4 (normal mode). 3.3.1 Sensor mode transitions The supported mode transitions are shown in Figure 3. If the device is currently performing a measurement, execution of mode switching commands is delayed until the end of the currently running measurement period.
| 55 current Bosch Sensortec | BME280 Data sheet Write POR settings Mode[1:0] = 01 Data readout Mode[1:0] = 01 Measurement H Measurement P Measurement T Measurement H IDDSB IDDSL Measurement T IDDP IDDT IDDH Measurement P cycle time = rate of force mode tmeasure time Figure 4: Forced mode timing diagram 3.3.4 Normal mode current Normal mode comprises an automated perpetual cycling between an (active) measurement period and an (inactive) standby period.
| 55 Bosch Sensortec | BME280 Data sheet 3.4 Measurement flow The BME280 measurement period consists of a temperature, pressure and humidity measurement with selectable oversampling. After the measurement period, the pressure and temperature data can be passed through an optional IIR filter, which removes short-term fluctuations in pressure (e.g. caused by slamming a door). For humidity, such a filter is not needed and has not been implemented. The flow is depicted in the diagram below.
| 55 Bosch Sensortec | BME280 Data sheet 3.4.4 When the IIR filter is disabled, the temperature resolution is 16 + (osrs_t – 1) bit, e.g. 18 bit when osrs_t is set to ‘3’. IIR filter The humidity value inside the sensor does not fluctuate rapidly and does not require low pass filtering. However, the environmental pressure is subject to many short-term changes, caused e.g. by slamming of a door or window, or wind blowing into the sensor.
| 55 Bosch Sensortec | BME280 Data sheet The step response (e.g. response to in sudden change in height) of the different filter settings is displayed in Figure 7. Step response at different IIR filter settings 100 90 80 Response to step [%] 70 filter off 2 4 8 16 60 50 40 30 20 10 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 Number of samples 32 Figure 7: Step response at different IIR filter settings 3.
| 55 Bosch Sensortec | BME280 Data sheet Table 8: Settings and performance for humidity sensing Suggested settings for weather monitoring Sensor mode forced mode, 1 sample / second Oversampling settings pressure ×0, temperature ×1, humidity ×1 IIR filter settings filter off Performance for suggested settings Current consumption 2.9 µA RMS Noise 0.07 %RH Data output rate 1 Hz 3.5.3 Indoor navigation Lowest possible altitude noise is needed. A very low bandwidth is preferred.
| 55 Bosch Sensortec | BME280 Data sheet Table 10: Settings and performance for gaming Suggested settings for gaming Sensor mode normal mode, tstandby = 0.5 ms Oversampling settings pressure ×4, temperature ×1, humidity ×0 IIR filter settings filter coefficient 16 Performance for suggested settings Current consumption 581 µA RMS Noise 0.3 Pa / 2.5 cm Data output rate 83 Hz Filter bandwidth 1.75 Hz Response time (75%) 0.3 s 3.
| 55 Bosch Sensortec | BME280 Data sheet Table 12: Noise and current for pressure Typical RMS noise in pressure [Pa] at 25 °C off 2 4 8 16 Typ. current [µA] at 1 Hz forced mode, 25 °C, pressure and temperature measurement, incl. IDDSM ×1 / ×1 3.3 1.9 1.2 0.9 0.4 2.8 ×2 / ×1 2.6 1.5 1.0 0.6 0.4 4.2 ×4 / ×1 2.1 1.2 0.8 0.5 0.3 7.1 ×8 / ×1 1.6 1.0 0.6 0.4 0.2 12.8 ×16 / ×2 1.3 0.8 0.5 0.4 0.2 24.
Bosch Sensortec | BME280 Data sheet 23 | 55 4. Data readout To read out data after a conversion, it is strongly recommended to use a burst read and not address every register individually. This will prevent a possible mix-up of bytes belonging to different measurements and reduce interface traffic. Note that in I²C mode, even when pressure was not measured, reading the unused registers is faster than reading temperature and humidity data separately.
| 55 Bosch Sensortec | BME280 Data sheet Table 15: Computational requirements for compensation formulas Compensation of Number of clocks (ARM Cortex-M3) 32 bit integer 64 bit integer Double precision Humidity ~83 – ~2900 11 Temperature ~46 – ~2400 11 Pressure ~112 12 ~1400 ~5400 11 4.2.2 Trimming parameter readout The trimming parameters are programmed into the devices’ non-volatile memory (NVM) during production and cannot be altered by the customer.
| 55 Bosch Sensortec | BME280 Data sheet 0xE7 4.2.3 dig_H6 signed char Compensation formulas Please note that it is strongly advised to use the API available from Bosch Sensortec to perform readout and compensation. If this is not wanted, the code below can be applied at the user’s risk. Both pressure and temperature values are expected to be received in 20 bit format, positive, stored in a 32 bit signed integer.
| 55 Bosch Sensortec | BME280 Data sheet v_x1_u32r = (((((adc_H << 14) – (((BME280_S32_t)dig_H4) << 20) – (((BME280_S32_t)dig_H5) * v_x1_u32r)) + ((BME280_S32_t)16384)) >> 15) * (((((((v_x1_u32r * ((BME280_S32_t)dig_H6)) >> 10) * (((v_x1_u32r * ((BME280_S32_t)dig_H3)) >> 11) + ((BME280_S32_t)32768))) >> 10) + ((BME280_S32_t)2097152)) * ((BME280_S32_t)dig_H2) + 8192) >> 14)); v_x1_u32r = (v_x1_u32r – (((((v_x1_u32r >> 15) * (v_x1_u32r >> 15)) >> 7) * ((BME280_S32_t)dig_H1)) >> 4)); v_x1_u32r = (v_x1_u32
| 55 Bosch Sensortec | BME280 Data sheet Table 18: Memory map Register Name Address hum_lsb hum_msb temp_xlsb temp_lsb temp_msb press_xlsb press_lsb press_msb config ctrl_meas status ctrl_hum calib26..calib41 reset id calib00..
| 55 Bosch Sensortec | BME280 Data sheet Table 19: Register 0xF2 “ctrl_hum” Register 0xF2 “ctrl_hum” Name Description Bit 2, 1, 0 osrs_h[2:0] Controls oversampling of humidity data. See Table 20 for settings and chapter 3.4.1 for details. Table 20: register settings osrs_h osrs_h[2:0] Humidity oversampling 000 Skipped (output set to 0x8000) 001 oversampling ×1 010 oversampling ×2 011 oversampling ×4 100 oversampling ×8 101, others oversampling ×16 5.4.
| 55 Bosch Sensortec | BME280 Data sheet Table 22: Register 0xF4 “ctrl_meas” Register 0xF4 “ctrl_meas” Name Description Bit 7, 6, 5 osrs_t[2:0] Controls oversampling of temperature data. See Table 24 for settings and chapter 3.4.3 for details. Bit 4, 3, 2 osrs_p[2:0] Controls oversampling of pressure data. See Table 23 for settings and chapter 3.4.2 for details. Bit 1, 0 mode[1:0] Controls the sensor mode of the device. See Table 25 for settings and chapter 3.3 for details.
| 55 Bosch Sensortec | BME280 Data sheet 5.4.6 Register 0xF5 “config” The “config” register sets the rate, filter and interface options of the device. Writes to the “config” register in normal mode may be ignored. In sleep mode writes are not ignored. Table 26: Register 0xF5 “config” Register 0xF5 “config” Name Description Bit 7, 6, 5 t_sb[2:0] Controls inactive duration tstandby in normal mode. See Table 27 for settings and chapter 3.3.4 for details.
| 55 Bosch Sensortec | BME280 Data sheet Table 29: Register 0xF7 … 0xF9 “press” Register 0xF7…0xF9 “press” Name Description 0xF7 press_msb[7:0] Contains the MSB part up[19:12] of the raw pressure measurement output data. 0xF8 press_lsb[7:0] Contains the LSB part up[11:4] of the raw pressure measurement output data. 0xF9 (bit 7, 6, 5, 4) press_xlsb[3:0] Contains the XLSB part up[3:0] of the raw pressure measurement output data. Contents depend on temperature resolution. 5.4.
| 55 Bosch Sensortec | BME280 Data sheet 6. Digital interfaces The BME280 supports the I²C and SPI digital interfaces; it acts as a slave for both protocols. The I²C interface supports the Standard, Fast and High Speed modes. The SPI interface supports both SPI mode ‘00’ (CPOL = CPHA = ‘0’) and mode ‘11’ (CPOL = CPHA = ‘1’) in 4-wire and 3-wire configuration.
| 55 Bosch Sensortec | BME280 Data sheet BMP280’s I²C address. The SDO pin cannot be left floating; if left floating, the I²C address will be undefined. The I²C interface uses the following pins: SCK: serial clock (SCL) SDI: data (SDA) SDO: Slave address LSB (GND = ‘0’, VDDIO = ‘1’) CSB must be connected to VDDIO to select I²C interface. SDI is bi-directional with open drain to GND: it must be externally connected to VDDIO via a pull up resistor. Refer to chapter 7 for connection instructions.
| 55 Bosch Sensortec | BME280 Data sheet 6.3 SPI interface The SPI interface is compatible with SPI mode ‘00’ (CPOL = CPHA = ‘0’) and mode ‘11’ (CPOL = CPHA = ‘1’). The automatic selection between mode ‘00’ and ‘11’ is determined by the value of SCK after the CSB falling edge. The SPI interface has two modes: 4-wire and 3-wire. The protocol is the same for both. The 3-wire mode is selected by setting ‘1’ to the register spi3w_en. The pad SDI is used as a data pad in 3-wire mode.
| 55 Bosch Sensortec | BME280 Data sheet 6.3.2 SPI read Reading is done by lowering CSB and first sending one control byte. The control bytes consist of the SPI register address (= full register address without bit 7) and the read command (bit 7 = RW = ‘1’). After writing the control byte, data is sent out of the SDO pin (SDI in 3-wire mode); the register address is automatically incremented. The SPI read protocol is depicted in Figure 13.
| 55 Bosch Sensortec | BME280 Data sheet SDI tBUF tf tLOW SCK tHIGH tHDSTA tr tHDDAT tSUDAT SDI tSUSTA tSUSTO Figure 14: I²C timing diagram Table 33: I²C timings Parameter Symbol Condition Min Typ Max Unit SDI setup time tSU;DAT S&F Mode HS mode 160 30 ns ns SDI hold time tHD;DAT S&F Mode, Cb≤100 pF S&F Mode, Cb≤400 pF HS mode, Cb≤100 pF HS mode, Cb≤400 pF 80 90 18 24 ns ns ns ns 115 150 SCK low pulse tLOW HS mode, Cb≤100 pF VDDIO = 1.
| 55 Bosch Sensortec | BME280 Data sheet T_hold_csb T_setup_csb CSB T_low_sck T_high_sck SCK SDI T_setup_sdi T_hold_sdi SDO T_delay_sdo Figure 15: SPI timing diagram Table 34: SPI timings Parameter Symbol Condition Min Typ Max Unit 10 MHz SPI clock input frequency F_spi 0 SCK low pulse T_low_sck 20 ns SCK high pulse T_high_sck 20 ns SDI setup time T_setup_sdi 20 ns SDI hold time T_hold_sdi 20 ns SDO output delay T_delay_sdo 25 pF load, VDDIO=1.
| 55 Bosch Sensortec | BME280 Data sheet 7. Pin-out and connection diagram 7.1 Pin-out 8 VDD 1 GND 1 GND 8 VDD Pin 1 marker 7 GND 2 CSB 2 CSB 7 GND TOP VIEW (pads not visible) BOTTOM VIEW (pads visible) 6 VDDIO 3 SDI 3 SDI 6 VDDIO 4 SCK 4 SCK 5 SDO Vent hole 5 SDO Figure 16: Pin-out top and bottom view Note: The pin numbering of BME280 is performed in the untypical clockwise direction when seen in top view and counter-clockwise when seen in bottom view.
| 55 Bosch Sensortec | BME280 Data sheet 7.2 Connection diagram I2C VDD VDDIO 8 VDD 1 GND 7 GND 2 CSB TOP VIEW (pads not visible) 6 VDDIO R1 R2 3 SDI SDA 4 SCK SCL Vent hole 5 SDO I2C address bit 0 GND: '0'; VDDIO: '1' C1 C2 Figure 17: I²C connection diagram Notes: The recommended value for C1, C2 is 100 nF The value for the pull-up resistors R1, R2 should be based on the interface timing and the bus load; a normal value is 4.
| 55 Bosch Sensortec | BME280 Data sheet 7.3 Connection diagram 4-wire SPI VDD VDDIO 8 VDD 1 GND 7 GND 2 CSB CSB 3 SDI SDI 4 SCK SCK TOP VIEW (pads not visible) 6 VDDIO Vent hole 5 SDO SDO C1 C2 Figure 18: 4-wire SPI connection diagram Note: The recommended value for C1, C2 is 100 nF Modifications reserved | Data subject to change without notice Document number: BST-BME280-DS002-15 Revision_1.
| 55 Bosch Sensortec | BME280 Data sheet 7.4 Connection diagram 3-wire SPI VDD VDDIO 8 VDD 1 GND 7 GND 2 CSB CSB 3 SDI SDI/SDO 4 SCK SCK TOP VIEW (pads not visible) 6 VDDIO Vent hole 5 SDO C1 C2 Figure 19: 3-wire SPI connection diagram Note: The recommended value for C1, C2 is 100 nF Modifications reserved | Data subject to change without notice Document number: BST-BME280-DS002-15 Revision_1.
Bosch Sensortec | BME280 Data sheet 42 | 55 7.5 Package dimensions Figure 20: Package dimensions for top, bottom and side view Modifications reserved | Data subject to change without notice Document number: BST-BME280-DS002-15 Revision_1.
| 55 Bosch Sensortec | BME280 Data sheet 7.6 Landing pattern recommendation For the design of the landing pattern, the following dimensioning is recommended: Figure 21: Recommended landing pattern (top view) Note: red areas demark exposed PCB metal pads. In case of a solder mask defined (SMD) PCB process, the land dimensions should be defined by solder mask openings. The underlying metal pads are larger than these openings.
| 55 Bosch Sensortec | BME280 Data sheet 7.7 Marking 7.7.
| 55 Bosch Sensortec | BME280 Data sheet 7.8 Soldering guidelines and reconditioning recommendations The moisture sensitivity level of the BME280 sensors corresponds to JEDEC Level 1, see also: IPC/JEDEC J-STD-020C “Joint Industry Standard: Moisture/Reflow Sensitivity Classification for non-hermetic Solid State Surface Mount Devices” IPC/JEDEC J-STD-033A “Joint Industry Standard: Handling, Packing, Shipping and Use of Moisture/Reflow Sensitive Surface Mount Devices”.
Bosch Sensortec | BME280 Data sheet 46 | 55 7.9 Reconditioning Procedure After exposing the device to operating conditions, which exceed the limits specified in section 1.2, e.g. after reflow, the humidity sensor may possess an additional offset. Therefore the following reconditioning procedure is mandatory to restore the calibration state: 1. Dry-Baking: 2. Re-Hydration: 120 °C at <5% rH for 2 h 70 °C at 75% rH for 6 h or alternatively 1. Dry-Baking: 2.
Bosch Sensortec | BME280 Data sheet 47 | 55 7.10.2 Orientation within the reel Figure 24: Orientation within tape Modifications reserved | Data subject to change without notice Document number: BST-BME280-DS002-15 Revision_1.
Bosch Sensortec | BME280 Data sheet 48 | 55 7.11 Mounting and assembly recommendations In order to achieve the specified performance for you design, the following recommendations and the “Handling, soldering & mounting instructions BME280” should be taken into consideration when mounting a pressure sensor on a printed-circuit board (PCB): The clearance above the metal lid shall be 0.1mm at minimum.
| 55 Bosch Sensortec | BME280 Data sheet 8. Appendix A: Alternative compensation formulas 8.1 Compensation formulas in double precision floating point Please note that it is strongly advised to use the API available from Bosch Sensortec to perform readout and compensation. If this is not wanted, the code below can be applied at the user’s risk. Both pressure and temperature values are expected to be received in 20 bit format, positive, stored in a 32 bit signed integer.
Bosch Sensortec | BME280 Data sheet 50 | 55 8.2 Pressure compensation in 32 bit fixed point Please note that it is strongly advised to use the API available from Bosch Sensortec to perform readout and compensation. If this is not wanted, the code below can be applied at the user’s risk. Both pressure and temperature values are expected to be received in 20 bit format, positive, stored in a 32 bit signed integer.
| 55 Bosch Sensortec | BME280 Data sheet 9. Appendix B: Measurement time and current calculation In this chapter, formulas are given to calculate measurement rate, filter bandwidth and current consumption in different settings. 9.1 Measurement time The active measurement time depends on the selected values for humidity, temperature and pressure oversampling and can be calculated in milliseconds using the formulas below. 𝑡𝑚𝑒𝑎𝑠𝑢𝑟𝑒,𝑡𝑦𝑝 = 1 + [2 ⋅ 𝑇_𝑜𝑣𝑒𝑟𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔]𝑜𝑠𝑟𝑠_𝑡≠0 + [2 ⋅ 𝑃_𝑜𝑣𝑒𝑟𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔 + 0.
| 55 Bosch Sensortec | BME280 Data sheet 9.4 Response time using IIR filter When using the IIR filter, the response time of the sensor depends on the selected filter coefficient and the data rate used. It can be calculated using the following formula: 𝑡𝑟𝑒𝑠𝑝𝑜𝑛𝑠𝑒, 75% = 1000 ⋅ 𝑛𝑠𝑎𝑚𝑝𝑙𝑒𝑠, 75% 𝑂𝐷𝑅 For the example above with a data rate of 13.51 Hz, the user could select a filter coefficient of 8.
Bosch Sensortec | BME280 Data sheet 10. 53 | 55 Legal disclaimer 10.1 Engineering samples Engineering Samples are marked with an asterisk (*) or (e). Samples may vary from the valid technical specifications of the product series contained in this data sheet. They are therefore not intended or fit for resale to third parties or for use in end products. Their sole purpose is internal client testing. The testing of an engineering sample may in no way replace the testing of a product series.
| 55 Bosch Sensortec | BME280 Data sheet 11. Document history and modification Rev. No Page Description of modification/changes Date 0.1 Document creation 2012-11-06 1.0 Final datasheet 2014-11-12 1.1 48 Updated RoHS directive to 2011/65/EU effective 8 June 2011 2015-05-07 1.2 2, 3 Adjusted target devices, applications 2015-10-15 1.4 Minor corrections 2018-01-17 1.
Bosch Sensortec | BME280 Data sheet 55 | 55 Bosch Sensortec GmbH Gerhard-Kindler-Straße 9 72770 Reutlingen / Germany contact@bosch-sensortec.com www.bosch-sensortec.com Modifications reserved Preliminary - specifications subject to change without notice Document number: BST-BME280-DS002-15 Revision_1.6_092018 Modifications reserved | Data subject to change without notice Document number: BST-BME280-DS002-15 Revision_1.