5.4. SDI-12 Protocol#

Protocol Overview#

The FX100 flow meter supports communication via the SDI-12 (Serial Data Interface at 1200 baud) protocol. The instrument responds to standard SDI-12 measurement commands by returning measured surface velocity and related data, and, in addition to standard measurement commands, the device implements a set of custom SDI-12 commands that allow users to read and modify internal configuration parameters, retrieve diagnostic information, and execute specific service operations such as restoring factory default settings.

In the command tables below, a represents the device address. CR and LF denote carriage return / line feed pair which is sent at the end of each response. The response contains no space character – in the table below the spaces are inserted between response elements to improve readability only.

Standard SDI-12 Commands#

Device Address Query#

Device will identify by returning its SDI-12 address. The factory default address is 0.

Request

Response

Example

?!

a CR LF

→ ?!
← 0

Ping Sensor#

The device will return its address if the address in the request matches the device address. This command is used to verify that the device is active, at a given address, and responding to requests.

Request

Response

Example

a!

a CR LF

→ 0!
← 0

Change Address#

The device will reconfigure to change its SDI-12 device address, and will respond with the new address. All subsequent requests to the device should be addressed to the new address. Take care when changing address, if improperly set on multi-sensor bus this can cause address collision.

Request

Response

Example

aAb!

b CR LF

→ 0A5!
← 5

Get Device Identification#

The device will respond with its identification information:

  • 14 = SDI protocol version 1.4

  • GEOLUX  FX100 = device name, with two space characters between

  • fff = current firmware version, one space character before

  • ssssss = six-digit decimal device serial number, padded with leading zeros and appended directly after the firmware version (no separator).

Request

Response

Example

aI!

a14GEOLUX  FX100 fffssssss CR LF

→ 0I!
← 014GEOLUX  FX100 105100256

The example uses serial number 100256.

Verify Device#

This command is executed in two steps. First, the master sends the command aV! to initiate the verification procedure. The device responds with a SDI-12 acknowledgment indicating that one value is immediately available for retrieval. No delayed service request is needed.

The master must then issue the aD0! command to read the available value. The device responds with a single measurement representing the instrument’s operational status:

  • 0 = not ready

  • 1 = ready

Readiness means the application is running and the device status bitmask is zero. A sleeping or initializing instrument reports not ready; this command does not start a measurement.

Request

Response

Example

aV!

aD0!
a0001 CR LF

a+s CR LF
→ 0V!
← 00001
→ 0D0!
← 0+1

Perform Measurement#

This command instructs the instrument to start a measurement cycle. Upon receiving aM!, the device immediately responds with the required warm-up time in seconds and the total number of measurement values that will be available once the measurement is completed.

After the specified warm-up time has elapsed, the master should retrieve the measurement results using the aD0!, aD1!, etc. commands as needed, until all reported values have been read.

If a CRC checksum is required to ensure data integrity, the aMC! command shall be used instead of aM!. This command functions identically to aM!, but the instrument appends a CRC checksum to each data response. The checksum in the response allows the master to verify the consistency and correctness of the transmitted values.

The Geolux FX100 returns 8 values, in the following order:

  1. Discharge, in selected measurement unit,

  2. Water level, in selected measurement unit,

  3. Distance to water, in selected measurement unit,

  4. Absolute surface velocity, in selected measurement unit,

  5. Total volume, in selected measurement unit,

  6. Flow direction flag (1 incoming, -1 outgoing, 0 no flow),

  7. Surface velocity SNR, in dB,

  8. Water level SNR, in dB.

The grouping of measurement values in responses to the aD0!, aD1!, aD2!, etc., commands does not necessarily follow the structure shown in the example above. The example is provided for illustration purposes only. In accordance with the SDI-12 protocol, the instrument may distribute the returned values across one or more data responses depending on the total length of the response string. Each SDI-12 response is limited in length, so the device dynamically groups values to fit within this constraint.

Request

Response

Example

aM! or aMC!

aD0!

aD1!
asss8 CR LF

a discharge level dist vel CR LF

a volume dir svrsnr levsnr CR LF
→ 0M!
← 00158
… after 15 seconds …
→ 0D0!
← 0+1.023+1.12+2.21+0.54
→ 0D1!
← 0+10.212+1.0+48.0+42.0

Measure System Status#

This command will instruct the instrument to measure and return system status. The most recent status values are immediately available; this command does not start a new radar measurement.

If a CRC checksum is required to ensure data integrity, the aMC1! command shall be used instead of aM1!. This command functions identically to aM1!, but the instrument appends a CRC checksum to each data response. The checksum in the response allows the master to verify the consistency and correctness of the transmitted values.

The Geolux FX100 returns 5 values, in the following order:

  1. Forward tilt angle, in degrees,

  2. Side tilt angle, in degrees,

  3. Device temperature, in °C,

  4. Device relative humidity, in %,

  5. Device error status bitmask:
    Bit 0 = forward tilt angle error
    Bit 1 = side tilt angle error
    Bit 2 = radar co-processor update failed
    Bit 3 = velocity radar co-processor not responding
    Bit 4 = radar co-processor needs to be updated
    Bit 5 = tilt sensor is not working
    Bit 6 = level radar co-processor not responding
    Bit 7 = DFP data corrupt, needs reset
    Bit 8 = standby mode is active
    Bit 9 = radar is initializing

The grouping of measurement values in responses to the aD0!, aD1!, aD2!, etc., commands does not necessarily follow the structure shown in the example above. The example is provided for illustration purposes only. In accordance with the SDI-12 protocol, the instrument may distribute the returned values across one or more data responses depending on the total length of the response string. Each SDI-12 response is limited in length, so the device dynamically groups values to fit within this constraint.

Request

Response

Example

aM1! or aMC1!

aD0!

aD1!
asss5 CR LF

a fwdtilt sidetilt CR LF

a temp rhum status CR LF
→ 0M1!
← 00005
… immediately available …
→ 0D0!
← 0+1.0+0.0
→ 0D1!
← 0+22.4+39.0+0

Perform Concurrent Measurement#

The aC! command operates similarly to the previously described aM! command, with the key difference being that it enables concurrent measurements. After receiving aC!, the instrument responds with the required processing time and the number of values that will be available.

Unlike aM!, the instrument does not hold the SDI-12 bus during the measurement process. This allows other SDI-12 devices on the same bus to perform measurements simultaneously. Once the indicated processing time has elapsed, the master can retrieve the results using the aD0!, aD1!, etc., commands, in the same manner as for aM!.

In accordance with the SDI-12 specification for concurrent commands, the response to aC! uses two digits to indicate the number of measurement values that will be returned.

If a CRC checksum is required to ensure data integrity, the aCC! command shall be used instead of aC!. This command functions identically to aC!, but the instrument appends a CRC checksum to each data response. The checksum in the response allows the master to verify the consistency and correctness of the transmitted values.

The grouping of measurement values in responses to the aD0!, aD1!, aD2!, etc., commands does not necessarily follow the structure shown in the example above. The example is provided for illustration purposes only. In accordance with the SDI-12 protocol, the instrument may distribute the returned values across one or more data responses depending on the total length of the response string. Each SDI-12 response is limited in length, so the device dynamically groups values to fit within this constraint.

Request

Response

Example

aC! or aCC!

aD0!

aD1!
asss08 CR LF

a discharge level dist vel CR LF

a volume dir svrsnr levsnr CR LF
→ 0C!
← 001508
… after 15 seconds …
→ 0D0!
← 0+1.023+1.12+2.21+0.54
→ 0D1!
← 0+10.212+1.0+48.0+42.0

Identify Parameter (SDI-12 Version 1.4)#

The FX100 implements the SDI-12 version 1.4 Identify Parameter command. This command returns descriptive information about a measurement parameter supported by the instrument.

The command format is aIM_nnn!, where a is the SDI-12 device address and nnn is the three-digit parameter number. The FX100 supports parameter numbers 001 through 008, corresponding to the eight values returned by the standard measurement command.

The response format is:

  • a = device address

  • name = parameter name

  • unit = parameter unit

Request

Response

Example

aIM_nnn!

a,name,unit; CR LF

→ 0IM_001!
← 0,discharge,m3/s;

→ 0IM_002!
← 0,level,m;

→ 0IM_003!
← 0,distance,m;

→ 0IM_004!
← 0,velocity,mms;

→ 0IM_005!
← 0,volume,m3;

→ 0IM_006!
← 0,direction, ;

→ 0IM_007!
← 0,SNR,dB;

→ 0IM_008!
← 0,levelSNR,dB;

Custom (Extended) SDI-12 Commands Specific for FX100#

Maximum Velocity Threshold#

Sets / gets the upper bound for valid surface velocity measurements. Velocity readings above this threshold are rejected. The numeric value parameter is interpreted in the unit set by aXGMVU!. See Maximum Velocity for the detailed setting description.

Mode

Request

Response

Example

Get

aXGMVL!

a value CR LF

→ 0XGMVL!
← 016

Set

aXGMVL value!

a value CR LF

→ 0XGMVL+15!
← 015

Maximum Velocity Unit#

Gets / sets the physical unit used by aXGMVL! command. See Maximum Velocity for the detailed setting description. The units are represented by the numerical value as follows:

  • 0 = mm/s,

  • 1 = m/s,

  • 2 = mph,

  • 3 = km/h,

  • 4 = ft/s,

  • 5 = ft/min,

  • 6 = cm/s.

Mode

Request

Response

Example

Get

aXGMVU!

a value CR LF

→ 0XGMVU!
← 01

Set

aXGMVU value!

a value CR LF

→ 0XGMVU+6!
← 06

Direction Filter#

Gets / sets the direction filter configuration. See Direction Filter for the detailed setting description.

  • 0 = measure both directions

  • 1 = incoming flow only

  • 2 = outgoing flow only

Mode

Request

Response

Example

Get

aXGDFT!

a value CR LF

→ 0XGDFT!
← 00

Set

aXGDFT value!

a value CR LF

→ 0XGDFT+2!
← 02

SNR Threshold#

Gets / sets the SNR threshold value. See SNR Threshold for the detailed setting description.

Mode

Request

Response

Example

Get

aXGSTH!

a value CR LF

→ 0XGSTH!
← 00

Set

aXGSTH value!

a value CR LF

→ 0XGSTH+2!
← 02

Filter Length#

Gets / sets the number of seconds used for internal smoothing. Higher values reduce noise but increase response lag. See Filter Length for the detailed setting description. The valid range is between 1 and 120.

Mode

Request

Response

Example

Get

aXGFLN!

a value CR LF

→ 0XGFLN!
← 01

Set

aXGFLN value!

a value CR LF

→ 0XGFLN+20!
← 020

Discharge Output Unit#

Gets / sets the unit used for the discharge value in the SDI-12 measurement response, NMEA and on Modbus output. See Discharge Output Unit for the detailed setting description. The units are represented by the numerical value as follows:

  • 0 = m³/s,

  • 1 = m³/h,

  • 2 = L/s,

  • 3 = L/h,

  • 4 = ft³/s (cfs),

  • 5 = gal/min,

  • 6 = ML/day.

Mode

Request

Response

Example

Get

aXGDSU!

a value CR LF

→ 0XGDSU!
← 01

Set

aXGDSU value!

a value CR LF

→ 0XGDSU+3!
← 03

Water Level Output Unit#

Gets / sets the unit used for the water level and distance to water values in the SDI-12 measurement response, NMEA and on Modbus output. See Water Level Output Unit for the detailed setting description. The units are represented by the numerical value as follows:

  • 0 = mm,

  • 1 = cm,

  • 2 = m,

  • 3 = ft,

  • 4 = in.

0XGLVU+2! selects metres. To select mph for velocity output, use 0XGUNT+2!.

Mode

Request

Response

Example

Get

aXGLVU!

a value CR LF

→ 0XGLVU!
← 02

Set

aXGLVU value!

a value CR LF

→ 0XGLVU+2!
← 02

Velocity Output Unit#

Gets / sets the unit used for the velocity value in the SDI-12 measurement response, NMEA and on Modbus output. See Surface Velocity Output Unit for the detailed setting description. The units are represented by the numerical value as follows:

  • 0 = mm/s

  • 1 = m/s

  • 2 = mph

  • 3 = km/h

  • 4 = ft/s

  • 5 = ft/min

  • 6 = cm/s

Mode

Request

Response

Example

Get

aXGUNT!

a value CR LF

→ 0XGUNT!
← 01

Set

aXGUNT value!

a value CR LF

→ 0XGUNT+0!
← 00

Beam Width#

Gets / sets the radar beam width pattern. Wide beam covers a larger area; narrow beam is more focused and rejects off-axis targets. See Beam Width for the detailed setting description.

  • 0 = wide

  • 1 = narrow

Mode

Request

Response

Example

Get

aXGRBW!

a value CR LF

→ 0XGRBW!
← 00

Set

aXGRBW value!

a value CR LF

→ 0XGRBW+1!
← 01

Beam Width in Azimuth (RX Mode)#

Gets / sets how the radar combines the receive channels, controlling the azimuth beam pattern. This is separate from the elevation beam width selected by aXGRBW!.

  • 0 = coherent

  • 1 = sum

The default is 0 (coherent).

Mode

Request

Response

Example

Get

aXGRXM!

a value CR LF

→ 0XGRXM!
← 00

Set

aXGRXM value!

a value CR LF

→ 0XGRXM+1!
← 01

Beam Position#

Gets / sets the near or far measurement zone placed along the radar beam used for target detection. See Beam Position for the detailed setting description.

  • 0 = near

  • 1 = far

Mode

Request

Response

Example

Get

aXGBOF!

a value CR LF

→ 0XGBOF!
← 00

Set

aXGBOF value!

a value CR LF

→ 0XGBOF+1!
← 01

DFP Enable#

Gets / sets the enable status of Dynamic Flow Profiler algorithm, which tracks and accumulates flow history for improved accuracy in low-flow conditions. See Dynamic Flow Profiler for the detailed setting description.

  • 0 = disabled

  • 1 = enabled

Mode

Request

Response

Example

Get

aXGDFP!

a value CR LF

→ 0XGDFP!
← 00

Set

aXGDFP value!

a value CR LF

→ 0XGDFP+1!
← 01

Radar Height#

Gets / sets the vertical distance between the instrument and the water level reference point (gauge zero). The instrument uses this value to calculate and report the water level relative to the gauge zero. The corresponding measurement unit is set by aXGRHU!.

Mode

Request

Response

Example

Get

aXGRHG!

a value CR LF

→ 0XGRHG!
← 00

Set

aXGRHG value!

a value CR LF

→ 0XGRHG+12.11!
← 0+12.11

Radar Height Unit#

Gets / sets the measurement unit used by the parameter set by aXGRHG! The valid units are:

  • 0 = mm,

  • 1 = cm,

  • 2 = m,

  • 3 = ft,

  • 4 = in.

0XGRHU+2! selects metres for radar height. This is a distance unit, so mph is not supported.

Mode

Request

Response

Example

Get

aXGRHU!

a value CR LF

→ 0XGRHU!
← 02

Set

aXGRHU value!

a value CR LF

→ 0XGRHU+1!
← 01

Minimum Valid Distance#

Gets / sets the minimum valid distance to water surface. Reflections detected closer than this distance are ignored. Use this parameter to exclude near-field returns e.g., mounting hardware, bridge elements, or other objects close to the sensor. See Minimum Distance for the detailed setting description. The corresponding measurement unit is set by aXGDU0!.

Mode

Request

Response

Example

Get

aXGDZ0!

a value CR LF

→ 0XGDZ0!
← 00

Set

aXGDZ0 value!

a value CR LF

→ 0XGDZ0+1!
← 01

Minimum Valid Distance Unit#

Gets / sets the measurement unit used by minimum valid distance parameter (aXGDZ0!). See Minimum Distance for the detailed setting description. The valid units are:

  • 0 = mm

  • 1 = cm

  • 2 = m

  • 3 = ft

  • 4 = in

Mode

Request

Response

Example

Get

aXGDU0!

a value CR LF

→ 0XGDU0!
← 02

Set

aXGDU0 value!

a value CR LF

→ 0XGDU0+1!
← 01

Maximum Valid Distance#

Gets / sets the maximum valid distance to water surface. Reflections detected beyond this distance are ignored. Use this parameter to exclude far-field returns outside the intended measurement zone e.g., opposite bank, structures, or background targets. See Maximum Distance for the detailed setting description. The corresponding measurement unit is set by aXGDU1!.

Mode

Request

Response

Example

Get

aXGDZ1!

a value CR LF

→ 0XGDZ1!
← 030

Set

aXGDZ1 value!

a value CR LF

→ 0XGDZ1+5!
← 05

Maximum Valid Distance Unit#

Gets / sets the measurement unit used by maximum valid distance parameter (aXGDZ1!). See Maximum Distance for the detailed setting description. The valid units are:

  • 0 = mm

  • 1 = cm

  • 2 = m

  • 3 = ft

  • 4 = in

Mode

Request

Response

Example

Get

aXGDU1!

a value CR LF

→ 0XGDU1!
← 02

Set

aXGDU1 value!

a value CR LF

→ 0XGDU1+3!
← 03

RS-232 Baud Rate#

Gets / sets the baud rate of the RS-232 serial interface. The change takes effect immediately. See RS-232 Baud Rate for the detailed setting description. The valid values for baud rates are:

  • 0 = 4800

  • 1 = 9600

  • 2 = 14400

  • 3 = 19200

  • 4 = 38400

  • 5 = 57600

  • 6 = 115200

Mode

Request

Response

Example

Get

aXGSBD!

a value CR LF

→ 0XGSBD!
← 06

Set

aXGSBD value!

a value CR LF

→ 0XGSBD+1!
← 01

Modbus Baud Rate#

Gets / sets the baud rate of the RS-485/Modbus serial interface. The change takes effect immediately. See RS-485 Baud Rate for the detailed setting description. The valid values for baud rates are:

  • 0 = 4800

  • 1 = 9600

  • 2 = 14400

  • 3 = 19200

  • 4 = 38400

  • 5 = 57600

  • 6 = 115200

Mode

Request

Response

Example

Get

aXGMBD!

a value CR LF

→ 0XGMBD!
← 01

Set

aXGMBD value!

a value CR LF

→ 0XGMBD+6!
← 06

Modbus Device ID#

Gets / sets the Modbus RTU slave address. Must be unique on the RS485 bus. See Modbus ID for the detailed setting description. The accepted value range for Modbus RTU slave address is 1 - 247.

Mode

Request

Response

Example

Get

aXGMID!

a value CR LF

→ 0XGMID!
← 01

Set

aXGMID value!

a value CR LF

→ 0XGMID+10!
← 010

Modbus Serial Line Parity#

Gets / sets the serial line parity for RS-485 / Modbus connection. The change takes place immediately. See Modbus Parity for the detailed setting description. The valid values are:

  • 0 = none

  • 1 = odd

  • 2 = even

Mode

Request

Response

Example

Get

aXGMPA!

a value CR LF

→ 0XGMPA!
← 02

Set

aXGMPA value!

a value CR LF

→ 0XGMPA+0!
← 00

Modbus Serial Line Stop Bits#

Gets / sets the number of stop bits for the serial line of RS-485 / Modbus connection. The change takes place immediately. See RS-485 Stop Bits for the detailed setting description. The valid values are:

  • 0 = one

  • 1 = two

Mode

Request

Response

Example

Get

aXGMSB!

a value CR LF

→ 0XGMSB!
← 00

Set

aXGMSB value!

a value CR LF

→ 0XGMSB+1!
← 01

Disable NMEA Output#

Gets / sets the parameter that disables NMEA sentence output on RS-232. The valid values are:

  • 0 = NMEA enabled

  • 1 = NMEA disabled

Mode

Request

Response

Example

Get

aXGNMA!

a value CR LF

→ 0XGNMA!
← 00

Set

aXGNMA value!

a value CR LF

→ 0XGNMA+1!
← 01

Analog Output Type#

Gets / sets the which device measurement will be used to drive the analog output. The accepted values are:

  • 0 = none,

  • 1 = discharge,

  • 2 = water level,

  • 3 = distance to water,

  • 4 = surface velocity,

  • 5 = total volume,

  • 6 = fixed 4 mA,

  • 7 = fixed 12 mA,

  • 8 = fixed 20 mA.

Values outside 0 through 8 are invalid and leave the setting unchanged.

Mode

Request

Response

Example

Get

aXGANU!

a value CR LF

→ 0XGANU!
← 01

Set

aXGANU value!

a value CR LF

→ 0XGANU+2!
← 02

Analog Output Minimum Value#

Gets / sets the selected measurement value that corresponds to the minimum output on the analog current interface (4 mA). See 4 - 20 mA Minimum Value for the detailed setting description. The measurement unit is set by aXGAU0!.

Mode

Request

Response

Example

Get

aXGAV0!

a value CR LF

→ 0XGAV0!
← 00

Set

aXGAV0 value!

a value CR LF

→ 0XGAV0+0.1!
← 00.1

Analog Output Minimum Unit#

Gets / sets the measurement unit for the value set by aXGAV0! command. See 4 - 20 mA Minimum Value for the detailed setting description. The valid units depend on the output type set by aXGANU:

For discharge:

  • 0 = m³/s

  • 1 = m³/h

  • 2 = l/s

  • 3 = l/h

  • 4 = cfs

  • 5 = gal/min

  • 6 = ML/day

For water level and distance to water:

  • 0 = mm

  • 1 = cm

  • 2 = m

  • 3 = ft

  • 4 = in

For surface velocity:

  • 0 = mm/s

  • 1 = m/s

  • 2 = mph

  • 3 = km/h

  • 4 = ft/s

  • 5 = ft/min

  • 6 = cm/s

For volume:

  • 0 = m³

  • 1 = l

  • 2 = ft³

  • 3 = gal

  • 4 = ML

The set command takes the numeric unit index below. Get and set responses return the unit name, not its index. For velocity the returned names are mms, ms, mph, kmh, fps, fpm and cms. For distance they are mm, cm, m, ft and in; for discharge, m3/s, m3/h, l/s, l/h, cfs, gal/min and ML/day; for volume, m3, l, ft3, gal and ML. Unit selection is unavailable for output type none or fixed current.

The examples below assume surface velocity output (0XGANU+4!).

Mode

Request

Response

Example

Get

aXGAU0!

a unit_name CR LF

→ 0XGAU0!
← 0ms

Set

aXGAU0 value!

a unit_name CR LF

→ 0XGAU0+4!
← 0fps

Analog Output Maximum Value#

Gets / sets the selected measurement value that corresponds to the maximum output on the analog current interface (20 mA). See 4 - 20 mA Maximum Value for the detailed setting description. The measurement unit is set by aXGAU1!.

Mode

Request

Response

Example

Get

aXGAV1!

a value CR LF

→ 0XGAV1!
← 016

Set

aXGAV1 value!

a value CR LF

→ 0XGAV1+10!
← 010

Analog Output Maximum Unit#

Gets / sets the measurement unit for the value set by aXGAV1! command. See 4 - 20 mA Maximum Value for the detailed setting description. The valid units depend on the analog output type set by aXGANU.

For discharge:

  • 0 = m³/s

  • 1 = m³/h

  • 2 = l/s

  • 3 = l/h

  • 4 = cfs

  • 5 = gal/min

  • 6 = ML/day

For water level and distance to water:

  • 0 = mm

  • 1 = cm

  • 2 = m

  • 3 = ft

  • 4 = in

For surface velocity:

  • 0 = mm/s

  • 1 = m/s

  • 2 = mph

  • 3 = km/h

  • 4 = ft/s

  • 5 = ft/min

  • 6 = cm/s

For volume:

  • 0 = m³

  • 1 = l

  • 2 = ft³

  • 3 = gal

  • 4 = ML

The set command takes the numeric unit index below. Get and set responses return the unit name, not its index. For velocity the returned names are mms, ms, mph, kmh, fps, fpm and cms. For distance they are mm, cm, m, ft and in; for discharge, m3/s, m3/h, l/s, l/h, cfs, gal/min and ML/day; for volume, m3, l, ft3, gal and ML. Unit selection is unavailable for output type none or fixed current.

The examples below assume surface velocity output (0XGANU+4!).

Mode

Request

Response

Example

Get

aXGAU1!

a unit_name CR LF

→ 0XGAU1!
← 0ms

Set

aXGAU1 value!

a unit_name CR LF

→ 0XGAU1+3!
← 0kmh

Configure Power Management Mode (Automatic SDI-12 Sleep)#

Gets / sets the automatic SDI-12 sleep mode parameter. When sleep is enabled, the device enters low-power standby between SDI-12 transactions. When disabled, the sensor runs continuously and is ready at all times. See Power Management for the detailed setting description. The valid parameters are:

  • 0 = sleep enabled

  • 1 = sleep disabled (continuous scanning)

Mode

Request

Response

Example

Get

aXGCON!

a value CR LF

→ 0XGCON!
← 01

Set

aXGCON value!

a value CR LF

→ 0XGCON+0!
← 00

Configure Operation Mode#

Gets / sets the operation mode parameter. When the operation mode is set to standby, the device will go to standby mode. In standby mode, it will communicate on all communication interfaces, but the radar transmitters will be turned off to reduce the power, and the instrument will not be making any measurements. See Operation Mode for the detailed setting description. The accepted values are:

  • 0 = off (normal operation)

  • 1 = on (standby operation)

Mode

Request

Response

Example

Get

aXGMUT!

a value CR LF

→ 0XGMUT!
← 00

Set

aXGMUT value!

a value CR LF

→ 0XGMUT+1!
← 01

Configure Fixed Mounting Angle#

Override measured forward angle with a fixed value (degrees). Changing this parameter will affect the reported velocity as cosine correction behaviour will be changed. Use this parameter only during tow-tank testing. Set 0 to use real measured angle. The accepted value range for fixed angle is 0 - 89.

Mode

Request

Response

Example

Get

aXGFIX!

a value CR LF

→ 0XGFIX!
← 00

Set

aXGFIX value!

a value CR LF

→ 0XGFIX+1!
← 01

Enable Wi-Fi#

Enable or disable the Wi-Fi hotspot. If automatic SDI-12 sleep is enabled, use aXGLWU! to keep the instrument awake while connecting to the hotspot. aXGWEN! is also accepted as an alias of aXGWFE!:

  • 0 = disabled

  • 1 = enabled

Mode

Request

Response

Example

Get

aXGWFE!

a value CR LF

→ 0XGWFE!
← 00

Set

aXGWFE value!

a value CR LF

→ 0XGWFE+1!
← 01

Set Wi-Fi Password#

Change the Wi-Fi password. This parameter is write-only. The password can contain only letters, numbers, and dash or dot character. Other characters cannot be used in the password if it is changed via SDI-12. It must contain 8 to 16 characters. The response is a1 on success or a0 for an invalid password; an invalid password leaves the existing password unchanged. The hotspot restarts when an active password is changed.

Mode

Request

Response

Example

Set

aXGWFP value!

a 1 CR LF

→ 0XGWFP+NewPassword!
← 01

Show Data on Error#

Continue reporting velocity data even when angle errors are detected.

  • 0 = clear velocity on error (send 0 as velocity instead of the measured value)

  • 1 = keep velocity

Mode

Request

Response

Example

Get

aXGSDE!

a value CR LF

→ 0XGSDE!
← 00

Set

aXGSDE value!

a value CR LF

→ 0XGSDE+1!
← 01

Perform Soft Reset#

Restarts the device firmware. All settings are retained (stored in non-volatile memory). The device will be unresponsive for a few seconds after issuing this command.

Request

Response

Example

aXGRST!

a CR LF

→ 0XGRST!
← 0

Reset DFP#

Clears all accumulated DFP history data. Use this after a significant change in site conditions or sensor placement.

Request

Response

Example

aXGRDP!

a CR LF

→ 0XGRDP!
← 0

Factory Reset#

Restores all settings to their factory defaults and restarts the device. This is irreversible.

Request

Response

Example

aXGFAC!

a CR LF

→ 0XGFAC!
← 0

Totalizer Reset#

Resets the accumulated total volume to zero.

Request

Response

Example

aXGRTL!

a CR LF

→ 0XGRTL!
← 0

Set Staff Gauge Reading#

Takes current reading from the staff gage to automatically adjust the radar height parameter according to the given value and current measurement of the distance to water surface. The radar height measurement unit set by aXGRHU! is used. The accepted reading is echoed with its sign. The height adjustment is applied after the acknowledgment, once the device is awake. Invalid input returns aERR. This command is write-only.

Request

Response

Example

aXGSSG value!

a signed_value CR LF

→ 0XGSSG+12.221!
← 0+12.221

Wake Up#

This command wakes the device from SDI-12 sleep mode and keeps it awake for approximately 1 minute.

Use this command when the automatic SDI-12 sleep mode is enabled (set with aXGCON+0!) and temporary access to the device is required. While awake, RS-232 and RS-485/Modbus interfaces remain active, allowing a connection to be established with the PC configuration application. After the timeout period expires, the device automatically returns to sleep mode if no further activity is detected.

Request

Response

Example

aXGLWU!

a CR LF

→ 0XGLWU!
← 0