Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME280 pressure reading wrong

    BME280 pressure reading wrong


    I am using the BME280 to get temp, pressure and humidity in demand mode 1/sec. I have over sampling for each parameter set to 1. Temp and humidity  work. The pressure should be around 1020 but comes back around 630. Sometimes I get the correct value but most of the  time it is stuck in the 630s. Any idea what I am doing wrong? I am using the 64 bit compensation functions from the data sheet.


    6 REPLIES 6

    Community Moderator
    Community Moderator

    Could please confirm whether you are using our recommend sensor API (available here) to communicate with the BME280, and if so, could you share a short snippet of the sensor's configuration and data readout?

    Could you also confirm that by 'demand mode' you mean really mean 'forced mode' of the sensor? If so, are you waiting for a sufficient period between the measurement is triggered and the data readout? If not, are you reading data in a single burst-read transaction?

    I am using forced once every 5 minuetes.

    I am using the code as presented in the BME280 datasheet. See attached source file

    #define CTRL_HUM_VAL    0x01                  // 1x samples of humidity
    #define CTRL_MEAS_VAL  0b00100101 // 1x samples of temp and pressure in force mode
    #define CONFIG_VAL          0x00                 // no filter and forced trigger

    The read is a one block read of 8 bytes at address 0xF7

    #define DATA_BLK_ADR 0xF7
    #define DATA_BLK_LEN 8

    I have attached the code and a 14hr run where you can see the pressure going in and out of the correct value.

    try again on the source file

    Community Moderator
    Community Moderator

    Thank-you for the details about your implementation.

    Would you be able to share the raw registers values of the trimming parameters (i.e. registers 0x88 to 0xA1 and 0xE1 to 0xE7) as well as the raw values from data readouts (i.e. registers 0xF7 to 0xFE) of both expected and unexpected outputs?