Setup of inductive loops#

Guidelines for how to program, setup, integrate and log instruments along an inductive line.

Terminal#

Software like TeraTerm or Putty were used successfully for communication.

TeraTerm (Windows)#

  1. File > New connection... > Serial with correct COM port

  2. Setup > Serial port... >

    • Speed: 115200 (SIMC) or 19200 (UM) or whatever the device is set to

    • Flow control: none or Xon/Xoff(when sending files via terminal)

    • Transmit delay: 5 or 10 msec/line when sending files via terminal

  3. File > Log... to activate logging of terminal output

Putty (Linux)#

  • Serial line: /dev/ttyUSB0 (when USB to serial adapter was used)

  • Speed: 115200

  • Logging activated

  • Terminal > Check Implicit CR in every LF

General procedure#

Tip

Always activate logging of terminal output into a .txt file or similar for later troubleshooting

  1. Collect instruments according to mooring plan drawing/table

  2. Put every instrument once alone on the test inductive line that has a SIMC/modem on it

  3. Check that IDs are correct

    • Sound9 sensors (CTD, T, etc.) are usually contacted via a group command xt2 (group 0) or xt3 (group 1)

    • Other instruments are either connected via an Ultimodem (mod 4 and telmode 3) or for instance Seabird IMs (mod 1 and telmode 1)

      • to find the ID of connected modems either use last 2 digits of serial number or fcl or swt and receive ID via id?

  4. Make a test via interactive communication (see # Instrument communication) to all sensors and get the sensor info. Use the X-sensors syntax to communicate directly to X-sensors and connect to other instruments via their modems.

  5. Put all sensors on the loop and create a test a-file and check that all sensors per mod answer. Some Sound9 IDs don’t work together, then a different ID has to be used, either by changing the ID or using another sensor (see # ID rules).

Instrument communication#

Interactive#

S9>eecchhoo  ooffff \\ in case of double echo
S9>getcd \\ display configuration of SIMC
S9>getsd \\ display status data of SIMC
S9>open im \\ opens in default baud rate 19200 (open im xxxxx for another baud rate)
S9>MLN \\ measure line noise

\\ X-sensors
S9>mod 4
S9>telmode 3
S9>#X0iicd \\ display configuration of X-sensor with ID X0ii
S9>xt2 n \\ sample all x-sensors up to `n` replies

\\ Ultimodems with external sensors
S9>fcl \\ capture line to talk to modem
S9>id? \\ read IDs of connected modems
S9>!iiGETCD \\ ii=last to digits of modem serial number
S9>!iiIMFLAG=1 \\ power up sensor via serial connector
S9>#iiSAMPLE-COMMAND \\ read sensor data
S9>!iiIMFLAG=0 \\ power down sensor via serial connector
S9>rel \\ release line
\\ confirm that IMFLAG=0/1 powers up and down by measuring it

\\ Seabird
S9>mod 1
S9>telmode 1
S9>swt \\ send wake up tone
S9>ID? \\ get IDs of connected instruments
S9>!iiGETCD \\ ii=last to digits of serial number (! to logger)
S9>#iiGETCD \\ ii=last to digits of serial number (# to sensor)
S9>#iiDS \\ display status (Seabird commands)
S9>#iiSL \\ read "sample last"
\\ all Seabird commands are valid like STARTLATER, STARTNOW, etc.

 to disable im pass through mode

Script (a-file)#

Scripts are used for automation and data logging.

Start writing the file on to the logger via write a, lines with / or ;; are comments.

A commented template a-file can be found in this repo as well as a more extended version that was used latest (TT2025).

In TeraTerm the a-file can also be sent to the logger via the terminal.

  1. Create the a-file in a .txt file in the following shape

    write a
    CONTENT OF a-FILE
    end a
    
  2. Make sure the terminal is setup correctly with Xon/Xoff like described above (# Terminal)

  3. File > Send file... > select the .txt file created in step 1

The only way to add an a-file to a SIMC or UM is by connecting via RS232. It is not possible to write a while being connected through the inductive line to the modem.

SIMC data storage procedure#

  • The S-file is a RAM buffer. It records data from the host instrument during the script. Scripts can use CLEARBUFFER to empty this file and SAVE D to save the current contents to the D buffer before clearing the file. The maximum length of the S-file is 6kB. If the host instrument sends more than 6kB then the script can use multiple SAVE D commands with an appropriate time delay in between.

  • The D-file is a circular buffer with maximum length 5 Mbytes (5242880 bytes)

  • The READ D command reads the entire D file. The READ DL command reads only the last entry in the D file

  • SAVE D moves data from the S-file to the D-file (leaving the S-file empty).

  • It is appropriate to use the SAVE D command multiple times in a single script. This results in multiple tags but under the same sample number. The READ DL command will return all data saved within the script even with multiple SAVE D commands in the program.

Deployment and logging#

Tip

During all deployment commands make sure to LOG the terminal for later troubleshooting.

Preparation checklist#

  • [ ] Measure SIMC and UM batteries and/or replace for new ones

  • [ ] The UM of the SIMC should not wake by noise of the line. Therefore

    • open im

    • check that WAKEUPSRC=1 (only RS232) with getcd

  • [ ] All UMs connected to instruments via RS232 should only respond to signals from the IM line. Therefore those should be set to WAKEUPSRC=2 (only IM). OBS In case an a-file is required on the UM make sure to first add it via connecting through RS232 before changing this setting.

  • [ ] Set both master and all slave modems to mod=4 to use 4800 baud@192.k (4) baud IM communications. This mode is not compatible with modems from Sea-Bird Electronics. Use mod=1 on all modems for 1200 baud@4.8k (1) baud IM communications.

Deployment#

After a script (a-file) has been placed on the SIMC it can be used for interactive and automated communication to all instruments on the line and for logging.

  1. To test an a-file it can be run a once and data is displayed via read dl

  2. For logging the period=n (n in minutes) is set for the desired interval when to cycle through the script

  3. Check clock of system with getsd and update time to UTC if necessary with time yyyy-mm-ddTHH:MM:SS

  4. If not already done during preparation: While terminal logging is on run a !iigetcd or for XT sensors #X0iicd (ii=ID) on all instruments to log coefficients and settings

  5. start to activate logging

Commands#

Command

Description

getcd

display configuration settings

getsd

display status data

getec

display event counters

ver

display hardware and firmware version (SIMC V0Ā for old ones, SIMC V0AĀ for newer ones)

time

read a

reads aĀ file

sleep

terminates active mode

id?

get device ID of modem

#X0iicd

display configuration settings of XĀ sensor with ID X0ii

#ii

send IM command through a remote modem to serial port, e.g. #99getcd

!ii

send IM command to a remote modem, e.g. !99getcd

open im

activate IM with optional baud rate e.g. open im 9600

CL or FCL (Capture Line)`

Captures IM network, starts transmitting a carrier signal on the IM network. Required prior to transmitting commands to the IM network

SWT

send wake-up tone

MLN

measure line noise

XT2Ā group 1

singe sample and retrieve data from all XTP sensors. ESCĀ to exit mode early. Using XT2 4Ā stops listening after 4 replies for instance or with XTE2 4sĀ after 4 sedonds.

XT3Ā group 2

single sample and retrieve data from all 2 XT sensors. ESCĀ to exit mode early

REL

release IM line (opposite of CLĀ or FCL)

echo off

turns double letters off when IM is active

CEXIT N#

<Sample d='SIMC' mid='04HR' p='A' T='2000-01-01T00:12:00' c='1' v='1'>
the c='1' means the count is 1.
When a CEXIT happens it is marked in the sample like this:
<CEXIT c='6'/>

count = number of samples since last reset or last time the sample program ended normally (end of file, not terminated by a CEXIT command)

count starts at 1 and is reset to 1Ā if it reaches 256

CEXIT N will immediately end the sample program (closing all ports) if (count % N)!=0

That means CEXIT 6 will for instance exit early for the first five samples, then not exit on the sixth sample.

It also means multiple CEXIT commands can be used in one file – though that requires careful attention to understand the sample timing.

Example#

Simple file with two CEXIT commands in it:

adclog
cexit 2
irhlog
cexit 4
eclog

There are three possible outcomes:

  1. count = 1 or 3 abort at line 2

  2. count = 2 abort at line 4

  3. count = 4 no abort, file runs to the end and count resets (will start at 1 on next run)

SIMC data retrieval#

Log terminal output for later troubleshooting or missing data

  1. GETCD for logging serial number and device info

  2. GETSD to check for any unsaved bytes and get logger time

    • note down time of logger and compare to real UTC

    • If there is a ***WARNING: XXXX DATA BYTES NOT SAVED TO CARD!*** run a SAVE D to transfer data from flash memory to SD card. Run GETSD again after to check the command worked as intended

  3. READ S to check that no remaining data is left temporary

  4. GETEC for event count

  5. (optional) READ D and/or DUMPFLASH and/or READ SDD, however, those commands might take quite a while depending on the amount of data recorded. The logger will need enough remaining power as well to transmit all the data to the terminal.

  6. SLEEP and disconnect the SIMC. Open the body of the SIMC with the screw plate or with the help of a vice.

    • Press the small black button next to the SD and wait until the LED switches from blinking yellow to blinking green

    • Eject SD card and copy all of its content to a computer. There are usually two files with the name S9 ###.TXT and S9 ###S.TXT (###=3 last digits of SN) where the first is the data file and the second the status log.

Integration of sensors in inductive loops#

TELMODE#

From UM manual R010Q

Note

The TELMODE setting in the receiving and transmitting modems must match for proper communication.

TELMODE 3 is required for binary data when the remote modem is an Ultimodem from S9. TELMODE 1 or 2 is required when the remote modem is an IM from SEA-Bird Electronics, depending on the IM’s BINARY setting. TELMODE 1 is required when the remote modem is a IM from Sea-Bird Electronics.

Soundnine instrument ID assigment#

Warning

Usually not for end-user-use, but we may need this.

The XT sensors don’t respond to normal IM commands like #ii or !ii. They use serial number addressing only.

Note

The modem needs to be mod 4, telmode 3.

The sensors respond to XT2 or XT3 depending on configuration. default is XT2 command.

  • Use #X0iisg 1 (sg=set group) to set serial number X0ii to group 1, which is read with the XT3 command.

  • Use #X0iisg 0 to set it back to group 0, which is read with the XT2 command (default).

Hint

These commands are slow and not intended for use while deployed.

Use #X0iicd to read the configuration of the sensor, including the group assignment.

Warning

Make sure no other sensors are near the inductive loop when changing IDs, in case they accidentally pick up the signal!

  • #X0iiID 1 changes the id number to 1.

Hint

This must be done carefully to prevent using two sensors with the same ID. The BAS ice shelf logger only uses hex-based IDs; experience is that this might give a better sensor separation.

ID rules with S Format#

Tip

  • ID should not be higher than 20 if there are no sensors with lower IDs on the line as then XT2 command times out before getting to IDs over 20

  • CTD and CTDO using the S7D and S7F format must skip next ID number. So if a CTD uses ID 3 then ID 4 can’t be used by any sensor. (Reason: Some S data formats require more time to transmit than a single ID time slow allows.)

  • XT and XTP sensors can use consecutive ID’s.

  • S9 recommends using putting all XT and XTP first starting at ID 1, then CTD and CTDO using only odd or even ID’s, followed by fluorometers (XFL).

    • XT and XTP sensors have a minimum ID of 1.

    • CTD have a minimum ID of 2.

    • CTDO have a minimum ID of 3.

    • XFL fluorometers (Chelsea Trilux) have a minimum ID of 14.

Experiences that worked (before the above rules were known)#

  • XT ID 1 combined with 3 & 5 or 3 & 7 or 5 & 7 gives a repeated reply from ID 1

  • XT ID 3, 5 and 7 gives single replies and worked in combination CTD 12, 14 and 16

  • XT ID 2, 3, 4, 5, 9 and 10 with CTD 12, 14 and 16 also worked fine adding XT ID 8, 6 or 1 gave double replies or missing data from the CTDs.

  • All deployments from 2022/23

ISA500 altimeter:#

For integrating the ISA500 with the Soundnine Ultimodem (UM), two steps are required:

  1. Telling the UM to provide power to the sensor (IMFLAG=1).

  2. Reading the data from it using

    • a self defined sampling command e.g. get_sample or get_alti/get_ahrs (see pictures below)

    • an a-file on the UM that listens to the ISA500 pinging, saves on a local D-file (on the UM) and a transfer of the D-file to a SIMC

Setting up ISA500#

Requirements

  • External power for setting up with software: 10 V, 1 A

  • RS232-MCIL8F cable with external power connection

  • SeaView software

Acoustics#

Depending on setup, with a 60 m deployment minimum range = 30 m and maximum range = 120 m can be a good margin

Connection#

Baud rate depending on what UM is using on the serial port (has to be the same). Default is 19200.

Output#

Based on what BAS used, format = ID102 is recommended. If the UM shall log the output for a defined time then the first option needs to be selected with the desired output frequency, e.g. 0.5 Hz. The interrogation string can always be defined and enabled, e.g. get_alti\r - meaning that sending the string get_alti followed by a carriage return (\r) to the ISA500 via the serial connection will trigger the ISA500 returning with one sample string.

AHRS Settings#

If the sensor is mounted upward facing then Roll = 180° is required. All settings in this window should in theory be possible to account for in post-processing as well.

AHRS Output#

According to BAS recommendation format = ID131. In case the string is supposed to be logged with a specific frequency like the altimeter output above then the first option needs to be checked with the desired frequency. Otherwise, leave this option unchecked to save power. In the example below the ISA500 only sends an AHRS sample via serial once it gets triggered by e.g. get_ahrs followed by a carriage return (\r).

SIMC/UM setup#

Interrogate/Request single sample via get_alti/get_ahrs#

In this case a SIMC would send a command to the UM to request one sample from the ISA500 connected via serial to the UM. Check the interrogate example a-file in the repo.

Record frequent ISA500 burst pinging#

In this scenario the goal is to trigger a burst sampling of the ISA500. For this an a-file is placed on the UM that gets triggered by the SIMC and stores the data locally on the UM before being transferred to the SIMC.

  • The SIMC a-file is used to

    • switch on the power for the ISA500 from the UM using imflag

    • run the a-file on the UM, every run of the UM a-file creates a separate sample in the UM D-file

    • switch off the power again

    • read the sample from the UM D-file, needs SAVE IM every 3.5s (conservative) in MOD 4 with up to 480 bytes/s and 2 kB max buffer (S-file). The amount of delay & save IM repetitions depends on the transferred file size of the most recent sample on the UM (DL=last sample on UM D-file).

  • the a-file on the UM

    • opens the serial port

    • all output is saved in the S-file (max. 6 kB) on the UM and transferred to the UM D-file (max. 6 MB) by the SAVE D command. The command needs to be timed so that the S-file doesn’t reach 6 kB.

    • is used to trigger the interrogate string. This way altimeter data can be recorded as frequent pings while the AHRS data only gets requested a few times.

    • closes the serial port again

Power consumption#

For an interactive calculation of power consumption and resulting sampling plan check the ISA power sheet.