BMP180 noisy readings?

For other supported Arduino products from Adafruit: Shields, accessories, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
walkerl26
 
Posts: 10
Joined: Mon Jul 14, 2014 10:56 am

BMP180 noisy readings?

Post by walkerl26 »

I just hooked up a BMP180 altitude/barometric-pressure sensor, using the Adafruit_BMP085_Unified_master library. and the example from the tutorial.

It works, but the altitude readings vary from one reading to the next, by like +/- 0.3 to 0.4 meters.

Is this normal? If not, is there a known remedy? If so, this should be noted in the product description, not just saying it has a resolution of 0.25 meters...

Larry

User avatar
adafruit_support_bill
 
Posts: 88096
Joined: Sat Feb 07, 2009 10:11 am

Re: BMP180 noisy readings?

Post by adafruit_support_bill »

What are your test conditions? All sensors have some noise, but those variations sound like more than just that. Local pressure transients due to wind are not unusual in outdoor settings. Although I haven't tested the BMP180, some pressure sensors can be affected by vibration as well. These types of externally induced noise can be minimized by taking a running average of several readings.

User avatar
Franklin97355
 
Posts: 23912
Joined: Mon Apr 21, 2008 2:33 pm

Re: BMP180 noisy readings?

Post by Franklin97355 »

Two reasons for the differences, air pressure is changing all the time and is not a constant and the .25 number is the resolution not the accuracy.

User avatar
saintgimp
 
Posts: 4
Joined: Thu Aug 22, 2013 3:37 am

Re: BMP180 noisy readings?

Post by saintgimp »

I ordered a BMP180 recently and I'm also a little disappointed with the apparent noise level of the device. The Bosch datasheet claims an RMS noise level of 3 Pa in ultra-high-res mode, but the best I've been able to get is a standard deviation of 10.6 Pa over 1000 readings. I believe that "RMS noise" and "standard deviation" are the same thing in this context. I'm using the device at 3.3V via a BeagleBone Black and the Adafruit Python library.

I did a couple of things to try to reduce the noise. First, I have the device in a dark, sealed container so neither light nor transient atmospheric pressure changes should be affecting it. It's not in an high-vibration area. I'm using the BMP085.BMP085_ULTRAHIGHRES mode. And finally, I noticed that the datasheet suggests that you read the raw temperature only once a second and use that value to convert all pressure readings, which eliminates a bit of variability, so I hacked up the Python library a bit to do that. After all of that, I still see a standard deviation of 10.6 Pa over 1000 readings, which is worse performance than the datasheet claims for the device even in low-power mode.

It's still a cool little device, and some of the noise can be filtered out in software, but I'm not sure why the native performance doesn't match the specs.

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: BMP180 noisy readings?

Post by adafruit_support_mike »

Have you measured the RMS noise on your supply rails? That's a common source of error in low-noise systems.

User avatar
saintgimp
 
Posts: 4
Joined: Thu Aug 22, 2013 3:37 am

Re: BMP180 noisy readings?

Post by saintgimp »

Good point. The RMS on my supply voltage is about 2 mV, peak-to-peak about 14 mV, over a 20 ms window. Ordinarily that would be a relatively steady supply but I guess it could be futzing with the ADC in the BMP180. I'll work on getting it a little quieter.

User avatar
saintgimp
 
Posts: 4
Joined: Thu Aug 22, 2013 3:37 am

Re: BMP180 noisy readings?

Post by saintgimp »

I put some additional filters on the supply and managed to knock the standard deviation of the BMP180 down to 8.5 Pa over 1000 ultra-high-res samples, which is still not what the sensor is supposed to be capable of but I guess that demonstrates that the limiting factor is probably supply noise. Good to know. Thanks for patiently educating us!

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: BMP180 noisy readings?

Post by adafruit_support_mike »

Don't worry about it.. the rule of thumb for precision work is that each additional bit of resolution is about four times as hard because it's sensitive to four times as many things.

Bob Pease once wrote an article about testing an op amp with ultra-low input current.. down in the femtoamp range:

http://electronicdesign.com/test-amp-me ... uff-anyhow

The core of the circuit was a 5pF capacitor made from two sheets of copper clad with an air gap between them.. the equivalent series resistance was on the order of an electron every few seconds. Thing is, the test data kept showing 10mV spikes about once every minute or so. The spikes didn't seem to correlate with anything in the circuit or test fixture, so they started looking for more information.

Eventually they found a paper talking about the ionizing effect of cosmic rays. A ray passing through the plates would knock about 300,000 electrons into higher energy states, which was just enough to produce 10mV in a 5pF cap. They solved the problem by replacing the plate capacitor with a piece of teflon-core coaxial cable. The cable had more ESR than the air-gap capacitor, but was still up in the 10^17 ohm range.. good enough to do the job.

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Arduino products from Adafruit”