Calibration
pH electrode, acid normality, colorimetric curves, volume check — in that order, and how often.
Schedule
| What | When | Takes |
|---|---|---|
| pH electrode (7.00 then 4.00) | every 2 weeks, and after electrode replacement | 5 min |
| Acid standardisation (Na₂CO₃) | every acid refill, and monthly | 10 min |
| PO₄ curve (2–3 standards) | every reagent kit change, and monthly | 30 min |
| NO₃ curve (2–3 standards) | every reagent kit change, and monthly | 1 h |
| Cell volume check (scale) | once at build, then yearly | 10 min |
| Reagent characterisation | once per new reagent brand/lot type | 40–120 min |
All calibration runs require the analyzer to be idle; the dashboard’s Calibration tab drives every step below.
1. pH electrode
Pause the schedule. Lift the Cell A cap, rinse the electrode with DI, place it in pH 7.00 buffer, wait 60 s, press pH 7.00 (POST /api/v1/calibration/ph {point: mid, value: 7}). Repeat with pH 4.00 as low. The EZO circuit reports slope; replace the electrode when slope falls below 90 %. Refit the cap and run Flush.
2. Acid standardisation
Make 1.000 L of 0.1000 g/L Na₂CO₃ in DI (dry the salt at 250 °C for an hour first, or accept ~0.5 % error). Move the intake line into the standard and run POST /api/v1/calibration/alkalinity/standardize {known_ta_meq_l: 1.887}. The run titrates normally and solves for the normality that reproduces 1.887 meq/L; the value is stored and used from then on. Expect 0.0195–0.0205 N for a 1:5 dilution of 0.1 N acid. Put the intake back in the sump and run Flush.
A certified alkalinity standard (sold for reef testers) works the same way — enter its value in meq/L (dKH ÷ 2.8).
3. Colorimetric curves
For each test, prepare two or three standards in nutrient-free saltwater spanning your range (PO₄: 0.05, 0.20, 0.50 ppm; NO₃: 2, 10, 30 ppm). For each standard: intake into the standard, POST /api/v1/calibration/{test}/point {standard_ppm}. The run records (absorbance₂₅, ppm). Then POST /api/v1/calibration/{test}/fit {degree: 1, through_zero: true}. The self-blanking makes a zero standard unnecessary, so a line through the origin with two points is the minimum; three points let you check linearity (R² is returned). Use degree: 2 only with four or more points.
The fit also stores the mean secondary/primary ratio used by the spectral-shape check. Clear stale points with DELETE /api/v1/calibration/{test}/points before a new kit.
4. Cell volume
Fill and level each cell with the dashboard, then pipette or pour the contents into a tared cup on a 0.01 g scale. Adjust the dip-tube depth until Cell A holds 20.0 ± 0.2 g and Cell B 10.0 ± 0.1 g. Record the values in config.yaml (hardware.cells[].volume_ml). This is the one calibration the software cannot do for you.
5. Verification
After calibrating, run the Trident NP calibration solution (or a mid-range standard) as a normal test and confirm the reported value is within 5 %. Then run tank water and compare with a careful hand test. Keep the results: the dashboard’s history shows calibration records as markers so a step change can be traced to a calibration.
What is stored
| Record | Where | Used by |
|---|---|---|
acid_normality |
settings + calibrations(kind=acid_normality) |
alkalinity runs |
{test}_cal_coeffs, {test}_secondary_ratio |
settings + calibrations(kind=curve) |
colorimetric runs |
{test}_cal_points |
settings | the next fit |
ph_electrode |
calibrations |
audit only |
characterization |
calibrations |
reagent profiling |
Every result row records the calibration_id in force, so re-analysis is always possible.