Schematic Design Review

just remove the esp32 from the circuit and instead use a pin header.
I’ll replace the ESP32-C3 module interface with a simple pin header while preserving the existing signals for an external controller connection, then verify the schematic connectivity.
Done — I removed the ESP32-C3 module U4 and replaced it with J2, a 1x08 external-controller pin header.
J2 pinout:
  • Pin 1: 3V3
  • Pin 2: GND
  • Pin 3: SDA
  • Pin 4: SCL
  • Pin 5: ALT
  • Pin 6: ADR
  • Pin 7: DQ
  • Pin 8: GND
Verification passed: the new header nets are connected and ERC checks showed no open schematic issues. I also updated Concise BOM - Part Name, Value, Designators and Circuit and Documentation Reverification.
Fix issues and verify
Add ALRT pull-up
Make pull-ups populated
Update all documentation
Run full review
Explain header wiring
U1
C7 P2 - R6 P1
U2 VDD - R7 P1
J1 Signal - R3 P1
R14 P1 - U1 ADDR
R8 P2 - U1 SCL
J5 GND - R10 P1
J1 GND - C6 P1
R10 P2 - C14 P2
U1 A0 - C11 P1
U2 VINB+ - R2 P1
J5 GND - R10 P1
U4 GPIO4 - J4 P1
U2 VDD - R7 P1
SW1 2 - J6 Pin_3
J1 GND - C6 P1
U1 A2 - C14 P1
U2 VDD - R7 P1
U1 A1 - R6 P2
U4 GPIO4 - J4 P1
U4 GPIO10 - U1 ALRT
J5 GND - R10 P1
U2 VDD - R7 P1
U2 VINB+ - R2 P1
R14 P1 - U1 ADDR
U2 VDD - R7 P1
J5 GND - R10 P1
R12 P1 - J5 Signal
C13 P1 - R12 P2
J1 GND - C6 P1
U1 A0 - C11 P1
R14 P1 - U1 ADDR
U1 A2 - C14 P1
R4 P1 - U2 VINB-
R8 P2 - U1 SCL
U2 VINB+ - R2 P1
R4 P1 - U2 VINB-
U4 GPIO8 - R7 P2
C13 P1 - R12 P2
R10 P2 - C14 P2
SW1 2 - J6 Pin_3
U2 VDD - R7 P1
J1 Signal - R3 P1
USB5
C13 P1 - R12 P2
U1 A1 - R6 P2
C7 P2 - R6 P1
U1 A2 - C14 P1
U1 A0 - C11 P1
U3 VOUTB - R13 P1
R5 P1 - U2 VINA-
C7 P1 - U2 VINA+
U4 GPIO4 - J4 P1
U2 VDD - R7 P1
C7 P2 - R6 P1
U2 VDD - R7 P1
BAT
J1 GND - C6 P1
U4 GPIO8 - R7 P2
U3 VOUTA - R9 P1
U3 VOUTB - R13 P1
J5 GND - R10 P1
R10 P2 - C14 P2
U4 GPIO4 - J4 P1
C7 P1 - U2 VINA+
U2 VDD - R7 P1
U1 A2 - C14 P1
U2 VDD - R7 P1
U2 VDD - R7 P1
U1 A0 - C11 P1
U2 VDD - R7 P1
U2 VDD - R7 P1
U1 A1 - R6 P2
U4 GPIO10 - U1 ALRT
U2 VINB+ - R2 P1
R8 P2 - U1 SCL
C7 P1 - U2 VINA+
U1 A1 - R6 P2
U2 VINB+ - R2 P1
R12 P1 - J5 Signal
U3 VOUTA - R9 P1
R5 P1 - U2 VINA-
U4 GPIO8 - R7 P2
U2 VDD - R7 P1
R10 P2 - C14 P2
C4
Capacitance
1 µF
R12
Resistance
1000000 Ω
R3
Resistance
1000000 Ω
R11
Resistance
4700 Ω
C1
Capacitance
100 nF
C8
Capacitance
100 nF
R6
Resistance
1000 Ω
R5
Resistance
1000 Ω
R10
Resistance
1000 Ω
C2
Capacitance
100 nF
C10
Capacitance
100 nF
R9
Resistance
1000 Ω
C6
Capacitance
100 nF
R8
Resistance
10000 Ω
C11
Capacitance
100 nF
R14
Resistance
10000 Ω
C7
Capacitance
100 pF
C13
Capacitance
100 pF
R4
Resistance
1000 Ω
R13
Resistance
1000 Ω
R2
Resistance
100000 Ω
C16
Capacitance
100 nF
C14
Capacitance
100 nF
C12
Capacitance
100 nF
C9
Capacitance
100 nF
R1
Resistance
100000 Ω
C3
Capacitance
10 µF
C5
Capacitance
10 µF
C15
Capacitance
100 nF
R7
Resistance
10000 Ω
GND
GND
R14 P2 - J2 8
GND
J1
GND
GND
U3 VSS - C15 P2
GND
J3 Pin_3 - J4 P2
GND
C11 P2 - C12 P2
GND
U3 VSS - C15 P2
GND
GND
C11 P2 - C12 P2
GND
U3 VSS - C15 P2
J5
J3 Pin_3 - J4 P2
GND
R14 P2 - J2 8
J3
J2
U2
J6
J4
SW1
U3

Refine this doc
Ask about this doc
ESP32 and Arduino Uno Datasheet Summary
Scope and Assumptions
This is a practical, datasheet-style engineering summary for comparing and using:
  • ESP32 target: ESP32-WROOM-32 / ESP32 DevKit style boards, based on Espressif ESP32 series modules.
  • Arduino target: Arduino Uno Rev3, based on ATmega328P at 16 MHz.
Exact ESP32 pin availability depends on the specific development board. Always check the pinout of the exact ESP32 board you buy.
Quick Comparison

Table


FeatureArduino Uno Rev3ESP32-WROOM-32 / DevKit
Main MCUATmega328PESP32 dual-core Xtensa LX6
Logic voltage5 V3.3 V only
Typical board supplyUSB 5 V or barrel/VINUSB 5 V to onboard 3.3 V regulator
Recommended external input7-12 V via VIN/barrel on UnoBoard-dependent; usually 5 V pin/VIN or USB
Clock16 MHzUp to 240 MHz
Digital GPIO14 Uno digital pinsBoard-dependent, many GPIOs
PWM6 Uno PWM pinsLEDC PWM on many GPIOs
ADC10-bit ADC, 6 analog inputs on Uno12-bit SAR ADC, many channels but non-linear without calibration
DACNone2 DAC outputs on GPIO25/GPIO26 on classic ESP32
I2CA4 SDA, A5 SCLFlexible GPIO assignment, common SDA=21, SCL=22
SPID10-D13 / ICSPFlexible; common VSPI pins GPIO23/19/18/5
UART1 hardware UART exposed on D0/D1Multiple UARTs
WirelessNone2.4 GHz Wi-Fi + Bluetooth/BLE
USB nativeUSB-serial bridge onlyUsually USB-serial bridge; not native USB on classic ESP32
Arduino Uno Rev3 Key Datasheet-Style Specs
Core
  • Microcontroller: ATmega328P.
  • Architecture: 8-bit AVR.
  • Clock: 16 MHz on Arduino Uno Rev3.
  • Flash memory: 32 KB, with bootloader space used on Arduino boards.
  • SRAM: 2 KB.
  • EEPROM: 1 KB.
Power
  • Operating logic voltage: 5 V.
  • Recommended input voltage through barrel/VIN: 7-12 V.
  • Input voltage limit commonly specified for Uno-class boards: 6-20 V, but using high input voltage increases regulator heating.
  • 3.3 V output exists on the board but is for small external loads only.
  • Supplying regulated power directly into 5V or 3.3V pins bypasses onboard protection/regulation and should be done carefully.
Digital I/O
  • 14 digital I/O pins: D0-D13.
  • 6 PWM-capable pins: D3, D5, D6, D9, D10, D11.
  • Logic high is 5 V.
  • Common design recommendation: keep GPIO current modest; Arduino documentation commonly recommends 20 mA per I/O pin as a practical limit.
Analog Input
  • 6 analog inputs: A0-A5.
  • ADC resolution: 10-bit.
  • ADC code range: 0-1023.
  • Default ADC reference: AVCC, normally 5 V.
  • Approximate ADC step at 5 V reference: 4.88 mV/count.
  • For pH measurement, the Uno ADC alone is much less sensitive than ADS1115.
Communication Interfaces
  • UART: D0 RX, D1 TX.
  • I2C: A4 SDA, A5 SCL.
  • SPI: D10 SS, D11 MOSI, D12 MISO, D13 SCK; also on ICSP header.
pH Sensor Interface Notes for This Project
  • Uno is compatible with the current 5 V design.
  • Connect VCC_5V to Uno 5V, GND to Uno GND, SDA to A4, SCL to A5.
  • DS18B20_DATA can connect to a digital pin such as D2 or D3.
  • The ADS1115 provides much finer pH voltage resolution than the Uno ADC.
ESP32-WROOM-32 / ESP32 DevKit Key Datasheet-Style Specs
Core
  • MCU: ESP32 dual-core 32-bit Xtensa LX6.
  • Clock: commonly up to 240 MHz.
  • Wireless: 2.4 GHz Wi-Fi plus Bluetooth/BLE.
  • Module clock: common ESP32-WROOM-32 modules use a 40 MHz crystal.
  • Flash: module-dependent; common ESP32-WROOM-32 modules often include 4 MB SPI flash.
Power
  • ESP32 chip/module operating voltage: 3.0 V to 3.6 V, nominal 3.3 V.
  • ESP32 GPIO are not 5 V tolerant.
  • DevKit boards usually accept 5 V on USB/VIN and regulate it to 3.3 V.
  • Power supply must handle Wi-Fi current peaks; use a regulator capable of at least several hundred mA. Many references recommend designing for around 500 mA available to the module/board.
Digital I/O and Boot-Strap Warnings
ESP32 has many GPIOs, but not all are safe as general-purpose external I/O.
Important caution pins:
  • GPIO0: boot mode strap; affects flashing/boot.
  • GPIO2, GPIO4, GPIO5, GPIO12, GPIO15: strap or boot-sensitive pins depending on module/board.
  • GPIO6-GPIO11: commonly connected to SPI flash; do not use on WROOM modules.
  • GPIO34-GPIO39: input-only on classic ESP32.
For beginner-friendly external sensors, prefer board-recommended GPIOs such as GPIO21/22 for I2C and GPIO25/26/27/32/33 for general I/O/ADC where available.
Analog Input
  • ESP32 includes SAR ADC channels, commonly referred to as ADC1 and ADC2.
  • ADC nominal resolution is up to 12-bit.
  • ADC accuracy is not as linear as a precision external ADC; calibration is recommended.
  • ADC2 has restrictions when Wi-Fi is active on classic ESP32, so prefer ADC1 pins for analog sensing.
Communication Interfaces
  • I2C: flexible pin assignment. Common defaults are SDA=GPIO21 and SCL=GPIO22.
  • SPI: flexible pin assignment. Common VSPI defaults are MOSI=GPIO23, MISO=GPIO19, SCK=GPIO18, CS=GPIO5.
  • UART: multiple UARTs available; default programming UART usually uses GPIO1 TX0 and GPIO3 RX0.
  • PWM: LEDC peripheral can generate PWM on many output-capable GPIOs.
pH Sensor Interface Notes for This Project
If using ESP32 instead of Arduino Uno:
  • Power the ADS1115 module, DS18B20 pull-up, I2C pull-ups, and VBIAS divider from 3.3 V, not 5 V.
  • Do not feed 5 V I2C or 5 V DS18B20 data into ESP32 GPIO.
  • pH accuracy is not inherently worse at 3.3 V if the ADS1115 PGA range is configured correctly.
  • Recommended ADS1115 pH setting remains differential AIN0-AIN1 with a suitable PGA such as +/-1.024 V.
  • Bias midpoint becomes approximately 1.65 V instead of 2.5 V.
Compatibility With Current ADS1115 pH Project
ADS1115 Wiring Notes
ADS1115 Pin Functions Used in This pH Project

Table


ADS1115 Module PinProject NetFunction
VCCVCC_5V or 3V3ADC module supply. Use 5 V for Arduino Uno, 3.3 V for ESP32.
GNDGNDCommon ground with the microcontroller and sensor board.
SDAI2C_SDAI2C data line. Needs pull-up to the microcontroller logic voltage.
SCLI2C_SCLI2C clock line. Needs pull-up to the microcontroller logic voltage.
ADDRADS_ADDRAddress select. Tie to GND, VCC, SDA, or SCL to choose the I2C address.
ALRT/RDYADS_ALERTOptional alert/ready output. Can be left unused or connected to an interrupt-capable GPIO.
A0ADC_PH_PLUSBuffered pH probe signal.
A1ADC_PH_MINUSBuffered VBIAS reference. pH is measured differentially as A0 - A1.
A2ADS_AIN2Spare auxiliary analog input.
A3ADS_AIN3Spare auxiliary analog input.
Arduino Uno Wiring
Use this wiring when using Arduino Uno, Nano, or Mega style 5 V Arduino boards:

Table


Project SignalArduino Uno PinNotes
VCC_5V5VPowers ADS1115 module, op amp, bias network, and pull-ups.
GNDGNDCommon ground.
I2C_SDAA4 / SDAArduino Uno I2C data.
I2C_SCLA5 / SCLArduino Uno I2C clock.
ADS_ALERTOptional D2 or D3Only needed if using ALERT/RDY interrupt mode. Otherwise leave unconnected.
ADS_ADDRGND recommendedGives the default ADS1115 address 0x48 on most ADS1115 libraries.
DS18B20_DATAD2 or D3Uses R11 = 4.7 kohm pull-up to 5 V in the current design.
AUX_SENSOR_AIN2_INExternal analog sensor outputMust stay between 0 V and 5 V.
AUX_SENSOR_AIN3_INExternal analog sensor outputMust stay between 0 V and 5 V.
Recommended Arduino Uno ADS1115 firmware settings:
  • Use I2C address 0x48 if ADS_ADDR is tied to GND.
  • Read pH in differential mode: A0 - A1.
  • Start with PGA = +/-1.024 V for pH because the pH signal is small.
  • Use a slow data rate such as 8 SPS or 16 SPS and average readings.
  • Do not read the pH probe with the Arduino Uno analog input; use the ADS1115 result.
ESP32 Wiring
Use this wiring when using ESP32-WROOM-32 / ESP32 DevKit style 3.3 V boards:

Table


Project SignalESP32 DevKit PinNotes
3V3 rail3V3The design must be converted from VCC_5V to 3.3 V for ESP32 use.
GNDGNDCommon ground.
I2C_SDAGPIO21 typicalI2C data. Pull up to 3.3 V only.
I2C_SCLGPIO22 typicalI2C clock. Pull up to 3.3 V only.
ADS_ALERTOptional GPIO25, GPIO26, GPIO27, GPIO32, or GPIO33Use only if ALERT/RDY interrupt is required. Avoid boot-strap pins.
ADS_ADDRGND recommendedGives default ADS1115 address 0x48. Tie to 3.3 V/SDA/SCL only if another address is needed.
DS18B20_DATAGPIO25, GPIO26, GPIO27, GPIO32, or GPIO33 typicalPull up to 3.3 V only. Avoid 5 V pull-up.
AUX_SENSOR_AIN2_IN0-3.3 V sensor outputMust never exceed 3.3 V unless level shifted/divided.
AUX_SENSOR_AIN3_IN0-3.3 V sensor outputMust never exceed 3.3 V unless level shifted/divided.
ESP32 safety requirements:
  • ESP32 GPIO are not 5 V tolerant.
  • Do not connect the current 5 V I2C pull-ups directly to ESP32.
  • Do not connect DS18B20_DATA with a 5 V pull-up to ESP32.
  • If reusing this exact board with an ESP32, either revise the board to 3.3 V or add proper level shifting on I2C and DS18B20 data.
  • Avoid ESP32 GPIO6-GPIO11, which are usually connected to internal flash.
  • Avoid GPIO0 and other boot-strap pins for external sensor wiring unless you understand the boot requirements.
Recommended ESP32 ADS1115 firmware settings:
  • Use Wire.begin(21, 22) for common ESP32 SDA/SCL wiring, unless your board uses different pins.
  • Use I2C address 0x48 if ADS_ADDR is tied to GND.
  • Read pH in differential mode: A0 - A1.
  • PGA = +/-1.024 V is still suitable for pH at 3.3 V.
  • The pH bias midpoint should be approximately 1.65 V in a 3.3 V version.
  • Prefer ADS1115 over ESP32 internal ADC for pH because ESP32 ADC is not precision-linear without calibration.
Best for Arduino Uno/Nano/Mega
Use the current 5 V configuration:
  • VCC_5V -> Arduino 5V.
  • GND -> Arduino GND.
  • SDA/SCL -> Arduino I2C pins.
  • DS18B20_DATA -> any Arduino digital GPIO with R11 = 4.7 kohm pull-up to 5 V.
  • ADS1115 reads pH differentially on A0-A1.
Best for ESP32 / 3.3 V Arduino
Revise the project rails to 3.3 V:
  • Rename or treat VCC_5V as 3V3.
  • Pull I2C SDA/SCL to 3.3 V.
  • Pull DS18B20_DATA to 3.3 V.
  • Use VBIAS = 1.65 V from equal divider resistors.
  • Confirm the ADS1115 module supports 3.3 V operation.
  • Ensure any auxiliary AIN2/AIN3 sensors output 0-3.3 V only.
Practical Design Recommendation
For a beginner Arduino pH project, Arduino Uno + ADS1115 is simpler and safer because it matches the current 5 V through-hole design. If you want Wi-Fi/Bluetooth logging, ESP32 is better, but the board should be revised to a 3.3 V-safe version so no ESP32 GPIO ever sees 5 V.
Source Notes
Primary references used for this summary:
  • Espressif ESP32-WROOM-32 and ESP32 series datasheet information.
  • Arduino Uno Rev3 technical specifications / datasheet.
  • Microchip ATmega328P datasheet information.
  • Scope and Assumptions

  • Quick Comparison

  • Arduino Uno Rev3 Key Datasheet-Style Specs

  • Core

  • Power

  • Digital I/O

  • Analog Input

  • Communication Interfaces

  • pH Sensor Interface Notes for This Project

  • ESP32-WROOM-32 / ESP32 DevKit Key Datasheet-Style Specs

  • Core

  • Power

  • Digital I/O and Boot-Strap Warnings

  • Analog Input

  • Communication Interfaces

  • pH Sensor Interface Notes for This Project

  • Compatibility With Current ADS1115 pH Project

  • ADS1115 Wiring Notes

  • ADS1115 Pin Functions Used in This pH Project

  • Arduino Uno Wiring

  • ESP32 Wiring

  • Best for Arduino Uno/Nano/Mega

  • Best for ESP32 / 3.3 V Arduino

  • Practical Design Recommendation

  • Source Notes

Documents

  • ESP32 and Arduino Uno Datasheet Summary

  • Firmware Starter - ESP32-C3 pH/ORP ADS1115

  • ADS1115 pH Sensor Design Notes

  • ESP32-C3 ADS1115 pH/ORP Sensor Validation and Firmware Handoff Report

  • Schematic-Level Design Review

  • Schematic and Documentation Reverification

  • Concise BOM - Part Name, Value, Designators

  • Circuit and Documentation Reverification

Assets

No assets added.

ESP32-C3 ADS1115 pH ORP Sensor Interface 4412

ESP32-C3 ADS1115 pH ORP Sensor Interface 4412 thumbnail
ESP32-C3 battery-powered pH and ORP probe interface using ADS1115 differential ADC, MCP6002 through-hole buffers, DS18B20 temperature compensation, and short net labels for firmware handoff.

Properties

Sensor

3.3

V

Arduino

I2C

Battery

Pricing & Availability

Distributor

Qty 1

Arrow

$8.74–$11.13

Digi-Key

$3.68

LCSC

$16.69–$17.39

Mouser

$11.45

TME

$6.21

Verical

$7.55–$15.85

Controls