Home        Store        Learn        Blog

Water Linked M64 Acoustic Modem Testing and Lessons Learned

Hi Everyone, its an exciting day here as we finally have the Water Linked M64 Acoustic Modem in stock! Supply is a bit limited right now, but we have more on the way!

Due to the nature of the modems where one is usually mounted underwater and the other one topside, we have opted to not put penetrators or other connectors on the modem wire ends. Based on user feedback, we may change this in the future.

Earlier in the week, we tested a pair and wanted to relay our results. Here are some of the things we learned getting set-up:

  1. Make sure you have a 3.3V compatible UART to USB serial converter. We used a pair of these from Sparkfun for our testing. Blue Robotics’ BLUART USB to serial testing TBD.

  2. Make sure you have a common ground from the UART to USB converter and the ground from the modem.

  3. The UART TX from the modem goes into the UART RX on the converter board and likewise for the RX line.

  4. Watch the polarity! The wiring interface can be found here and on the product page.

  1. The modems will get warm when powered, recommend placing them in water to keep them cool.

  2. A blinking light about every 2 seconds on the modem will indicate it is powered, but no link is established.

  3. Follow the steps in the setup to make sure you have the proper libraries installed. You may have to go back and install Python 3 and Pip if not already installed.

    python3 -m pip install wlmodem is the terminal command that worked for us to install the wlmodem library.

  4. Run though the terminal commands in the Quickstart on the Github page. We had to switch it around to another USB port to get a connection.

  5. After you have a connection, and you have two modems set up on two different computers, try running the example Python script.

    a. On the modem setup you designate as the receiver, configure Line 27 to success = modem.cmd_configure("b", 4) instead of “a”. Edit: Example script has been changed to auto-configure.

    b. Put the modems in water.

    c. Run the script on the “a” modem setup first, then the “b”

If successful, you should get what is pictured below:

Let us know what cool projects and applications you come up with! I recommend also posting in the Water Linked forums if assistance is needed.



Water Linked has now added a UDP-like abstraction which will make it much easier to send arbitrary length data with the modems (ie datagram). It is available in the version 1.2.0 of the wlmodem Python library.

There is an example on how to accept UDP packets and sending them with the modems. This should make it much easier to test the Modem-M64 in an existing system.

The UDP-like abstraction best suitable for short UDP sockets (<100bytes). See github documentation for more details on the limitations. (https://github.com/waterlinked/modem-python/blob/master/wlmodem/transport.py#L8 )

1 Like