Skip to content

hydra/ph-probe

18-bit pH and temperature logger with a proper guard ring, USB-C, and a two-year coin-cell sleep current of 4µA.

v1.4.0rp20404-layer · 30×74 mm$42.80 BOM3h buildCERN-OHL-P-2.0updated 15 days ago
Loading probe-cap.stl
probe-cap.stl

pH measurement is an impedance problem pretending to be a voltage problem. A glass electrode has an output impedance in the hundreds of megohms, so every picoamp of leakage between the signal and anything else shows up as drift.

This board takes that seriously:

  • A guard ring driven at the same potential as the input, surrounding the electrode net on all four layers.
  • No soldermask over the guard region — flux residue is a resistor.
  • INA333 with a 1 pA input bias current, sitting 4 mm from the BNC.
  • An 18-bit MCP3421 rather than the RP2040's own ADC, which is a 12-bit part with a well-documented DNL problem.

Calibration

Two-point at pH 4.01 and 7.00, three-point if you care about the alkaline end. The firmware stores slope and offset in the last flash sector, and hydra-cli calibrate walks you through it.

hydra-cli calibrate --buffer 4.01
hydra-cli calibrate --buffer 7.00
hydra-cli log --interval 60s --out lake.csv

Power

4 µA in deep sleep with the ADC in one-shot mode, ~11 mA while sampling. On a CR2477 that is comfortably two years at one sample a minute.

Do not

Do not clean the guard region with isopropyl and leave it. Do not route anything under the BNC. Do not substitute the INA333 for an INA128 — the bias current is four orders of magnitude worse and you will spend a weekend learning that the hard way.