Skip to the content
PCBKitNew board
2 layers60 × 80 mmPlant water array, the printed circuit board in 3D

An ESP32 based moisture detection array built with a SQLLite, Fast API backend and React frontend.

Size
60 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
29
Pads
49
Tracks, vias
62, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
20 Sep 2024
Updated
14 Mar 2026

Overview

Plant water array is an open-source printed circuit board by millelog, from the millelog/plant-water-array repository on GitHub. It is a 2-layer board of 60 × 80 mm with 8 parts on 29 nets, routed with 62 tracks and 0 vias.

It belongs with the ESP32 boards of this library.

README

pcb/README.md

Plant Water Array — PCB Design

Breakout board for ESP32 DevKit V1 with OLED display and 5 moisture sensor connectors.

Board Summary

text
+--------------------------------------------------+
|                                                  |
|  [OLED 4-pin]              [ESP32 DevKit V1]    |
|   GND VCC SCL SDA           L-socket  R-socket  |
|                              (1x15)    (1x15)    |
|                                                  |
|  [J_S1] [J_S2] [J_S3] [J_S4] [J_S5]           |
|   G34    G35    G36    G39    G32               |
+--------------------------------------------------+

Parts List (per board)

PCB Connectors (solder onto the board)

PartQtySearch TermNotes
1x15 Female Pin Socket (2.54mm)2"1x15 pin socket 2.54mm"ESP32 DevKit mounts into these
1x4 Female Pin Socket (2.54mm)1"1x4 pin socket 2.54mm"SSD1306 OLED plugs in here
JST-XH 3-pin vertical header (B3B-XH-A)5"JST XH 3 pin male header vertical"Board-side sensor connectors

Sensor Cable Parts (per sensor, 5 per board)

PartQtySearch TermNotes
JST-XH 3-pin plug housing (XHP-3)1"JST XH 3 pin female housing"Mates with B3B-XH-A header
JST-XH crimp contacts (SXH-001T-P0.6)3"JST XH crimp terminal"One per wire
3-conductor wire (22-26 AWG)~1m"3 conductor 24AWG wire"Length as needed, up to ~2m

Quantities for 5 Boards

PartTotal Qty
1x15 Female Pin Socket10
1x4 Female Pin Socket5
JST-XH 3-pin header (B3B-XH-A)25
JST-XH 3-pin housing (XHP-3)25
JST-XH crimp contacts75
3-conductor wire~25m

Where to Buy

  • Amazon (fastest) — search "JST XH connector kit" ($10-15 for assorted kit with headers + housings + crimp pins). Separately get a pack of "female pin header socket 2.54mm" ($5-7).
  • AliExpress (cheapest, 2-3 week shipping) — same searches, about 1/3 the price.
  • Digikey / Mouser (exact part numbers, reliable) — B3B-XH-A ~$0.15ea, XHP-3 ~$0.10ea, SXH-001T-P0.6 ~$0.05ea, pin sockets ~$0.50ea.

A JST crimp tool (~$25) is helpful but you can solder wires directly to the crimp contacts instead.

Pin Mapping

ConnectorPin 1Pin 2Pin 3ESP32 GPIO
J_S1GND3V3SIGGPIO 34
J_S2GND3V3SIGGPIO 35
J_S3GND3V3SIGGPIO 36 (VP)
J_S4GND3V3SIGGPIO 39 (VN)
J_S5GND3V3SIGGPIO 32
J_OLEDGND3V3SCL (GPIO 22)SDA (GPIO 21)

Generating the Netlist

bash
cd pcb/
python generate_netlist.py
# Produces plant_water_array.net
# Open KiCad PCB Editor → File → Import Netlist

No dependencies required — just Python.

PCB Layout Tips

  • ESP32 socket headers in the center (25.4mm apart, verify with your DevKit)
  • OLED header on top edge
  • JST-XH connectors along bottom or side edge
  • Keep traces wide (0.5mm+)
  • Pour a ground plane on the back copper layer (select B.Cu → Place → Add Filled Zone → net GND)

Ordering PCBs (JLCPCB)

  1. Export Gerbers from KiCad: File → Fabrication Outputs → Gerbers, then Generate Drill Files
  2. Zip the gerber_out/ folder
  3. Go to jlcpcb.com → Order Now → upload the zip

JLCPCB Settings

SettingValue
Base MaterialFR-4
Layers2
PCB Qty5
PCB Thickness1.6mm
PCB ColorGreen (cheapest)
Surface FinishHASL (or LeadFree HASL)
Copper Weight1 oz
Everything elseDefault

Cost: ~$2-5 + shipping ($1-5 standard, ~$15-20 DHL express).

Sensor Cable Assembly

Each sensor cable is a 3-wire bundle with a JST-XH plug on the board end:

text
Sensor                Board End
┌─────────┐         ┌──────────┐
│ S (sig) │─────────│ Pin 3    │
│ + (VCC) │─────────│ Pin 2    │
│ - (GND) │─────────│ Pin 1    │
└─────────┘         └──────────┘
                    JST-XH plug

Use 3-conductor cable (ribbon cable or twisted triple) — can run 1-2 meters without issues for analog signals.

Parts

8
QtyValueFootprintReferences
1ESP32_LeftConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ_ESP_L
1ESP32_RightConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ_ESP_R
1Moisture_G32Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ_S5
1Moisture_G34Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ_S1
1Moisture_G35Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ_S2
1Moisture_G36Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ_S3
1Moisture_G39Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ_S4
1SSD1306_OLEDConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ_OLED

Questions

How big is the Plant water array PCB?

It measures 60 × 80 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Plant water array use?

8 parts. 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 Plant water array KiCad files?

From the millelog/plant-water-array repository on GitHub, at the commit this page was made from: the board is pcb/plant_water_array.kicad_pcb and its schematic pcb/plant_water_array.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Plant water array design in my own project?

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

Similar boards

  • 2 layers20.5 × 24.8 mmPi interface, the printed circuit board in 3D

    Pi interface

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    8 parts3.7k
  • 2 layers59.9 × 25.7 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    8 parts1kGPL-3.0
  • 2 layers52 × 12.6 mmUSB, the printed circuit board in 3D

    USB

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    8 parts960Apache-2.0
  • 2 layers87.5 × 48.5 mm7 input macropad, the printed circuit board in 3D

    7 input macropad

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    8 parts915
  • 2 layers36.2 × 63.1 mmPicoMemcard pico, the printed circuit board in 3D

    PicoMemcard pico

    dangiu/PicoMemcard

    Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

    8 parts694GPL-3.0
  • 2 layers36 × 10 mmPCB4-PWR BTN Rev.A, the printed circuit board in 3D

    PCB4-PWR BTN Rev.A

    OLIMEX/DIY-LAPTOP

    Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop

    8 parts578Apache-2.0