Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME280: Understanding Data Readout and Conversion

    BME280: Understanding Data Readout and Conversion

    New Poster

    Dear Community,
    first at all, I am new to that hardware based programming businesss. Therefore, I have some fundamentals questions and I hope to get the right anwers here. Many thanks in advance.

    I read the entire BME 280 data sheet, nevertheless, I have problems with the raw data structure when reading out the data from the sensor and the data conversion, using the bitwise operations.

    1. In my opinion, when I read out the data (independent from the address) with python, I always get an array (or something similar) with 32 positions. In my opinion, every position represents a byte (consists of eight bits), as I get integers such as 152 or 250.  Is that correct or do I have mistake in my thinking?

    2. How do I know, which of the positions I have to extract from the array? Could you explain this by the temperature, for example?

    3. For processing  the raw temperature data. Is it sufficient, if I only use the LSB (and of course the compensation parameters) part, as the MSB part has the same structure, solely the numbering of the index position is mirrored?  

    It would be very helpful, if you could give me some hints and tips. Again, thank you very much in advance, loupos

    1 REPLY 1

    Community Moderator
    Community Moderator


    Thanks for your inquiry.

    BME280 is factory calibrated, trimmed and tested before being shipped to the market. Those trimmed values are saved in the NVM of each BME280. Every time when you get raw data from BME280, you need to apply those trimmed values to the formula to get final meaningful temperature, air pressure and humidity values in the unit of C, hPa and %RH respectively.

    Please refer to BME280 API source code online at Firstly you need to configure BME280 oversampling for temperature, pressure and humidity sensor. Then you can set BME280 to normal mode and call function bme280_get_sensor_data directly to get final meaningful temperature, air pressure and humidity values in the unit of C, hPa and %RH respectively.