Skip to main content

MLM troubleshooting

Tools needed

  • USB to MCIL-6-FS cable (provided)

  • MLM test loop (provided)

  • Computer with a USB port

  • Serial terminal

The RBRcervata uses the mooring line modem (MLM) inductive modem to communicate with the instrument mounted on the mooring line. The MLM system consists of a head-end modem (HEM) included within the RBRcervata housing, and a sub-surface modem (SSM) coupled onto the instrument. The instrument needs to be configured to communicate at the baud rate configured in the SSM which is typically 19200 bits-per-second.

The MLM diagnostic task is a useful tool that checks the connection and settings of the HEM and the SSMs attached to the mooring line. When it finds an error, it will indicate the possible cause in the console.

MLM bench-test

To bench-test the system, connect all of its components together: 

  1. (Optional) Remove the internal assembly of the RBRcervata from the housing following the instructions in Hardware overview.

  2. Connect the MLM test loop cable to the RBRcervata (DIRECT CONNECT or TO HAMMERHEAD, depending on your model). 

  3. Connect the instrument to its ferrite holder.

  4. Pass the test loop through the ferrite holder and connect the audio jack connectors.
    The loop does not need to make contact with any part of the holder: passing through the middle of the ferrite is all that is required for functionality.

  5. Connect the MCIL-6-FS end of the patch cable to the diagnostic port.

  6. Connect the USB end of the patch cable to your computer.

  7. Open a terminal on the corresponding communications port following the instructions in Using the USB port.

  8. Press enter and wait until you see the RBRcervello> prompt.

  9. Type disable and press Enter. See disable for more information.

  10. Type config-check -c cervello. See config-check for more information.

  11. Use the arrow keys to find the value of the ssm field for each instrument then press Q to exit.

  12. If the configuration of any instrument does not match the serial number of the associated SSM, edit the configuration with the nano text editor using edit-config -c cervello and press ctrl + X to exit. See edit-config for more information.

  13. Type diagnose mlm and press Enter. See diagnose for more information.

The MLM test routine will start running. This routine will assess communication with the HEM and SSM attached to the line, check their configuration, and perform a bit-error-rate test.

Follow the instructions on the screen as sometimes it prompts for user interaction.

end-cap-to-hammerhead.jpeg

“TO HAMMERHEAD” port

Example MLM diagnostic task output
CODE
RBRcervello> diagnose mlm
Checking deployment status...
Stopping services...
Waiting for publisher to terminate...
Starting MLM test
I think the HEM is on /dev/ttymxc0 at 115200 baud.
Trying to wake the HEM...
        error unknown command
        error unknown command
        RBR HEM-1000 1.500 237884
Found HEM 237884.
HEM firmware version 1.500 >= 1.300.
        commands now unlocked
Checking HEM configuration...
Checking:       baud rate BAUD: 115200
Setting:        baud rate BAUD: 115200
Checking:       sleep timeout (10ms) ZTO: 1000
Setting:        sleep timeout (10ms) ZTO: 1000
Checking:       hardware flow control enable HWF: 0
Setting:        hardware flow control enable HWF: 0
Checking:       poll enable PEN: 0
Setting:        poll enable PEN: 0
Checking:       poll interval time (min) PINT: 5
Setting:        poll interval time (min) PINT: 5
Checking:       poll delay time (10ms) PDEL: 500
Setting:        poll delay time (10ms) PDEL: 500
Checking:       poll display enable PDISP: 0
Setting:        poll display enable PDISP: 0
Checking:       poll cmd string PCMD: Setting:  x46,x30,x30
        poll cmd string PCMD: Checking: x46,x30,x30
        poll wakeup char enable PWUPEN: 1
Setting:        poll wakeup char enable PWUPEN: 1
Checking:       poll wakeup char PWUPCHAR: x0F
Setting:        poll wakeup char PWUPCHAR: x0F
Checking:       poll sleep enable (zzz) PSLPEN: 1
Setting:        poll sleep enable (zzz) PSLPEN: 1
Checking:       poll address PADD: 00
Setting:        poll address PADD: 00
Checking:       modem open channel timeout (10ms) MDOCDUR: 1000
Setting:        modem open channel timeout (10ms) MDOCDUR: 1000
Checking:       modem open channel permanent MDOCPERM: 0
Setting:        modem open channel permanent MDOCPERM: 0
Checking:       modem maximum retry count MDRTRY: 1
Setting:        modem maximum retry count MDRTRY: 1
Checking:       transparent max chars before send TPMXC: 50
Setting:        transparent max chars before send TPMXC: 50
Checking:       transparent send char TPSNDC: x0D
Setting:        transparent send char TPSNDC: x0D
Checking:       transparent send char enable TPSNDEN: 1
Setting:        transparent send char enable TPSNDEN: 1
Checking:       transparent send char as well enable TPSNDC2: 1
Setting:        transparent send char as well enable TPSNDC2: 1
Checking:       transparent char timeout (10ms) TPCTO: 10
Setting:        transparent char timeout (10ms) TPCTO: 10
Checking:       transparent char timeout enable TPCTOEN: 1
Setting:        transparent char timeout enable TPCTOEN: 1
Checking:       transparent escape timeout (10ms) TPESCTO: 75
Setting:        transparent escape timeout (10ms) TPESCTO: 75
Checking:       transparent escape timeout enable TPESCTOEN: 1
Setting:        transparent escape timeout enable TPESCTOEN: 1
Checking:       transparent request ack enable TPACK: 0
Setting:        transparent request ack enable TPACK: 0
Checking:       transparent display ack enable TPACKDSP: 0
Setting:        transparent display ack enable TPACKDSP: 0
Checking:       transparent display nak enable TPNAKDSP: 0
Setting:        transparent display nak enable TPNAKDSP: 0
Checking:       ber pattern BERPAT: RAND
Setting:        ber pattern BERPAT: RAND
Checking:       ber length (bytes) BERLEN: x0800
Setting:        ber length (bytes) BERLEN: x0800

Ensuring there is no open SSM channel before attempting any channel activity...
No previously open channel.
Attempting SSM discovery:

Found SSM 238669

Discovery complete
Waiting for channel cooldown...

Opening a channel to the SSM 238669...
        channel requested (with ssm 238669)...GRANTED
.       RBR SSM-1000 1.500 238669
Opened channel to SSM 238669.
SSM firmware version 1.500 >= 1.300.
.       commands now unlocked
Checking SSM configuration...
Checking: .     baud rate BAUD: 19200
Setting:  .     baud rate BAUD: 19200
Checking: .     sleep timeout (10ms) ZTO: 1000
Setting:  .     sleep timeout (10ms) ZTO: 1000
Checking: .     RBR logger id retrieval enable LIDEN: 0
Setting:  .     RBR logger id retrieval enable LIDEN: 0
Checking: .     transparent max chars before send TPMXC: 512
Setting:  .     transparent max chars before send TPMXC: 512
Checking: .     transparent send char TPSNDC: x0A
Setting:  .     transparent send char TPSNDC: x0A
Checking: .     transparent send char enable TPSNDEN: 1
Setting:  .     transparent send char enable TPSNDEN: 0
Checking: .     transparent send char as well enable TPSNDC2: 1
Setting:  .     transparent send char as well enable TPSNDC2: 1
Checking: .     transparent char timeout (10ms) TPCTO: 150
Setting:  .     transparent char timeout (10ms) TPCTO: 10
Checking: .     transparent char timeout enable TPCTOEN: 0
Setting:  .     transparent char timeout enable TPCTOEN: 1
Checking: .     transparent escape timeout (10ms) TPESCTO: 75
Setting:  .     transparent escape timeout (10ms) TPESCTO: 75
Checking: .     transparent escape timeout enable TPESCTOEN: 1
Setting:  .     transparent escape timeout enable TPESCTOEN: 1
Checking: .     transparent request ack enable TPACK: 0
Setting:  .     transparent request ack enable TPACK: 0
Checking: .     transparent display ack enable TPACKDSP: 0
Setting:  .     transparent display ack enable TPACKDSP: 0
Checking: .     transparent display nak enable TPNAKDSP: 0
Setting:  .     transparent display nak enable TPNAKDSP: 0
Checking: .     ber pattern BERPAT: RAND
Setting:  .     ber pattern BERPAT: RAND
Checking: .     ber length (bytes) BERLEN: x0800
Setting:  .     ber length (bytes) BERLEN: x0800
Performing a bit error test to assess loop quality...
        (tx) sending ber msg...
.ber : x00000000 / 00004000
Bit error test passed.
.       commands now locked
        channel closed
Waiting for channel cooldown... commands now locked
MLM communication looks good.
Exiting diagnostic task. If you are done conducting all tasks, please reboot controller.

Transparent link

If you wish to communicate directly with the HEM you can run the following command:

TEXT
RBRcervello> diagnose transparent-link

MLM communication principles

Commands

Send each command to the modem on its own line. Lines must be terminated with a carriage return and/or a linefeed character. Most terminal emulators' default handling of the “<Enter>” key produces acceptable behaviour.

Sleep

If the HEM receives no commands for 10 seconds, it will go to sleep. The HEM will wake up when it next receives a line termination character. This can lead to the modem “ignoring” commands upon first connection, or after having sat idle. To ensure the modem evaluates your command, it is good practice to send a line termination (hit the “Enter” key) once or twice before each command to both wakes up the modem and to cause it to stay awake while you're typing.

The instrument also has a 10-second sleep timeout. When communicating with the instrument over the inductive modem link, the same technique of sending a line termination character before each command should also be followed. Moreover, there is a 10-second inactivity timeout for the HEM connection to the instrument; if no data passes across the inductive modem link for ten seconds, the connection is closed. To avoid having to frequently reopen the channel, periodically send a line termination character.

Initial state

If the loggercontroller service was running before the connection was opened, the HEM may still be in “transparent mode” – received commands will be passed directly to the attached instrument. To determine the state of the connection, send a line termination character once or twice to wake the HEM from sleep, then send the “a” command (by typing “a<Enter>”). The unit should respond:

TEXT
RBR HEM-1000 1.300 999999

If you instead receive something to the effect of:

TEXT
RBR RBRconcerto 1.410 999999
Ready:

then the modem is in “transparent mode” – it is passing everything you type through to the instrument on the other end of the inductive link. This happens when the logger controller has been interrupted. Wait up to 10 seconds for the transparent mode to time out and return you to the HEM command interface:

TEXT
channel closed
***command mode***

SSM discovery

The HEM can automatically discover connected SSMs. This is a straightforward, rapid way to verify basic MLM functionality. To invoke it, send the disc command to the HEM:

TEXT
disc
    discovery requested
    099999
    discovery complete OK

The command will take around 40 seconds to complete, and will list the serial numbers of any connected SSMs as they are discovered. If the SSM is discovered at this step, both the HEM and the SSM are functional. In this case:

  • Type Ctrl+C to return to the diagnostic menu.

  • Reboot the controller with reboot-controller to start all the services again.

Otherwise, continue on to checking the ferrites.

Ferrites

The ferrite holders (shown at right) hold the ferrite halves and clamp them to the mooring line. If the connection between a ferrite and the modem is faulty, the modem connection will be, at best, unreliable and, at worst, nonfunctional.

The ferrite holders are the first thing to check in the event that the HEM cannot see the SSM, starting with the surface ferrite holder.

Open and closed ferrite holders

To perform a cursory check of the ferrite:

  1. Disconnect and reconnect the connectors at both ends of the cable to ensure that they are well-seated.

  2. Open the ferrite holder. Check visible edges of the ferrite for damage (scratches, chips). Wiggle/push the ferrite halves to confirm that they are intact, not cracked/split.

  3. Clean the ferrite's mating surfaces with a small amount of isopropyl alcohol.

  4. Close the ferrite holder again, ensuring that the ends of both ferrite halves are flush and line up with each other.

If other tests point back to a ferrite failure, you can remove the ferrite halves from the enclosure to check them. Do this in a workshop or another safe area where no small parts will be lost during disassembly.

  1. Open the ferrite holder.

  2. Using a 3mm hex key, remove the retaining screws on the anti-strumming bar on the ferrite holder clasp.

  3. Remove the bar.

  4. Lift the ferrite half out of the recess, being careful to not lose the T-shaped spring from the bottom of the recess.

  5. Check the ferrite half for cracks or fractures.

  6. Check that the two O-rings are evenly spaced around the ferrite half, approximately at thirds.

  7. Remove the spring from the recess. Make note of the orientation of the spring within the recess before removal: whether the top of the “T” is facing the left or the right side of the clasp.

  8. Check the spring for cracks or surface scoring.

  9. Insert the spring back into the recess.

  10. Push the ferrite half back into the clasp.

  11. Replace the anti-strumming bar and tighten its retaining screws.

  12. Carefully slide the other ferrite half from the holder body and check it for cracks or fractures. Slide it back into its recess when satisfied.

The orientation of the spring determines the elevation it affords the ferrite half. If the ferrite halves do not compress tightly against each other when the clasp is closed, reorient the spring so the top of the “T” faces the clasp hinge.

Additionally, each ferrite holder contains a coil. With an ohmmeter, check the resistance across the outer two pins of the MCBH-F on a 3-pin version, or between pin 5 and 6 on a 6-pin version connector on the ferrite holder. It should measure 3-4Ohm. Significantly more (hundreds of Ohms or an open circuit) indicates a failure of the coil or the connector.

If everything seems OK, run the MLM diagnostic task again (see above) to verify that the issue went away.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.