
V1.1
Manual TBS09S
SDI-12 Master to Modbus Slave Converter
© 2014 Tekbox Digital Solutions
50/11 Truong Son, F2 | Q. Tan Binh | Ho Chi Minh City | Tel +84 (83)5471340 | E-mail office@tekbox.net| www.tekbox.net
The TBS09S is a converter to connect to a SDI-12 sensors to Modbus. It can connect multiple
sdi12 sensors in parallel by setting the corresponding address.
Features
▪ SDI-12 master to Modbus slave
▪ Multiple sensors can be connected
▪ SDI-12 Standard V1.3
▪ Highly configurable
▪ Switched sensor supply voltage output
▪ 6 - 16V supply voltage
▪ 7mA current consumption when active
▪ Less than 100µA idle current
▪ Operating Temperature Range:
- 40°C … + 80°C
Target Applications
▪ SDI-12 sensor networks
TBS09S SDI-12 master to Modbus slave converter

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
Contents
1 INTRODUCTION 3
2 CONNECTIONS 3
3 MEASUREMENT 4
3.1 GENERAL CONFIGURATION COMMANDS 4
3.2 MEASUREMENT COMMANDS 5
3.2.1 Send measurement command to sdi12 sensors: 5
3.2.2 Send Data command to sdi12 sensors: 7
3.2.3 Modbus master get data from TBS09S: 8
4 SDI-12 10
5 SUPPORTED SDI-12 COMMANDS 10
6 HISTORY 11
Tables
Table 4 – History 11
Figures
Figure 2 – TBS09S terminals 3
Figure 4 – TBS09DR jumpers 4

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
1 Introduction
The TBS09S is a converter to connect one or multiple sdi12 sensors to a modbus device such as a data logger
or telemetry unit.
User will use it when they got RTU support modbus and they want using it to read data of sdi12 sensors.
2 Connections
RS485 Side, from left to right:
TX+ output (or half duplex)
TX- output (or half duplex)
RX+ input
RX- input
Ground
12V, switched sensor supply voltage
SDI-12 Side, from left to right:
Cable shield
Ground
SDI-12 Data line
SDI-12 Supply voltage
Figure 1 – TBS09S terminals
4 Pin terminal block:
CON1 – SDI-12 Interface
Shield: connect to the shield of the SDI-12 cable or leave it unconnected; shield and ground are
internally connected together
Ground: connect to the GND wire of the SDI-12 cable
SDI-12 data: connect to the data wire of the SDI-12 cable
SDI-12 Power: connect to the positive supply voltage wire of the SDI-12 cable;
6 Pin terminal block:

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
CON2 – Power supply & RS485 (Modbus) interface
TX+, connect to RX+ of the Modbus Sensor; half duplex
TX-, connect to RX- of the Modbus Sensor; half duplex
RX+, connect to TX+ of the Modbus Sensor
RX-, connect to RX- of the Modbus Sensor
Ground, connected to the GND of the SDI-12 supply for TBS09S
+12V, supply output for the Modbus sensor. It is connected to the SDI-12 supply line, with a high side
FET switch and a 700mA fuse in between. The switch can either be controlled by SDI-12 (ON-time
determined by the warm-up time setting) or it can be configured to be permanently on.
Default J4 and J5 jumpered - Modbus terminated with 120Ω
Default J3 jumpered – half duplex
Figure 2 – TBS09S jumpers
3 Measurement
3.1 General configuration commands
TBS09S is default with baurate: 19200, Parity: None = 0
Modbus slave address : 1
Modbus slave settings
Slave Address Register: 0xB000

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
Modbus Slave(TBS09S) response
Modbus address: 0x01 -> 0xFF
3.2 Measurement commands
When user want read data from sdi12 sensors, please following 3 steps:
3.2.1 Send measurement command to sdi12 sensors:
TBS09S will send measurement command to sdi12 sensor: aM!...aM9, aMC!…aMC9!, aC!..aC9!, aCC!..aCC9!
Register map:

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
Modbus Slave(TBS09S) response
30 – sdi12 sensor
address
TBS09S support total 62 sdi12 sensors. Data Lo byte is hex value of sensor address(‘0’ = 0x30, ‘1’ = 0x31……)
Read time and number measurement:
After send measurement command, user can read : ttt - the specified time, nn - the number of measurement
values the sensor will make and return in response to one or more subsequent D commands
Register map:
ZZ is the hex value of sensor address, base on ASCII
Modbus command:
Modbus Slave(TBS09S) response

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
Data response is 4 bytes, 2 bytes - the specified time + 2 bytes - the number of measurement values
3.2.2 Send Data command to sdi12 sensors:
TBS09S will send data command to sdi12 sensor: aD0!...aD9!
Register map:
Modbus Slave(TBS09S) response
30 – sdi12 sensor
address

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
3.2.3 Modbus master get data from TBS09S:
After send sommand aMx! and aDx! to sdi12 sensors, TBS09 will store 10 sensors from 0 to 9 to REGISTER
DATA 0 to 9
Sdi12 data format will be:
a+d0+d1+d2+d3+d4+d5+d6+d7+d8+d9 (maximum)
TBS09 will use 2 Registers = 4 bytes to store each data with floating format.
Register map:
ZZ is the hex value of sensor address, base on ASCII
Modbus command:
Modbus Slave(TBS09S) response

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
Error Check (LRC or
CRC) - B8
This example read data from temperature sdi12 sensor.
Data 0 is floating format with 4 bytes = 0x41, 0xCF, 0x1E, 0xB8 = 25.89 (degree celsius)
Float to hex convert online: https://www.h-schmidt.net/FloatConverter/IEEE754.html

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
4 SDI-12
SDI-12 is a standard for interfacing data recorders with microprocessor-based sensors. SDI-12 stands for
serial/digital interface at 1200 baud. It can connect multiple sensors with a single data recorder on one cable. It
supports up to 60 meter cable between a sensor and a data logger.
The SDI-12 standard is prepared by
SDI-12 Support Group
(Technical Committee)
165 East 500 South
River Heights, Utah
435-752-4200
435-752-1691 (FAX)
http://www.sdi-12.org
The latest standard is version V1.3 which dates from July 18th, 2005. The standard is available on the website of
the SDI-12 Support Group.
More information on SDI-12 is presented in chapter 3.
5 Supported SDI-12 Commands
Following standard SDI-12 commands are supported:
Start Measurement aM!
Start Measurement and Request CRC aMC!
Additional Measurements aM1! … aM9!
Additional Measurements and Request CRC aMC1 ! ... aMC9!
Start Concurrent Measurement aC!
Start Concurrent Measurement and Request CRC aCC!
Additional Concurrent Measurements aC1! … aC9!
Additional Concurrent Measurements and Request CRC aCC1 ! ... aCC9!
Send Data aD0! … aD9!
Example – controlling the soil moimoisture/temperature Sensor:
https://www.sdi-12products.com/collections/sensors/products/sdi-12-soil-moisture-temperature-probe-tbsmp02

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
[TX] - 01 06 00 11 00 30 D9 DB master send 0M1! to sensor
[RX] - 01 06 00 00 00 30 89 DE TBS09S response ACK
[TX] - 01 06 00 D0 00 30 88 27 master send 0D0! to sensor
[RX] - 01 06 00 00 00 30 89 DE TBS09S response ACK
[TX] - 01 04 30 00 00 02 7E CB master read 1
st
parameter(moisture)
[RX] - 01 04 04 41 2D 99 99 8B FF TBS09S response data = 41,2D,99,99 =10.85
[TX] - 01 04 30 01 00 02 2F 0B master read 2ndparameter(temperature)
[RX] - 01 04 04 41 DB 70 A4 F8 FF TBS09S response data = 41,DB,70,A4 = 27.43
Example above is measurement sdi12 moisture/temperature probe with addressed 0, modbus sensor is
addressed 1.
Command to get data is: 0M1! and wait 1s to send 0D0! to get humidity+ temperature with floating fomat.
6 History