×Latest blog post: Understand the advantages/disadvantages of SDI12 compared to Modbus and NMEA-0183

SDI-12 Sensor Identification

SDI-12 Sensor Identification

Identify what SDI-12 sensor is connected to the bus

The SDI-12 address query request is ?! (? asks who is connected, ! is the command terminator).  A valid response is in the form of a<CR><LF> where a is the address of the sensor connected.  This was introduced in Version 1.2 of the standard as a basic command, for more details refer to www.sdi12.com/sdi12-basic-command-set/.  An example of this is:

  • ?!
  • 0

This shows that a sensor with address 0 is connected.  Note that only one sensor may be connected to the bus or a the response may be corrupted.

Identify who that sensor is

To find out more about the sensor, the SDI-12 send identification command can be used, which is aI! (where a is the address of the sensor, in our example 0, I is the send identification command and ! is the command terminator).  A valid response is in the form of allccccccccmmmmmmvvvxxx…xx.  Wow… what does all that mean?  Let’s break it down:

  • a is the address of the sensor connected, 0 in the example used above
  • ll is the version number of the SDI-12 standard supported by the instrument.  Version 1.3 will be 13, while Version 1.4 will be 14 and so on
  • cccccccc is an 8 character string to identify the manufacturer.  Sensors manufactured by Measurement Science use this domain name SDI12.CO which is used to make it easy for people to find us and refers back to SDI12.COM.  Other manufacturers use their own identity string and this page will provide some that are known to help with the identification
  • mmmmmm is a 6 character string to identify the sensor model number.  As with the manufacturer identification, this page provides examples below
  • vvv is a 3 character string to identify the sensor version
  • xxx…xx are optional characters (up to 13) for custom information like a sensor serial number.
  • <CR><LF> terminates the response

SDI12 identification examples

This list can help understand what the response means with several examples.  Or you may be searching the internet trying to match a string to a supplier so this list can help point you in the right direction.  These may be updated from time to time

  • 013NRSYSINC1000001.2101  NR Systems, Inc.  Refers to the SDI-12 verifier.  www.sdi-12-verifier.com
  • 013SOLINSTM20101.0001017687  Solinst Levellogger (identified by M20).  10 is the hardware identifier.  1.000 is the firmware version.  1017687 is the serial number.  Note that the 7 digit Manufacturer response is non-standard
  • 013IN-SITURDO1000000069295  In-Situ Inc RDO Pro dissolved oxygen sensor.  100 is the firmware version where 100 = 1.00 and 0000069295 is the serial number
  • 013VEGETRONIXEN162.2\R\N  Vegetronix (10 char, non standard)
  • 013_ADCON__TR02__001023054478901  ADCON (note the use of leading and trailing _ characters to fit the designated 8 characters), TR02 __temperature sensor, 001 sensor version, followed by the serial number
  • 013KellerAGPR36X0020000000000001 Keller AG PR36X pressure sensor, version 002, with a 13 character serial number
  • 013EP100G-08 01151108151545 EnviroPro soil moisture probe (non-standard)
  • 013Apogee  SI-4mmvvvxx…xx Apogee SI-4 sensor
  • 013CAMPBELLSR50A2.0nnnnn Campbell Scientific SR50 sonic ranging sensor
  • 013Sea-Bird37SMP-2.312345PO Sea-Bird 37SMP 2.3 version firmware, followed by the serial number
  • 013CAMPBELLCS230 1.0 SN:XXXXX Campbell Scientific CS230 temperature profile

SDI12 Identification Command implementation summary

As you can see, there are some companies implementing non-standard responses for the company name to work around the 8 character definition.  You should always refer back to the product manual for the SDI12 sensor identification command implementation by each product

Tags: , , , , ,

No comments yet.

Leave a Reply