Go Down

Topic: Pressure Sensors MS5611 MS5803 (Read 52238 times) previous topic - next topic


Sorry to display my ignorance but I do not understand your pressure time graph Mike. in particular I do not see how a reading in time gives a range of pressure values - your vertical lines - which I assume is being attributed to noise. Where are you getting your readings from for the pressure time graph? My understanding is that you find 1 discrete quantized pressure reading at any one point in time. I had a look at the bmp 085 and depending on the sampling the noise introduced is 0.03 / 0.06 hPa p12 data sheet with a a comparBle .01 to .06 for the 5611 if I read the sheets correctly.
Leo you may be correct about pcb layout and in an earlier post here Juergen and I reported differences from different boards as well. You have track resistance and track capacitance on the board but if this, for example in spite of putting 100 nF smoothing capcaitors, gives erratic results then it has to be questioned how commercially viable this is when the data sheet reports an accuracy of 3 mbar at 750 mbar and at 25C. 
I think what is worrying maybe is the temperature accuracy being +/-0.8C. I have not done the sums but what pressure / altitude error this introduces may be considerable given pv=rt upon which this is all based.



thanks for your answers!
Leo,... I´m sorry, I forget to mention the comparison with the BMP.... I´m just beginning with arduino and just thought you would say something like: "Ah, OK, I have a comparable range,..." or "sensor is dead",...

It seems not that easy...

Vanja, the pressure time graph just displays 2831 measurements, which I recorded within 60 seconds using the MS5611. Ideally this should show a horizontal line with y=P (I thought...). Perhaps the scatter plot is better (attached). Nevertheless, you stated a noise value up to 6 Pa for the MS5611. But my readings are fluctuating within 100 Pa.
Yesterday I hooked up a second MS5611 (I ordered two MS5611, each on a BOB, I just had to solder the pins to the second) and it shows the same range.
I think the MS5611 is not very reliable....I just have to think about the temperature accuracy....pv=rt gives   dp = r/v * dt,
therefore the error dp/p = dt/t, with t=295K and dt=1K --> dp/p=0.0033. (-->around 300 Pa)
Mhh, thats much, but temperature reading seems to be stable, at least within 0.1°C giving roughly 30 Pa....!?!
Perhaps I´ll try a third MS5611 and a different arduino board in the future, but I´m a little bit sceptic...

Best regards


Do you take a temperature reading every time you do a pressure conversion?


The temperature was read within every loop before pressure reading.
I will record it again in a few days when I´m back home...


It is interesting to read in the datasheet that 'The MS5611-01BA is a circuit that can be used in conjunction with a microcontroller in mobile altimeter applications. It is designed for low-voltage systems with a supply voltage of 3 V.'
If we take sea pressure as 1013.25mbar then every meter altitude increase corresponds to .14mbar. Hence with a 3mbar accuracy the altitude accuracy is about 21 meters.
The data sheet also gives on p3 +-0.5 mbar 'with an autozero at one pressure point' which would increase the accuracy to 7 meters. But this is stiil to much especially for a device claiming to be used as a mobile altimeter.
Mike your 100Pa corresponds to 1mbar which is within their stated accuracy. (V is also a variable in the ideal gas equation.)
I feel that something is not going right with this device which only meas can answer especially as it is a commercial product.


Jul 13, 2012, 01:39 pm Last Edit: Aug 12, 2012, 12:42 pm by _Leo_ Reason: 1
Here are my results.

Same sensor and same program run on different hardware.

25 samples per second with OSR is set at 2048.


Project "ALTDuino" - A homemade altimeter for model rockets.


Very interesting Leo. I would not have thought the board design was so critical. The R3 is giving you what 30cm accuracy. Most troubling is your Watterott mini board for I use mini boards and I wonder how my boards fair. What programme are you using to analyse as I would like to try when I get back home. Also what filtering are you applying? Best.


Jul 13, 2012, 02:36 pm Last Edit: Aug 06, 2012, 05:46 pm by _Leo_ Reason: 1
I am using my own written software. The filter is a 1 dimensional Kalman but a simple low pass filter will give you similar results.

Meas recommend using a filter and if you look at the yellow graph you will notice the sensor is right on target.

At some point in time I will document everything here: www.ALTDuino.de

Project "ALTDuino" - A homemade altimeter for model rockets.


Leo 25 samples per sec is much more viable, have you averaged the values? Why do you use 2048 and not 4096 OSR power considerations ? Also what is right on ? is it the yellow R3 curve. what is right on is Mike's desired but impossible straight line - alas a dream. Can you reference in the meas literature where they advise filtering? Best as always.


Hello all. My first post, please forgive any communication faux pas.

I am working with the MS5803-01BA sensors. I have 3 of them on a PCB, all exhibiting the same behavior(tested separately). I am using I2C communication via Labview. A partner is working on the software so I do not have immediate access to it.

We have successfully communicated with all 3 sensors using I2C to access the PROM and read out all values. Values 3-6 are in the expected range. Values 1 and 2 are all high. Not sure if this points to a problem.

My issue is that when attempting to read the ADC values for either pressure or temp no data is returned. We are using the 4096x oversampling rate and waiting 20ms to read. (min 8.22ms req'd). We are receiving ack bits for both the conversion and read commands, just no data on the line. As stated above, communication protocol has been verified as PROM read is successful.

Has anybody experienced similar problems? Any troubleshooting suggestions?


Give this code a try and see if you get the values: http://arduino.cc/forum/index.php/topic,104247.msg783782.html#msg783782

Don't forget to change the address if needed in this line:
Code: [Select]
#define ADDRESS 0x76 //0x77

Project "ALTDuino" - A homemade altimeter for model rockets.



I'm also experimenting with the MS5611-01BA03 on a breakout-board from csgshop and can't get really accurate results. I'm only interrested in the relative altitude and according to the datasheet the resolution should be 10cm. Accuracy 25°C, 750 mbar: +/- 1.5 mbar.

If I use the online calculator [2] (which is the formular used) and calculate 748.5 hPa minus 751.5 hPa (+/- 1.5 mbar) I get a difference of 36.96 meters ... is that the maximum accuracy in meters I can get from the sensor? Or am I thinking wrong?

I recorded the altitude while the sensor was sitting in place and found out that the accuracy is about +/- 0.25 meters.


What accuracy do you get? Any Ideas how to come as close as possible to +/- 10cm

[1] http://www.csgshop.com/product.php?id_product=96
[2] http://keisan.casio.com/exec/system/1224585971



Resolution does not equal accuracy. You can easily get better accuracy than 10cm by averaging samples over time. What do you mean by "relative altitude"?
I think the accuracy mentioned in the datasheet refers to differences between individual sensors. If you bought severas MS5611s, they might differ by up to 1.5HPa.


Hey guys! I pretty new to this. Was messing around with my board (APM 2.5) trying to get a reading from the onboard baro(Ms 5611).

Attached is the reading from my board. Any help would be appreciated! The codes I used are the exact same ones that was written in this thread. Thanks!


Check if you have the correct sensor address:

It's either   #define ADDRESS 0x76  or   #define ADDRESS 0x77

Project "ALTDuino" - A homemade altimeter for model rockets.

Go Up