MS5837 for measuring the draft of the boat?

Greetings! I have several boats with autopilot. One of them is like in the picture, quite large. I use one for transportation.

I have MS5837-30BA sensors (Bluerobotics Bar30 is made on its basis, only much cheaper). With a couple of these sensors, I measure the draft of the vessel, and monitor the loading of the boat. All this is done separately from the autopilot. I saw that this sensor is supported in ArduSub.

Is it possible to add support in the version for boats (Arduover)?

Sensor https://ali.ski/vG_MR
i2c 5-3v https://ali.ski/N3CqO

2 Likes

Hi @McKey,

It would be relatively easy to enable the barometer, the only potential issue that I see is that the EKF would start trying to use it as well so it would affect the altitude estimate. I suspect that doesn’t matter much.

Can you explain how you measure the draft (how deep in the water the boat is) with one or two of these? I can imagine that with two you could measure the water pressure difference… one would be attached low on the underside of the hull and the other would be floating at the water line?

Hi @rmackay9 ,
I use two sensors. One is located on the bow, and the second on the stern(both on bottom).


From the picture I think it is clear how you can understand how I use. For my model, I made hydrostatic curves that help me to load the boat.

After the sensors are initialized, the atmospheric pressure is taken as zero, after the launch of the boat takes place (it was once, the sensors are powered separately and permanently, everything is easier for small boats). Then the pressure is recalculated from the “new zero” and transferred to the depth.

Part of the code for the calculation
if (!digitalRead(13)) {
// we calculate the absolute pressure readings
atT = mBAR * 0.001019716212978;
cmH2O = mBAR * 1.019744288922;
} else {
// we calculate the value of the relative pressure
atT = (mBAR - deltamBAR) * 0.001019716212978;
cmH2O = (mBAR - deltamBAR) * 1.019744288922;
}

2 Likes