BAR30 incompitable with Cube Orange Plus

Hi dear forumers,
We have BAR30 mounted on our vehicle and we recently got a new Cube Orange Plus for our underwater vehicle. But we couldn’t made BAR30 work with the Cube Orange Plus. We tried to solve the problem with different apporoaches but couldn’t find any solution. Also BAR30 works on Pixhawk 2.4.8 with no problem. So this leads us to think Ardusub haven’t implemented for making BAR30 work with Cube Orange Plus yet.

What could be the problem here, do you have any ideas about this situation? What we can try to fix this problem?

Thanks in advance,
Have a good one.

Hi @toosat,

Apologies for the slow response on this.

The Bar30 connectivity is handled by a library in ArduPilot that doesn’t seem to have any flight-controller specific restrictions, so it seems unlikely this is an ArduSub implementation issue.

ArduSub needs to be told where to look for its external barometer (using the BARO_EXT_BUS parameter), and from a quick look at the Cube connector ports it seems like I2C 2 is the relevant port, which would need to be set manually (either in BlueOS’s autopilot parameters page or in QGC) because it’s not one of the options ArduSub is documented to expect.

I suspect that’s the issue here, although you’ll also need to make sure that the MS5837 bit (9) is enabled in the BARO_PROBE_EXT bitmask so that ArduSub knows to expect that kind of sensor. I believe that should be enabled by default.

I am having the same issue. The Pixhawk Cube Orange has two internal barometers. Even after setting these Baro_PROBE_EXT to the Pressure30, i am still only seeing the press_abs and press_abs2 readings as each internal barometer, and am not seeing the external barometer data streaming in anywhere. It is plugged into the I2C 2 port on the cube. Has anyone been able to make this external pressure sensor work?

Hi @Kevin,

Does BlueOS or QGroundControl report that it’s connected, in the vehicle setup page? It might show up as an I2C MS5611, although it could also show up as an MS5837.

You could also try checking the values of the BAROn_DEVID parameters - presumably if BARO3_DEVID is populated then it’s detected your external barometer, in which case you may be able to configure it for use as the depth sensor by setting BARO_PRIMARY to 2.

Hi @Eliot. Thanks!! This will be awesome to get working and really appreciate the help.

The BARO3_DEVID is reading 0 unfortunately. We have tried BARO_PROBE_EXT set to both 2 and 3. The issue seems like the Bar30 is not showing up at all. It is an option when setting the Bitmask for an external pressure sensor. I have tried 3 separate Bar30 sensors all with the same issue. We also tried Keller with the same issue, so does not seem like a sensor issue.

For more context, this is a bit unconventional project that is attempting to first directly connect the Bar30 to the Pixhawk cube and stream depth data. Once this is tested working we are going to attempt to spoof the Bar30 as the Drotek MS5611 in Arduplane on the Pixhawk Cube Orange, so that is very interesting it could show up as the barometer.

Arduplane has a “Set Bitmask” option as the Bar30 MS5837 and another option as the MS5811. Maybe the Bar30 appears as an option in Arduplane though is not actually compatible in the Arduplane Firmware? I have ordered an MS5611 barometer board to see if that shows up on Baro3. Very curious what your thoughts are on this and what approach you think would work! Any ideas why the Bar30 MS5837 is not showing up on the BAR3_EXT?

I’ve followed these steps, but the older pixhawks only had one barometer - Barometer (external) — Copter documentation

Ahh, I was not aware you are trying to use ArduPlane.

Both the Bar30 and KellerLD are instantiated as water barometers, so I wouldn’t be surprised if ArduPlane just ignores them because it’s assumed planes are not operating underwater.

I did some poking around in the barometer code, and that is indeed the case. In particular:

  1. Only ArduSub includes the relevant sensor backends
  2. Only ArduSub allows probing those sensor types
  3. Only ArduSub includes the water density parameter

If you want to use water barometers with plane firmware then you’ll need to build a custom version of the plane firmware that changes those checks.

1 Like

Thanks this was extremely helpful! It works!

2 Likes

Great to hear! :smiley:

If you want to contribute your custom version back upstream then you could perhaps include a compilation flag for “underwater mode” or similar, so that others can more easily benefit from your changes and testing :slight_smile:

Hi @Eliot

Awesome will do! Now digging into a possible instantiated Waterlinked A50 DVL in Ardusub that is ignored in Arduplane. Maybe wishful thinking but any help with this would be awesome!

Have found this so far: DVL Integration · GitBook (ardusub.com)