@tarponchik
The formula of a line is always y=mx+b. With single point calibration, b is always 0
the formula that we have to pay attention to for two point calibration y=m*l*x+b
y=readout on the screen, in this case ppO2
x=the output from the cell in mV
m=the multiple to get from mV to a determined ppO2. This is the initial calibration value. I.e. 12.6mv*1.66=20.9
l=the linearity of the cell. This is determined by a 2 point calibration with at least one of the datapoints from a value higher than the value you are reading. In most cases for nitrox, this is some value higher than a ppO2 of .32, preferably at least .5, but for accuracy, the most accurate gas will be done at 1.0 or 100% O2
If you calibrate with one point, you assume l=1
based on that formula, a 0% O2 calibration gas would give you an x value of 0, and anything multiplied by 0, is and always will be, 0. If you do a 2 point calibration with an x value of 0, it's not a valid calibration because you have no ability to determine what "b" really is.
Edit:
Example for single point calibration
We know the x value because that is what the cell is reading. In this case call it 12.6mV
We know the y value because that is our reference. In this case, call it 20.9%
The formula to get there is ppO2=multiple*linearity*mV
We assume that linearity=1 because there is no way to verify this.
"b" is always 0 for a single point calibration
Resultant formula
20.9%=1.66*12.6+0
When we do a dual point calibration, we have three formulas. x1 is always the lower of the two readings, x2 is always the higher of the two readings
y1=m1*x1
y2=m2*x2
l=m1/m2
In this case at the first reading we still determine that m1=1.66
for the second reading at 100%, we expect x2 to be 60.3mV, but it comes out at 54.3mV
y2=m2*x2
y2=100
x2=54.3
m2=1.84
To determine the actual line, we know that y=m*l*x. x=1.66 since that is what we determined with our first calibration gas, and l=m1/m2=.9 showing that the cells are only 90% linear. Resultant formula
y=1.49*x for all values between ppO2 of 20.9% and ppO2 of 100%, with bounds of (12.6, 20.9) and (54.3, 100).
If you want to draw a line from that, it would be
y=1.49*x+2.13 with a domain from 12.6 to 54.3
This is as accurate as we can calibrate without a pressure pot and a single gas. I understand your point about y=mx+b because we have to fix a reference point, however we have to assume linear function between data points, and anything outside of those data points is an unknown. In the situation above, we know that the slope of the line is 1.49 between ppO2's of 20.9% and 100%, but what we are unsure of is the slope below 20.9%, or above 100%. We have to make assumptions.
We know that any curve has to intersect (0,0), so we have a slope of 1.66*x for values up to x=12.6. We have a slope of 1.49*x for values between x=12.9 and x=54.3, but what we are unsure of is the behavior above that x value.
This is the dangerous part for rebreather divers and why they have to verify linearity up to a ppO2 of 1.6 so they can draw the curve between ppO2 of 1.0 and 1.6 which is what matters on a rebreather. Unfortunately most divers don't do this and are assuming linear behavior, but that does not verify any current limitations or altered linearity above a ppO2 of 1.0.
For O2 analyzers, we do not care about the linearity or current limitations above a ppO2 of 1.0 which is why cells from CCR's will get "Retired" to analyzer duty. They may not function properly above a ppO2 of 1.0, but they may function just fine or well enough between .2 and 1.0. You still have to determine the bounds of your calibration scale, and anything outside of those bounds is unable to be considered accurate.
Using a 2 point calibration of ambient and EAN32 is only able to prove linearity between those two values, it is unable to be considered accurate outside of those bounds