PiezoPressure Water Pressure Sensor – Configuration in LTX Logger

Background: How Does the Sensor Measure?

The PiezoPressure is a piezo pressure sensor. Its internal sensor model determines which reference pressure is used:

Sensor Mode Code Reference Description
PR Gauge Atmospheric pressure Capillary tube in the cable exposes the sensor element to atmospheric pressure
PA / PAA Absolute Vacuum Sealed reference volume, measures total pressure

The raw value of both types is delivered internally in Bar.

Note – Sensor connection: The pressure sensor can be operated in SDI-12 mode or I2C mode. In both cases the internal processing of the measured values is identical. In SDI-12 mode the sensor is read by external electronics that deliver the absolute pressure. In I2C mode the sensor is connected directly to the LTX Logger, and the firmware reads the pressure value over the I2C bus.


Physical Conversion

1 Bar = 10.197 m water column (fresh water)

Basis: g = 9.806 m/s², ρ = 1000 kg/m³


Case 1: Absolute-Measuring Sensor (Type PA / PAA)

Problem: The sensor measures the full absolute pressure:

p_absolute = p_water + p_atmosphere

The atmospheric pressure must therefore be subtracted. The firmware handles this automatically when the src_index parameter is set accordingly.

Internal Processing

// src_index >= 100: barometric compensation active
chan_value.floatval = cache_value[0].floatval       // absolute pressure in Bar
                     - (baro_vals.pressure / 1000.0); // air pressure mBar -> Bar
// result: net water pressure in Bar

fval *= pchan->factor;  // Bar -> metres of water column
fval -= pchan->offset;  // optional zero-point correction

The internal barometric sensor (MS5607) delivers baro_vals.pressure in mBar; dividing by 1000.0 converts to Bar.

Side effect: When src_index >= 100 is detected, the firmware sets an internal flag. The barometric sensor is then queried on every measurement cycle – even if it has no dedicated logging channel of its own.

Customer Configuration – Channel Parameters

Parameter Value Description
physkan PK_MULTI_SDI12 (SDI-12) or PK_MULTI_KELLERLD (I2C) Bus type
src_index 100 100 + cache index 0 (pressure) → enables barometric compensation
factor 10.197 Conversion Bar → metres of water column
offset 0.0 Set only if a fixed zero-point offset is required
unit mH2O Display unit

Prerequisite: The device must be equipped with a barometric sensor (MS5607) (hardware flag HK_FLAGS & 16). If the barometric sensor fails, the channel returns an error instead of a measurement value.


Case 2: Gauge-Measuring Sensor (Type PR, Capillary Tube in Cable)

No compensation required: The capillary tube in the sensor cable connects the back of the sensor element to the open air. The sensor therefore automatically measures only the overpressure of the water relative to the atmosphere:

p_gauge = p_absolute − p_atmosphere

The value in Bar already corresponds directly to the water pressure.

Internal Processing

// src_index < 100: direct value from cache, no compensation
chan_value.floatval = cache_value[0].floatval;  // gauge pressure in Bar

fval *= pchan->factor;  // Bar -> metres of water column
fval -= pchan->offset;  // optional zero-point correction

Customer Configuration – Channel Parameters

Parameter Value Description
physkan PK_MULTI_SDI12 (SDI-12) or PK_MULTI_KELLERLD (I2C) Bus type
src_index 0 Cache index 0 (pressure), direct – no compensation
factor 10.197 Conversion Bar → metres of water column
offset 0.0 Set only if a zero-point correction is required
unit mH2O Display unit

Note: No barometric hardware is required for a gauge sensor. The sensor must however be physically connected correctly (capillary tube free, not kinked or blocked).


Summary: src_index as a Switch

src_index value Meaning
0 … (MAX_CACHE − 1) Direct raw value from measurement – no barometric compensation
100 … (100 + MAX_CACHE − 1) Barometrically compensated value: raw value − air pressure [Bar]

The offset of 100 maps to the same SDI-12/I2C cache slot as the direct value: src_index = 100 corresponds to cache_value[0] (pressure), src_index = 101 to cache_value[1], etc.