-
-
Notifications
You must be signed in to change notification settings - Fork 100
Notes on SDI 12, Specification v1.3
SDI-12 is a communications protocol that uses a single data wire to communicate with up to 62 uniquely addressed sensors. So long as each sensor supports SDI-12, mixed sensor types can appear on the same data bus. Each address is a single character. The valid ranges are 0-9, a-z, and A-Z. Only the datalogger can initiate communications on the data bus.
It does so by pulling the data line into a 5v state for at least 12 milliseconds to wake up all the sensors, before returning the line into a 0v state for 8 milliseconds announce an outgoing command. The command contains both the action to be taken, and the address of the device who should respond. If there is a sensor on the bus with that address, it is responsible for responding to the command. Sensors should ignore commands that were not issued to them, and should return to a sleep state until the datalogger again issues the wakeup sequence.
Physical Connections:
- 1 data line (0v - 5.5v)
- 1 12v power line (9.6v - 16v)
- 1 ground line
Baud Rate:
1200 bits per second
Data Frame Format:
10 bits per data frame
- 1 start bit
- 7 data bits (least significant bit first)
- 1 even parity bit
- 1 stop bit
Data Line: SDI-12 communication uses a single bi-directional data line with three-state, inverse logic.
LINE CONDITION | BINARY STATE | VOLTAGE RANGE
-----------------------------------------------
marking 1 -0.5 to 1.0 volts
spacing 0 3.5 to 5.5 volts
transition undefined 1.0 to 3.5 volts
_____ _____ _____ _____ _____ spacing
5v | | | | | | | | | |
| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | transition
Ov___| |_____| |_____| |_____| |_____| |___ marking
For more information, and for a list of commands and responses, please see SDI-12.org, official site of the SDI-12 Support Group.