This manual was prepared for the current sensor firmware release at the time of the manual publication. The manual has been thoroughly edited and is believed to be reliable. Acclima assumes no liability for inaccuracies. Errata may be published on our website or when deemed necessary by Acclima. Acclima reserves the right to change any specification(s) without notice.
You can learn more about Acclima’s products at acclima-me.com or email questions to [email protected].
The Series SDI-12 moisture sensor is a Digital Time Domain Transmissometer that measures the permittivity of soils by determining the propagation time of an electromagnetic wave transmitted along a waveguide through the soil. The absolute moisture content of the soil is calculated from the permittivity using the Topp equation. The soil moisture sensor can be commanded to produce both the bulk permittivity and the moisture content of the soil.
The SDI-12 sensor implements commands that comply with versions 1.0, 1.1, 1.2, 1.3 and 1.4 of the SDI-12 specifications. All commands require for full compliance of the version 1.3 specifications are implemented in the SDI-12 sensor. However, the ‘additional measurements’ commands in the SDI-12 specification are meaningless to the Acclima SDI-12 sensors, since the permittivity, moisture, conductivity, and temperature measurements are all required and all made with every single measurement. Hence the response for all of these additional measurements commands is “a<CR><LF>” as required by the SDI-12 specification. The sensor ignores unimplemented commands outside those require by the SDI-12 specification. There is no response to them.
Additional ‘Extended Commands’ that are not innumerate here, are incorporated by Acclima for digitized waveform dumps and factory calibration settings and readings.
Command | Function | Sensor Response |
?! | Address Query | a Note: Only one device can be connected to the SDI-12 port when this command is used. |
a! | Acknowledge Active | a |
aAb! | Change Address | b |
aC! aCC! | Start Concurrent Measurement Start Concurrent Measurement- Request CRC | a00104 Measurement takes one second. Four values are returned. |
aC1! . aC9! | Start Additional Concurrent Measurement | a00000 No data to be provided. |
aCC1! . acc9! | Start Additional Concurrent Measurement – Request CRC | a00000 No data to be provided. |
aD0! | Get First 4 Data Items in response to a Measurement command: VWC, Soil Temp., Soil Permittivity, Soil EC Get the response from a Verify command | Asppp.ppsTT.skk.kksee.eppp.pp is the water content (%) TT. TT is the soil temp (C) kk.kk is the soil relative permittivity ee.e is the soil EC (dS/m). n+a n is the verifying results |
al! | Send Identification | aSSVVVVVVPPPPPPcccxx…xx a13Acclima0030316.2xx…xx ss= SDI-12 version 1.3 (2 ch) v= Vendor ID Acclima (8 ch) p= Product ID (6 ch) c= Product Version (3 ch) xx…xx= Serial Number (13 ch) |
aM! aMC! | Start Non- Concurrent Measurement Start Non- Concurrent Measurement – Request CRC | a0014 Measurement takes one second and returns four values. a Sensor returns a Service Request after measurement is made. The data can be retrieved using a aD0! command. |
aM! . aM9! aMC1! . aMC9! | Additional Measurements Additional Measurements – Request CRC | a0000 The SDI-12 sensor does not require the use of this command. If the command is received the sensor reports “no data” to be returned. |
aR0! . aR9! | Continuous Measurement | a The SDI-12 sensor does not use this command and responds with no data. |
aV! | Start Verification | a0031 One data item will be returned after three seconds The data item will be the verification code requested by this command. a The sensor returns a service request after the measurement is made. The data can be retrieved using a aD0! Command. |
If more than one device is wired to the SDI-12 port you will need to assure that they all are set up with unique addresses. If you are not sure you can connect them one at a time and use the “Address Query” command “?” to read the addresses. Only one device can be connected to the SDI-12 port when using this command. The device will respond with its address.
To change the address of a device use the “Change Address” command. The syntax is “aAn!”, where “a” is the present address “A” is the Set Sensor Address command and “n” is the new address. The device will return the new address. For example, if 0A4! Is transmitted, the sensor address will be re-programmed to 4 and the sensor will return “4”.
To verify that the SDI-12 sensor is responding to its address use the “Send Identification” command “al!”. The SDI-12 sensor will respond with “a13Acclima…” In the response the “a” is the device address, “13” represents Version 1.3 the SDI-12 standard and the “Acclima” is the vendor ID.
Data Item Request | Command | Response Example | Units |
Volumetric Water Content | aD0! | +25.03 | % |
Soil Temperature | aD0! | +/-32.16 | C |
Bulk Relative Permittivity | aD0! | +32.13 | — |
Soil Electric Conductivity | aD0! | +1.6 | dS/m |
The format of the returned data is:
a+25.03+32.16+32.13+1.6<CR><LF>
Note: The returned data is always preceded by the device address a. Each data value is preceded by a sign. No units are returned but are assumed known by the user. The units are as shown in the table above. Each return data string is terminated by carriage return and line feed characters.
Example 1: Reading sensors using non-concurrent commands:
This first example shows how a data recorder would obtain 4 data items from a sensor that has address 5: (1) Volumetric Water Content, (2) Soil Temperature, (3) Soil Permittivity or Dielectric Constant and (4) Soil Electric Conductivity. In this example, the data recorder will operate in the non-concurrent mode – that is, it will not spend any time with other sensors until this sensor has completed its measurements and has reported them.
The first command from the data recorder is:
5M!
This command is called the “Start Measurement” command. The “5” in this command is the address of the sensor you wish to respond to the command. It will cause the SDI-12 sensor to begin the process of taking a set of measurements. The sensor will immediately respond to this command as follows:
50014<CR><LF>
This response starts with the address of the sensor (5), then continues with the number of seconds that are required to take the readings, 001 (1 second), then finished with the number of data items that will be returned with each measurement request (4). Every response from the sensor is terminated with a carriage return and line feed characters. After the sensor has finished its measurements it transmits a service request to the recorder.
5<CR><LF>
The service request is just the address of the sensor. The recorder then sends a command to get the first set of data items: 5D0!
The items requested are: volumetric water content, soil temperature, soil permittivity, and soil electrical conductivity. Upon receiving this command, the sensor responds with:
5+25.03+32.16+32.13+1.6<CR><LF>
The first 5 is the sensor address. The remaining string contains the requested data items – each preceded by a “+” or “-“ sign.
Example 2: Reading sensor using concurrent commands:
This second example shows how a data recorder would obtain the same four data items from a sensor using concurrent commands. In this example, the data recorder will operate in the concurrent mode – that is, it will be free to service other sensors while the sensor with address 5 is making its measurements. Concurrent measurement commands use C instead of M in the command. Thus, the command to start concurrent measurement is:
5C!
The sensor immediately responds with:
500104
With concurrent commands, the sensor does not provide a service request after the measurements have been made. The recorder relies on the timing information provided by the sensor and will not request data until the time interval has expired – in this case, one second.
The recorder then requests the four data items exactly in the same manner as with non-concurrent readings.
So far, all Start Measurement commands that we have discussed have requested data wherein no error checking is done to verify the correct reception of the data by the recorder. The SDI-12 specification provides for error checking by using an additional command character “C” with the Start Measurement command. Thus when the commands,
aMC! or aCC!
are transmitted to the sensor, the sensor appends a CRC code to the end of the returned data. This code is generated from the data in such a manner that if the data changes in the transmission the change can be detected in the recorder. If the recorder experiences such corruption in the data, it will repeat the data request automatically.
The SDI-12 specification requires a special command for the purpose of verifying that the sensor is working properly. Acclima’s implementation of that command is as follows:
1. The recorder sends out the verify command:
aV!
2. Upon receiving the verify command, the sensor will respond with:
atttn
Where “a” is the sensor address, “ttt” is the time required to make verification readings, and “n” is the number of data items that will be returned. For this command ttt = 003 and n=1.
3. The sensor takes three full sets of the corrected propagation times from the three readings are saved and compared. If any of these propagation times are out range or if they differ by an unacceptable amount an error is acknowledged. The sensor then sends out a service request.
a
4. The recorder issue a read data command D0:
aD0!
Problem | Possible Resolution |
No Data Return by the SDI-12 sensor | Check the sensor connections to the data recorder. The white wire connects to the SDI-12 port Ground terminal. The blue wire connects to the SDI-12 port Data terminal. The red wire connects to the SDI-12 port V+ terminal or to the positive terminal of an external battery. If an external battery is used, the negative terminal of the battery connects to the ground terminal of the SDI-12 port. |
Unreadable data | Ensure that there are no address conflicts. Disconnect all other devices connected to the recorder. Ensure that the sensor address is used in the commands you are using. |
Sensor not communicating | Check connections Check Voltage Check address Review syntax |
Unreadable data/parity errors | Ensure that there are no address conflicts. Disconnect all other devices and try to read again. Ensure that the cable length to the sensor does not exceed 200 feet. |
Physical Characteristics: | |
Dimensions (without cable) | 20 cm x 5.33 cm x 1.5 cm |
Weight (with 3 meter cable) | 220g |
Composition | Type 304 stainless steel, crystalline-epoxy, PVC (insulation) |
Cable | 3 conductor, 22 Ga PVC sheath, 10 meters |
Environmental Characteristics: | |
Operating Temp Range | 1˚ C to 50˚ C for VWC (no ice), -20˚ C to 50˚ C for the other data |
Storage Temp Range | -20˚ C to 75˚ C |
Lightning & Surge Protection | 6kV @ 3kA, 8/50us |
Operating Characteristics: | |
Volumetric Water Content | 0 to 100% |
Resolution | 0.06% VWC |
Absolute VWC Accuracy | +/- 2% typical |
VWC Soil EC Stability | +/- 1% of full scale 0 to 5 dS/m BEC |
Temp Reporting Accuracy | +/-2˚C from +1˚C to +50˚C (ACC-SEN-SDI) |
EC Reporting Accuracy | +/- 0.2 dS/m 0 to 5 dS/m BEC |
Architectural Characteristics: | |
Technology | Waveform Digitizing Time Domain Transmissometer |
Effective Acquisition Bandwidth | 200 Giga-sample/sec. |
Propagation Time Resolution | 5 ps |
Waveform Propagation Resolution | 1.5 mm in air, 0.16 mm in water |
Waveguide Length | 30 cm |
Permittivity to VWC Calculation | Modified Dielectric Mixing Model |
Propagation Waveform Bandwidth | >2 GHz |
Communications Characteristics: | |
Communication Protocol | SDI-12 Revision 1.4 |
Maximum Cable Length | 60 meters |
Power Characteristics: | |
Operating Voltage Range | 6 – 15 VDC |
Listening/Sleep Mode Current | 60 uA at 50˚ C |
Communications Current | 6 mA typical, 8 mA max |
Read Moisture Comm Time | 425 ms total for each read cycle |
Moisture Sense Current | 84 mA at 12 VDC input 98 mA at 8 VDC input 110 mA at 6 VDC input |
Moisture Sense Time | 450 ms each sensing operation |
Copyright Acclima ©, Inc. All rights reserved.