Skip to the content
2 layers120.4 × 85.7 mmESPrinkler Retic PCB, the printed circuit board in 3D

8-Zone reticulation controller based on ESPHome for Home Assistant

Size
120.4 × 85.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
142
Nets
131
Pads
395
Tracks, vias
548, 55
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Feb 2025
Updated
31 Oct 2026

Overview

ESPrinkler Retic PCB is an open-source printed circuit board by slippery-carrot, from the slippery-carrot/ESPrinkler-Retic-Controller repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 120.4 × 85.7 mm with 142 parts on 131 nets, routed with 548 tracks and 55 vias.

It is built around the BTB16-600BWRG, XL1509-5.0 and MOC3063S, with the AO3400A, DB910-7.62-3P-GN-S and MB10S among its other parts. Its parts include 61 resistors, 22 diodes, 11 transistors, 10 ICs and 7 connectors. It belongs with the home automation and IoT boards of this library.

Main components

8

README

README.md

🌱 ESPrinkler Retic Controller

An open-source, ESP32-based smart irrigation controller built with ESPHome and designed for seamless integration with Home Assistant.

ESPrinkler gives you full local control over your irrigation system—no cloud services, no subscriptions, and no reliance on external servers. All schedules are stored directly on the device, ensuring your system continues to run even if Home Assistant or network connectivity becomes unavailable.


🚀 Features

  • Fully local operation (no cloud dependencies)
  • Home Assistant integration via ESPHome
  • Standalone operation with onboard schedule storage
  • Solid-state design with optically isolated outputs
  • Control up to 8 irrigation zones + pump/master valve
  • Support for up to 3 independent watering programs
  • Flexible scheduling:
    • Day-of-week control
    • Up to 4 start times per program
    • Configurable zone durations and repeat cycles
  • LED indicators for system status and outputs

🧠 How It Works

ESPrinkler operates using up to three independent watering programs, each of which defines:

  • When watering occurs (days + start times)
  • Which zones are active
  • How long each zone runs
  • Whether the cycle repeats

All configuration is done through Home Assistant entities, and once configured, the controller runs autonomously.

⚠️ Programs do not prevent overlap automatically, so you must ensure schedules don’t conflict.


🏗️ Hardware Overview

The controller is built around an ESP32 (ESP32-DevKitC compatible) and a custom PCB designed for irrigation control.

Key hardware characteristics:

  • Compatible with 24VAC reticulation systems
  • Solid-state solenoid switching
  • Isolated AC/DC sections
  • Fused solenoid power output
  • Terminal block wiring for:
    • Power input
    • Pump/master valve
    • 8 irrigation zones
  • Optional external LEDs for:
    • Wi-Fi status
    • System status

For full specifications, wiring diagrams, and pinouts, see:
Hardware Specifications Wiki


⚡ Requirements

To build and use ESPrinkler, you’ll need:

  • ESP32 Dev Board (ESP32-DevKitC compatible)
  • ESPrinkler PCB (assembled or DIY)
  • 24VAC transformer (~30VA recommended)
  • Fuse (M205 1A Quick Blow)
  • Suitable enclosure
  • Wiring/connectors for your installation
  • Home Assistant with ESPHome installed

🛠️ Getting Started

1. Set Up ESPHome

Install and configure ESPHome in Home Assistant:
https://esphome.io/guides/getting_started_hassio/


2. Prepare Firmware

  • Copy the provided secrets.yaml values into your ESPHome setup
  • Import the retic-controller.yaml file into ESPHome (Add new device -> Import from file)
  • Update the substitutions (Wi-Fi, API key, device name, etc.)

3. Flash the Device

  • Click the 3 dots under the new configuration
  • Click "install" and follow your preferred method to flash your ESP32
  • I recommend choosing "manual download" and then navigate to ESPHome Web to flash your device using the binary file
  • Once flashed, the device will appear in Home Assistant

4. Wire the Hardware

  • Connect 24VAC input
  • Connect solenoids (zones + common)
  • Install fuse
  • Optional: connect status LEDs

⚠️ Warning: This involves working with mains/low-voltage AC systems. Follow all relevant electrical safety standards and regulations. 👉 See the Hardware Specifications Wiki for full wiring details and pinouts.


5. Configure in Home Assistant

Once the device is online:

  • Enable one or more programs
  • Set watering days
  • Configure start times
  • Enable zones and durations
  • An example dashboard page .yaml file has been provided as an example layout in Home Assistant

⚠️ NOTE: The example dashboard yaml uses Mushroom Cards, so make sure to install that if you want it to function. 👉 See the Home Assistant Entities Wiki for a full breakdown of all controls, sensors, and configuration options.


🌿 Program Basics

Each program requires:

  • ✅ Program enabled
  • ✅ At least one watering day
  • ✅ At least one start time
  • ✅ At least one active zone with duration

Optional settings:

  • Repeat cycles (repeat full zone sequence)

🏠 Home Assistant Integration

ESPrinkler exposes a full set of:

  • Controls (start/stop, enable program, pause)
  • Sensors (current zone, time remaining, next cycle)
  • Configuration entities (days, times, durations, repeats)
  • Diagnostics (Wi-Fi signal, uptime, firmware, etc.)

👉 Full details here:
Home Assistant Entities Wiki


🧩 Project Structure

  • Firmware: ESPHome YAML configuration and secrets example, including example dashboard layout
  • Hardware: Custom PCB design in KiCad and production files
  • Documentation:
    • README (this file)
    • Hardware Wiki
    • Home Assistant Wiki

⚠️ Important Notes

  • Programs can overlap if configured incorrectly—this is not automatically prevented
  • Default start times may be active—always verify configuration
  • Ensure the transformer you choose is correctly sized for your solenoid load
  • Always use appropriate fuse protection

🪰 Limitations, Issues, and Bugs

  • ESPrinkler requires connection to home assistant at least once in order to set its internal clock. Without this, it has no reference to the current time and date

🔗 Documentation


Parts

142
QtyValueFootprintReferences
18120RResistor_SMD:R_0805_2012MetricR10, R11, R12, R13, R14, R26, R28, R30, R32, R34, R45, R46, R47, R48, R58, R60 +2
16TestPointTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP13, TP14, TP15, TP16, TP17, TP22, TP23, TP24, TP25
121.2kResistor_SMD:R_0805_2012MetricR1, R4, R9, R25, R27, R29, R31, R33, R57, R59, R61, R63
1110kResistor_SMD:R_0805_2012MetricR2, R7, R35, R36, R37, R38, R39, R65, R66, R67, R68
111kResistor_SMD:R_0805_2012MetricR3, R8, R40, R41, R42, R43, R44, R69, R70, R71, R72
11AO3400APackage_TO_SOT_SMD:SOT-23_HandsolderingQ1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11
10REDLED_SMD:LED_0603_1608MetricD3, D9, D10, D11, D12, D13, D18, D19, D20, D21
922RResistor_SMD:R_0805_2012MetricR20, R21, R22, R23, R24, R53, R54, R55, R56
9BTB16-600BWRGFootprints:TO-220-3_Horizontal_TabDown_NoHoleD4, D5, D6, D7, D8, D14, D15, D16, D17
9MOC3063SFootprints:MOC306XS_LTOU2, U3, U4, U5, U6, U7, U8, U9, U10
4DB910-7.62-3P-GN-SFootprints:DORABO_DB910-7.62-3P-GN-S_1x03_P7.62mm_VerticalJ1, J2, J3, J4
4MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
2470uFCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1, C5
2Conn_01x19Connector_PinSocket_2.54mm:PinSocket_1x19_P2.54mm_VerticalJ6, J7
1100nFCapacitor_SMD:C_0805_2012MetricC3
110uFCapacitor_SMD:C_1206_3216MetricC2
1180uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC4
1250mAFuse:Fuse_BelFuse_0ZRE0033FF_L11.4mm_W3.8mmF2
168uHInductor_SMD:L_APV_ANR5045L2
1Conn_01x04TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-4-5.0-H_1x04_P5.00mm_HorizontalJ5
1M205 2AFuse:Fuseholder_Cylinder-5x20mm_Schurter_0031_8201_Horizontal_OpenF1
1MB10SFootprints:OnSemi_751EP_SOIC-4_3.9x4.725mm_P2.54mmD1
1SMAJ33ADiode_SMD:D_SMAD22
1SS34Diode_SMD:D_SMAD2
1XL1509-5.0Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1

The 139 most common of 142 parts.

Similar boards

  • 2 layers140 × 64 mmThermostat v3, the printed circuit board in 3D

    Thermostat v3

    Connicpu/thermostat

    DIY Zigbee thermostat (ESP32-C6) with day/night schedule and a Home Assistant Lovelace card

    101 partsMIT
  • 4 layers80 × 80 mmBLDC Version1 1 0, the printed circuit board in 3D

    BLDC Version1 1 0

    DJAY101/Dynamiq_BLDC_Controller

    Bringing brushless motor control to the masses

    125 partsGPL-3.0
  • 2 layers100 × 69.5 mmPanoboard2, the printed circuit board in 3D

    Panoboard2

    CapnKernel/panoboard2

    A new controller board for Panasonic bread makers

    76 parts
  • 4 layers60.6 × 56.2 mmFurnace controller, the printed circuit board in 3D

    Furnace controller

    digiexchris/furnace-controller

    Simple 5 wire furnace controller using the Wemos D1 Mini. Intended for ESPHome and Home Assistant or other automation uses.

    40 parts
  • 2 layers100 × 95 mmRRFExtRP2040, the printed circuit board in 3D

    RRFExtRP2040

    nyarurato/RRFExtRP2040Board

    DIY Duet3 Extension Board

    92 parts
  • 2 layers93.9 × 84 mmBatak, the printed circuit board in 3D

    Batak

    sufst/pcb

    Monorepo for all schematics and PCB designs

    176 parts19GPL-3.0
  • 2 layers55 × 35 mmPwr sply, the printed circuit board in 3D

    Pwr sply

    hubertmis/zathome

    Smart home embedded devices based on Zephyr OS

    16 parts5

Questions

How big is the ESPrinkler Retic PCB PCB?

It measures 120.4 × 85.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ESPrinkler Retic PCB use?

142 parts, built around the BTB16-600BWRG, XL1509-5.0, MOC3063S and AO3400A. 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 ESPrinkler Retic PCB KiCad files?

From the slippery-carrot/ESPrinkler-Retic-Controller repository on GitHub, at the commit this page was made from: the board is PCB/ESPrinkler Retic PCB/ESPrinkler Retic PCB.kicad_pcb and its schematic PCB/ESPrinkler Retic PCB/Control Outputs.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ESPrinkler Retic PCB design in my own project?

Its repository publishes it under the GPL-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).