SDI-12 data recorders and sensors communicate by an exchange of ASCII characters on the data line. The data recorder sends a break to wake up the sensors on the data line. A break is continuous spacing on the data line for at least 12 milliseconds. The data recorder then sends a command. The sensor, in turn, returns the appropriate response. Each command is for a specific sensor. 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. When a data recorder tells a sensor to start its measurement procedure, the recorder does not communicate with any other sensor until the data collection from the first sensor is complete.
A typical recorder/sensor measurement sequence proceeds in the following order:
- The data recorder wakes all sensors on the SDI-12 bus with a break.
- The recorder transmits a command to a specific, addressed sensor, instructing it to make a measurement.
- The addressed sensor responds within 15.0 ms returning the maximum time until the measurement data is ready and the number of data values it returns.
- If the measurement is immediately available, the recorder transmits a command to the sensor instructing it to return the measurement(s). If the measurement is not ready, the data recorder waits for the sensor to send a request to the recorder, which indicates that the data is ready. The recorder then transmits a command to get the data.
- The sensor responds, returning one or more measurements.