I connected a BMP085 pressure sensor to my Arduino Uno and with some help from this bildr tutorial it is happily outputting my local air pressure reading. What I would like to do now is to find out how accurate and consistent the reading is.
To do that I would like to check it at a precise height against a known sea level air pressure. The first requirement is relatively easily met as I live close to the Malvern Hills where there is an old Ordnance Survey trig point at the top of the beacon. Obtaining an accurate high resolution pressure reference is proving somewhat more problematic however.
At the moment I am simply extrapolating the published QNH from a couple of airports - Birmingham (BHX) and Bristol (BRS). Unfortunately this is only given to the nearest millibar, which immediately introduces a potential height uncertainty of ~+/- 15 ft amsl. What I am seeking therefore is a source of timely, accurate atmospheric pressure information (UK) with a better resolution than this.
Thanks for the links Rob. I already use the met office site, but the other one is new to me. However what I'm really looking for is a source which can provide pressure information to within a tenth of a millibar, or even better a hundredth.
Just to provide some context, a difference of 1 millibar at a standard atmospheric pressure of 1013.25 millibars equates to a difference in altitude of ~27.71 ft (or 8.45 m) at mean sea level. Which is considerably more than the claimed accuracy of the sensor.
Unless you keep changing the nominal "sea level" air pressure, a barometric altitude device is only going to tell you the altitude that it would be, if the air pressure was at the standard nominal condition. It is useful to telling you relative variations in altitude over relatively short times. It is not useful as a determinant of absolute altitude.
I don't think you will get better resolution reports than 1mb. Maybe you should use the QNH from Gloucestershire airport (EGBJ) though, because it is closer to you than Birmingham or Bristol. As already stated, your sensor is not that accurate anyway.
michinyon:
Unless you keep changing the nominal "sea level" air pressure...
That is indeed my intention. The idea is to end up with a portable altimeter.
dc42:
I don't think you will get better resolution reports than 1mb. Maybe you should use the QNH from Gloucestershire airport (EGBJ) though, because it is closer to you than Birmingham or Bristol. As already stated, your sensor is not that accurate anyway.
I was going to use the Staverton QNH, but for some reason it's not listed on the website I'm using.
I must admit I hadn't initially realised how poor the accuracy of the BMP085 is. (+/- 2.5 hPa according to Bosch.) However, I've also got a MPL3115A2, with a claimed resolution of "less than 1 foot / 0.3 m", which I can set up alongside it for comparison purposes. The latter, incidentally also seems to have better on chip computational support as well.
petethegeek:
I was going to use the Staverton QNH, but for some reason it's not listed on the website I'm using.
There are lots of sites that give it (just search for "egbj metar"), and also lots of apps for getting airfield weather on a smartphone.
One of the problems you face is that sea-level pressure changes with the weather, and airfield QNH reports are only published (other than on the airfield radio) every 30 minutes AFAIR.
One of the sites that search turns up retains the EGBJ QNH as historic data which should help. In any case, bearing in mind the exercise also involves climbing the Malverns, I'm going to be waiting for a spell of settled weather.
I've got the same "resolution" with BMP085. That is matter of math (doing filtering/smoothing).
The "precision/accuracy" is another topic. Running the same sw with two different sensors (and the same pressure) gave me 1hPa difference..
You may consider the BMP085-Calcs.pdf paper (floating point calcs with improved accuracy) in:
^^^^ Thanks for those links. That will be very useful as I had already been considering capturing the raw data on a SD card and then processing it on a PC.
Do you have any experience with barometric/altitude sensors other than the BMP085?
I must admit I hadn't initially realised how poor the accuracy of the BMP085 is. (+/- 2.5 hPa according to Bosch.) However, I've also got a MPL3115A2, with a claimed resolution of "less than 1 foot / 0.3 m", which I can set up alongside it for comparison purposes.
You are misunderstanding the specification there.
There is the absolute accuracy in reading the pressure, and there is the resolution of changes in pressure which can be distinguished from simple noise. Two entirely different things. The actual resolution of these two devices is very similar.
michinyon:
You are misunderstanding the specification there.
There is the absolute accuracy in reading the pressure, and there is the resolution of changes in pressure which can be distinguished from simple noise. Two entirely different things.
You are absolutely correct. Whilst I appreciate the difference between those two parameters, when I first started looking at the datasheets for the devices I struggled to understand the terminology they employed and was further confused by the differing ways the two datasheet presented their specifications.
michinyon:
The 3115 is claiming an absolute pressure accuracy of +/- 4 hPa which is actually not as good as what the BMP085 claims to have.
I was looking for exactly that figure in my copy of the MPL3115A2 datasheet, but was unable to find it. Which is why I extracted the loose phrase "less than 1 foot / 0.3 m" from the product description and deliberately enclosed it in quotes. (I've just had another look and I still can't find it. A specific reference pointer would be very much appreciated. Edit: Found it +/- .4 kPa.)
Do you have any recommendations for other barometric sensors I could use which offer better absolute accuracy?
I don't think it is possible for them to have better accuracy.
Every sensor is different, and that is why they calibrate them in the factory and store those 12 unique calibration constants in the eeprom of every single device individually, which you then have to do that complicated long or float calculation to use.
And whatever that calibrated performance is, it is going to change somewhat over time ( slowly ) or because you soldered it to a board.
Their claimed errors in terms of relative altitude seem to be about right. If I have one on my desk and I pick it up and hold it 1 foot above the desk, the difference is usually statistically indistinguisable from noise. But if I hold it 2 feet above the desk, I can determine the difference.
The solution I have for absolute altitude, is to use GPS. The performance of GPS altitude is quite poor, and the error is certainly not normally distributed, nor is it random from one observation to the next. This is partly because of the way GPS works inherently and also partly because all of the GPS devices deliberately misrepresent their raw results for the benefit of car users. However, my investigations suggest that the mean altitude error over fairly long time periods is zero and therefore I can match this up over a large number of samples with the apparent barometric altitude to determine the offset inherent in the barometric calculation due to the calibration of the device, which for my practical purposes appears to be constant over the medium term.
michinyon:
The solution I have for absolute altitude, is to use GPS.
I did briefly look at GPS, but was immediately put off by the seemingly poor results I was getting for vertical positioning. Sounds like I need to revisit that.
michinyon:
If I have one on my desk and I pick it up and hold it 1 foot above the desk, the difference is usually statistically indistinguisable from noise. But if I hold it 2 feet above the desk, I can determine the difference.
That's great. I've now got a target to aim at. Time to crack on with some coding and breadboarding I think. Many thanks for the information and insights.
The thing with the barometric sensors, is that their "error", other than the basic noise of individual measurements, is quite consistent. So it is fairly good for relative measurements. The "error" comes from two things, the actual air pressure, depending on the weather, and the calibration constants of the device
But if the altitude you calculate at the bottom of the hill is 20 m wrong, it will also be 20 m wrong when you get to the top of the hill ( if the weather didn't change too much ). So your relative measurement of the height of the hill will be quite good. Maybe 1 metre error.
What I do, is collect a huge number of samples of simulataneous measures of barometric altitude and GPS altitude. You can then do a regression calculation on a computer to discover the "offset" between GPS height and barometric height. This is relying on an assumption that the mean altitude error of the GPS over a large collection of samples is zero, but doesn't rely on assuming the error is random, because it isn't.