Home        Store        Learn        Blog

Water Linked DVL A50 Support

Me and @arend have been testing the DVL in our test tank last few days. We have some problems that the DVL driver restarting sometimes. The warning in QGC are “EFK3 IMU0, IMU1 stop aiding”.

Someone that have the same problem?

Hi Robin,
We bought and installed the WaterLinked DVL but we’re having stability issues - the ROV drifts, sometimes setting the thrusters to high speed, and sometimes oscillates wildly. We’ve played with all the Parameters/PID settings to try and de-sensitise it, doesn’t seem to work any better. We’re using QGC version 4.0.1 and companion software 0.0.22.
Any help would be appreciated - would be good to know what settings to use:

PID Tuning:


1 Like

I haven’t been able to get Companion to communicate with the DVL. on the Companion page, I see the DVL status change from Unable to talk to DVL service > Looking for Waterlinked DVL-A50 (… > Waiting for vehicle

Hi @gcelec,

Try changing SERIAL0_PROTOCOL to Mavlink2 and restarting the ROV. The DVL driver is using mavlink2rest and for now it requires Mavlink2.

Thanks @williangalvani The Status has changed to ‘Running’.
I’ll get the vehicle in the tank and see what happens!

1 Like

BR2 is in the tank - which flight mode will gave station keeping? Stabilize, Depth hold and Acro are the only options that hold.

Make sure you have these parameters set properly:

Use ekf3 for the odometry support


Enable odometry support


Disable external gps in ekf3


Suggested gains


You should hear something like “Ekf3 started fusing odometry” when the ekf accepts the dvl data, then you can switch to position hold.

1 Like

I’ve confirmed all the parameters are set as you suggested, but I’m not getting the “EKF3 starting fusing odometery” message. On the diagnostic page of the DVL all the beams are ticked green.

What Ardusub version are you running? That is not in a stable version yet. I suggest you use the Beta 4.1

Thanks @jwalser & @williangalvani -

Companion version Version: 0.0.21-30-g5cafdde
ArduSub Version: 4.1.0
2020-12-03 DVL.params (24.3 KB)

@richard-rickett Did you have success with this in the end?

Still working through it, Paul. We had a faulty unit, exchanged it - apparently now we can’t get the Pi to talk to the DVL, doesn’t seem to recognise the IP address. I’m a novice, but will try and have a look this week.

Update: yup, tested fine in the water.

The Ardusub documentation says start at builds 0.0.22 or 0.0.23 and then do the update to the DVL branch. We kept getting the Water Linked tab in the companion web interface, but we couldn’t enter an IP address for the DVL - we got the spinning wheel of despondency. In addition, we couldn’t see the DVL listed under Active Services in the System tab.

Fixed now - for other users: if you have the same problem, log onto the pi (, navigate to \companion\services\waterlinked\dvl-a50 and run pip3 install . --user (note the space between install and . and the space between --user, and note that it’s two minus signs before user). Let that run, reboot and fixes the problem. Kudos to @williangalvani . Hopefully it’ll get incorporated in a new build. Now to see how well the DVL works in the field.
@wlkh for info !

1 Like

Hi Kristian, whilst we managed to get the DVL working on one system, we seem to be unable to replicate on other machines - I think the culprit is the companion computer software build. We followed the instructions step by step (and have tried multiple variants), but the DVL doesn’t show up under Active Services in the CC system tab, which it does in the one that’s working. We’ve used Ardusub 4.1.0 and 4.2, and various CC builds starting 18, 21, 22, 23 and latest build, adding the WL branch to each - but no combination seems to work.
Do you or @williangalvani have any suggestions, or can you tell us how you built your CC software and which Ardusub version you’re using ? (I don’t think the version of QGC makes any difference).
Thanks !

Hi @richard-rickett ,

Please check what is the Status shown in the DVL section of
Also, try restarting the driver in that page.

Hi Willian,
Next to DVL IP address there’s a spinning wheel, and we’re unable to enter the DVL IP address. Status is “Unable to talk to DVL Service”. Turning Driver enable on and off makes no difference, nor pressing Restart DVL Service.
Can you confirm that in the System tab, under Active Services there should be a line called “DVL-services” ?
Also - meant to mention before - the DVL is working fine, we can see it under its IP address and via waterlinked-dvl.

You are correct. The dvl service is not starting and the frontend is unable to talk to it.

IT turned out that there were some dependencies missing in his setup
This could have been due to a missing step in checking out the dvl version of companion, but can easily be fixed by running sudo python3 /home/pi/companion/services/waterlinked/dvl-a50/setup.py install in the web terminal

@williangalvani Unable to start dvl service even after the command you refered above.
What we did is here:

  1. 0.0.17 → 0.0.22 in the companion using WebGUI /git page
  2. 0.0.22 → dvl branch (82ee1c83)
  3. sudo python3 /home/pi/companion/waterlinked/dvl-a50/setup.py install command
  4. restart companion but can’t start dvl service
    Is there any shortcut to solve the dependency issue?

We found an error message while executing the main.py:

pi@raspberrypi : ~ $ ./companion/services/waterlinked/dvl-a50/main.py

Traceback (most recent call last):

File “./companion/services/waterlinked/dvl-a50/main.py”, line 6, in

from flask import Flask

File “/usr/local/lib/python3.4/dist-packages/Flask-1.0.3-py3.4.egg/flask/init.py”, line 17, in

from werkzeug.exceptions import abort

ImportError: No module named ‘werkzeug’

And we also found an error message while executing the setup.py:

pi@raspberrypi : ~ $ sudo python3 /home/pi/companion/services/waterlinked/dvl-a50/setup.py install

running install

Checking .pth file support in /usr/local/lib/python3.4/dist-packages/

/usr/bin/python3 -E -c pass

TEST PASSED: /usr/local/lib/python3.4/dist-packages/ appears to support .pth files

running bdist_egg

running egg_info

creating dvl_service.egg-info

writing requirements to dvl_service.egg-info/requires.txt

writing dvl_service.egg-info/PKG-INFO

writing dependency_links to dvl_service.egg-info/dependency_links.txt

writing top-level names to dvl_service.egg-info/top_level.txt

writing manifest file ‘dvl_service.egg-info/SOURCES.txt’

warning: manifest_maker: standard file ‘setup.py’ not found

reading manifest file ‘dvl_service.egg-info/SOURCES.txt’

writing manifest file ‘dvl_service.egg-info/SOURCES.txt’

installing library code to build/bdist.linux-armv7l/egg

running install_lib

warning: install_lib: ‘build/lib’ does not exist – no Python modules to install

creating build

creating build/bdist.linux-armv7l

creating build/bdist.linux-armv7l/egg

creating build/bdist.linux-armv7l/egg/EGG-INFO

copying dvl_service.egg-info/PKG-INFO → build/bdist.linux-armv7l/egg/EGG-INFO

copying dvl_service.egg-info/SOURCES.txt → build/bdist.linux-armv7l/egg/EGG-INFO

copying dvl_service.egg-info/dependency_links.txt → build/bdist.linux-armv7l/egg/EGG-INFO

copying dvl_service.egg-info/requires.txt → build/bdist.linux-armv7l/egg/EGG-INFO

copying dvl_service.egg-info/top_level.txt → build/bdist.linux-armv7l/egg/EGG-INFO

zip_safe flag not set; analyzing archive contents…

creating dist

creating ‘dist/dvl_service-0.1.0-py3.4.egg’ and adding ‘build/bdist.linux-armv7l/egg’ to it

removing ‘build/bdist.linux-armv7l/egg’ (and everything under it)

Processing dvl_service-0.1.0-py3.4.egg

Removing /usr/local/lib/python3.4/dist-packages/dvl_service-0.1.0-py3.4.egg

Copying dvl_service-0.1.0-py3.4.egg to /usr/local/lib/python3.4/dist-packages

dvl-service 0.1.0 is already the active version in easy-install.pth

Installed /usr/local/lib/python3.4/dist-packages/dvl_service-0.1.0-py3.4.egg

Processing dependencies for dvl-service==0.1.0

Searching for click>=5.1

Reading https://pypi.python.org/simple/click/

Best match: click 8.0.0a1

Downloading https://files.pythonhosted.org/packages/60/e2/9c9b456c0ddaa1268f320bc2f739f1598290f5cf3acf8d65e2c36fde8afe/click-8.0.0a1.tar.gz#sha256=e4315a188403c0258bbc4a4e31863e48fc301c4e95b8007a8eeda0391158df13

Processing click-8.0.0a1.tar.gz

Writing /tmp/easy_install-vzmflol6/click-8.0.0a1/setup.cfg

Running click-8.0.0a1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-vzmflol6/click-8.0.0a1/egg-dist-tmp-o66bzzpg

no previously-included directories found matching ‘docs/_build’

warning: no previously-included files matching ‘*.pyc’ found anywhere in distribution

warning: install_lib: ‘build/lib’ does not exist – no Python modules to install

zip_safe flag not set; analyzing archive contents…

click 0.0.0 is already the active version in easy-install.pth

Installed /usr/local/lib/python3.4/dist-packages/click-0.0.0-py3.4.egg

error: Could not find required distribution click>=5.1