Login   Home Products Services Partners Company Contact  
 





Turn any Sensor into an SDI-12  Compliant Sensor

The SDI-12 Problem

Although SDI-12 is a cryptic hardware and software protocol, it is still a widely used standard interface between environmental sensors and data loggers.  Until now, sensor vendors have had the difficult and costly burden of creating their own SDI-12 solutions from scratch. Because of the many eccentricities of the SDI-12 protocol, it is a difficult task to create a truly compliant SDI-12 sensor interface.

The SDI-12 Sensor Engine

SDI12 Sensor Engine Sample Board

Figure 1 - SDI12 Sensor Engine Sample Board. 
(Custom foot prints available, for large quantity orders.)

Vegetronix has solved the problem of interfacing sensors to the SDI-12 bus by creating a small SDI12 Sensor Engine board which contains all of the necessary functionality. The SDI-12 Sensor Engine powers the sensor, and samples it with a high resolution ADC when it receives a measurement command from an SDI compliant data logger. The SDI-12 Sensor Engine handles all of the communication, and power down features of the SDI-12  protocol.  

Figure 2 shows a connection diagram for utilizing the SDI-12 Sensor Engine.  Single sided or differential outputs of up to 3 different sensors are tied to the inputs of SDI-12 Sensor Engine. In addition, for custom orders,  the SDI12 Engine can sample One-Wire devices such as the Dallas DS18B20 temperature sensor.  The engine contains connection points for power, ground and the SDI-12 data line.  

SDI-12 Connection Diagram

Figure 2 - SDI12 Sensor Engine Connection Diagram.

Because of its small size the sensor can often be incorporated into the sensor housing.  Alternatively it can be used externally.   For sufficiently large quantities, we can provide custom board shapes to fit most any form factor.  

The Engine is extremely low power with only a 10uA current drain when it is sleeping, and it provides sensor power control, so that the sensor only receives power during a measurement cycle. 

All standard SDI-12 commands are supported. In addition, it has extended commands which can be used to calibrate sensor outputs. 

Each of the measurements can be scaled and offset with user supplied calibration coefficients. 

Our engine has been fully tested with the NR Systems SDI-12 Verifier. 

In addition to all these features the SDI-12 Sensor Engine has an on board temperature sensor, that can be fully calibrated to your application. 

Features

  • Fully SDI-12 Version 1.3 Compliant.
  • Quick connect through screwless terminal blocks. 
  • Simultaneously measures up to 3 sensors with 16 bit resolution using a delta sigma ADC.
  • ADC inputs are differential, and can be configured as single sided with a change to the input resistors.
  • A wide range of sensor Voltage inputs can be accepted, by modifying the input resistors. 
  • On board temperature sensor, in addition to the 3 sensor inputs. User must calibrate.
  • Low power operation with power consumption at less than 6 uA in sleep mode.
  • Has the ability to power sensors only when sampling.
  • Potential for interfacing to one wire devices.  (contact us about details.)
  • Wide input voltage range. 
  • Surge protection on sensor inputs. 
  • Each of the measurements can be adjusted with a scaling factor and offset.  (out= scale*V + offset).
  • Uses extended SDI-12 commands to set and retrieve all calibration parameters.

How to Get Started with the SDI-12 Sensor Engine

The best way to try out the SDI-12 Sensor Engine is to order a few samples and connect them to your sensor.  The sample board contains terminal blocks for quick connections.  Merely connect your sensor inputs to the SDI-12 Engine inputs, connect the Engine to your SDI compliant data logger, and start retrieving data from your sensor. Once your are satisfied that the SDI-12 Sensor Engine meets your specifications,  you can purchase the boards with a volume discount. 

SDI-12 Sensor Engine Samples (Quantity < 10) $59.95 USD  

 

Volume Pricing

 
Quantity (units) Price Per Unit (USD)
10- 50 $49.95
51-250 $39.95
251-500 $34.95
501- 1000 $30.95
>1001 Contact us.

 

SDI-12 Sensor Engine Specifications

 
Sensor Protocol SDI-12 Version 1.3
Power Supply Voltage 5.5V to 12V DC
Voltage to Sensor Power supply voltage is switched to the sensor before sampling the sensor. 
Sensor Input Voltage Range Nominally 6V (Configurable by changing input resistor divider)
Internal ADC input range 600mV
Input Resistance Nominally 100K (Configurable by changing input resistor divider)
Sleep Current 6uA
ADC resolution 16 bit
Number of Sensor Inputs 3
Sensor Input Types: Differential
  Single Sided
  One Wire Interface (Custom Orders Only)
Supported SDI-12 commands aM!, aMC!, aC!, aCC!, aD0!, aI!, aV!, ?!, a! 

See extended SDI commands below.

Connections Screwless terminal block

SDI-12 Sensor Engine SDI-12 Command Explanation

For a good background on the SDI-12 protocol see www.sdi-12.org.

The commands assume that the sensor address is 0, but any address could be substituted into the commands below. "\r\n" is carriage return and line feed characters.

Calibration coefficients are modified by extended "X" commands, and are indexed by a 2 dimensional array, where the first zero based index is the measurement index, and the second is the parameter.  

Measurement  Index
Sensor 1 0
Sensor 2 1
Sensor 3 2
Temperature 3

Each measurement has 3 parameters:

Parameter Index Default Value
Offset 0 0.0
scalar 1 1.0
resistor gain 2 (Rs+Rp)/Rp

Example:

If you would like to calibrate the output of the second sensor such that it's voltage is multiplied by 2 and an offset of 3 is added to the result:

out= 2*x+3,

you would use the following two extended commands:

0XSET VAR[1,0]=3!

0XSET VAR[1,1]=2!

Each sensor input has a resistor divider circuit which can be used to divide the input voltage from a sensor.  The maximum input voltage to the ADC is 600mV, so sensor output voltages must be scaled to this result.  See the "Input Configuration" section below.  

SDI-12 Command Table

Command Description Typical Response
?! Returns address of a single sensor on the SDI-12 bus "0\r\n"
0! Ping, returns same address "0\r\n"
0I! Identification string "0VEGETRONIXEN16\r\n"
0V! Verify command. Subsequent 0D0! command will return the version of the Sensor Engine  "00001\r\n"
0M! Begin a measurement. Subsequent 0D0! command will return the 3 measurements and the temperature.  "00034\r\n"
0MC! Begin a measurement and respond with CRC on subsequent 0D0! command. "00034\r\n"
0C! Begin a concurrent measurement. (Same as 0M! command but no service request is issued.) "00034\r\n"
0CC! Begin a concurrent measurement and respond with CRC on subsequent 0D0! command. "00034\r\n"
0D0! Get data is called after a 0M!, 0MC!, 0C!, 0CC!, and 0V! commands.  If called after the 0V command then the single  result is the version number, otherwise it returns 4 results, namely the 3 sensor voltages, and the internal temperature of the engine.   

 

Response to 0V!

"0+2.0\r\n" ,

Otherwise:

"0+1.1+2.2+3.3+25.0\r\n"

0XSET VAR[m,p]=VAL! Set and store one of the calibration coefficients indexed by m,p, where m is the measurement, and n is the paramenter "0XACK\r\n"
0XLOAD VAR[M,N]! Retrieve and store the calibration coefficients indexed by m,p, where m is the measurement, and n is the paramenter, to a string buffer ready to be retrieved by the 0XGET command.  "0XACK\r\n"
0XGET! Retrieve the string buffer that was filled from the previous 0XLOAD command "0X +1.1\r\n"
0XER! Retrieve a string for the last error generated by the use of an X command.  If no error:

"0XOK\r\n"

Possible errors:

"0XER BAD COMMAND\r\n"

"0XER BAD MEASUREMENT INDEX\r\n"

"0XER BAD COEF INDEX\r\n"

Sensor Engine Input configurations

Sensors can be connected to the engine through a screw less terminal block.  Sensors can be differential, or single ended, depending how the input resistors are configured.  The input range to the 16 bit delta sigma converter must be below 1.2V, and so a resister divider network must be used to divide down the voltage input, if the sensor voltage is greater than 1.2V.  Figures 3 and 4, show resistor divider networks for a differential and single ended systems, respectively. Single ended and differential sensors can be mixed on an SDI board.  Just let us know which type and the voltage range, before you order.

 

For the single ended case, where Rp= 10K and Rs=91K the input voltage is divided by 10.1.

Figure 3: Differential input configuration.

Figure 4: Single ended input configuration.

Internal Temperature Sensor

The SDI Sensor Engine has an internal temperature sensor, however for higher accuracy it must be calibrated by the end user

Terminal Block Connections

TB1

PIN DESCRIPTION
1 Sensor Input 1 +
2 Sensor Input 1 -
3 Sensor Input 2 +
4 Sensor Input 2 -
5 Sensor Input 3 +
6 Sensor Input 3 -

 

TB2

PIN DESCRIPTION
1 GND
2 POWER TO SENSOR
3 ONE WIRE
4 SDI_BUS
5 POWER IN (5VDC to 12VDC)
6 GND

 

 

[Employment] [Site Map] [News] [Contact Us] [Third Party Solutions]

Call us now at 801-938-4264  -  502W 9460S. Sandy, UT 84070

© Copyright 2008 Vegetronix.   All rights Reserved.