Long-Range Pool Monitoring and Sanitation

Measure PH, ORP, temperature, inject chlorine in a pool. Log all data wirelessly.

Public Chat
Similar projects worth following
This is a hardware project that monitors PH, ORP, water temperature and ambient air temperature. Can inject chlorine in a pool when needed. Uses long range radio communication for control and data logging in Grafana.

Documentation for this is a work in progress!

This board allows PH, ORP and water temperature monitoring. It will also inject chlorine using a peristaltic pump (driven with a TI DRV8426) as necessary.

Communication with a "base station" is done through this project

The building blocks for the circuit are:

Power section: 120V AC to 12V DC converter, then 5-V low-noise LDO, 3.3V LDO

The frontend for ORP and PH is very similar. The high-impedance probe voltages are fed into LMP7721 ultra-low input bias op amps. Each is biased by a voltage reference (0.5V for PH and 2.048V for ORP), as the probes respectively produce +/- 414mV and +/- 2V.  That is then fed to ADC1115 ADCs (along with the reference voltages), with i2c signal and voltage isolation along the way using ADM3260s. The microcontroller subtracts the reference voltage from the signal to get the probe's original voltage.

Mayor Pool Monitoring
Board under development
Pool control board in IP66 enclosure
Don't mind that terrible motor connector!
ORP & PH probes
ORP and PH Probes
Grafana logging
Grafana logging

Like all other projects here, this automatically associates and joins a private area network using the 802.15.4 protocol.

Electric box nema 17 v2.stl

Plate used to mount nema 17 motor to electric outlet box.

Standard Tesselated Geometry - 66.10 kB - 10/26/2021 at 00:54


  • 2 × LMP7721 Amplifier and Linear ICs / Operational Amplifiers
  • 1 × HI2001 Hanna Instruments Flow-Through ORP Probe
  • 1 × HI1001 Hanna Instruments Flow-Through PH Probe
  • 1 × LP38798 High PSRR LDO
  • 1 × LP2985 Power Management ICs / Linear Voltage Regulators and LDOs

View all 19 components

  • ORP and PH probes & calibration

    Discreet Mayor10/24/2021 at 14:13 0 comments

    First, huge thanks to Jean-François and Marie-Ève at Hanna Instruments for their support! I observed that resetting the electronics had an effect on ORP readings:

    In the above image, ORP is hovering around 720 mV before resetting the electronics at around 12:05. I was surprised to see the amount of time it took for the readings to recover (many hours as can be seen here). I didn't observe this phenomenon when using a concentrated solution, so I inquired with Hanna if this might be normal. They responded by sending someone over with one of their ORP meters, and the same observation was made with their equipment. My conclusion is that it has something to do with alkalinity or ion concentration of the measured solution (?).

    I chose Hanna's HI 2001 ORP and HI 1001 PH probes for the project. The probes are compact and rugged, and have 3/4" NPT that can be used with readily available PVC pool fittings. They have so far worked very well.

    I also got 470 mV solution to calibrate the ORP probe, along with PH 7 and PH 10 solutions to calibrate the PH probe. Calibration with the system is pretty easy: just put the probe in the appropriate solution, and press the corresponding button:

    I don't currently do temperature compensation for PH, but that may be something I do in the future. Given that I try to maintain PH in the 7.2 - 7.6 range, the effects of temperature variations are limited anyway.

  • About the dosing pump

    Discreet Mayor10/24/2021 at 12:34 0 comments

    The dosing pump is very much a home-made thing (and it also requires a proper mounting enclosure!):

    It currently consists of:

    Nema 17 motor to electric outlet plate

    There was already an ozone venturi injector for the pool, so I am tapping into that to inject the bleach. My 3D printed design attempts at a small venturi injector of my own were all unsuccessful, maybe because I tried making them too small.

    Cross section of a failed venturi pump. Maybe if they were printed it bigger?

    No specs are provided on the stepper motor, and I don't really trust the stated 1.3A rating, so the board is designed to run it at around 500 mA. I can get about 100 mL per minute, which isn't very much, but works well enough.

  • Some notes about v0.1

    Discreet Mayor10/24/2021 at 12:02 0 comments

    A couple of details about the released version:

    • I had not included a footprint for a capacitor for the LMP7721 feedback loops, and it's needed to avoid oscillation:
    LMP7721 Oscillation
    LMP7721 oscillates without capacitor in feedback loop

    The image below shows the effect of a 2nF capacitor soldered against the feedback resistor. The next revision will have a footprint to accommodate it.

    Capacitor in LMP7721 feedback loop
    2nF capacitor in LMP7721 feedback loop
    • The second point is that adding a second motor controller for acid injection will prove useful in the next revision

    I built this project because it was a fun thing to do, more than the fact that I felt my pool needed automation. That being said, I learned more about pool chemistry in a couple of days of the project being online than I did in 10 years of pool ownership.

    The first thing is probably that pool supply store water analysis isn't what it's cracked up to be (probably not much of a surprise there). I can't speak about every store, but the analysis devices at my store aren't well-calibrated, so the chemical recommendations between two of them for the same sample are completely different.

    The second thing is that there isn't much of a point adjusting PH punctually. Like many before me, I've found that maintaining a low enough PH is potentially more important than sanitizer levels:

    In the image above, the first marker shows the effect of adding pool shock. Sanitation levels are going down?! Initially, that was a surprise to me. The reason is that shock (and bleach) are bases, which increase PH. While the effect is temporary and PH would eventually even back down, you can see that the addition of muriatic acid (second marker) has a huge impact on ORP levels. That is due to that fact that at a lower PH, chlorine breaks down into hypochlorous acid, which has a much higher oxidation potential than the other form, hypochlorite ions, that form at a "high" PH.

    TLDR: it is equally important to dose acid as it is chlorine. V0.2 will include a second stepper driver.

View all 3 project logs

Enjoy this project?



reicher wrote 10/16/2022 at 17:05 point

great project, I would like to know how you compute the chlorine volume to inject ? There is no relation between pH. Do you measure chlorine concentration in other methods ?  

  Are you sure? yes | no

Discreet Mayor wrote 10/17/2022 at 10:47 point

Hello, the design also measures ORP. While there is no direct link with chlorine level, oxidation potential is good enough a measure to calculate how much chlorine to inject (when taking PH into account).

  Are you sure? yes | no

Discreet Mayor wrote 11/11/2021 at 11:23 point

So I've worked on v 0.2, adding a second stepper driver, but I didn't think about the chip shortage when I built v 0.1. So, I'm looking to buy any spares of:

* DRV8426 stepper drivers

* ADM3260 isolators

* Pomona 6748 BNC connectors

* ADS1115 ADCs

* TMP235 temp sensors

* LP38798 regulators

* LP2985 regulators

* ADR130 voltage references

What a mess!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates