Home        Store        Docs        Blog

MS5837 Bar30 values off

(Mark) #1


I have a MS5837 Bar30, when I run it with your arduino code on both an arduino, and my ported version to an NXP board I get matching but incorrect values outside the tolerance of the sensor. I am using an external board to change tx/rx voltage to 3.3v logic.

I read 905mbar ± 15mbar, and a stable but anywhere between 21.6 and 28.5 °C temp.

The room is 1013 mbar (confirmed by a CTD and another pressure sensor) and 22.9 degrees.

I’ve submerged the Bar30 and get a pressure change corresponding to the depth, as much as my little bucket would allow, and a temp of 22.6 °C in water which two other sensors clock at 19.6 °C.

My question is what are possible fixes to the pressure calibrating of 100 mbar to low. and temperature readings to be too high.

(Jacob) #2


What is the specification of your other sensors that you are using for reference? You must consider the absolute accuracy of both sensors and see if the measurement + error overlaps to determine if one, the other or both are out of spec. The spec of the temperature measurement is +/- 1.5C, so if your other sensors are +/- 0.5C or greater then everything is right.

Our method to ‘zero’ the pressure is to measure the pressure in air and subtract this offset from the measurements in water. This is like taring a scale. You can do the same with the temperature if you want to use one of your other sensors as reference.

There is a self-heating effect in the sensor that is stronger with higher oversampling, but this should be much less significant in water where the heat is dissipated more quickly.

(Mark) #3

the water temp was measured with a calibrated RBR CTD and precision of ±0.002°C, backed up with another generic thermometer also measuring in the 19’s.

I placed your sensor which read 21.7 in the 22.9 degree air, which is indeed within tolerance. but it went up to 22.7 deg when placed in the 19.something degree water.

Restarting the sensor while submerged yieled the same values also.

(Jacob) #4

This does sound like a problem. You may contact support@bluerobotics.com to get a replacement at no cost.

Are the CTD and Bar30 in the water at the same time? Is the result different if they are not?

Are you holding the sensor in your hand (warming it)?

Are you able to test with our Arduino library?

Can you repeat this same sort of test with ice water (make sure the ice fills the container, not just some floating on top, and don’t contact the solid ice directly with sensors)?

(Mark) #5

Both sensors have been in the water together and seperatley with no variance on their readings.

The sensor is attached as a perpetrator to the outside of an acrylic test can which just feeds the wires back out through a penetrator and to my board. The surface temp/pressure values are the same in this configuration when I was connected to the board directly without the cable.

I just re-tested with the arduino library and have Identical results, temperature increase when going into the cold water and all.

C array values are 33027, 31561, 19405, 19591, 25589, 26039 from c[1]-c[6], currently box is sitting on my floor.
Reading D1 = 4147605
Reading D2 = 6593028

TEMP 1st order = 2131
TEMP 2nd order = 2131

Ti value is zero. Is there something that should be done for a secondary conversion that is being missed?

(Jacob) #6

Sorry that I haven’t followed up on this yet. I’ll have to break out my own arduino to check some numbers against yours. The second order compensation factor (Ti) is more significant the farther the actual temperature gets from the reference temperature (C5*256 ~ 20C?); it is also more significant for temperatures < 20C. It is possible for it to be zero, with the numbers you provided I calculate 0.02 for Ti. Let us know how the replacement does.

(Mark) #7

The replacement works fine thus far, we just finished a tank test and the values are good.

In air even with the new sensor I read around 960±30 mbar and consistently 2 or 3 deg above the actual room temperature but when in the tank values were better then expected, both were within in tolerances and I was told the derivatives of the data while moving up and down through the water were also good,

We found a missing chamfer that may have caused issues with 2 wires on the original, which now returns a constant D1 value of almost maximum. Sylvia on your team has some pictures of the sensors.

Thanks for the replacement and prompt responses.