Skip to the content
PCBKitNew board
2 layers81 × 95 mmWaterLevelController, the printed circuit board in 3D

water level controller using ESP32

Size
81 × 95 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
47
Pads
136
Tracks, vias
262, 4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
2 Jun 2025
Updated
4 Jul 2026

Overview

WaterLevelController is an open-source printed circuit board by charlesgeorge85, from the charlesgeorge85/waterLevelController repository on GitHub. It is a 2-layer board of 81 × 95 mm with 46 parts on 47 nets, routed with 262 tracks and 4 vias.

It is built around the BC547. Its parts include 19 resistors, 11 capacitors, 7 connectors, 4 diodes and 2 ICs. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

Water Level Controller for Home

This project implements a smart water tank pump controller using an ESP32 microcontroller. It manages the transfer of water between an Underground Tank (UGT) and an Overhead Tank (OHT), ensuring safe, efficient operation with dry-run protection and a web interface for monitoring and manual control.

1. Problem Statement

The system is designed to automatically control a water pump to transfer water from a UGT to an OHT. Key challenges addressed include:

  • Preventing pump operation when UGT is empty (dry run).
  • Automating pump ON/OFF based on OHT and UGT water levels.
  • Providing manual mode, switch is set to manual, in manual mode, pump will be 'on', so thts pump can be controlled via main power switch

1.1 Tank Level Thresholds

  • Overhead Tank (OHT):

    • OHT_FULL: Tank is full.
    • OHT_EMPTY: Tank is empty.
  • Underground Tank (UGT):

    • UGT_EMPTY: Tank is empty.
    • UGT_NOT_EMPTY: Tank has sufficient water.

2. Use Cases

2.1 Pump Activation

The pump is activated when:

  • OHT level is below OHT_EMPTY.
  • UGT level is above UGT_EMPTY.

2.2 Pump Deactivation

The pump is turned off when:

  • OHT reaches OHT_FULL, or
  • UGT falls below UGT_EMPTY, or
  • A dry-run condition is detected.

If deactivation is due to UGT low level, the pump will only reactivate once UGT is above UGT_NOT_EMPTY.

2.3 Dry Run Detection & Handling

  • Dry-run is detected via motor current using a Current Transformer (CT).
  • For a 0.25 HP motor, current < 0.8 A indicates a dry run, during normal run, the measured current is 1.27A
  • On dry run:
    • A buzzer alerts.
    • Alarm can be cleared with a Alarm reset switch

3. Hardware Implementation

  • Controller: ESP32
  • Features:
    • Water level monitoring (UGT & OHT)
    • Motor control (auto/manual)
    • Current sensing
    • Configurable dry-run threshold
    • Web UI for (future Plan):
      • Displaying water levels
      • Manual motor control
      • Viewing current consumption
      • Threshold configuration

4. Web UI(future Plan)

A web-based interface hosted on ESP32 allows real-time visualization and control of the pump system.

5. ESP32 Devkit V1 details

ESP32 Pinout

ESP32 DOIT DevKit V1 Board Details


Author

Joseph George

License

This project is open-source and available under the MIT License.

Parts

46
QtyValueFootprintReferences
1922kResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P5.08mm_VerticalR1, R2, R3, R4, R5, R6, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19 +3
9.1uFCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC2, C4, C5, C6, C7, C8, C9, C10, C11
31N4001Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1, D2, D4
2Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2, J7
11000ufCapacitor_THT:C_Radial_D12.5mm_H20.0mm_P5.00mmC1
110uFCapacitor_THT:CP_Radial_D8.0mm_P2.50mmC3
1BC547Package_TO_SOT_THT:TO-92_WideQ1
1BuzzermyLib:BUZ_12X7P6BZ1
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4
1Conn_01x05_PinConnector_Phoenix_MC:PhoenixContact_MCV_1,5_5-G-3.81_1x05_P3.81mm_VerticalJ6
1Conn_01x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ5
1ESP32-DevKit-V1myLib:ESP32-DevKit-V1U1
1LEDLED_THT:LED_D3.0mmD3
1LM7805_TO220Package_TO_SOT_THT:TO-220-3_VerticalU2
1SANYOU_SRD_Form_CRelay_THT:Relay_SPDT_SANYOU_SRD_Series_Form_CK1
1TerminalBlockConnector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.81_1x03_P3.81mm_VerticalJ1
1TerminalBlockConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.81_1x02_P3.81mm_VerticalJ3

Questions

How big is the WaterLevelController PCB?

It measures 81 × 95 mm and has 2 copper layers, 1.6 mm thick.

What parts does the WaterLevelController use?

46 parts, built around the BC547. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the WaterLevelController KiCad files?

From the charlesgeorge85/waterLevelController repository on GitHub, at the commit this page was made from: the board is hardware/waterLevelController.kicad_pcb and its schematic hardware/waterLevelController.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the WaterLevelController design in my own project?

Its repository states no licence, so its author keeps all rights: ask charlesgeorge85 before reusing the design.

Similar boards

  • 2 layers83.3 × 65.3 mmSimonShield, the printed circuit board in 3D

    SimonShield

    github-linguist/linguist

    Language Savant. If your repository's language is being reported incorrectly, send us a pull request!

    46 parts14kMIT
  • 2 layers56 × 65 mmSeaTalk1, the printed circuit board in 3D

    SeaTalk1

    dotnet/iot

    This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

    24 parts2.4kMIT
  • 2 layers132.1 × 45.7 mmIPoS, the printed circuit board in 3D

    IPoS

    peterheinrich/InternetOverSpaghetti

    Transmitting IP packages over a pair of spaghetti thus demonstrating how media independent IP really is.

    42 parts342
  • 2 layers99.1 × 99.7 mmRC6502 General Video Adapter, the printed circuit board in 3D

    RC6502 General Video Adapter

    tebl/RC6502-Apple-1-Replica

    An expandable SBC-version of the Apple 1 computer, easy to get started with and lot of cool stuff that can be added to it!

    80 parts193GPL-3.0
  • 2 layers55.9 × 38.6 mmMega Amp, the printed circuit board in 3D

    Mega Amp

    theacodes/genesynth

    A Sega Genesis inspired synthesizer

    40 parts178Apache-2.0
  • 2 layers40 × 100 mmBack pcb, the printed circuit board in 3D

    Back pcb

    ZeroPhone/ZeroPhone-PCBs

    PCB files for ZeroPhone - for gerbers and schematics, go to "Releases" tab!

    118 parts148GPL-3.0
  • 2 layers100 × 100 mmCANBuster, the printed circuit board in 3D

    CANBuster

    GBert/misc

    miscellaneous stuff / unsorted

    182 parts99