Skip to the content
4 layers74.7 × 114.6 mmWateringSystem, the printed circuit board in 3D

powershell # Build project & "C:\Users\crypt\.platformio\penv\Scripts\pio.exe" run --environment wateringsystem

Size
74.7 × 114.6 mm
Copper layers
4
Thickness
1.6 mm
Parts
46
Nets
79
Pads
182
Tracks, vias
293, 109
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
15 Apr 2025
Updated
2 Sep 2026

Overview

WateringSystem is an open-source printed circuit board by cryptotomte, from the cryptotomte/WateringSystem repository on GitHub, published under the AGPL-3.0 licence. It is a 4-layer board of 74.7 × 114.6 mm with 46 parts on 79 nets, routed with 293 tracks and 109 vias.

It is built around the ESP32-DEVKITC-32E, AP2115M-3.3TRG1 and LM317BD2TR4G-JSM, with the FOD817BSD, SS14 and SS8050-G among its other parts. Its parts include 10 resistors, 7 connectors, 6 diodes, 5 capacitors and 5 ICs. It belongs with the ESP32 boards of this library.

Main components

6

README

README.md

WateringSystem v2.3 (Hardware-Managed LDO Architecture)

Project Status License Hardware Isolation

Overview

Cost-effective automated plant watering system with 2-domain optical isolation for practical greenhouse automation. Features ESP32-based control, RS485 Modbus soil sensors, and simplified safety design optimized for enclosed environments.

🔥 Latest Update v2.3: Upgraded to TXS0108E bidirectional level shifter for faster RS485 communication - 1800x faster signal propagation while maintaining cost-effectiveness and reliability.

Table of Contents

🌟 Key Features

Practical Safety & Isolation

  • Fast Level Shifting: TXS0108E provides rapid voltage translation (110 Mbps)
  • 2-Domain Architecture: ESP32 (3.3V) → FIELD Domain (5V, level shifted)
  • Cost Effective: Ultra-low cost design with high performance
  • Greenhouse Optimized: Practical design for enclosed 12V environments

Professional Monitoring

  • Multi-Parameter Soil Analysis: NPK, pH, EC, moisture, temperature via RS485 Modbus
  • Environmental Sensing: BME280 for ambient temperature, humidity, pressure
  • Real-time Monitoring: Web interface with live sensor data
  • Remote Web Interface: Responsive monitoring and configuration portal

Smart Power Management

  • Hardware-Only Control: LDO voltage converters provide always-on power management
  • Extended Runtime: >48h operation on 20Ah LiFePO4 battery
  • Solar Ready: MC4 connectors for future solar panel integration
  • Battery Monitoring: Real-time voltage and capacity tracking
  • Simplified Design: No software power control eliminates failure points
  • Instant Operation: Always-on design eliminates startup delays

🔧 Hardware Architecture

Hardware-Managed LDO System

text
12V LiFePO4 BATTERY ──┬── AMS1117-3.3 LDO ──► ESP32 Control Domain (Always-On)
                      │                      │ TXS0108E Level Shifter (3.3V↔5V)
                      │                      └── FIELD Domain (RS485 + Sensors)
                      │
                      └── AMS1117-5.0 LDO ──► Field Power Supply (Always-On)
                               │
                               └── Common Ground (GND_COMMON)

Core Components

ComponentModelFunctionDomain
MicrocontrollerESP32-WROOM-32EMain processor + WiFi3.3V Always-On
RS485 InterfaceSP3485ENModbus communication5V Always-On
Level ShifterTXS0108E3.3V↔5V voltage translationSignal Path
Power RegulationAMS1117LDO voltage regulatorsHardware Control
EnvironmentalBME280Temperature/humidity3.3V Control
Soil SensorRS485 ModbusNPK/pH/EC/moisture5V Field

⚡ Hardware-Managed Safety Features

LDO-based design provides reliable, always-on operation:

  • Fast Level Shifting: TXS0108E (110 Mbps capability with 10ns propagation)
  • Hardware Control: LDO regulators eliminate software power management
  • Common Ground: Simplified design prevents ground loop issues
  • Always-On: Eliminates startup delays and power sequencing complexity
  • Maintenance Free: No complex power domain monitoring required

Software Dependencies

  • Framework: Arduino framework for ESP32
  • Build System: PlatformIO
  • Libraries:
    • Wire (for I2C communication)
    • Adafruit BME280 (for environmental sensor)
    • ModbusMaster (for RS485 soil sensor)
    • ESPAsyncWebServer (for web interface)
    • AsyncElegantOTA (for OTA updates)
    • LittleFS (for file storage)
    • ArduinoJson (for data processing)

Installation

  1. Clone the repository:
bash
git clone https://github.com/cryptotomte/WateringSystem.git
cd WateringSystem
  1. Install PlatformIO (if not already installed):
bash
pip install platformio

Windows PowerShell Commands

On Windows systems, PlatformIO may not be in PATH. Use these commands:

powershell
# Build project
& "C:\Users\crypt\.platformio\penv\Scripts\pio.exe" run --environment wateringsystem

# Upload to device  
& "C:\Users\crypt\.platformio\penv\Scripts\pio.exe" run --target upload --environment wateringsystem
  1. Build and upload the firmware:
bash
platformio run --target upload
  1. Upload the file system (for web interface):
bash
platformio run --target uploadfs

Usage

  1. Initial Setup

    • Power on the device
    • Connect to the WiFi network "WateringSystem-XXXX"
    • Navigate to 192.168.4.1 in your web browser
    • Follow the setup wizard to configure your home WiFi network
  2. Web Interface

    • Access the web interface by navigating to the IP address of the device
    • Monitor current environmental and soil conditions
    • Configure watering schedules and thresholds
    • View historical data and system logs
  3. OTA Updates

    • Access the update page at http://[device-ip]/update
    • Upload new firmware files through the web interface

Documentation

Detailed documentation is available in the docs directory:

Testing

The system includes unit tests and integration tests that can be executed using PlatformIO:

bash
# Run all tests
platformio test

# Run specific test
platformio test -e test_sensors

For complete testing documentation, see Testing Documentation.

Safety

The WateringSystem interfaces with both water and electricity. Important safety considerations:

  • All electrical components must be properly isolated from water
  • Use waterproof enclosure for outdoor installations
  • Include proper grounding for lightning protection in outdoor installations
  • Power supply must be isolated and conform to safety standards

For complete safety information, see Safety Documentation.

Contributing

Contributions to the WateringSystem project are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later) - see the LICENSE file for details.

Key License Points:

  • ✅ Commercial use allowed
  • ✅ Private use allowed
  • ✅ Modification allowed
  • ⚠️ Must share source code when distributing binaries
  • ⚠️ Must share source code when running as network service (SaaS)
  • ⚠️ Must preserve copyright and license notices
  • ⚠️ All modifications must use the same license

Parts

46
QtyValueFootprintReferences
4100Resistor_SMD:R_0805_2012MetricR1, R2, R5, R8
310uCapacitor_SMD:C_0805_2012MetricC4, C5, C6
210kResistor_SMD:R_0805_2012MetricR7, R10
21kResistor_SMD:R_0805_2012MetricR6, R9
2FOD817BSDSamacsys:SOP254P1016X385-4NQ1, Q3
2M7Diode_SMD:D_SMAD3, D4
2SS14Diode_SMD:D_SMAD1, D2
2SS8050-GSamacsys:SOT95P240X115-3NQ2, Q4
2normal_openJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP3, JP4
1+3V3_openJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1+5V_ClosedJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP2
10u1Capacitor_SMD:C_0805_2012MetricC3
112V_INPUTSamacsys:WEID_1715010000J5
11uCapacitor_Tantalum_SMD:CP_EIA-2012-12_Kemet-RC2
1240Resistor_SMD:R_0805_2012MetricR3
1715Resistor_SMD:R_0805_2012MetricR4
1AP2115M-3.3TRG1Samacsys:SOIC127P600X175-8NIC2
1ESP32-DEVKITC-32ESnapeda:ESP32-DEVKITC-32E_MODULE_ESP32-DEVKITC-32E-for headersU1
1LM317BD2TR4GSamacsys:LM317BD2TR4GIC1
1MAIN_PUMP_OUTSamacsys:WEID_1715010000J7
1MAIN_PUMP_RELAYSamacsys:120715561J1
1PWRSamacsys:150080SS75000LED1
1RESERVOIR_PUMP_OUTSamacsys:WEID_1715010000J6
1RESERVOIR_PUMP_RELAYSamacsys:120715561J2
1RESERVOIR_SENSOR_HIGHConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ4
1RESERVOIR_SENSOR_LOWConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ3
1STATUSSamacsys:LEDC2012X80NLED2
1~Development_boards_custom:TXS10108E_breakoutU4
1~Development_boards_custom:BME_280_qt_versionU2
1~Development_boards_custom:MAX485ESA+T_breakoutBreakoutboard1

The 42 most common of 46 parts.

Similar boards

  • 2 layers50.8 × 38.1 mmEngine monitor, the printed circuit board in 3D

    Engine monitor

    alexanderenrique/smart_tbird

    Smart Thunderbird vehicle electronics — ESP32 nodes, alternator delay, display, and tooling.

    63 parts
  • 2 layers93.4 × 57.9 mmESP32 RST Monitoring, the printed circuit board in 3D

    ESP32 RST Monitoring

    CasuariusSYC/3-Phase-Electricity-Monitoring

    This project is a module to monitor the status of a 3-phase electricity supply and record any power outages. The data can be accessed wirelessly. Currently, the features are limited to detecting the power state only.

    32 parts
  • 2 layers55 × 55 mmLeafNode v3.1, the printed circuit board in 3D

    LeafNode v3.1

    leafai-io/leaf-node-v3.x

    Modular node for sensor monitoring and device control in grow environments.

    91 parts47
  • 4 layers44.5 × 22.5 mmIkea fyrtur, the printed circuit board in 3D

    Ikea fyrtur

    mjuhanne/ikea-fyrtur

    ESP8266 WiFi module PCB for Ikea Fyrtur blinds

    46 parts23MIT
  • 4 layers65 × 100 mmPGR, the printed circuit board in 3D

    PGR

    Projeto-Guarda-Rios/PCB

    O repositório para a PCB do Projeto Guarda Rios! Inclui todos os ficheiros relacionados com a PCB!

    188 parts2MIT
  • 2 layers48.8 × 50.4 mmServer Motherboard, the printed circuit board in 3D

    Server Motherboard

    DDeGonge/MiniBot

    Super cheap super tiny bots for....playing chess...

    110 parts47MIT
  • 2 layers72.6 × 51.8 mmWinder V1, the printed circuit board in 3D

    Winder V1

    AnotherBuildCorner/Pickup_Winder

    A DIY pickup winder with CNC capability, from mostly off the shelf parts

    16 parts1
  • 2 layers393.7 × 165.1 mmUpdated LOAF, the printed circuit board in 3D

    Updated LOAF

    OSHE-Github/Smart-BREAD

    Creating an HMI for the BREAD Ecosystem, as well as a conveyor belt to be paired with the improved computation capabilities of the BREAD system.

    91 parts1

Questions

How big is the WateringSystem PCB?

It measures 74.7 × 114.6 mm and has 4 copper layers, 1.6 mm thick.

What parts does the WateringSystem use?

46 parts, built around the ESP32-DEVKITC-32E, AP2115M-3.3TRG1, LM317BD2TR4G-JSM and FOD817BSD. 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 WateringSystem KiCad files?

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

Can I use the WateringSystem design in my own project?

Its repository publishes it under the AGPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).