Aquariums, IT

Calibrating the pH probe using the mV output of the pH Circuit


I use 4 Atlas Scientific pH Circuits (v 5.0) with a Multi Circuit Carrier Board to monitor de pH in 4 of my aquariums.

The Atlas Scientific pH Circuit can be calibrated following a simple procedure described in the manual: you should put the circuit on continuous sampling, then submerge the probe under pH 7, wait for it to stabilize, then clean and whipe the probe, and continue with pH 4 and pH 10 sample.

However, I didn’t choose to follow this procedure because:
a) even if I now have it, it was difficult to find a pH solution of reference 10. What the shops nearby would get me was pH 9 calibration, which can’t be used for pH Circuit (v5.0 – don’t know about the newer versions ?).
b) the way I designed my monitoring made it a bit more difficult to put a pH circuit ‘offline’ while I was calibrating it. It is not problem though, I had a solution figured out anyway – and it is even more flexible, as you will see below.

First, I was able to estimate what mV the probe was putting out just by looking at the pH value. pH Circuit is very versatile … and no problems so far. I have an older article here:


If the pH Circuit is set to run at T = 25C, then the mV output of the probe seems to be calculated using the formula:

mV = 59.2 * (7 - pH_output)

Calibrating through pH Circuit give you the possibility to compensate the pH based on the temperature too, but in the explanations below I’ve simplified and assumed T = 25C – the temperature of the water in the aquariums is already around 25C.

The example below is for one probe, the output in mV is calculated using the formula above.

pH Solution pH Circuit output Probe output (mV)
4 3.93 181.744
7 7.20 -11.84
10 10.37 -199.504

Plotting the values above on a chart next to an ideal pH probe output:


Ideal vs Measured pH probe output

As you can see, for pH 7, an ideal probe would register 0mV, but mine seems to register already -11.84mV. To make more sense of the graph, we need to shift he values up with -11.84mV (which is considering calibrating for pH 7. By the way, that’s why I suppose it is also recommended as the initial value to start calibrating with.
With this “post measuring” calibration approach (as opposed to delegating to pH Circuit to do it) we don’t really care about the order of pH samples the probes are submerged into; This way, you can calibrate 2 at a time (even 3) using the small calibration device (in the photo on top).

After shifting the values up with 11.84mV, the chart now looks like this:


pH probe calibrated for pH 7

pH Solution pH 7 calibrated (mV)
4 181.744 + 11.84 = 193.584
7 -11.84 + 11.84 = 0
10 -199.504 + 11.84 = -187.664

If the ideal pH probe output is a line, in my case, the measured values are not on a line. The output diverges faster (towards the left) than it diverges towards the right. Now, there are few ideas on how to approximage the real pH based on the pH reported by pH Circuit.

We could try to fit a line in between the ideal one and the real one (and use that to ‘walk back’ to the real pH value). I chose a different idea:

a) assumed that the pH 4 -> pH 7 part is a line, different from the pH 7 -> pH 10 line.
b) that each line diverges proportionally (starting from pH 7) but at a different rate.

So for each mV to the left (or to the right), there has to be a conversion formula to multiply the value so that the result falls onto the ideal line (and thus producing the correct pH output from the pH Circuit).

The goal is to find a formula that will take the erroneous (uncalibrated) pH output and obtain a closer to reality (calibrated) value that we can then use.

The formula I came up with using the assumptions above (T=25C, and the aging pH probe doesn’t produce linear output continuously, but two linear outputs with different slopes):

pH_real = 7 - $coef * (7 - pH_circuit_value) + ( coef * shift_to_pH_7 / 59.2)


pH_real is the value that we are interested in.
pH_circuit_value is the value that pH Circuit reports, uncalibrated.
shift_to_pH_7 is the value (in mV) that we need to compensate the graph at ph 7 (in the case above -11.84 mV)
coef is the coefficient that each (left or right) slope diverges from the ideal – (and chosen accordingly depending where the measured pH is found, to the left of ph 7, or to the right), for example:

left_coef = mV_4_ideal / (mV_4_circuit_value - shift_to_pH_7)

where: mv_4_circuit_value is the mV value calculated starting from the pH Circuit value (uncalibrated) when immersed in a pH 4 solution by applying the mV = 59.2 * (7 – pH_output) formula.


This calibration procedure above (software calibration) reduces a lot of time spent calibrating the pH Circuit. You don’t need to add the pH Circuit calibration commands to your controller, just allow for probe values to settle once inserted into the solution, then apply the algorithm!

Leave a Reply