Turn any Analog Sensor into an SDI-12 Compliant Sensor

Note - this product is deprecated - Use this instead: SDI-12-Sensor-Translator (24 bit)

SDI-12 Analog Sensor Translator (16 Bit, 3 Channels)

Fully SDI-12 Compliant

3 Analog Sensor Inputs with 16 Bit Sampling

Voltage or Current Loop Sensor Versions

Optimized for Low Power

Rugged, Easy to Mount Case (Optional)


    • Fully SDI-12 Version 1.3 Compliant.
    • 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 160uA in sleep mode.
    • Has the ability to power sensors only when sampling.
    • 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.


  • Ultra-fast prototyping of SDI-12 Sensor networks.
  • Increasing time to market implementation of sensors.
  • Protocol bridging.

SDI-12 Analog Sensor Translator Details

The SDI-12 Protocol 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 to Sensor Solution

Vegetronix has solved the problem of interfacing sensors to the SDI-12 bus by creating a small SDI12 Sensor Translator board which contains all of the necessary functionality. The SDI-12 Sensor Translator 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 Translator handles all of the communication, and power down features of the SDI-12 protocol.

Figure 1 shows a connection diagram for utilizing the SDI-12 Sensor Translator. Single sided or differential outputs of up to 3 different sensors are tied to the inputs of SDI-12 Sensor Translator. The Translator contains connection points for power, ground and the SDI-12 data line.

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.

Highly Precise 16-Bit Digital Sampling

The translator uses a highly accurate 16 bit analog to digital converter to convert analog data from the 3 channels to digital values.

Customizable for Current Loop Inputs

Many analog sensors have current loop outputs, which have the advantage of being loop powered, and do not suffer signal degradation with long cable runs. The SDI-12 Analog Sensor Translator is normally configured with voltage reading inputs, however, it can be customized to read current output sensors, by changing the input resistor network on the boards. We have instructions below on how to do this, or we can do it for you here at our factory. Just contact us before placing your order to let us know, that you would like this customization option.

Optimized for Low Power Operation

The Translator is extremely low power with only a 160uA current drain when it is sleeping, and it provides sensor power control, so that the sensor only receives power during a measurement cycle. This is useful for creating battery powered sensors.

Diagnostic LED for Fast Troubleshooting

An LED indicator makes initial system configuration and debug easy. The LED will light whenever it receives an SDI-12 command. The LED can be enabled or disabled with an extended SDI-12 X command.

Fully SDI-12 Compliant

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

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

Customizable Calibration

Each of the measurements from the 3 input channels can be scaled and offset with user supplied calibration coefficients. This allows you to automatically convert the data, from a voltage into meaningful units.

Internal Temperature Sensor

In addition to all these features the SDI-12 Sensor Translator has an on board temperature sensor, that you can calibrate to your application.

Other SDI-12 Solutions

We carry other useful SDI-12 protocol products that make it easy to get up and running with SDI-12.

We also carry an USB to SDI-12 translator which may be of interest to you. This will turn any computer with a USB port into a SDI-12 compatible data logger.

If you're new to SDI-12, and want a simple, easy to learn, evaluation system to speed up your learning SDI-12, we recommend getting both an SDI-12 Sensor Translator, and an SDI-12 USB translator which can talk to each other.

We also carry a next generation 24-bit, 4 channel SDI-12 analog sensor translator. This more advanced board costs more, but is smaller, more precise, has an additional channel, lower power, and has individual power outputs to each sensor.

Optional - Easy to Mount Enclosure

To keep the cost low, we sell the board by itself, or you can optionally pair it with an enclosure. The enclosure is made of 3D printed PLA. The top part is of the case is transparent, enabling you to see the internal LED. The bottom part has flanges with mounting holes, making it easy to mount.

You can purchase the case from us for minimal cost, or 3D print your own enclosure, by downloading the SDI-TRANS-SNS16-CASE STL files and printing the case yourself.

Vegetronix Modular Building Blocks

We take a modular approach with our product lines. Each product is simple and low cost, and will easily interface to all of our other products. This approach allows you to build any type of application from our basic set of components.

We Want you to be Happy

Ordering is easy and low risk. Since we build our own products at our factory, all of our products are in stock. When you place your order from our website, it will ship same day from our factory, and you'll have it in your hands in just a couple of days. We ship to nearly EVERY COUNTRY in the world.

If you aren't amazed and delighted by your new SDI-12 Analog Sensor Translator, return it for a refund within 30 days.

SDI12 Sensor Translator Board Case

SDI12 Sensor Translator with Case. (Case is sold separately)

SDI-12 Connection Diagram

Figure 1 - SDI12 Sensor Translator Connection Diagram.

Pricing and Order Information

We ship to nearly EVERY COUNTRY on the planet, directly to you from our factory.

99% of orders ship same day.

Part Number Description Price Purchase
SDI-TRANS-SENSOR16 SDI-12 Sensor Translator (16 bit) Not For Sale
SDI-TRANS-SENS-CASE SDI-12 Sensor Translator Case Not For Sale

SDI-12 Sensor Translator 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 0 to +6V (The upper positive voltage is configurable by changing input resistor divider.) The sensor input does not read negative voltages.
Internal ADC input range 600mV
Input Resistance Nominally 100K (Configurable by changing input resistor divider)
Sleep Current 160uA
ADC resolution 16 bit
Number of Sensor Inputs 3
Sensor Input Types: Differential
Single Sided
Supported SDI-12 commands aM!, aMC!, aC!, aCC!, aD0!, aI!, aV!, ?!, a!

See extended SDI commands below.

Connections Screwless terminal block

SDI-12 Sensor Translator 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 1:

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:

T 0XSET VAR[1,0]=3!

T 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.

Example 2:

The Vegetronix THERM200 can be easily converted into a fully compliant SDI-12 sensor, returning temperature in degrees Celsius or Fahrenheit by configuring the translator with the appropriate coefficients.

For Celsius for channel 0 send these commands:

T 0XSET VAR[0,0]=-40!

T 0XSET VAR[0,1]=41.67!

For Fahrenheit :

T 0XSET VAR[0,0]=-40!

T 0XSET VAR[0,1]=75.006!

To verify that you've set the coefficients correctly use this sequence of commands:

T 0XLOAD VAR[0,0]!


T 0XLOAD VAR[0,1]!


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 Translator "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 Translator.

Response to 0V!

"0+2.0\r\n" ,



0I! This returns the standard SDI Identification command string response. The first 2 characters after the address are the SDI-12 version, the next 14 are manufacturer and product information, and the last 3 are the software version. The version field was not implemented prior to version 2.2. 013VEGETRONIXEN162.2\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 parameter, 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:


Possible errors:




0XW[ms]! This sets the sensor warm up time. The VSENSOR output will turn on for this amount of time before the inputs are sample. The parameter is in milliseconds. For example 0XW500! sets the warm up time to 0.5 seconds To retrieve the current value, invoke the command without any parameters. Then invoke the 0XGET! command to retrieve the value. This command was implemented in V2.2 and above. See the 0XI! command above to get the version "0XACK\r\n"

Sensor Translator Input configurations

Sensors can be connected to the Translator 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 0.6V, and so a resister divider network must be used to divide down the voltage input, if the sensor voltage is greater than 0.6V. Figures 2 and 3, 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.

This online resistor divider calculator is useful for computing resistor values: http://www.daycounter.com/Calculators/Voltage-Divider-Calculator.phtml

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

Figure 2: Differential input configuration.

Figure 3: Single ended input configuration.

0 to 20mA Current Sensing

The SDI-12 Translator can also be configured to turn any 0 to 20mA sensor into a fully SDI-12 compliant device. Figure 4 shows how to configure the input resistors. The calibration coefficients should be configured as follows so that the sensor returns it's measurements in milliamps:

out= 5*x+0.

You would send the following transparent commands to the Translator to calibrate it, if the current sensor was on channel 0.



TRANS 0XSET VAR[0,2]=50!

The 20 ohm resistors allow currents to be measured from 0 to 30mA.

SDI-12 0 to 20mA Current Sensing Input Circuit

Figure 4: Input Configuration for 0 to 20mA current sensing.

Internal Temperature Sensor

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

Terminal Block Connections


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


5 POWER IN (5VDC to 12VDC)

Board Dimensions

How to Get Started with the SDI-12 Sensor Translator

The best way to try out the SDI-12 Sensor Translator 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 Translator inputs, connect the Translator to your SDI compliant data logger, and start retrieving data from your sensor.

Buy Now