In my on-board computer is the possibility of simultaneous insertion of 3 measurement modules. It give a chance of testing many different sensors at a time in the same conditions. Some time ago I made experimental All-In-One digital module containing many sensors new to me, working on the I2C bus. Now is possibility to compare it with previously used analog sensors connected to 16-bit ADC.
On the begining let's test pressure sensors. available are: analog MPXH6115 and digital: BMP085 and HP03SA. Because both digital sensors have the same address on the I2C bus (0xEE) it is hard to test it together. Will test it separatelly in pair with MPXH6115.
W-test for MPXH6115 and BMP085
Let's start from W-test made in elevator riding twice between 10'th floor and ground floor. This test generate graph-shaped W. On the X axis is measurement number, on Y axis altitude in meters. The steps on graph it is result of fellow passengers.
Green graph are from MPXH6115 data, yellow from BMP085 data. Both sampled at 5Hz.
First conclusion is BMP085 has much more static noise. If we look closer on zoomed short part of data (200 samples registered at 5Hz), we will see short term (few next samples) noise of the BMP085 is about 1m, middle term noise (all 200 samples) is 2,3m. For MPXH6115 short term noise is 0,2m and middle term noise is 1,2m. On the graph below "Alti" means main altitude sensor MPXH6115, "AltiA" sensor on the All-In-One module, the BMP085.
Test of the termerature drift for MPXH6115 and BMP085
In this test, the computer with sensors was put into refrigerator for about an hour, next taken out into room temperature, next put into oven set at 60°C and finally cooled into room temperature. Graph are scaled in meters (upper one with altitudes) and °C (lower one with temperatures). Descriptions are same as ealier: Alti = MPXH6115, AltiA = BMP085. On the bottom graph temperatures was registered by LM50 (TCRef = ThermoCouple Reference) and by temperature sensor build in BMP085 sensor (TmpPS = Temperature of Pressure Sensor). Temperature sensors were not calibrated. Difference of value change speed are caused by different time constans. LM50 is soldered on bottom side of PCB, so reacts slower. Spikes on altitude graph are caused by opening and closing refrigerator doors.
The MPXH6115 sensor instead having analog temperature compensation walk 24m with 44°C of temperature change. The individually calibrated BMP085 is much better. It walks only 10m.
W-test for MPXH6115 and HP03SA
Now we test another sensor HP03SA from HopeRF with the same test set. The W-test give results wery close to BMP085. Little lower indication of altitude for MPXH6115 (most probably it is it's problem) and much bigger noise for HP03SA.
Below is short term noise with value about 0,8m and middle term noise with value 1,7m. Is better then for BMP085 but still worse then MPXH6115..
Test of the termerature drift for HP03SA
Here exceptionally are compared two digital sensors: BMP085 i HP03S registred on 2 computers at a time. In this test I tried to make compensation of MPXH6115 sensor but an error cause the data are not correct.
We can see that BMP085 works much better during temperature change. For 72°C temperature span BMP085 has drift about 3.5m. The HP03SA has drift about 26m. On MPXH6115 we can expect 34m drift.
Temperature compensation for MPXH6115
Finally I made simple linear temperature compensation for MPXH6115 pressure sensor. For temperature span equal 81,6°C I get the graph below. Blue line is compensated MPXH6115. Yellow line is not compensated. Green line is BMP085 for comparison. In case of this copy of sensor s possible to decrease the error from 26 m to 20 m. Actually used coefficient is an average for a group of few sensors and not optimal for this one. Visible large spike on MPXH6115 graphs has pneumatic nature, is not important.
Test of the temperature drift for MPXV5004DP
This is another kind of pressure sensor, but also worth testing. Graph below was registered for above temperature test. Sensor is not calibrated, so it shows unreal data but it still change with temperature. Graph is scaled in speed [m/s]. Speed is not best unit for comparison, because it is non linear formula, speed is square root from pressure. Much better but harder to imagine would be graph from pressure, or even sensor voltage.