BMP280 Pressure offset/calibration

Hi,

I just received a a patch of custom PCBs with BMP280 in them. 1 out of the 5 boards I have tested so far is giving wrong pressure values. I am using drivers from zephyr project and using I2C communication. It looks like the sensor follows the same curve as the other ones, but it just reports ~10hPa too low values

This lead me to wonder about BMP280 self test. I can see that Bosch drivers used to have some non-datasheet-documented code for self testing the sensor, but it has been removed

Removed the self-test API as it was no longer valid

So I have two questions:

Any idea why the one sensor is reporting wrong values and is there a way to fix the in-board calibration data so that I get correct results from this sensor?

Is there a way to execute self-test for the sensor so that we can detect such faulty sensors in production tests?

 

Best reply by Jussi

I am not sure I understand what you mean. The test is to to power up the sensor and read calibration parameters. I can't really read them before I read them?

Anyway, I think I managed to resolve the symptoms although the root cause is still unknown.

In short: BMP280 is connected to 3.3V bus and there is also 1.8V bus/LDO on the board. This 1.8V bus discharges slowly. I noticed that if 1.8V LDO was on before the board was power cycled, there is still charge left on the 1.8V bus when BMP280 calibration parameters are read after power cycle. This somehow randomly corrupts the calibration data.

Workaround was to wait for 1.8V bus to go to 0V and read registers from BMP280 then.

View original
8 replies
Resolved