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.
1 Bar = 10.197 m water column (fresh water)
Basis: g = 9.806 m/s², ρ = 1000 kg/m³
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.
// 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 correctionThe 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.
| 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.
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.
// 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| 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).
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.