SDI-12 measurements

The SDI-12 protocol supports the SDI-12 commands listed in SDI-12 commands.

NOTE:

The SnowVue 10 needs to be powered for at least 1.5 s before it can receive an SDI‑12 command.

The different commands are entered as options in the SDI-12 recorder instruction. If the SnowVue 10 is unable to detect a proper echo for a measurement, the sensor will return a 0 for the distance-to-target value.

SDI-12 commands

SDI-121 command Values returned
or function (units)

Response
time

aM!, aC! Distance (m) 5 s typical,
20 s maximum
aM1!, aC1!
  1. Distance (m)
  2. Quality number
5 s typical,
20 s maximum
aM2!, aC2!
  1. Distance (m)
  2. Reference temperature (° C)2
5 s typical,
20 s maximum
aM3!, aC3!
  1. Distance
  2. Quality number
  3. Reference temperature
    (° C)2
5 s typical,
20 s maximum
aM4!, aC4!
  1. Snow depth (m)
  2. Quality number
  3. Reference temperature
    (° C)2
5 s typical,
20 s maximum
aM9!, aC9!
  1. Reference temperature (° C)2
  2. Internal temperature (° C)3
  3. Internal RH (%)3
  4. Pitch (° )
  5. Roll (° )
  6. Supply voltage (V)
  7. Resonant frequency (kHz).
    Should be 40 to 60 kHz.
  8. Alert flag
    0 = good
    1 = transducer outside of normal operating range
3 s maximum
aR3! Returns the CPU temperature
(° C)
 
aI!

a14CampbellSnowVU10 SN=nnnnn

SDI-12 address: a
SDI-12 version: 14
vendor: Campbell
model: SnowVU10

SN = Serial number (5 digits)

 

aV!

  1. Operating system (OS) version
  2. Hardware version
  3. Watchdog errors
  4. Uptime (s)

 

?! SDI-12 address  
aAb!

where

b = new address

Change address command  
aXRM! Returns the distance to ground setting, in meters; it returns four decimal places  

aXWM+D.DD!

where

D.DD = distance in meters

Extended command that sets the distance-to-ground parameter, in meters, in the SnowVue 10; the distance must be no more than four decimal places  
aXRT! Returns the reference temperature (° C)2, which is a value that remains the same unless power is cycled or a new temperature value is sent; the default value on power up is 0 °C.  

aXWT+CC.C!

where

CC.C = temperature in °C

Sets reference temperature (° C)2, when having the SnowVue 10 apply temperature compensation internally.  

aXLOADOS rrrrr SNOWVUE_nnn.xobj!

where

rrrrr= baud rate

SNOWVUE_nnn.xobj = OS name

Sends the new OS to the sensor; refer to Updating the operation system (OS) using XLOADOS SDI-12 command

 

1a is the SDI-12 address. In the SDI12Recorder() CRBasic instruction, the command parameter does not include the SDI-12 address because the address is a separate parameter.

2The reference temperature is the temperature value used to temperature compensate the distance measurement. This temperature value is provided by an external temperature sensor. Refer to Temperature compensation for more information.

3The circuit board has a built-in temperature/RH sensor that monitors the sensor environmental conditions. The RH is helpful for customers to determine when they need to perform maintenance on the sensor and replace the desiccant. The RH sensor is neither replaceable nor calibratable.

The Campbell Scientific data logger follows the SDI-12 protocol and pauses its operation after sending the M! command then waits until either it receives a response from the sensor, or the sensor timeout expires. Because of the datalogger functionality for this command, it is recommended in measurement scans of 20 seconds or more.

The C! command follows the same pattern as the M! command with the exception that it does not require the data logger to pause its operation until the values are ready. Rather, the data logger picks up the data with the D! command on the next pass through the program. Another measurement request is then sent so data is ready on the next scan.