We are integrating the BME280 into our units and have noticed several invalid values being obtained from the BME280 registers. We have roughly 200 units created and about 30-40 of these units have BME280 that are reading invalid data. This following is the serial output from our microcontroller reading the BME280 on a working sensor: Displaying ID, reset and ctrl regs ID(0xD0): 0x60 Reset register(0xE0): 0x0 ctrl_meas(0xF4): 0xB7 ctrl_hum(0xF2): 0x5 Displaying all regs 0x80:AD 71 89 53 2C 19 5E 06 16 6D 33 67 32 00 E8 8C 0x90:71 D6 D0 0B 31 1B 62 00 F9 FF 0C 30 20 D1 88 13 0xA0:00 4B 86 00 00 00 00 00 00 00 00 00 33 00 00 C0 0xB0:00 54 00 00 00 00 60 02 00 01 FF FF 1F 4E 08 00 0xC0:08 40 B7 FF 00 00 00 00 05 00 00 00 00 00 00 00 0xD0:60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0xE0:00 48 01 00 19 2C 03 1E DB 41 FF FF FF FF FF FF 0xF0:FF 00 05 0C B7 10 00 80 00 00 80 00 00 80 00 80 Displaying concatenated calibration words dig_T1, uint16: 27926 dig_T2, int16: 26419 dig_T3, int16: 50 dig_P1, uint16: 36072 dig_P2, int16: -10639 dig_P3, int16: 3024 dig_P4, int16: 6961 dig_P5, int16: 98 dig_P6, int16: -7 dig_P7, int16: 12300 dig_P8, int16: -12000 dig_P9, int16: 5000 dig_H1, uint8: 75 dig_H2, int16: 328 dig_H3, uint8: 0 dig_H4, int16: 412 dig_H5, int16: 50 dig_H6, uint8: 30 Temperature: 24.40 degrees C Temperature: 75.92 degrees F Pressure: 71354.62 Pa Altitude: 2959.04m Altitude: 9708.12ft %RH: 31.83 % This following is the serial output from our microcontroller reading the BME280 on a non-working sensor: Displaying ID, reset and ctrl regs ID(0xD0): 0x60 Reset register(0xE0): 0x0 ctrl_meas(0xF4): 0xB7 ctrl_hum(0xF2): 0x5 Displaying all regs 0x80:94 50 89 10 58 30 9C 06 C8 6F 85 69 32 00 FD 8B 0x90:9B D7 D0 0B C2 19 35 00 F9 FF AC 26 0A D8 BD 10 0xA0:00 4B FB 00 00 00 00 00 00 00 00 00 33 00 00 C0 0xB0:00 54 00 00 00 00 60 02 00 01 FF FF 1F 4E 08 00 0xC0:08 40 B7 FF 00 00 00 00 05 00 00 00 00 00 00 00 0xD0:60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0xE0:00 73 01 00 12 29 03 1E 00 41 FF FF FF FF FF FF 0xF0:FF 00 05 0C B7 10 00 FF FF C0 FF FF C0 FF FF 80 Displaying concatenated calibration words dig_T1, uint16: 28616 dig_T2, int16: 27013 dig_T3, int16: 50 dig_P1, uint16: 35837 dig_P2, int16: -10341 dig_P3, int16: 3024 dig_P4, int16: 6594 dig_P5, int16: 53 dig_P6, int16: -7 dig_P7, int16: 9900 dig_P8, int16: -10230 dig_P9, int16: 4285 dig_H1, uint8: 75 dig_H2, int16: 371 dig_H3, uint8: 0 dig_H4, int16: 297 dig_H5, int16: 50 dig_H6, uint8: 30 Temperature: 190.42 degrees C Temperature: 374.76 degrees F Pressure: -21802.65 Pa Altitude: nanm Altitude: nanft %RH: 100.00 % Temperature: 190.42 degrees C Temperature: 374.76 degrees F Pressure: -21802.65 Pa Altitude: nanm Altitude: nanft %RH: 100.00 % I have attached some oscilliscope images of the I2C lines from both sensors at the bottom of the post. Images 1-4 corresponds to the non-working sensor while 5-8 corresponds to the working sensor. According to the oscilliscope, we are send the correct/valid messages to the sensor in accordance to the BME280 datasheet and the sensor is holding/reporting invalid data from its registers. We would like to know why some of these sensors are working and others sensors are not. Is this a known issue? Non-Working 1 Non-Working 2 Non-Working 3 Non-Working 4 Working 1 Working 2 Working 3 Working 4
... View more