SDI-12 is a low data rate protocol designed for agricultural and scientific sensors (SDI-12 website). Each sensor can have an address between 0 and 9 (inclusive), and allows for up to 10 different 'measurements'. Each of these measurements can actually return a number of different values. For example, a soil moisture probe may have a soil moisture and soil temperature measurements, and each of these will return a number of values, each being taken at a certain point along the probe.


Sensors will usually require external power sources. The SensorData can supply either 6v (directly from the battery supply), or a boosted 12v supply. 6v is preferred, since it uses slightly less power. This can be configured with the "Vout Boost Enable" jumper on the circuit board.


The parameters allow for up to 5 different measurements to be take, with up to 20 values being returned from each measurement (depending on conversion method). Please see the integration documentation for more information.


Config App Setup Example:


Scheduler setup: in this screenshot, Shedule 1 is setup to run every 30 min. Item 1 is set to SDI12 Measurement 1, and Item 2 is set to SDI12 Measurement 2. Those measurements are setup below.


SDI12 Measurement setup: 

In both examples below:

  • A power up delay of 2 seconds is shown. This is how long the probe is powered for before attempting to communicate with it. This varies by probe manufacturer. 1 second is often fine. Some Aquacheck probes require 5 seconds.
  • The soil moisture and soil temperature are read from a single probe. The probe address is 0.
  • Soil Moisture is Type 0 usually.
  • Measurement count refers to how many sensors are in the probe. 6 in this example. 
  • Data Conversion should be chosen according to what you need from the data - there are precision and size trade offs. Refer to the integration document for more information on the specifics of each data conversion type. The data conversions chosen in the examples below are discussed.
  1. In the first screenshot example, soil temperature is being read as measurement type 1. The Data Conversions are called "Soil Moisture" and "Soil Temperature". These two options pack 10 readings into a message, with a maximum of 20 readings per measurement type (2 messages of 10 readings per measurement). Each reading is compressed into 1 byte (256 values). The soil moisture values will have 0.5% precision, and a range of -5 to 122.5%. The soil temperature values will have 0.5 degrees C precision, and a range of -40 to 87.5 degrees C. See the integration documents for the specifics on how to convert them. 
  2. In the second screenshot example, soil temperature is being read as measurement type 1, and soil temperature as measurement type 2. The Data Conversion is called "Int16"  for each measurement type. This option packs 5 readings into a message. A total of 10 readings is allowed per measurement type (2 messages per measurement). Each reading is compressed into 2 bytes (2^16 values). The units depend on what is being read. In the case of soil moisture, the values will have 0.01 unit precision, and a range of -327.68 to +327.67 units. See the integration documents for the specifics on how to convert them. Note the use of Measurement Type 2 for soil temperature in this case. Some probes have their temperature value in type 2.