Water Linked DVL A50 Support

@EliotBR A follow up to what I was asking about before. I am integrating a new DVL to another BROV using the new BlueOS “Companion”. I went through all steps to get it working and does. But when updating the parameters listed above, three of them do not appear at all, so I cannot update them. These are the parameters in question:
Do you know what these do and where I can find them? Do they go with new BlueOS? I think important because it seemed I couldn’t get position hold to work.

Hi @Jnyberg ,

Make sure you are using the latest Ardusub 4.1.0 beta. 4.0 doesn’t support DVLs.

1 Like

Thank you for that. I updated to 4.1 beta and got the DVL connected. Now when I connect to ROV, the DVL and Ping 360 Sonar ae working, but position hold is still acting up and depth hold is not working at all. When trying to use position hold the sub starts rotating around. When I try to use depth hold, QGroundControl says that the depth sensor is not connected. Here is the error message for that:

When looking at the depth on the viewer, it is not changing at all either. The depth is titled as “Depth” but is actually registered under “altitude tracker”. Here i what that looks like:

Any insight at what I should do from here?

Can you confirm that BARO_PROBE_EXT is set to 768?

If it’s not fixed by the depth sensor parameter, please confirm that the DVL has a good lock when attempting position hold. If there’s a good lock but it’s still not working, or working poorly, then it would likely be helpful if you can share a log :slight_smile:

Yeah, Vehicle/AltitudeRelative works correctly for me for the depth sensor :slight_smile:

In addition to Eliot’s points, note that “stopped aiding” means the dvl stopped sending valid data. This probably means the dvl doesn’t have a good bottom lock.

1 Like

Thank you that parameter seemed to be the problem!


For future reference, I was wondering if there is a new DVL Integration instruction page for the new BlueOS companion. I know there is this instruction page for the old companion (DVL Integration · GitBook and Networking - Documentation), but that doesn’t cover all steps needed to get the DVL working with new BlueOS, and it would be a lot easier to reference if I had a new one. I tried looking around here on the forum page but couldn’t seem to find one.

Hi @Jnyberg,

The DVL functionality is discussed in the External Integrations/Extensions topic, but isn’t yet documented in the main BlueOS docs.

The general extension system isn’t yet developed, so in the interim the simplest way to set up the DVL is to

  1. Connect to the vehicle and follow the getting started docs to connect to the vehicle and your wifi network
  2. Turn on pirate mode
  3. Open the web terminal
  4. Run red-pill to access the onboard computer
  5. Install the dvl service with the following command:
    sudo docker run -d --net=host -v /root/.config/companion:/root/.config --name=companion-dvl-all-in-one --restart=unless-stopped williangalvani/companion-dvl:all-in-one
  6. Access the configuration options via the Available Services page
1 Like

6 posts were split to a new topic: “No board running” - fixing broken ArduSub install

A new issue I am having is now when I’m testing in the tank. When trying to use position hold, I can activate it and it partially works. It is keeping vertical positioning but not horizontal. QGC also keeps giving me errors of “EFK3 IMU0, IMU1 stop aiding”.
So it seems that it can’t keep a steady connection. I also checked on the waterlinked page and it shows it not having valid velocity reason so that is part of the problem if not the problem.
But I don’t know how to go about solving this issue. I have the parameters set the reccomended way as said on the intergration page via: DVL Integration · GitBook.
As a note I am working with a different sub than before which is still on the old companion. I am running Beta 4.1 firmware as well.

Any help on how I can get the doppler to have a valid connection? It was mentioned above how you need to get a good bottom lock but I don’t fully understand what that means. Apologies for that.

If there’s no valid velocity detected by the sensor then ArduSub isn’t receiving values, so it can’t track or maintain velocity or position (just like when no sensor is connected). If the sensor is getting valid measurements intermittently then that would explain why you’re getting notes about aiding and odometry fusion repeatedly starting and stopping.

No need to apologise :slight_smile:
The Water Linked DVL page includes a useful high level description of how a DVL works. A “good bottom lock” occurs when

  1. the sensor is receiving reflections, and
  2. the reflections it’s measuring “make sense”.

As obvious failure cases, if the water is very deep then the transmitted pulses the DVL sends out will never get back (so requirement 1 is missing), and if there’s an external source of sound waves then the sonar measurements the DVL makes may be completely inconsistent with the inertial movement being detected by its IMU (so requirement 2 is missing). Of course if one or more of the sensors (sonar receivers, accelerometers, gyroscopes, etc) are damaged that can affect either of those requirements.

Less obvious failures can occur if

  • the materials being reflected off don’t have a consistent surface
    • e.g. moving vegetation
  • the surface is reflecting sound away from the sensors
    • e.g. steep slopes
  • there are multiple echoes occurring from each transmission
    • e.g. from the walls or water surface within a small tank

I expect your issue here is with that last one, whereby multiple echoes occur spread out over time, and potentially with different frequency shifts, which could be confusing the sensor. It may be possible for a DVL to try to compensate for being in a small water volume by reducing the transmission and/or receiver gain (to reduce the strength of subsequent reflections), but not everything can be compensated for.

Do you have similar issues if you’re testing in a swimming pool or larger body of water? :slight_smile: