10 min read

Reverse-Engineering the Acclima TDR-310W’s Pore-Water EC Calculation in Coco Coir

$$
PWEC = \frac{\epsilon_p \sigma_b}
{\epsilon_b - \epsilon_{\sigma b=0}}
$$

I use an Acclima TDR-310W in coco coir to monitor substrate water content and electrical conductivity. The sensor reports several useful quantities directly: volumetric water content, temperature, relative permittivity, bulk electrical conductivity (BEC), and pore-water electrical conductivity (PWEC).

What interested me was that PWEC is not actually a direct measurement. It is a calculated quantity.

Acclima documents that the TDR-310W derives PWEC from BEC and substrate permittivity using the Hilhorst equation:

PWEC=ϵpσbϵb−ϵσb=0

PWEC= (\frac{\epsilon_p\sigma_b} {\epsilon_b-\epsilon_{\sigma b=0}}\)

where:

ϵp=permittivity of the pore water\epsilon_p = \text{permittivity of the pore water} σb=bulk electrical conductivity\sigma_b = \text{bulk electrical conductivity} ϵb=measured bulk relative permittivity\epsilon_b = \text{measured bulk relative permittivity}

and

ϵσb=0\epsilon_{\sigma b=0}

is a fitted parameter representing the substrate permittivity corresponding to zero bulk EC.

The interesting part is that Acclima explicitly says it does not use a constant value for this last term. According to its current indoor-farming guide, the ordinary Hilhorst model behaves badly at low VWC, so Acclima developed an empirical model that changes ϵσb=0\epsilon_{\sigma b=0} as the substrate dries. (Acclima)

The actual empirical equation, however, is not published.

So I decided to see how much of it could be reconstructed from the sensor's own outputs.

Why PWEC needs a correction in the first place

Bulk EC and pore-water EC are different quantities.

BEC is the conductivity of the entire substrate volume sensed by the probe. It depends strongly on how much water is present. If exactly the same nutrient solution is present in progressively drier substrate, BEC generally falls simply because there is less continuous conductive water occupying the sensing volume.

What growers are usually more interested in is approximately:

How conductive is the solution actually occupying the pores?\text{How conductive is the solution actually occupying the pores?}

That is PWEC.

The problem is that converting one into the other becomes increasingly sensitive to substrate water content.

Acclima describes the TDR-310W as being specifically optimized for non-mineral media used in controlled-environment agriculture, including coco coir and rockwool. (Acclima)

Its current documentation also gives a separate cubic calibration for VWC in organic substrates:

VWCc=0.0002VWCn3−0.0087VWCn2+1.3VWCn+3.5VWC_c = 0.0002VWC_n^3 -0.0087VWC_n^2 +1.3VWC_n +3.5

where VWCnVWC_n is native sensor VWC in percent. (Acclima)

PWEC is different. Acclima says that, for most applications, its reported PWEC does not need an additional substrate calibration for mineral soil, rockwool, or organic media. (Acclima)

That strongly suggests that at least part of the moisture compensation is already happening inside the PWEC value returned by the sensor.

My measurements support that conclusion.

The experiment

I left the TDR-310W installed in the same position in a coco-filled container and allowed the substrate to undergo a very long dryback.

The physical sensor is sampled every 30 seconds. My logging system then groups the two samples falling inside each 60-second interval and stores the mean, minimum, maximum, and count.

The complete dataset contains 14,825 one-minute records. Of those, 14,666 intervals contain the normal two samples and were used as the clean analysis dataset. The file starts on August 29 with calibrated VWC around 60%, native VWC around 43.6%, permittivity around 29, and BEC around 179 µS/cm. By the end of the dataset, native VWC is around 20.1%, permittivity around 10.7, and BEC around 53 µS/cm.

Across the clean dataset, the approximate ranges were:

VariableRange
Temperature21.0–24.4 °C
Coco-calibrated VWC60.2–27.7%
Native sensor VWC43.6–20.1%
Relative permittivity29.0–10.65
Bulk EC179–53 µS/cm
Native PWECabout 475–558 µS/cm

An important limitation should be stated immediately: this experiment does not establish the true pore-water EC of the coco.

I did not independently extract root-zone solution and measure its conductivity.

What this experiment can determine extremely well is:

How does the TDR-310W transform its measured variables into its reported PWEC?\boxed{\text{How does the TDR-310W transform its measured variables into its reported PWEC?}}

That is a different question from whether the resulting PWEC is perfectly accurate in absolute terms.

Back-calculating the hidden term

From Hilhorst:

PWEC=ϵpBECP−ϵ0PWEC= \frac{\epsilon_p BEC} {P-\epsilon_0}

where I will use PP for measured relative permittivity and ϵ0\epsilon_0 as shorthand for ϵσb=0\epsilon_{\sigma b=0}.

Rearranging gives:

ϵ0=P−ϵpBECPWEC.\epsilon_0 = P-\frac{\epsilon_p BEC}{PWEC}.

Acclima states that pore-water permittivity is approximately 80 at 20.7 °C and notes that it can be temperature-corrected according to:

ϵp=80.3−0.37(T−20).\epsilon_p=80.3-0.37(T-20).

(Acclima)

Using ϵp=80\epsilon_p=80 as a working assumption, I can therefore calculate the effective ϵ0\epsilon_0 implied by every native TDR-310W reading.

With only the first few percentage points of dryback, it initially looked as though ϵ0\epsilon_0 simply decreased as the coco dried.

The full dataset showed that interpretation was wrong.

The relationship is U-shaped.

At the wet end, effective ϵ0\epsilon_0 is approximately 2.9. It decreases toward roughly 1.94 in the middle of the moisture range, and then rises again as the coco becomes substantially drier.

Representative values look approximately like this:

Calibrated VWCNative VWCPermittivityEffective ϵ0\epsilon_0
~60%~43.5%~28.9~2.9
~55%~40.4%~25.3~2.3
~50%~37.1%~22.2~2.0
~46%~34.2%~19.7~1.94
~40%~29.9%~16.6~2.1
~35%~26%~14.0~2.3
~30%~22%~11.7~2.7
~28%~20.3%~10.7~2.9

That shape is important because it shows why extrapolating from a short section of a dryback is dangerous. With data only between 55 and 60% VWC, a local polynomial fit gave a completely misleading picture of what would happen at lower VWC.

Fourteen thousand observations make the overall shape much harder to mistake.

A surprisingly simple equivalent equation

There is an even cleaner way to analyze the sensor without making any assumption about the value of ϵp\epsilon_p.

Define:

R=BECPWEC.R=\frac{BEC}{PWEC}.

For the TDR-310W data, RR is extraordinarily well described by a quadratic function of measured relative permittivity:

R(P)=−0.081364114+0.018289164P−0.0001468543P2\boxed{ R(P)= -0.081364114 +0.018289164P -0.0001468543P^2 }

This means that an empirical reconstruction of the sensor's PWEC is simply:

PWECreconstructed=BEC−0.081364114+0.018289164P−0.0001468543P2\boxed{ PWEC_{\rm reconstructed} = \frac{BEC} {-0.081364114 +0.018289164P -0.0001468543P^2} }

over the range tested.

On the 14,666 clean one-minute observations, this reconstructed equation produces approximately:

R2=0.999964R^2=0.999964

for the BEC/PWECBEC/PWEC relationship, with a PWEC:

MAE≈0.79  μS/cmMAE\approx0.79\;\mu S/cm

and

RMSE≈1.06  μS/cm.RMSE\approx1.06\;\mu S/cm.

For context, the sensor output itself is often changing in increments around 0.5–1 µS/cm in this dataset.

In other words, this very small equation reproduces the native PWEC output almost down to the resolution visible in my logged values.

That does not prove this exact quadratic exists in Acclima's firmware. It means it is an extremely accurate mathematical equivalent over the range I tested.

Expressing the result in Hilhorst form

If I adopt Acclima's stated room-temperature water permittivity of:

ϵp=80,\epsilon_p=80,

the previous equation is equivalent to:

ϵ0(P)≈0.01174835P2−0.4631331P+6.509129\boxed{ \epsilon_0(P) \approx 0.01174835P^2 -0.4631331P +6.509129 }

or, more intuitively:

ϵ0(P)≈1.94482+0.01174835(P−19.7106)2\boxed{ \epsilon_0(P) \approx 1.94482 + 0.01174835(P-19.7106)^2 }

The second form makes the behavior obvious.

The effective correction parameter reaches its minimum at approximately:

P=19.71\boxed{P=19.71}

with:

ϵ0≈1.945.\boxed{\epsilon_0\approx1.945}.

In this particular coco setup, P≈19.7P\approx19.7 corresponded to approximately 34.2% native VWC and about 45.8% coco-calibrated VWC.

Above or below that moisture state, the effective ϵ0\epsilon_0 increases.

Again, I would describe this as a reverse-engineered equivalent model, not “the Acclima source-code equation.”

There may be a different function inside the firmware that happens to collapse to almost exactly the same behavior over the measurements available here.

Does the native PWEC use temperature correction?

This produced one of the more unexpected results.

Acclima documents:

ϵp=80\epsilon_p=80

at 20.7 °C, and says it can be temperature-corrected using:

ϵp=80.3−0.37(T−20).\epsilon_p=80.3-0.37(T-20).

(Acclima)

But in my dataset, temperature does not appear to materially improve the reconstruction of native PWEC.

A quadratic function of permittivity alone already reproduces BEC/PWECBEC/PWEC with R2≈0.999964R^2\approx0.999964. Adding temperature as another predictor changes essentially nothing.

Within the temperature range observed here — approximately 21 to 24.4 °C — I therefore find no detectable evidence that the reported PWEC requires an additional temperature term.

That is not quite the same as proving that the firmware literally contains the constant 80.

Mathematically, the absolute value chosen for ϵp\epsilon_p and the fitted ϵ0\epsilon_0 function are partly confounded. What the data establish much more strongly is:

BECPWEC is almost entirely determined by measured permittivity in this dataset.\boxed{\frac{BEC}{PWEC}\text{ is almost entirely determined by measured permittivity in this dataset.}}

The constant-80 Hilhorst formulation is simply a convenient interpretation that also matches Acclima's documented reference value.

How large is Acclima's empirical adjustment?

For another perspective, I compared the native PWEC against a deliberately naive Hilhorst calculation using:

ϵp=80\epsilon_p=80

and a fixed:

ϵ0=4.1.\epsilon_0=4.1.

The difference grows substantially as the coco dries.

At approximately 60% calibrated VWC, the TDR-310W native PWEC is around 4.6% lower than that fixed-4.1 calculation.

At 55%, the difference is around 7.8%.

At 50%, around 10.3%.

At 45%, around 12.4%.

At 40%, around 14.0%.

At roughly 30% calibrated VWC, the difference reaches about 15.5%.

This is useful, but it is important not to misinterpret it.

A 15% correction does not mean the Acclima PWEC is 15% wrong.

Quite possibly the opposite: the entire reason Acclima introduced its empirical model was that a fixed Hilhorst parameter becomes inaccurate as moisture conditions change. The comparison simply tells me how far the reported number has moved away from a naive fixed-parameter model.

For a controller or logger, I would interpret that as model dependence, not measurement error.

At wetter conditions the derived PWEC requires relatively little empirical adjustment. At drier conditions, a larger proportion of the final value depends on Acclima's moisture-compensation model.

That is useful information when deciding how much significance to attach to very small PWEC changes during a deep dryback.

What about Acclima's older Charcoir calibration?

An older Acclima Charcoir study showed a different approach. It plotted the TDR-310W's uncorrected PWEC against VWC and then showed a separate calibrated PWEC result.

The printed PWEC calibration equation in the version available to me was unreadable, but digitizing Figures 8 and 9 and examining the blurred equation allowed a tentative reconstruction of approximately:

PWECc≈PWECr+0.4978VWCc2−73.478VWCc+2358.8PWEC_c \approx PWEC_r +0.4978VWC_c^2 -73.478VWC_c +2358.8

with PWEC in µS/cm and VWCcVWC_c in percent.

I consider that equation reconstructed, not confirmed.

More importantly, I would not blindly apply that old correction on top of the native PWEC produced by my current sensor.

Acclima's current documentation explicitly says its sensors use a variable empirical ϵσb=0\epsilon_{\sigma b=0} when calculating PWEC, and my own measurements show exactly the sort of moisture-dependent behavior that statement predicts. (Acclima)

Applying an older external PWEC correction to a value that already contains internal moisture compensation could amount to correcting the same problem twice.

The old Charcoir report remains useful historically because it shows how strongly the raw PWEC problem depends on moisture and why a correction was needed in the first place. (HubSpot)

Why this matters for a coco grower

Reverse-engineering this calculation does not suddenly turn a TDR-310W into a laboratory reference instrument.

Without independently sampled pore water, I still cannot say that a reported value of:

0.500  dS/m0.500\;dS/m

is truly exactly:

0.500  dS/m0.500\;dS/m

around the roots.

What I can now do is understand where that number comes from.

I can retain the raw physical channels:

BEC,P,T,VWCBEC,\quad P,\quad T,\quad VWC

alongside native PWEC and independently reproduce the sensor's derived PWEC.

I can calculate the effective empirical correction at every point during a dryback.

I can distinguish a change in the raw electrical measurements from a change caused by the moisture-dependent conversion model.

And if I build my own irrigation controller, I do not have to treat native PWEC as a mysterious black-box value.

That is especially useful at low substrate water content, where derived pore-water EC inevitably becomes increasingly model-dependent.

The next experiment

The next step is not simply collecting even more points from the same dryback. Fourteen thousand observations are already enough to characterize this trajectory very densely.

The important test is repeatability.

I am going to leave the probe in exactly the same position, rewet the same coco with the same tap water, produce enough runoff to reasonably reset the substrate's ionic condition, and continue logging throughout the entire wetting event.

That creates two particularly useful comparisons.

First, I can compare the wetting trajectory against the drying trajectory:

ϵ0(P)wettingvsϵ0(P)drying.\epsilon_0(P)_{\rm wetting} \quad\text{vs}\quad \epsilon_0(P)_{\rm drying}.

If those curves overlap, that would be strong evidence that the hidden PWEC transformation is essentially a memoryless function of moisture state.

Second, I can perform an entirely new dryback and see whether the same relationship appears again.

After establishing repeatability at similar EC, a later experiment with a deliberately different solution EC can answer another important question:

Does Acclima’s empirical correction depend only on moisture state, or also on conductivity?\boxed{\text{Does Acclima's empirical correction depend only on moisture state, or also on conductivity?}}

If the same ϵ0(P)\epsilon_0(P) curve appears at substantially different BEC and PWEC values, the case for a moisture-only correction becomes much stronger.

Conclusion

Acclima openly documents the general structure of its TDR-310W pore-water EC calculation: PWEC is based on Hilhorst, and the troublesome ϵσb=0\epsilon_{\sigma b=0} term is adjusted using an empirical model as the substrate dries. The actual empirical model is not published. (Acclima)

Using roughly 14,700 clean one-minute observations from a single continuous coco dryback, I was able to reproduce the sensor's native PWEC extremely closely with only bulk EC and relative permittivity:

PWEC≈BEC−0.081364114+0.018289164P−0.0001468543P2\boxed{ PWEC \approx \frac{BEC} {-0.081364114 +0.018289164P -0.0001468543P^2} }

with an RMSE of roughly:

1.06  μS/cm.\boxed{1.06\;\mu S/cm}.

When expressed in Hilhorst form using ϵp=80\epsilon_p=80, the corresponding effective empirical term is approximately:

ϵσb=0≈1.94482+0.01174835(P−19.7106)2.\boxed{ \epsilon_{\sigma b=0} \approx 1.94482+ 0.01174835(P-19.7106)^2. }

I do not claim that either equation is literally present in Acclima's firmware.

What the dataset shows is that these equations are extremely accurate empirical equivalents of the TDR-310W's behavior over the tested range.

The next rewetting and repeated dryback should tell us whether that relationship is a genuine property of the sensor's internal algorithm or merely an exceptionally good fit to one long drying trajectory.

And that, for me, is the real value of doing this: not replacing Acclima's PWEC calculation, but finally being able to see what the black box is doing.


For the published version, I’d recommend adding three figures from your 14,825-row dataset: effective ε₀ vs relative permittivity, actual PWEC vs reconstructed PWEC, and native PWEC vs fixed-4.1 Hilhorst PWEC across the dryback. Those three plots would make the result much more convincing than equations alone. I can generate those as publication-ready PNG/SVG files from the CSV next.