Home        Store        Learn        Blog

Water Linked DVL A50 Support

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

Hi @hub,

Please try the dvl branch again. We updated it to fix this issue.

1 Like

I has also met the problem. The reason is some python module has not be installed. Maybe you should Install update scripts manually.

I’m using a development version of QGC for my BR2 which is working well with the DVL A50. Where could I get this version to install on another PC?

I’m integrating a DVLA50 into a BR2 but I can’t get the vehicle to go into Position Hold mode.

I’ve previously integrated a DVLA50 with help from BR Engineers so I have a record of the settings from the vehicle it was working on and the .params file
2021-05-19 System Setup Page.pdf (65.6 KB)
. Last time it was suggested I use Ardusub version 4.1 but I can’t remember where to find it - Is there a link available?

The Companion Software Status version is currently “revert-point” - I haven’t seen this before . How could I update it to version 0.0.21-30-g5cafdde ?

Things that are working:

  • dvl-service is listed under Active Services.
  • Rangefinder is working.
    Thanks in advance

Pre-built ArduSub versions are available at the ArduPilot firmware site, which I got to via the ArduSub downloads page (for future reference). 4.1 is beta, so you probably want this.

I’m not certain how to cleanly install companion to a specific commit, so I’ve asked that internally and you’ll hopefully get a response soon :slight_smile:

@EliotBR Thanks for your help. I had navigated to the beta download page but I missed the firmware-verion.txt file so I didn’t know what version it was.
My problem is that I can’t flash the Pixhawk through the System page so I had previously done it by plugging it directly into my laptop and using the Firmware Setup utility in QGC, but that will only do the latest stable release.
When I attempt a Pixhawk Firmware Update through the system page, either by clicking on Beta, or uploading ardusub.apj it fails:

Flashing Pixhawk…
Loaded firmware for 9,0, size: 845608 bytes, waiting for the bootloader…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
attempting reboot on /dev/autopilot…
Timed out trying to catch bootloader!

Hi @gcelec ,

Sorry, I’ve been pretty busy. This issue should be fixed on companion 0.0.26. unfortunately the dvl branch doesn’ t contain these changes yet. We’ll try to rebase the dvl branch early next week.

To get Ardusub 4.1, clicking the “beta” button in companion or qgc (if plugged directly to the pixhawk via usb) should do.

We have a dvl section in ardusub.com with instructions. Please let us know if you run into issues following those, so we can fix the docs :slightly_smiling_face:.

1 Like

Hi @williangalvani - no worries - I know how busy things get and appreciate your help. Here’s what I’ve done this morning:

Now Companion doesn’t recognize the DVL at and it’s not listed as an active service ( I did have those previously).
DVL IP address settings are the same as previously.

I have the same issue installing it from git. Orientation buttons and nothing works. Im

Im updated it from 0.0.28 → DVL

Ardusube 4.1.0 beta.

I have also tried to downgrade to 0.0.23 with same result.

Get this error when i try to start it manualy
pi@rov:~ $ ./companion/services/waterlinked/dvl-a50/main.py
Traceback (most recent call last):
File “./companion/services/waterlinked/dvl-a50/main.py”, line 7, in
from dvl import DvlDriver
File “/home/pi/companion/services/waterlinked/dvl-a50/dvl.py”, line 6, in
from mavlink2resthelper import Mavlink2RestHelper
File “/home/pi/companion/services/waterlinked/dvl-a50/mavlink2resthelper.py”, line 1, in
from companionhelper import request, post
File “/home/pi/companion/services/waterlinked/dvl-a50/companionhelper.py”, line 2, in
import requests
ModuleNotFoundError: No module named ‘requests’

1 Like

I’ve been holding off on upgrading until I know I have time to fix bugs.

There is a conversation in this thread about the affects of upgrading to Companion 0.0.28

I installed the DVL service according to “option 1” from this link

Then I upgrade from 0.0.24-15-g33651de to 0.0.28-14-gee0a5df from git section selecting DVL according to “option 2”. This seems to worked perfectly. It connected with no problems.