Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME280 temperature offset 4 Degree after 3 months

    BME280 temperature offset 4 Degree after 3 months



    Problem Statement:
    I am using in total 6 BME280 sensors In my smart Home setup.

    Initially the sensors worked fine with accurate temperature and Humidity readings.
    However after ~3 Months one of the sensors suddenly shows a much too high temperature. The temperature is about 4 Degrees higher than the other sensors (e.g. 28 degree instead of real temperature of 24 degree).
    This also causes invalid/too low humidity readouts (as temperature is used to calculate relative humitidy)
    The other 5 sensors work fine with the same hardware setup and software.

    Technical Details:
    The affected sensor is positioned in the Bathroom (which will sense a humidity change from 30% to 85% to 30% each day during showering) and controls the Fan to blow humid air out of the room.
    I sample sensor values every 5 seconds.
    Regarding PCB layout, I am using the Breakout boards with integrated 5V regulator and level shifter commonly found on Amazon or Ebay.
    The sensor is mounted Head-down (metal casing pointing towards the floor) inside of a Plastic casing with slots to allow free airflow.
    I am using the Bosch BME driver software v3.5.0 on AVR controller.

    This is how I initialize the device (Weather monitoring mode):




    struct bme280_dev m_dev;
    m_dev.intf_ptr = &m_i2c;
    m_dev.intf = BME280_I2C_INTF; = IicCWrapper::smRead_c_wrapper;
    m_dev.write = IicCWrapper::smWrite_c_wrapper;
    m_dev.delay_us = Bme280::delay_us;
    /* Recommended mode of operation: Weather monitoring */
    m_dev.settings.osr_h = BME280_OVERSAMPLING_1X;
    m_dev.settings.osr_p = BME280_OVERSAMPLING_1X;
    m_dev.settings.osr_t = BME280_OVERSAMPLING_1X;
    m_dev.settings.filter = BME280_FILTER_COEFF_OFF;
    m_dev.settings.standby_time = BME280_STANDBY_TIME_1000_MS;
    uint8_t settings_sel = BME280_OSR_PRESS_SEL;
    settings_sel |= BME280_OSR_TEMP_SEL;
    settings_sel |= BME280_OSR_HUM_SEL;
    settings_sel |= BME280_STANDBY_SEL;
    settings_sel |= BME280_FILTER_SEL;




    It shis a known issue?
    Did I do something wrong, e.g. use the sensor outside of its spec?
    Does the sensors intended use cover usage inside a Bathroom to control the room ventilation?
    Might this be related to the affected sensor being exposed to numerous humidity changes as ist is situated in the bathroom?
    Is this a defective sensor?
    If I replace the sensor, will it show the same problem after 3 month?

    Thanks for looking into this 🙂

    7 REPLIES 7


    Short update:
    I made some pictures, on how I physically positioned the Sensor in the Casing and on the wall.

    I also took the opportunity when I had the case disassembled, to swap the Sensor with a new one.
    After the swap the new sensor as expected reads the correct temperature again (as did the old sensor for 3 months).

    From this I conclude the issue is not from any ambient heat source, but sensor degradation over time.
    Now let's see if the new sensor also degrades over time.

    I would be happy on any feedback on this. Is the way I mounted the sensor  OK for a humid Bathroom environment (I let the sensor face downwards to avoid any condensation forming on and dripping into the sensor)?

    Community Moderator
    Community Moderator

    Hi RainerS,

    According your feedback, we would like to get more information from you:
    1. Where are the other five BME280 installed? And what about the surrounding environment?
    2. The BME280 in the bathroom has a temperature drift of 4 °. Is the humidity value normal at that time?
    3. Is the temperature and humidity normal when the BME280 in the bathroom is taken out of the bathroom?

    Hi, thanks for the reply.

    Regarding question 1:

    • All of the sensors are installed indoors.
    • Three of those in directly adjacent rooms to the bathroom.
    • I usually have all doors completely open to the adjacent rooms (except when showering) which provides free air circulation.
    • All sensors are at same height of 1.4m mounted in a slotted casing 1cm from the wall (internal, wall, not perimeter wall). Casing and mounting method see photos in previous post.
    • I checked the correct temperature / offset as follows (All methods showed 3.5....4.5 Degree offset to the affected sensor, affected sensor always reading a too high temperature):
      • Using an IR thermometer measuring the surface temperature of the casing
      • Using an analog thermometer
      • Replacing the BME280 module with a brand new one (which then showed the correct temperature)
      • Comparing to Sensor readouts of the other three BME sensors in adjacent rooms with free air circulation

    Regarding question 2:

    • The Humidity value also reads a way too low value
    • If I remember correctly (I did not make protocol for humidity): When showering: I read about 65% RH and 35 Degree Celsius, When in reality it should have been >80% RH and 30 Degree Celsius

    Regarding question 3:

    • A week ago, I replaced the affected sensor module in the bathroom with a new one. This now shows the correct temperature (4 degrees lower) again (as did the affected sensor for ~3 month).
    • I just now swapped the sensor module in the living room with the affected sensor module (Which I stored in a plastic box for 1 week now), to see if outside of bathroom environment the temperature offset is still there:
      • Original living room sensor: 22.5 Degree Celsius, 62% RH
      • Living room sensor with BME280 module from bathroom (after 3 minutes wait time to acclimatize): 25.4 Degree Celsius, 50% RH


    I will still keep the affected sensor module. If you are interested, I can send it to you.

    Community Moderator
    Community Moderator

    Hi RainerS,

    Thank for your feedback.

    Could we know which region you located?