Skip to the content
PCBKitNew board
4 layers59.6 × 48.3 mmPlant1337, the printed circuit board in 3D

Firmware, circuit design, and 3D-printable components for an automated plant-watering system.

Size
59.6 × 48.3 mm
Copper layers
4
Thickness
2.07 mm
Parts
61
Nets
61
Pads
220
Tracks, vias
436, 78
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
6 Jul 2024
Updated
27 Oct 2026

Overview

Plant1337 is an open-source printed circuit board by chl33, from the chl33/Plant133 repository on GitHub, published under the MIT licence. It is a 4-layer board of 59.6 × 48.3 mm with 61 parts on 61 nets, routed with 436 tracks and 78 vias.

It is built around the ESP32-S3-WROOM-1-N8, SHTC3 and AMS1117-3.3, with the AO3400A and SS14 among its other parts. Its parts include 11 diodes, 4 transistors, 3 ICs, 1 connector and 1 fuse. It belongs with the ESP32 boards of this library.

Main components

5

README

README.md

Plant133

This is a full distribution of the Plant133 plant-watering device. This device can monitor and water up to 4 plants at a time. This repository hosts the firmware, PCBA design, and OpenSCAD code for all components.

A writeup about this project is at "Plant1337: "Water 4 plants."

Plant133 device

Features

  • Multi-Plant Support: Monitors and independently waters up to 4 plants.
  • Sensors:
    • Capacitive soil moisture sensing for each plant.
    • SHTC3 temperature and humidity sensor for environmental monitoring.
    • Reservoir water level float switch detection.
  • User Interface:
    • OLED Screen: Rotates through status screens showing IP address, moisture levels, and environment data.
    • Web Dashboard: A modern Svelte-based responsive web interface for real-time monitoring and configuration.
  • Integration:
    • MQTT: Full support for Home Assistant (auto-discovery and state reporting) and Adafruit IO (with SSL/TLS, NTP time sync, and feed rate-limiting).
  • Safety:
    • Watchdog Timer: Hardware watchdog protects against system hangs.
    • Dose Limiting: Prevents over-watering by limiting the maximum number of pump cycles per day.
    • Reservoir Check: Prevents pump damage by detecting low water levels.

Usage

Please see the instructions for how to assemble and set up a Plant133 device hardware.

Development

Prerequisites

Building and Flashing Firmware

  1. Configure Secrets and Local Environment:
    • Copy secrets.ini.example to secrets.ini and set your WiFi credentials, OTA password, and MQTT details.
    • Copy local.ini.example to local.ini and configure your target board environment (e.g., usb_v20 for ESP32-S3 Board v2.x, or usb_spider for ESP32 Board v1.x).
  2. One-time setup for building the web interface:
    bash
    cd svelte
    npm install
  3. Run Quality Checks and Unit Tests:
    bash
    ./util/check.sh
  4. Build the Web Interface and Firmware:
    bash
    # For Board v2.x (ESP32-S3)
    pio run -e usb_v20
    
    # Or for Board v1.x (Classic ESP32)
    pio run -e usb_spider
  5. Upload Firmware:
    bash
    pio run -e usb_v20 -t upload

API Reference

The device exposes a JSON API for integration and control:

  • GET /api/status: Returns system status (temperature, humidity, water level, pump time remaining, MQTT connection, software & hardware versions).
  • GET /api/plants: Returns configuration and status for all plants.
  • PUT /api/plants/{id}: Updates configuration for a specific plant (1–4).
  • GET /api/moisture: Returns current moisture readings, raw ADC counts, dose counts, and watering states.
  • GET /api/wifi / PUT /api/wifi: Get or update WiFi SSID and board name (triggers device restart on update).
  • GET /api/mqtt / PUT /api/mqtt: Get or update MQTT configuration (host, port, mode, SSL/TLS, credentials).
  • POST /test/pump: Run a pump for a specific duration (JSON body: { "pumpId": 1, "duration": 1000 }).
  • POST /api/restart: Restart the device.

Software Libraries

This project is built using a custom C++ framework for ESP devices:

Hardware

PCBA

The full KiCAD project and bill of materials (KiCAD/Plant133.csv) for the printed circuit board are in the KiCAD subdirectory. Board v2.x uses an ESP32-S3-WROOM-1-N8R2 module with native USB-C and onboard boot/reset buttons (legacy v1.2/v1.3 ESP32 boards are also supported via build flags).

Plant1337 PCBA rendered by KiCAD

3D Printed Components

Components are designed in OpenSCAD. Source code and STL models are in the scad subdirectory.

Project Box

Housing for the PCBA, OLED support bracket, and test fixture (scad/box/). EBox design in OpenSCAD

Reservoir Cover

Covers the water reservoir with cutouts for the EBox, tubing, and wires (scad/reservoir_cover/).

Reservoir Hanger

Mounts the box to a water reservoir (scad/ebox_hook/). Reservoir hanger

Reservoir Insert

Holds pumps and water level float (scad/reservoir_insert/). Reservoir insert with 2 pumps

Solder Stencil Fixture

Alignment fixture and edge-support frame for applying solder paste with a PCB stencil (scad/stencil_fixture/).

Moisture Sensor Cap

Holds the watering tube at the sensor location (scad/moisture_sensor_cap/). Moisture sensor cap top

Watering Spike

Alternative watering method using a soil spike (scad/spike/). Watering spike half

Parts

61
QtyValueFootprintReferences
61kResistor_SMD:R_0603_1608MetricRl1, Rl2, Rl3, Rl4, Rl5, Rl6
5Conn_01x02_PinConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJPMP1, JPMP2, JPMP3, JPMP4, JWL1
410nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderCf1, Cf3, Cf4, Cf5
41N4001Diode_SMD:D_SMAD3, D7, D9, D11
4470Resistor_SMD:R_0603_1608MetricRt2, Rt3, Rt4, Rt5
4AO3400APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
4Conn_01x03_PinConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ_MOIS1, J_MOIS2, J_MOIS3, J_MOIS4
4REDLED_SMD:LED_0603_1608MetricD2, D6, D8, D10
3100nFCapacitor_SMD:C_0603_1608MetricCa1, Ca2, Ca3
210kResistor_SMD:R_0603_1608MetricRu2, Ru4
210uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderCb2, Cb3
22.2kResistor_SMD:R_0603_1608MetricRf1, Rf2
25.1kResistor_SMD:R_0603_1608MetricR_cc1, R_cc2
2SW_PushButton_Switch_SMD:SW_SPST_FSMSMSW_EN1, SW_PRG1
112kResistor_SMD:R_0603_1608MetricRu1
147uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderCc2
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1BLULED_SMD:LED_0603_1608MetricD1
1Conn_01x04_SocketConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJOLED1
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U2
1Fuse_SmallDiode_SMD:D_0805_2012MetricF1
1SHTC3Sensor_Humidity:Sensirion_DFN-4-1EP_2x2mm_P1mm_EP0.7x1.6mmU1
1SS14Diode_SMD:D_SMAD4
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1
1YLWLED_SMD:LED_0603_1608MetricD5

The 59 most common of 61 parts.

Questions

How big is the Plant1337 PCB?

It measures 59.6 × 48.3 mm and has 4 copper layers, 2.07 mm thick.

What parts does the Plant1337 use?

61 parts, built around the ESP32-S3-WROOM-1-N8, SHTC3, AMS1117-3.3 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 Plant1337 KiCad files?

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

Can I use the Plant1337 design in my own project?

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

Similar boards

  • 2 layers150 × 100 mmSmartCube, the printed circuit board in 3D

    SmartCube

    kokhaie/Smart-Refrigerator-Demo

    The KiCad-generated BOM is mirrored into the documentation site under docs/ so it can be published through GitHub Pages.

    91 parts
  • 4 layers93.3 × 40.7 mmGarage133, the printed circuit board in 3D

    Garage133

    chl33/Garage133

    A DIY device for garage door automation

    60 parts1MIT
  • 2 layers35 × 55 mmIcarus, the printed circuit board in 3D

    Icarus

    Aryan2804/Icarus

    56 parts
  • 2 layers100 × 80 mmAlarm clock, the printed circuit board in 3D

    Alarm clock

    Carabouille/Alarm_Clock_dawn_simulator

    A description of my Alarm clock with dawn simulator for the Fallout event organised By Hackclub

    75 parts
  • 4 layers49.5 × 39.4 mmLoRa133, the printed circuit board in 3D

    LoRa133

    chl33/LoRa133

    A base station for LoRa-based satellite sensor devices.

    22 parts1MIT
  • 4 layers63.2 × 70.5 mmHomectrl v2, the printed circuit board in 3D

    Homectrl v2

    jeevan9s/homectrl-sys

    home automation controller

    141 parts2
  • 4 layers80 × 106 mmNodeHardware, the printed circuit board in 3D

    NodeHardware

    AleksaHeler/FlexNode

    FlexNode is a DIY "smart home" system with a single hub and multiple flexible and customizable nodes

    220 partsGPL-3.0
  • 2 layers82 × 50 mmESP S3 MONITOR V 1 2, the printed circuit board in 3D

    ESP S3 MONITOR V 1 2

    electromotif208/pcb-portfolio

    👨‍💻 Electronics Engineer 📺 YouTube: ELECTROMOTIF 🔧 Tools: KiCad, EasyEDA 📡 Domains: Power Supply, ESP32, IoT, Embedded Hardware

    90 parts