Hi,
I’m measuring the atmospheric pressure using 2 Sparkfun BMP085 barometers and the readings of the barometers differs substantially.
Barometer1 (B1) gives a compensated pressure in the vicinity of 100450 pascal.
Barometer2 (B2) gives a compensated pressure in the vicinity of 100200 pascal.
Both barometers readings fall into the range of my elavation location (Vancouver BC ~100 meters above sea level).
Also, both pressures seems stable. I monitor the pressure every 5 seconds for an entire night and the pressure trend patterns is the same. For example, the pressure drops down similarly for B1 and B2 overnight.
The difference seems to be as an offset or scale, which leads me to believe that there is a problem in the set of calibration parameters for one of the barometers.
Moreover, I compared the pressure reading with a third barometer (B3) of different type (LPS331AP from STMicroelectronics) and its pressure is similar to the pressure of B1.
This leads me to suspect that the calibration parameters for B2 are incorrect.
My question is:
Is there a way to recalibrate the B2? i.e. what is the procedure to repeat the process done in the factory and come up with a new set of numbers for B2?
Additional details about the hardware configuration, and the calibration parameters is described below.
Regards,
Avner
Additional details:
To further simplify the problem, I looked at the compensated temperature, which is resuired preceding step before the calculation of the compensated pressure.
The calculation of the compensated temperature involves fewer parameters. It computes the parameter b5, which impacts the temperature and the compensated pressure.
I found that the compensated temperature differs between B1 and B2.
The temperature of B1 is 21.9 deg Celsius
The temperature of B2 is 21.2 deg Celsius
The 2 tempratures differ by 0.5 deg Celsius. I’m not sure if this is a preoblem since this difference is in range of the expected accuracy error according to the BMP085
datasheet http://www.seeedstudio.com/wiki/images/ … 000-06.pdf
The equations for the calculation of the compensated temperature are listed below, and involve parameters ac5 and ac6.
long x1 = ( (ut - ac6) ) * ac5 ) >> 15;
long x2 = mc << 11) / (x1 + md);
b5 = x1 + x2;
compensatedTemperature = (b5 + 8) >> 4;
The BMP085 barometers are operated as follows:
-
The 2 BMP085 barometers are connected to Arduino Uno.
-
The End of Conversion (EOC) interruption signal is used to wait between readings.
-
The xclr is used to toggle between the 2 sensors (the parameters set are toggled to match the active barometer).
-
The calibration parameters of the 2 barometers are:
B1:
ac1: 7034
ac2: -1151
ac3: -14441
ac4: 34288
ac5: 24521
ac6: 21975
b1: 5498
b2: 61
mb: -32768
mc: -11075
md: 2432
B2:
ac1: 8820
ac2: -1229
ac3: -14589
ac4: 35384
ac5: 24493
ac6: 20392
b1: 5498
b2: 67
mb: -32768
mc: -11075
md: 2432