Skip to the content
PCBKitNew board
2 layers108.9 × 78 mmPoolDosingController, the printed circuit board in 3D

PoolDosingController

Dynacore-dev/PoolGuard

KiCad 10 PCB design for the ESP32 board that this repository's firmware runs on. It regulates power for the ESP32 and a DS18S20 temperature sensor, and switches four 12V output channels for pumps/relays.

Size
108.9 × 78 mm
Copper layers
2
Thickness
1.6 mm
Parts
42
Nets
53
Pads
158
Tracks, vias
175, 20
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
26 Aug 2026
Updated
13 Sep 2026

Overview

PoolDosingController is an open-source printed circuit board by Dynacore-dev, from the Dynacore-dev/PoolGuard repository on GitHub. It is a 2-layer board of 108.9 × 78 mm with 42 parts on 53 nets, routed with 175 tracks and 20 vias.

It is built around the ESP32-DEVKITC-32E, DS18S20+ and L7805ABD2T-TR, with the MMBT3904, IRFZ44N and SS16 among its other parts. Its parts include 13 resistors, 12 transistors, 6 capacitors, 5 diodes and 3 ICs. It belongs with the ESP32 boards of this library.

Main components

6

README

hardware/PoolDosingController/README.md

PoolDosingController (KiCad hardware)

KiCad 10 PCB design for the ESP32 board that this repository's firmware runs on. It regulates power for the ESP32 and a DS18S20 temperature sensor, and switches four 12V output channels for pumps/relays.

Overview

MCUESP32-DevKitC (U3)
Board size108.9 x 78.0 mm, 2 layers
Power in12V via J2 (2-pin screw terminal)
Regulated rails+12V (unregulated, direct), +5V (U1, LM7805S linear regulator), +3.3V (from the ESP32-DevKitC's own onboard regulator)
Temperature sensorDS18S20 (U2, onboard) + external sensor header J1 (3-pin, +3.3V/DATA/GND)
Switched outputs4 channels via J3 (8-pin screw terminal), each a low-side IRFZ44N MOSFET driven through an MMBT3904 transistor stage, with an SS16 flyback diode across the load
DRC status0 errors (see Design status)

Output channels

J3 provides 4 independent 12V low-side switched outputs (D2-D5 / Q1-Q12 / R2-R13, one MOSFET + driver transistor + flyback diode per channel):

  1. Peristaltic dosing pump 1 (0.3-1A)
  2. Peristaltic dosing pump 2 (0.3-1A)
  3. Finder relay, drives the main pool filter pump (relay coil current only, ~30-70mA)
  4. Reserve / spare channel

Each channel's copper (D2-A...D5-A nets) is on the Pumpenausgaenge→PumpOutputs netclass (1.5mm min. trace width, sized for the peristaltic pump's worst-case 1A draw with margin).

Connectors

RefTypeFunction
J13-pin, 2.54mm (Xinya XY308)External DS18S20 sensor: +3.3V / DATA / GND
J22-pin, 5.0mm (Phoenix)+12V power input
J38-pin, 5.0mm (Phoenix)4x switched 12V output channels (2 pins each)

Netclasses

NameNetsTrace widthVia (dia/drill)
PumpOutputsNet-(D2-A) … Net-(D5-A)1.5mm1.0 / 0.5mm
Supply_12V+12V, GND1.0mm1.0 / 0.5mm
Supply_Logic+5V, +3.3V0.6mm0.6 / 0.3mm
Defaulteverything else (control/signal lines)0.2mm0.6 / 0.3mm

+12V and GND are additionally backed by copper pours (zones) on B.Cu/F.Cu, so the netclass trace width only governs short stub connections into the pour, not the bulk current path.

Bill of materials

Full BOM: PoolDosingController-BOM.csv. Summary:

RefQtyValueMPN
C110.33uF
C2, C320.1uF
C4, C5, C6310uF
D111N4001
D2, D3, D4, D54SS16
J113-pin 2.54mm terminal block
J212-pin 5.0mm terminal block
J318-pin 5.0mm terminal block
Q1-Q88MMBT3904
Q9-Q124IRFZ44N
R112.2K
R2, R3, R4, R54220
R6-R13810K
U11LM7805SL7805ABD2T-TR
U21DS18S20DS18S20+
U31ESP32-DevKitCESP32-DEVKITC-32E

C2's footprint (PCM_Capacitor_SMD_AKL:C_0805_2012Metric) has a documented, not-yet-installed alternate part on its LCSC_Alt_0402 field: JLCPCB C1525 (Samsung CL05B104KO5NNNC, 0402, 100nF 16V X7R, Basic). Its footprint (CAPC2012X140N) is included under library/footprints/ if you want to switch to it.

Design status

Last full design review: 0 DRC errors. Remaining warnings (non-blocking):

  • 199x connection_width — thermal spoke connections to the copper pours, expected/cosmetic.
  • 32x text_height — a few silkscreen labels below the strict 0.8mm rule.
  • 4x lib_footprint_mismatch — the embedded footprint copies for J1/J2/J3/C1 have drifted slightly from the current version of their (stock KiCad) libraries; purely a library-vs-board diff, not a design error.
  • 3x info: +12V/+5V/+3.3V have no test point (informational only).

Opening this project

This folder is fully self-contained: library/ holds local copies of every non-stock symbol library, footprint library, and 3D model this design uses (sym-lib-table/fp-lib-table point at them via ${KIPRJMOD}), so git clone + open in KiCad 10 works without installing any third-party library packages first. The only gap is a missing 3D model for J1's exact connector (cosmetic 3D-preview only, a similarly-sized substitute is used); see the netclass/library setup notes in the project's commit history for details.

Parts

42
QtyValueFootprintReferences
810KPCM_Resistor_SMD_AKL:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR6, R7, R8, R9, R10, R11, R12, R13
8MMBT3904PCM_Package_TO_SOT_SMD_AKL:SOT-23Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8
4220PCM_Resistor_SMD_AKL:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR2, R3, R4, R5
4IRFZ44NPCM_Package_TO_SOT_THT_AKL:TO-220-3_Vertical_GDSQ9, Q10, Q11, Q12
4SS16Diode_SMD:D_SMAD2, D3, D4, D5
310uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4, C5, C6
20.1uFPCM_Capacitor_SMD_AKL:C_0805_2012MetricC2, C3
10.33uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
11N4001PCM_Diode_THT_AKL:D_DO-41_SOD81_P7.62mm_HorizontalD1
12.2KPCM_Resistor_SMD_AKL:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR1
1DS18S20Package_TO_SOT_THT:TO-92_InlineU2
1ESP32-DevKitCPCM_Espressif:ESP32-DevKitCU3
1LM7805SPCM_Package_TO_SOT_SMD_AKL:TO-263-3_TabPin2U1
1Screw_Terminal_01x03TerminalBlock:TerminalBlock_Xinya_XY308-2.54-3P_1x03_P2.54mm_HorizontalJ1
1Screw_Terminal_2_P5.00mmTerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-5.0-H_1x02_P5.00mm_HorizontalJ2
1Screw_Terminal_4_P5.00mmTerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-8-5.0-H_1x08_P5.00mm_HorizontalJ3

Questions

How big is the PoolDosingController PCB?

It measures 108.9 × 78 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PoolDosingController use?

42 parts, built around the ESP32-DEVKITC-32E, DS18S20+, L7805ABD2T-TR and MMBT3904. 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 PoolDosingController KiCad files?

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

Can I use the PoolDosingController design in my own project?

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

Similar boards

  • 2 layers95 × 48 mmOneWireLogger, the printed circuit board in 3D

    OneWireLogger

    land-boards/lb-boards

    land-boards - Board Designs

    71 parts31
  • 2 layers99.1 × 99.1 mmRaw, the printed circuit board in 3D

    Raw

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    77 parts21MIT
  • 2 layers100.6 × 99.1 mmTesting board, the printed circuit board in 3D

    Testing board

    kitspace-test-repos/kicad6-file-collection

    75 partsMIT
  • 4 layers160 × 100 mmADC7177B1, the printed circuit board in 3D

    ADC7177B1

    BehrensG/ADC7177M1

    ADC module based on AD7177-2.

    262 parts
  • 2 layers120 × 90 mmPLC STM32 Modbus, the printed circuit board in 3D

    PLC STM32 Modbus

    danhmanu/PLC-STM32F407VET6

    Mạch nguyên lý KiCad 10 cho bộ PLC: điều khiển qua LAN bằng Modbus TCP (module W5500 Lite), nạp code qua USB‑C (CH340C), 16 ngõ ra transistor cách ly quang, 10 ngõ vào analog 4–20mA.

    264 parts
  • 2 layers79.8 × 79.8 mmBefore, the printed circuit board in 3D

    Before

    PNT2110/FC_ESP32

    An ESP32-WROOM-32 based flight controller designed for 1S brushed quadcopters.

    76 parts
  • 2 layers98 × 79.5 mmFlex over can, the printed circuit board in 3D

    Flex over can

    twisted-builds-llc/sloppy_holley_flex-over-can

    CAN bus input/output module for Holley Terminator X (also HP/Dominator class ECUs).

    86 parts1
  • 2 layers83.5 × 65.5 mmProyecto board, the printed circuit board in 3D

    Proyecto board

    Alexanderabad/Alexander_Abad-Microcontroladores-C1-2025

    Tareas de Micro C1-2025

    30 parts