I have built an application using the MPL3115A2 in Altimeter mode to track vertical travel. I'm seeing widely variable distances for the same trip; as much as 1.9 meters, with trips as short as 3.6 meters over about 4 seconds. This is really messing up my ability to tell where I am. The variation is much worse than I expected, given the accuracy of 0.3m listed in the datasheet.
Even looking at the altitude reading when I return to the same spot, I'm seeing way more variation than .3m. Is there a trick to getting this kind of accuracy? I've put the chip into altimeter mode, and set oversampling to maximum. I'm reading one sample per second (as expected). Any other suggestions for what to look at, or what I should be doing? In this case, I don't really care about the absolute altitude, but rather the difference after movement. The movement is seconds (between about 4 to as much as minute). Sometimes we'll sit in one place for many minutes; sometimes only a few seconds.
Should I be using a different sensor? Configuring this one a different way? Should I be massaging the data I get in some way? Any help would be greatly appreciated.
Thanks for your reply. I did actually know about the light sensitivity issue; the sensor is inside a vented enclosure, so it is protected from direct light. I have assumed that indirect light is not a problem--the vents are quite large, so there's probably some light bouncing around in there.
The readings look reasonable; it's just that there's sometime so much short-term variation that it's difficult to track distance traveled. Other times it's just what you would expect--within 0.3m of the expected value. It's not weather related; it's happening on very short time scales (less than 10 seconds). I do see long-term drift over the course of hours, but I'm always using relative readings (subtracting the ending altitude from the starting altitude), so that kind of slow drift won't affect my application.
Hi Michael,
Such issues with accuracy or drifting measurements that do not correlate with the weather or ambient pressure changes are usually related to a little-known fact about light sensitivity. The sensor die is light sensitive and direct light exposure through the port hole can lead to varied accuracy of pressure measurement. My recommendation is to avoid such exposure to the port during normal operation. For instance you can put a small piece of foam over the port to block out light, but still allow the air to reach the sensor. Using this and maximum oversampling (128x), you should be able to achieve much better results.
We are going to update the MPL3115A2 data sheet to include this light precaution.
Regards,
Tomas
PS: If my answer helps to solve your question, please mark it as "Correct". Thank you.