pH Sensor Design with ADS1115

0:24

Read 3 knowledge entries.

Thought for 8 sec

Thought for a moment

Flux does not export a native EasyEDA Pro schematic file directly. The easiest transfer path is:
  1. Export the schematic as PDF/SVG from Flux for visual reference.
  2. Export BOM so you have all parts/values.
  3. Export netlist if you want connectivity reference.
  4. In EasyEDA Pro, recreate/import using the PDF + BOM + netlist as reference.
For EasyEDA Pro specifically, the most reliable workflow is:
  • Use the Flux schematic PDF as the drawing reference.
  • Recreate symbols/parts in EasyEDA Pro.
  • Copy net names exactly: I2C_SDA, I2C_SCL, ADC_PH_PLUS, ADC_PH_MINUS, VBIAS, DS18B20_DATA, etc.
  • Then run EasyEDA ERC to verify the recreated schematic.
If you want, I can generate the PDF schematic, BOM, and netlist export files from Flux now.
okay generate

0:06

Thought for a moment

I’ll generate the EasyEDA handoff package now: schematic PDF for visual reference, BOM for parts/values, and netlist for connectivity reference.

1:31

Thought for 3 sec

1/4 Generate schematic PDF export

Read 3 knowledge entries.

Thought for 2 sec

Exporting project.

Thought for 2 sec

2/4 Generate BOM export

Thought for 2 sec

Exporting project.

Thought for 4 sec

3/4 Generate netlist export

Thought for 3 sec

Exporting project.

Thought for 11 sec

4/4 Return EasyEDA Pro handoff links

Thought for 2 sec

4/4 tasks completed.

Thought for a moment

Generate Gerbers
Create BOM spreadsheet
Run ERC/DRC
Export STEP model

Refine this doc
Ask about this doc
ADS1115 pH Sensor Design Notes
Goal
Arduino-compatible, through-hole-friendly pH probe interface using a high-impedance analog front end and ADS1115 16-bit I2C ADC breakout/module. The pH channel is designed for improved sensitivity, while ADS1115 AIN2 and AIN3 remain available for additional analog sensors.
Through-Hole Revision Summary
  • Replaced the SMD ADS1115 VSSOP IC with U1: ADS1115 Module, a 10-pin 2.54 mm breakout/module-style part.
  • Replaced the SMD LMC6482 op amp with U2: MCP6002-I/P, a through-hole 8-PDIP dual CMOS rail-to-rail op amp.
  • Changed all generic resistors to axial through-hole packages.
  • Changed small capacitors to ceramic disc through-hole packages and bulk capacitors to radial through-hole packages.
  • Kept BNC probe connector and Arduino/sensor header as through-hole parts.
Selected Architecture
  • pH probe connector: BNC jack J1.
  • pH probe center: routed through 1 MΩ series protection resistor R3 into MCP6002 op amp U2A configured as a unity-gain buffer.
  • Probe reference/shield: biased to VBIAS, not GND, so the pH electrode can swing around mid-supply while all circuit nodes stay within the ADS1115 input range.
  • Mid-supply bias: R1/R2 create VREF_DIV, buffered by U2B, then isolated by R4 to create VBIAS.
  • ADC pH input: ADS1115 module U1 reads differential channel A0 - A1:
    • A0 = buffered pH signal through R5
    • A1 = VBIAS reference through R6
    • C8 provides differential low-pass filtering.
  • Auxiliary channels: A2 and A3 are exposed on J2 through 1 kΩ series resistors R9/R10 and optional 100 nF filters C9/C10.
  • Arduino interface: J2 exposes VCC_5V, GND, SDA, SCL, ALRT, ADDR, A2 input, and A3 input.
Key Datasheet-Grounded Design Points
  • ADS1115 silicon operates from 2 V to 5.5 V, so a 5 V Arduino rail is valid for the ADS1115 module when the module supports 5 V operation.
  • ADS1115 analog inputs must stay between GND and VDD. Biasing the pH probe shield to VBIAS keeps the pH signal safely inside that range.
  • MCP6002-I/P operates from 1.8 V to 6.0 V, supports rail-to-rail input/output, and is available in 8-PDIP.
  • MCP6002 input bias current is low for a DIP/prototyping op amp, but it is not as ultra-low as LMC6482. For highest pH accuracy, keep the input clean and dry and avoid breadboards at the pH probe input.
  • MCP6002 VDD needs a local bypass capacitor; C2 provides 100 nF decoupling and C3 provides rail bulk capacitance.
pH Front-End Leakage and Bias-Current Audit
The through-hole revision uses U2: MCP6002-I/P. From the MCP6002 datasheet, input bias current is typically +/-1.0 pA at +25 deg C, 19 pA at +85 deg C, and 1100 pA at +125 deg C. The common-mode input impedance is listed as 10^13 ohms || 6 pF, and the differential input impedance is listed as 10^13 ohms || 3 pF.
This is suitable for an Arduino/student prototype if the input area is kept very clean and dry, but it is not a true electrometer-grade pH front end. Glass pH probes can have very high source impedance, so the bias-current error depends strongly on probe impedance and temperature. At +25 deg C, 1 pA through 100 Mohm is about 0.1 mV, roughly 0.0017 pH at 25 deg C. At +85 deg C, 19 pA through 100 Mohm is about 1.9 mV, roughly 0.032 pH. With a 1 Gohm probe, the same +85 deg C bias current could become about 19 mV, roughly 0.32 pH. PCB leakage, flux residue, fingerprints, humidity, and breadboard leakage can easily become worse than the op-amp bias current.
Design actions already included for leakage control:
  • J1 BNC center enters U2A through R3 = 1 Mohm series protection.
  • The pH input is buffered before the ADS1115, so the ADC input impedance does not load the probe directly.
  • The BNC shield/reference is biased to VBIAS rather than hard-grounded, keeping the signal centered in the ADC range.
Layout/build requirements for best pH accuracy:
  • Do not build the pH input node on a solderless breadboard.
  • Keep J1 center, R3, U2 pin 3, and PH_IN short, guarded where possible, and physically away from digital/I2C traces.
  • Clean the PCB thoroughly after soldering; no flux residue around J1/R3/U2A input.
  • Add a driven guard ring tied to VBIAS/PH_IN-adjacent low-impedance guard during PCB layout if very high stability is needed.
  • For laboratory-grade accuracy or hot/humid operation, consider replacing MCP6002 with an ultra-low-input-bias electrometer/CMOS op amp if a suitable through-hole or module option is available.
DS18B20 Temperature Compensation Addition
Added a waterproof DS18B20 probe interface for pH temperature compensation:
  • J3: 3-pin through-hole DS18B20 probe connector.
  • J3 pin 1 = VCC_5V, probe red wire.
  • J3 pin 2 = DS18B20_DATA, probe yellow or white data wire.
  • J3 pin 3 = GND, probe black wire.
  • R11 = 4.7 kohm pull-up from DS18B20_DATA to VCC_5V, required for the 1-Wire data bus.
  • J4: 2-pin Arduino digital GPIO breakout. J4 pin 1 is DS18B20_DATA and should connect to an Arduino digital input such as D2 or D3. J4 pin 2 is GND reference.
DS18B20 firmware use:
  • Power the sensor in normal 3-wire mode, not parasite-power mode.
  • Read temperature in deg C and compensate the pH slope using the Nernst relationship: ideal slope = 59.16 mV/pH at 25 deg C and scales by absolute temperature, approximately slope(T) = 59.16 * (T + 273.15) / 298.15 mV/pH.
  • Calibrate with buffer solutions at the same temperature as the sample when possible.
Header J2 Pin Map

Table


PinNetFunction
1VCC_5VArduino 5 V supply input
2GNDGround
3I2C_SDAArduino SDA
4I2C_SCLArduino SCL
5ADS_ALERTOptional ADS1115 ALERT/RDY output
6ADS_ADDRADS1115 address-select pin; wire externally to GND/VCC/SDA/SCL as desired
7AUX_SENSOR_AIN2_INAuxiliary sensor input to ADS1115 A2 via R9/C9
8AUX_SENSOR_AIN3_INAuxiliary sensor input to ADS1115 A3 via R10/C10
ADS1115 Module U1 Pin Mapping

Table


Module PinNetFunction
VCCVCC_5VModule supply
GNDGNDGround
SDAI2C_SDAI2C data
SCLI2C_SCLI2C clock
ADDRADS_ADDRI2C address select
ALRTADS_ALERTOptional alert/ready output
A0ADC_PH_PLUSBuffered pH signal
A1ADC_PH_MINUSVBIAS reference for pH differential measurement
A2ADS_AIN2Auxiliary sensor channel
A3ADS_AIN3Auxiliary sensor channel
Suggested ADS1115 Firmware Settings
  • Read pH using differential mode: A0 - A1.
  • Recommended PGA: ±1.024 V for pH measurement.
  • Expected pH probe signal at 25 °C is about 59.16 mV/pH, roughly ±414 mV over pH 0 to 14.
  • ADS1115 ±1.024 V range gives 31.25 µV/count, about 0.00053 pH/count ideal resolution before real-world probe noise, calibration error, and temperature effects.
  • Use low data rate, such as 8 SPS or 16 SPS, and average readings because pH probes respond slowly.
Calibration
Use at least 2-point calibration:
  1. Measure pH 7 buffer and record voltage V7.
  2. Measure pH 4 or pH 10 buffer and record voltage V4 or V10.
  3. Calculate slope in pH/V and apply: pH = 7.00 + slope * (Vmeas - V7).
For better results, use 3-point calibration with pH 4, pH 7, and pH 10 buffers.
Important Usage Notes
  • Do not connect BNC shield/VBIAS to Arduino GND externally.
  • Keep the BNC center input trace short and clean; flux residue can cause leakage and measurement drift.
  • Use the spare A2/A3 pins only for sensors whose output stays between 0 V and VCC_5V.
  • If the ADS1115 breakout/module already includes I2C pull-ups, do not populate R7/R8 to avoid overly strong parallel pull-ups.
  • If external sensor boards already include filters or strong output drivers, C9/C10 may be reduced or omitted.
Review Status
The schematic has been revised for a through-hole/module build and revalidated after replacing U1/U2 and changing passive packages. Full PCB layout/manufacturing review can only be completed after board placement and routing.

    Goal

    Through-Hole Revision Summary

    Selected Architecture

    Key Datasheet-Grounded Design Points

    pH Front-End Leakage and Bias-Current Audit

    DS18B20 Temperature Compensation Addition

    Header J2 Pin Map

    ADS1115 Module U1 Pin Mapping

    Suggested ADS1115 Firmware Settings

    Calibration

    Important Usage Notes

    Review Status

Documents

    ADS1115 pH Sensor Design Notes

    ESP32 and Arduino Uno Datasheet Summary

    ADS1115 pH Sensor Validation and Firmware Handoff Report

Assets

No assets added.

Arduino ADS1115 pH Sensor Interface

Arduino ADS1115 pH Sensor Interface thumbnail
Arduino-compatible pH probe interface using a high-impedance analog buffer and ADS1115 16-bit I2C ADC for improved pH measurement sensitivity.

Properties

Properties describe core aspects of the project.

Pricing & Availability

Distributor

Qty 1

Arrow

$1.56–$2.01

Digi-Key

$3.12

LCSC

$2.97

Mouser

$0.44

TME

$0.41

Verical

$1.69–$3.03

Controls