METER BARO Module Integrator Guide
Sensor Description
The BARO Module is a precise barometer designed to compensate for matric potential measurements from TEROS 31 and TEROS 32 tensiometers. It can function as a standalone sensor to compensate one or more tensiometers at a measuring site, or as a digital/analog converter. The module can convert SDI-12 signals into an analog voltage output (available on the 8-pin version). When combined with the TEROS 32, it can serve as a replacement for the T8 tensiometer. For detailed measurement descriptions, refer to the BARO Module User Manual.
Figure 1: A diagram illustrating the BARO Module.
Applications
- Barometric pressure measurement
- Barometric compensation of matric potential measurements
- Digital/analog converter for directly connected TEROS 31 and TEROS 32 tensiometers
- Suitable for connecting TEROS 31 and TEROS 32 to non-METER data loggers
Advantages
- Digital sensor communicates multiple measurements over a serial interface
- Requires low input voltage
- Low-power design suitable for battery-operated data loggers
- Supports SDI-12, Modbus RTU, or tensioLINK serial communications protocols
- Analog output is supported (8-pin version only)
Specifications
Measurement Specifications
Barometric Pressure
Parameter | Value |
---|---|
Range | +65 kPa to +105 kPa |
Resolution | ± 0.0012 kPa |
Accuracy | ± 0.05 kPa |
Temperature
Parameter | Value |
---|---|
Range | -30 to +60 °C |
Resolution | ± 0.01 °C |
Accuracy | ± 0.5 °C |
Communication Specifications
Output
- Analog Output (8-pin connector only): 0 to 2,000 mV (default), 0 to 1,000 mV (configurable with tensioVIEW)
- Digital Output: SDI-12 communications protocol, tensioLINK communication protocol, Modbus RTU communication protocol
Data Logger Compatibility
- Analog Output: Compatible with data acquisition systems capable of switched 3.6- to 28-VDC excitation and single-ended or differential voltage measurement with at least 12-bit resolution.
- Digital Output: Compatible with data acquisition systems capable of 3.6- to 28-VDC excitation and RS-485 Modbus or SDI-12 communication.
Physical Specifications
- Dimensions: Length: 80 mm (3.15 in), Width: 29 mm (1.14 in), Height: 30 mm (1.18 in)
- Cable Length: 1.5 m (standard). Contact Customer Support for nonstandard lengths.
- Connector Types: 4-pin and 8-pin M12 plug connector or stripped and tinned wires
Compliance
- EM ISO/IEC 17050:2010 (CE Mark)
Equivalent Circuit and Connection Types
Refer to Figure 2 for connecting the BARO Module to a data logger. Figure 2 illustrates a low-impedance variant of the recommended SDI-12 specification.
Figure 2: An equivalent circuit diagram showing components L1, R1, R2, and C1 connected between GND and DATA lines.
Wiring Connections M12 4-pin
Figure 3: M12 4-pin output connector diagram. Shows a 4-pin male plug with pin assignments: 1 (brown wire) for Vin (Supply +3.6...+28.0 VDC), 2 (white wire) for RS485-A/SDI-12, 3 (blue wire) for GND (Supply minus), and 4 (black wire) for RS485-B.
Figure 4: Wiring diagram for the SDI-12 4-pin connector. Illustrates connections from a Data Logger to Power (brown wire), Data output + (white wire), Ground (blue wire), and Data output (black wire), labeled as Excitation, Digital in, and Ground respectively.
Wiring Connections M12 8-pin
Figure 6: M12 8-pin output connector diagram. Shows an 8-pin male plug with pin assignments: 1 (white wire) for Vin, 2 (brown wire) for GND, 3 (green wire) for A-OUT+1, 4 (yellow wire) for A-OUT-, 5 (grey wire) for digital OUT, 6 (pink wire) for RS485-A/SDI-12, and 7 (blue wire) for RS485-B.
Figure 7: Wiring diagram for the SDI-12 8-pin connector. Illustrates connections from a Data Logger to Power (white wire), Data output + (pink wire), Ground (brown wire), and Data output - (blue wire), labeled as Excitation, Digital in SDI-12, and Ground respectively.
Figure 5: Wiring diagram for the RS-485 4-pin connector. Shows connections from a Data Logger to Power (brown wire), Data output (white wire), Data output (black wire), Ground (blue wire), labeled as Excitation, Digital in RS-485 A (+), Digital in RS-485 B (-), and Ground respectively.
Figure 8: Wiring diagram for the RS-485 8-pin connector. Shows connections from a Data Logger to Power (white wire), Data output (pink wire), Data output (blue wire), Ground (brown wire), labeled as Excitation, Digital in RS-485 A (+), Digital in RS-485 B (-), and Ground respectively.
Precautions
METER sensors are manufactured to high standards, but misuse, inadequate protection, or improper installation can damage the sensor and potentially void the warranty. Before integrating sensors into a network, follow recommended installation instructions and implement safeguards against damaging interference.
Sensor Communications
METER digital sensors feature a serial interface with shared receive and transmit signals for communication. The sensor supports SDI-12, tensioLINK, and Modbus over RS-485 (two-wire). The sensor automatically detects the interface and protocol in use. Each protocol has its own advantages and challenges. For assistance with protocol selection for your application, contact METER Customer Support.
SDI-12 Introduction
SDI-12 is a standard protocol for interfacing sensors with data loggers and data acquisition equipment. Multiple sensors with unique addresses can share a common 3-wire bus (power, ground, data). Two-way communication is achieved by sharing the data line for transmit and receive. Sensor measurements are triggered by protocol commands. The SDI-12 protocol requires a unique alphanumeric sensor address for each sensor on the bus, allowing the data logger to send commands and receive readings from specific sensors.
Download the SDI-12 Specification v1.3 for more information.
RS-485 Introduction
RS-485 is a robust physical bus connection supporting multiple devices on a single bus, suitable for long cable distances in harsh environments. Unlike SDI-12, RS-485 uses two dedicated wires for the data signal, offering better immunity to interference and allowing for longer cables. Supply currents do not influence the data signal.
See Wikipedia for more details on RS-485.
tensioLINK RS-485 Introduction
tensioLINK is a fast, reliable, proprietary serial communications protocol operating over the RS-485 interface. It is used for reading data and configuring device features. METER provides a tensioLINK PC USB converter and software for direct communication, data retrieval, and firmware updates. Contact Customer Support for more information on tensioLINK.
Modbus RTU RS-485 Introduction
Modbus RTU is a common serial communications protocol used by Programmable Logic Controllers (PLCs) and data loggers to communicate with digital devices over an RS-485 physical connection. This combination allows for fast and reliable data transfer for numerous sensors on a single serial bus. For more Modbus information, visit Wikipedia and modbus.org.
Interfacing the Sensor to a Computer
The sensor's serial signals and protocols require specific interface hardware to connect with computer serial ports or USB-to-serial adapters. While various SDI-12 interface adapters are available, METER has not tested them and cannot provide recommendations. METER data loggers and the ZSC handheld device can serve as computer-to-sensor interfaces for on-demand measurements.
The BARO Module can also be configured and measured via tensioLINK using METER's tensioVIEW software, available for download at meter.ly/software. Connecting the BARO Module to a computer requires a tensioLINK USB converter and a suitable adapter cable.
METER SDI-12 Implementation
When a BARO Module is connected to a TEROS 31 or 32 tensiometer, both barometric air pressure and the TEROS tensiometer's absolute pressure can be read via Modbus. The compensated matrix potential is also readable via Modbus.
METER sensors utilize a low-impedance variant of the SDI-12 standard sensor circuit (Figure 2). During power-up, sensors provide diagnostic information and should not be communicated with until this phase is complete. Post-power-up, sensors are fully compatible with all commands in the SDI-12 Specification v1.3, excluding continuous measurement commands (aR0-aR9 and aRC0-aRC9). M, R, and C command implementations are detailed on pages 8-9. By default, all METER sensors are shipped with SDI-12 address 0.
Sensor Bus Considerations
SDI-12 sensor buses require regular checks, upkeep, and troubleshooting. If one sensor fails, it can affect the entire bus, even if other sensors are functioning. Power cycling the SDI-12 bus is acceptable when a sensor is malfunctioning. METER SDI-12 sensors can be power-cycled and read at desired intervals, or powered continuously with commands sent as needed, based on communication timing. Bus configuration effectiveness is influenced by many factors.
Visit metergroup.com for articles and virtual seminars with more information.
SDI-12 Configuration
Table 1 lists the SDI-12 communication configuration parameters.
Parameter | Value |
---|---|
Baud Rate | 1,200 |
Start Bits | 1 |
Data Bits | 7 (LSB first) |
Parity Bits | 1 (even) |
Stop Bits | 1 |
Logic | Inverted (active low) |
SDI-12 Timing
All SDI-12 commands and responses must follow the format shown in Figure 9. Both commands and responses are preceded by an address and terminated by a carriage return and line feed (
Figure 9: Example SDI-12 transmission of the character '1' (0x31), illustrating the START bit, data bits D0 through D6, the EP bit, and the STOP bit.
Figure 10: Example data logger and sensor communication timing for SDI-12. It shows a command sequence with a break (at least 12 ms) and marking (at least 8.33 ms) from the data logger, followed by a response from the sensor which must occur within 15 ms, including a marking period. A maximum response time is also indicated.
Common SDI-12 Commands
This section details common SDI-12 commands and their corresponding responses from METER sensors.
Identification Command (aI!)
The Identification command retrieves detailed information about a connected sensor. Example 1 shows the command and response format.
Example 1:
Parameter | Fixed Character Length | Description |
---|---|---|
1I! | 3 | Data logger command. Request for information from sensor address 1. |
1 | 1 | Sensor address. Prepended to all responses, indicating the responding sensor. |
13 | 2 | Indicates support for SDI-12 Specification v1.3. |
METER | 8 | Vendor identification string (METER and three spaces for all METER sensors). |
BARO | 6 | Sensor model string, specific to the sensor type (e.g., BARO for the BARO Module). |
100 | 3 | Sensor version. Divided by 100, this indicates the METER sensor version (e.g., 100 is version 1.00). |
BARO-00001 | variable | Sensor serial number. This is a variable length field and may be omitted for older sensors. |
Change Address Command (aAB!)
This command changes a sensor's address. All other commands support a wildcard character for the target sensor address, except for this command. METER sensors default to address 0. Supported addresses are alphanumeric (A-Z, 0-9). Example 2 shows a command and response.
Example 2:
Parameter | Fixed Character Length | Description |
---|---|---|
1A0! | 4 | Data logger command. Request to change sensor address from 1 to 0. |
0 | 1 | New sensor address. Subsequent commands will use this address. |
Address Query Command (?!)
The Address Query command helps identify sensors on a bus when disconnected. Sending it on a connected bus causes contention. Example 3 shows a command and response.
Example 3:
Parameter | Fixed Character Length | Description |
---|---|---|
?! | 2 | Data logger command. Request for a response from any sensor on the data line. |
0 | 1 | Sensor address. Returns the address of the currently connected sensor. |
Command Implementation
The following tables detail Measurement (M), Continuous (R), and Concurrent (C) commands, along with subsequent Data (D) commands where applicable.
Measurement Commands Implementation
Measurement (M) commands target a single sensor on the SDI-12 bus. Subsequent Data (D) commands are required to retrieve sensor output data before communicating with another sensor.
Refer to Table 2 for command sequence and Table 5 for response parameters.
Command | Response |
---|---|
aM! | aD0! |
This command reports average, accumulated, or maximum values.
Comments:
- When a slave TEROS tensiometer is connected,
<Press>
indicates the barometric compensated tensiometer output. - If the BARO module is used standalone,
<Press>
returns the current barometric pressure.
Note: Measurement and data commands should be used sequentially. After a measurement command is processed, the sensor sends a service request (<CR><LF>
) indicating readiness. Wait for the service request or the specified time (ttt
seconds) before sending data commands. See the SDI-12 Specifications v1.3 document for details.
Concurrent Measurement Commands Implementation
Concurrent Measurement (C) commands are typically used with bus-connected sensors. For this sensor, C commands deviate slightly: send the C command, wait for the specified time indicated in the response, then use D commands to read the response before communicating with another sensor.
Refer to Table 3 for command sequence and Table 5 for response parameters.
Command | Response |
---|---|
aC! | aD0! |
This command reports instantaneous values.
Note: Measurement and data commands should be used sequentially. After a measurement command is processed, the sensor sends a service request (<CR><LF>
) indicating readiness. Wait for the service request or the specified time (ttt
seconds) before sending data commands. See the SDI-12 Specifications v1.3 document for details.
Continuous Measurement Commands Implementation
Continuous Measurement (R) commands trigger a sensor measurement and return data automatically upon completion, without requiring a D command. aR0!
may return more characters than the SDI-12 Specification v1.3's 75-character limit; a buffer of at least 116 characters is recommended.
Refer to Table 4 for command sequence and Table 5 for response parameters.
Command | Response |
---|---|
aR0! | a<Press><Temp>+<Status> |
This command reports average, accumulated, or maximum values.
Note: This command does not adhere to SDI-12 response timing. Refer to METER SDI-12 Implementation for more information.
Parameters
Table 5 lists parameters, units, and descriptions for BARO Module command responses.
Parameter | Unit | Description |
---|---|---|
a | - | Positive or negative sign denoting the sign of the next value. |
n | - | SDI-12 address. |
nn | - | Number of measurements (fixed width of 1). |
ttt | - | Number of measurements with leading zero if necessary (fixed width of 2). |
<TAB> | - | Maximum time measurement will take (fixed width of 3). |
<CR> | - | Tab character. |
<LF> | - | Carriage return character. |
<sensorType> | - | Line feed character. ASCII character denoting the sensor type (for BARO Module, the character is ';'). |
<Checksum> | - | METER serial checksum. |
<CRC> | - | METER 6-bit CRC. |
METER Modbus RTU Serial Implementation
Modbus over Serial Line is available in ASCII and RTU versions; BARO Modules exclusively use RTU mode. Table 6 details Modbus RTU communication and configuration.
Parameter | Value |
---|---|
Baud Rate (bps) | 9,600 bps |
Start Bits | 1 |
Data Bits | 8 (LSB first) |
Parity Bits | 0 (none) |
Stop Bits | 1 |
Logic | Standard (active high) |
Figure 11: RTU Message Frame. Shows the structure of a Modbus RTU message, including Start, Address, Function, Data, CRC Check, and End fields. Each byte has 10 bits (including Start and Stop bits) and is sent from LSB to MBS.
The Modbus application layer defines three categories of Function codes: Public, User-defined, and Reserved. Well-defined public function codes for BARO Modules are documented by the Modbus Organization, Inc. (modbus.org).
For reliable interaction with a Modbus Master, a minimum 50ms delay is required between Modbus commands on the RS-485 bus. A device-specific timeout is also needed for each Modbus query, generally 100ms is sufficient for most BARO Module operations.
Supported Modbus Functions
Function Code | Action | Description |
---|---|---|
01 | Read coil/port status | Reads the on/off status of discrete output(s) in the ModBusSlave. |
02 | Read input status | Reads the on/off status of discrete input(s) in the ModBusSlave. |
03 | Read holding registers | Reads the binary contents of holding register(s) in the ModBusSlave. |
04 | Read input registers | Reads the binary contents of input register(s) in the ModBusSlave. |
05 | Force single coil/port | Forces a single coil/port in the ModBusSlave to either on or off. |
06 | Write single register | Writes a value into a holding register in the ModBusSlave. |
15 | Force multiple coils/ports | Forces multiple coils/ports in the ModBusSlave to either on or off. |
16 | Write multiple registers | Writes values into a series of holding registers in the ModBusSlave. |
Data Representation and Register Tables
Data values (setpoints, parameters, measurements) are exchanged using 16-bit and 32-bit holding or input registers with 4-digit addresses. Address spaces are organized into blocks for different data types, following the Modbus Enron implementation approach. Table 8 outlines the main tables and their access rights, while Table 9 describes sub-blocks for data type representation.
Note: Some dataloggers use addressing with a +1 offset, which can cause confusion. If issues arise when implementing your Modbus program, try testing different register offsets and data types. Using a known value, like temperature, for testing is recommended.
Table 8 Modbus Primary Tables
Register Number | Table Type | Access | Description |
---|---|---|---|
1xxx | Discrete Output Coils | Read/Write | On/off status or setup flags for the sensor. |
2xxx | Discrete Input Contacts | Read | Sensor status flags. |
3xxx | Analog Input Registers | Read | Numerical input variables from the sensor (actual sensor measurements). |
4xxx | Analog Output Holding Registers | Read/Write | Numerical output variables for the sensor (parameters, setpoint values, calibrations, etc.). |
For example, register 3001 is the first analog input register, storing a 16-bit unsigned integer representing the first sensor measurement parameter (pressure). Register 3201 stores the same parameter as a 32-bit floating-point value in Big-Endian format. Register 3301 stores it in Little-Endian format if supported. Virtual Sub-Blocks simplify Modbus queries.
Table 9 Modbus Virtual Sub-Blocks
Register Number | Access | Size | Sub-Table Data Type |
---|---|---|---|
X001-X099 | Read/Write | 16 bit | signed integer |
X101-X199 | Read/Write | 16 bit | unsigned integer |
X201-X299 | Read/Write | 32 bit | float Big-Endian format |
X301-X399 | Read/Write | 32 bit | float Little-Endian format |
Register Mapping
Table 10 Holding Registers
Register | Detailed Description | Data Type | Allowed Range | Unit | Comments | |
---|---|---|---|---|---|---|
41000 (41001*) | Modbus Slave Address | Read or update the sensor's modbus address | Unsigned integer | 1-247 | - | Updated slave address will be stored in the sensor's nonvolatile memory. |
Table 11 BARO Module Input Registers
Register | Detailed Description | Data Type | Allowed Range | Unit | Comments | |
---|---|---|---|---|---|---|
32000 (32001*) | Soil Water Potential | Compensated tension value from tensiometer | 32 bit floating Big-Endian | -200 to +200 | kPa | Tensiometer needs to be connected as slave. |
32001 (32002*) | Soil Temperature | High accuracy on board temperature measurement | 32 bit floating Big-Endian | -30 to +60 | degC | Tensiometer needs to be connected as slave. |
32002 (32003*) | Sensor Supply Voltage | On board supply voltage measurement | 32 bit floating Big-Endian | -10 to +60 | Volts | - |
32003 (32004*) | BARO Status | Binary status | 32 bit floating Big-Endian | 0/1 | - | - |
32004 (32005*) | BARO Reference Pressure | On board high accuracy barometric pressure measurement | 32 bit floating Big-Endian | +70 to +120 | kPa | - |
32005 (32006*) | Tensiometer Pressure | Absolute pressure value from tensiometer | 32 bit floating Big-Endian | -200 to +200 | kPa | Tensiometer needs to be connected as slave. |
32006 (32007*) | BARO Temperature | On board temperature measurement | 32 bit floating Big-Endian | -30 to +60 | degC | - |
*Some devices report Modbus register addresses with an offset of +1. This is true for Campbell Scientific Loggers and Dataker loggers. In order to read the desired register, use the number in the parenthesis.
Example Using a CR6 Datalogger and Modbus RTU
The Campbell Scientific, Inc. CR6 Measurement and Control Datalogger supports Modbus master and Modbus slave communication for integrating Modbus SCADA networks. The Modbus communications protocol facilitates data exchange between computer/HMI software, instruments (RTUs), and Modbus-compatible sensors. The CR6 datalogger operates exclusively in RTU mode. In a Modbus network, each slave device requires a unique address, ranging from 1 to 247; address 0 is reserved for universal broadcasts.
Programming a CR6 Datalogger
Programs for CR6 (and CR1000) Loggers are written in CRBasic, a language developed by Campbell Scientific. It is a high-level language designed for flexible and powerful instruction of data loggers for measurements, data processing, and communication. Programs can be created using ShortCut Software or edited with the CRBasic Editor, both available for download from the official Campbell Scientific website (www.campbellsci.com).
- ShortCut Software: www.campbellsci.com/shortcut
- CRBasic Editor: www.campbellsci.com/crbasiceditor
A typical CRBasic program for a Modbus application includes:
- Variable and constant declarations (public or private)
- Unit declarations
- Configuration parameters
- Data table declarations
- Logger initializations
- Scan (Main Loop) for querying sensors
- Function calls to Data Tables
CR6 Logger RS-485 Connection Interface
The CR6's universal (U) terminal offers 12 channels for connecting to various sensor types, enhancing application compatibility and reducing the need for external peripherals. The Modbus CR6 connection utilizes the RS-485 (A/B) interface on terminals (C1-C2) and (C3-C4), supporting Half-Duplex and Full-Duplex modes. The BARO Module's serial interface for this example connects to the (C1-C2) terminals.
Figure 12: RS-485 Interface wiring diagram. Shows connections between CR6 terminals (G, RG, C4, C3, C2, C1, G, 12V, G, SW2, SW1, G) and the BARO Module wires (white, black, brown, blue), indicating their respective functions like RS-485-A, RS-485-B, Power, and Ground.
After assigning a unique Modbus Slave Address to the BARO Module, it can be wired to the CR6 logger as per Figure 12. Connect the white and black wires to C1 and C2 respectively, the brown wire to 12V (V+), and the blue wire to G (GND). For program-controlled power supply, connect the brown wire directly to one of the SW12 terminals (switched 12V outputs).
Example Programs
CR6 Datalogger Example Program:
'CR6 Datalogger
'This is an example program for reading out the BARO Module using a CR6
'datalogger and the MODBUS RTU protocol over a RS-485 Bus. The measurement values polled
'from the sensor will be: Water Potential, Temperature and the Sensor's Supply voltage.
'This program runs a scan every 1 Min and stores the data in a 1 Min table.
'Declare Constants
Const BARO_MB_ADDR = 1 'BARO Module Modbus slave address
Const MB_TIMEOUT = 10 '100ms timeout (value * 0.01sec)
Const MB_RETRIES = 1
'Declare Public Variables
Public PTemp, batt_volt
Public mb_statu 'variable used for monitoring the modbus poll status
'Declare Private Variables
Dim Measurements(3) 'array for holding the measurements values read from the sensor
'Aliases used for the BARO Module
Alias Measurements(1) = Water Potential
Alias Measurements(2) = Temperature
Alias Measurements(3) = Sensor Supply
'Declare Units
Units Water Potential = kPa
Units Temperature = degC
Units Sensor supply = V
'Define Data Tables.
DataTable (BARO_Table, 1, -1) 'Set table size to # of records, or -1 to auto allocate.
DataInterval (0, 1, Min, 10) 'Store new measurement every 1 Minute
Minimum (1, batt_volt, FP2, False, False)
Sample (1, PTemp, FP2)
Sample (3, Measurements(), IEEE4)
EndTable
'Main Program
BeginProg
SW12(2,1) 'Switch ON the SW12-2 terminal (if used for powering the BARO Module)
SerialOpen(ComC1, 9600, 3, 2, 50, 4) 'open communication port, setup for RS-485
'(BaudRate, Format, TXDelay, BufferSize, CommsMode)
Scan (1, Min, 0, 0) 'Scan Loop
PanelTemp (PTemp, 15000)
Battery (batt_volt)
'Read multiple Input registers from the BARO Module using a 32 bit float, Big-Endian
'format
ModbusMaster(mb_statu, ComC1, 9600, BARO_MB_ADDR, 4, Measurements(), 32001, 3, MB_RETRIES, MB_
TIMEOUT, 2)
'Call Output Tables
CallTable BARO_Table
NextScan
EndProg
Customer Support
North America: Customer service representatives are available Monday through Friday, 7:00 am to 5:00 pm Pacific time for questions, problems, or feedback.
- Email: support.environment@metergroup.com, sales.environment@metergroup.com
- Phone: +1.509.332.5600
- Fax: +1.509.332.5158
- Website: metergroup.com
Europe: Customer service representatives are available Monday through Friday, 8:00 to 17:00 Central European time for questions, problems, or feedback.
- Email: support.europe@metergroup.com, sales.europe@metergroup.com
- Phone: +49 89 12 66 52 0
- Fax: +49 89 12 66 52 20
- Website: metergroup.com
When contacting METER by email, please include:
- Name
- Address
- Phone number
- Email address
- Instrument serial number
- Description of problem
Note: For products purchased through a distributor, please contact the distributor directly for assistance.
Revision History
Revision | Date | Compatible Firmware | Description |
---|---|---|---|
00 | 6.2025 | 1.10 | Initial release |