SDI-12

SDI-12 (Serial Digital Interface at 1200 baud) is an asynchronous serial communications protocol for intelligent sensors that monitor environment data. These instruments are typically low-power (12 volts), are used at remote locations, and usually communicate with a data logger or other data acquisition device. The protocol follows a client-server configuration whereby a data logger (SDI-12 recorder) requests data from the intelligent sensors (SDI-12 sensors), each identified with a unique address.

History
The first version of SDI-12 was released in 1988. It was designed by a coalition which included the U.S. Geological Survey's Hydrologic Instrumentation Facility (HIF) and a group of private companies.

The SDI-12 Specification is maintained by a non-profit corporation called the SDI-12 Support Group. The most recent upgrade (Version 1.4) was made in July 2016. The most recent version of the SDI-12 Specification (still version 1.4, with clarifications), was released on January 30, 2021.

Versions
Version 1.0 was released in 1988.

Version 1.1 was released in 1994. It was a rewriting and clarification of the version 1.0 specification under contract by Michael Jablonski's NR Systems (dba Natural Resources Consulting) and Campbell Scientific.

Version 1.2 was released in April 1996. It defines:
 * Concurrent measurement command (aC!)
 * Address query command (?!)
 * Change address command (aAb!)
 * Continuous measurement command (aR[0-9]!)

Version 1.3 was released in April 2000 and defines:
 * Cyclic Redundancy Check (CRC) for data validation
 * Electrical interface characteristics such as number of conductors, voltage logic levels and transitions, and line impedance.
 * Communications protocol such as means of establishing contact with a specific address (sensor), the measurement command set, sensor response behavior, byte frame format and allowed characters.
 * Timing requirements such as length of the break condition used to awaken sensors, minimum time between messages and length of time before a sensor enters a low-power state.

Version 1.4 was released in July 2016 and defines:
 * High volume commands (aHA! for ASCII and aHB! for binary format) which allow up to 999 parameters to be returned from a sensor.
 * Metadata Commands (aIM!) which provide meta data information about the measurement, such as the parameter name and units.

Advantages
The specification document describes a number of advantages including


 * Interchangeability of sensors without reprogramming of data acquisition devices
 * Power is supplied to sensors through the interface
 * Ability to implement self-calibration algorithms within the sensor itself and use low-cost EEPROMs for information storage
 * Applicability of training in SDI-12 to a variety of sensors and data recorders

The SDI-12 Specification is in the public domain.

Drawbacks

 * Specific electrical interface (serial data line, ground line, and 12-volt line)
 * Baud rate limited to 1200

Details
Communication occurs over a single data line in half-duplex. The digital addressing system allows an SDI-Recorder to communicate with up to 62 individual sensors. Only the pre-configured sensor matching that address will respond (handshake). Other sensors on the same line will not respond until called and typically stay in "sleep mode" (low power mode), until called.

Electrically the protocol is a three wire digital connection: data, ground and 12 V. The data signal, using 5V logic levels, is similar to RS-232 with the same asynchronous byte encoding. The inline data is human readable as the data is transmitted in ASCII.

All SDI-12 communications are transmitted in ASCII at 1200 baud with 7 data bits and an even parity bit. The standard also specifies a communications protocol that allows sensors to remain in a low-power sleep state until awoken by a serial break signal sent by the master. The first character of each command is a unique sensor address that specifies with which sensor the recorder wants to communicate. Other sensors on the SDI-12 bus ignore the command and return to low-power standby mode. The protocol also specifies a retry mechanism to overcome any data corruption. CRCs were introduced to the SDI-12 protocol with release of version 1.3.

The standard provides guidelines on transient protection and does not require the use of a specific connector.

Applications
The protocol is most commonly supported by hydrographic sensors (level and flow), water quality sensors, meteorological instruments, soil moisture and plant physiology. Less common but also known to be supported are sensors for the measurement of solar radiation, tilt (inclinometers), and other geophysical parameters.