Skip to the content
2 layers74 × 54 mmPlant esp32-onboard, the printed circuit board in 3D

Plant esp32-onboard

thomaslr/plant-esp32

This directory contains the production files, Pick & Place centroid files (CPL), Bill of Materials (BOM), KiCad design source files, and 3D renders for the Monolithic Onboard SMD Edition of the Plant ESP32 watering…

Size
74 × 54 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
27
Pads
137
Tracks, vias
253, 65
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
10 Oct 2026
Updated
7 Nov 2026

Overview

Plant esp32-onboard is an open-source printed circuit board by thomaslr, from the thomaslr/plant-esp32 repository on GitHub. It is a 2-layer board of 74 × 54 mm with 46 parts on 27 nets, routed with 253 tracks and 65 vias.

It is built around the ESP32-C3-WROOM-02-H4, AMS1117-3.3 and SS34, with the AO3400A and TYPE-C 16PF among its other parts. Its parts include 15 resistors, 10 capacitors, 4 diodes, 2 ICs and 2 switches. It belongs with the ESP32 and RISC-V boards of this library.

Main components

5

README

pcb/esp32-onboard-smd/README.md

Plant ESP32 Controller — Monolithic Onboard SMD Edition (Rev 1.0)

This directory contains the production files, Pick & Place centroid files (CPL), Bill of Materials (BOM), KiCad design source files, and 3D renders for the Monolithic Onboard SMD Edition of the Plant ESP32 watering controller.

Rather than mounting an ESP32-C3 SuperMini daughterboard via pin headers, this turnkey edition integrates the official Espressif ESP32-C3-WROOM-02 Wi-Fi + BLE 5 module directly onto the PCB, complete with native USB-C, onboard AMS1117-3.3 power regulation, tactile RESET & BOOT buttons, status/power LEDs, and multi-stage filtering.

Optimized specifically for JLCPCB SMT Assembly using 100% Top-Side placement and prioritizing JLCPCB Basic Parts to keep assembly setup fees to an absolute minimum ($9.00 total for only 3 extended part reels across the entire production run).


3D Previews & Interactive Diagram

Top View (Integrated ESP32-C3 & SMT Components)Isometric 3D View
Onboard Top ViewOnboard Isometric View
Bottom View (Ground Plane & Solder Mask)
Onboard Bottom View

👉 Interactive SVG Circuit Diagram & Net Visualizer: circuit_diagram_onboard.html


Architectural Highlights (Rev 1.0)

  • Monolithic Single-Board Design:
    • Eliminates daughterboard pin headers, loose sockets, and manual solder alignment issues.
    • Direct solder attachment of the official ESP32-C3-WROOM-02 module with 18 perimeter castellations and a large central thermal ground slug.
  • 100% Top-Side SMT Assembly:
    • All surface-mount components reside exclusively on the top (F.Cu / F.Paste) layer.
    • Requires only a single-sided SMT stencil, eliminating double-sided stencil and assembly setup fees.
  • Aggressive Feeder Cost Minimization ($9.00 Total Loading Fee):
    • Basic Parts ($0 loading fee): All 0805 passives (resistors, MLCC capacitors), AMS1117-3.3 LDO (SOT-223), AO3400A MOSFET (SOT-23), SS34 Schottky diodes (SMA), and 0805 LEDs are sourced from JLCPCB's permanent Basic Parts library.
    • Extended Parts (Only 3 reels):
      1. ESP32-C3-WROOM-02 (C2934487) — $3.00 feeder fee
      2. USB-C 16-Pin Receptacle TYPE-C-31-M-12 (C165948) — $3.00 feeder fee
      3. TS-1187A SMD Tactile Pushbutton (C318884, shared by SW1 & SW2) — $3.00 feeder fee
  • Native USB-C CDC/JTAG Connectivity:
    • Reversible 16-pin USB Type-C receptacle with dual 5.1 kΩ pulldown resistors (R12, R13) on CC1/CC2 for full USB-PD and C-to-C cable compliance.
    • Differential data pair (D+ / D-) routes directly to the ESP32-C3 hardware USB CDC/JTAG peripheral (GPIO 19 and GPIO 18), enabling direct flashing, bootloader entry, and serial monitoring without external USB-to-UART bridge ICs (no CP2102 or CH340 needed).
  • Dedicated Dual ADC Voltage Monitoring (Zero Jumpers):
    • 5V Supply Rail Monitor (GPIO 0 / ADC1_CH0): Dedicated 100 kΩ / 100 kΩ divider (R1, R2) + 100 nF filter (C1). Continuously verifies USB/Mains 5V health and detects pump brownouts.
    • 18650 Battery Monitor (GPIO 4 / ADC1_CH4): Dedicated 100 kΩ / 100 kΩ divider (R8, R9) + 100 nF filter (C6). Directly measures raw 18650 Li-ion battery voltage ($3.0\text{V}\text{–}4.2\text{V}$) from TB4 Pin 3 (BAT). Quiescent drain is only 21 µA ($\sim 15\text{ mAh}$ per month), far below the battery's chemical self-discharge!
    • Both channels reside on ADC1, guaranteeing 100% reliable concurrent analog reads during active Wi-Fi streaming.
  • Dual Power Input Architecture with Anti-Backfeed Protection:
    • USB-C 5V Input: Powers the board and pump during development, desktop testing, or permanent indoor mains operation.
    • External Solar / Battery 5V Input (TB4-1): Connects to an external solar charge & boost module (e.g. DD05CVSA mini-UPS).
    • Anti-Backfeeding Schottky Diode (D2): 40V 3A SS34 Schottky diode (#C8678) placed in series between TB4-1 (EXT_5V) and the internal +5V rail. Blocks 100% of reverse current from backfeeding into the solar module when USB-C is plugged in.
  • Robust Power Regulation & Decoupling:
    • AMS1117-3.3 LDO (U2, SOT-223, Basic Part #C475931): Delivers up to 1000 mA of clean 3.3V logic power with wide copper tab heatsinking.
    • Multi-stage ceramic filtering: 10 µF (C10) + 100 nF (C7) at LDO input; 10 µF (C11) + 100 nF (C8) + 22 µF (C12) at LDO output directly adjacent to the ESP32 3V3 power pin.
  • Hardware Pushbuttons & Status Indicators:
    • RESET Button (SW1): Pulls EN to GND. Debounced by a 10 kΩ pull-up (R10) and 1 µF capacitor (C9).
    • BOOT Button (SW2): Pulls GPIO 9 to GND for manual ROM bootloader entry. Pulled high by 10 kΩ (R11).
    • PWR LED (D3, Green): Indicates 3.3V rail health.
    • STAT LED (D4, Blue): Active-low status indicator driven by GPIO 8 via 1 kΩ resistor (R15). Connected to +3.3V to ensure GPIO 8 is pulled HIGH during boot strapping.
  • RF Optimization & Antenna Keepout:
    • ESP32-C3-WROOM-02 inverted-F antenna points outward toward the bottom board edge.
    • Full copper keepout (no ground plane, no traces, no vias on top or bottom copper) under the antenna keepout zone.

Bill of Materials (BOM) & LCSC Part Mapping

SMT Assembly Parts (Factory Pre-Soldered by JLCPCB)

DesignatorValue / DescriptionPackageJLCPCB Part # (LCSC)TypeRole
U1ESP32-C3-WROOM-02-N4 (4MB Flash)Module (18×25.5mm)C2934560Extended ($3)Main RISC-V SoC (Wi-Fi + BLE 5, PCB Antenna)
U2AMS1117-3.3 (3.3V 1A LDO)SOT-223C6186Basic ($0)5V to 3.3V Voltage Regulator
J1TYPE-C-31-M-12 (16-Pin USB-C)SMT ReceptacleC165948Extended ($3)Power & Native USB CDC/JTAG Data
SW1, SW2TS-1187A-B-A-B Tactile PushbuttonSMT ButtonC318884Extended ($3)Hardware RESET and BOOT Switches
Q1AO3400A (30V 5.7A N-Ch MOSFET)SOT-23-3C20917Basic ($0)Submersible Water Pump Low-Side Switch
D1, D2SS34 (3A 40V Schottky Diode)SMA (DO-214AC)C8678Basic ($0)Flyback Diode (D1) & Anti-Backfeed Diode (D2)
D3Green LED (KT-0805G)0805C2297Basic ($0)3.3V Power Good Indicator
D4Blue LED (KT-0805B)0805C2293Extended ($3)Status Indicator (Active-Low on GPIO 8)
R1, R2, R6, R8, R9100 kΩ (1%, 1/8W)0805 SMDC149504Basic ($0)5V Divider / Battery Divider / Gate Pulldown
R7, R10, R1110 kΩ (1%, 1/8W)0805 SMDC17414Basic ($0)LDR Divider / EN Pullup / BOOT Pullup
R12, R135.1 kΩ (1%, 1/8W)0805 SMDC27834Basic ($0)USB-C Configuration Channel CC1/CC2 Pulldowns
R3, R5, R14, R151 kΩ (1%, 1/8W)0805 SMDC17513Basic ($0)Echo High-Side / Gate Resistor / LED Resistors
R42 kΩ (1%, 1/8W)0805 SMDC17604Basic ($0)Echo Low-Side Level Divider ($5\text{V} \to 3.3\text{V}$)
C1, C2, C4, C6, C7, C8100 nF (50V X7R)0805 SMDC28233Basic ($0)ADC Filters / RF Bypasses / LDO Decoupling
C91 µF (50V X7R)0805 SMDC28323Basic ($0)EN / Hardware Reset Debounce Filter
C10, C1110 µF (25V X5R)0805 SMDC15850Basic ($0)LDO Input and Output Bulk MLCC Capacitors
C1222 µF (10V X5R)0805 SMDC45783Basic ($0)ESP32-C3 VDD Power Rail Transient Buffer

Through-Hole Connectors & Hand-Soldered Parts (or DNP)

DesignatorValue / DescriptionPackageJLCPCB Part # (LCSC)Notes
TB1KF301-4P (5.00mm Pitch 4-Pin)Through-Hole TerminalC8913Ultrasonic Sensor (5V, TRIG, ECHO, GND)
TB2KF301-3P (5.00mm Pitch 3-Pin)Through-Hole TerminalC8912Soil Moisture Sensor (DATA, VCC, GND)
TB3KF301-2P (5.00mm Pitch 2-Pin)Through-Hole TerminalC89115V Water Pump Motor (+5V, DRAIN)
TB4KF301-3P (5.00mm Pitch 3-Pin)Through-Hole TerminalC8912External Power & Battery (EXT_5V, GND, BAT)
MOD11×4 Female Pin Header (2.54mm)Through-Hole Header—SHT30 Temp/Humidity Sensor Socket (DNP)
MOD21×5 Female Pin Header (2.54mm)Through-Hole Header—BH1750 Light Sensor Socket (DNP)
LDR1GL55xx Photoresistor (2-Pin 2.54mm)Radial Through-Hole—Ambient Light Sensor (DNP)
C_EXT100 µF – 470 µF Radial ElectrolyticRadial (Ø6.3–8.0mm, P2.5mm)—Optional Heavy Motor Brownout Buffer (DNP)

Production Files


Cost Breakdown (Per 10 Boards)

ItemUnit CostTotal (10 Boards)Notes
PCB Fabrication (2-Layer FR4, 74×54mm)~$0.40~$4.00Standard green solder mask, HASL lead-free
SMT Setup & Stencil Fee—~$7.00Single-sided top SMT assembly
Extended Part Loading Fees (3 Reels)$3.00 / reel$9.00ESP32-C3 ($3), USB-C ($3), Buttons ($3)
Basic Part Loading Fees (Passives, LDO, AO3400A, SS34)$0.00$0.00$0 loading fees
Component Costs (SMT Parts for 10 boards)~$1.80 / board~$18.00ESP32-C3 ($1.40), USB-C ($0.12), LDO ($0.08), Passives ($0.20)
Total Estimated SMT Production Cost~$3.80 / board~$38.00Completely assembled turnkey boards!

ESP32-C3-WROOM-02 GPIO Pinout Table

GPIO PinPin NamePeripheral / SignalHardware Role & Circuit Connection
GPIO 0ADC1_CH05V Rail SenseHigh-impedance 100k/100k voltage divider (R1, R2) + 100nF filter (C1)
GPIO 1ADC1_CH1Soil Moisture DataConnects to TB2 Pin 1 with 100nF RF noise bypass (C2)
GPIO 3ADC1_CH3Ambient Light SenseVoltage divider with LDR1 photoresistor and 10k resistor (R7) + 100nF filter (C4)
GPIO 4ADC1_CH418650 Battery SenseHigh-impedance 100k/100k voltage divider (R8, R9) from TB4 Pin 3 (21 µA drain)
GPIO 5Digital OutSoil Sensor VCCSwitched 3.3V power to TB2 Pin 2 (duty-cycled to prevent probe corrosion)
GPIO 6Digital InUltrasonic EchoLevel-divided 3.3V pulse from TB1 Pin 3 via 1k/2k divider (R3, R4)
GPIO 7Digital OutPump MOSFET GateDrives gate of AO3400A N-channel MOSFET (Q1) via 1k resistor (R5) & 100k pull-down (R6)
GPIO 8Digital OutStatus LEDDrives Blue LED (D4) active-low via 1k resistor (R15) to +3.3V (boot strapping safe)
GPIO 9Strapping PinBOOT ButtonPulled high to 3.3V by 10k resistor (R11); pressed to GND by tactile button SW2
GPIO 10Digital OutUltrasonic TrigGenerates 10 µs trigger pulse to TB1 Pin 2
GPIO 18USB_D-USB Data MinusDirect differential pair route to USB-C receptacle J1 Pin B7/A7
GPIO 19USB_D+USB Data PlusDirect differential pair route to USB-C receptacle J1 Pin B6/A6
GPIO 20U0RXD / I2CI2C SDAHardware I2C Serial Data for MOD1 (SHT30) and MOD2 (BH1750)
GPIO 21U0TXD / I2CI2C SCLHardware I2C Serial Clock for MOD1 (SHT30) and MOD2 (BH1750)
ENChip EnableHardware ResetPulled high to 3.3V by 10k resistor (R10), 1µF debounce (C9), tactile button SW1 to GND

Flashing & Firmware Development

Native USB CDC/JTAG

The onboard ESP32-C3-WROOM-02 features a built-in USB Serial/JTAG controller connected directly to the USB-C port (GPIO 18 / GPIO 19). No driver installation is required on modern operating systems (macOS, Windows 10/11, Linux).

PlatformIO Configuration (platformio.ini)
ini
[env:esp32-c3-devkitm-1]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
upload_speed = 921600
monitor_speed = 115200
build_flags = 
    -D ARDUINO_USB_MODE=1
    -D ARDUINO_USB_CDC_ON_BOOT=1
Arduino IDE 2.x Settings
  • Board: ESP32C3 Dev Module
  • USB CDC On Boot: Enabled
  • Upload Mode: USB-OTG CDC (TinyUSB) or Hardware CDC and JTAG
  • Port: Select the identified /dev/cu.usbmodem* (macOS) or COM* (Windows) device.

Entering ROM Bootloader Manually (If Required)

Under normal circumstances, the esptool software automatically toggles the ESP32-C3 into download mode via USB CDC control lines. If a bricked firmware prevents auto-reset:

  1. Press and hold the BOOT button (SW2).
  2. Press and release the RESET button (SW1).
  3. Release the BOOT button (SW2).
  4. The ESP32-C3 is now in ROM bootloader mode ready for flashing.

Analog Voltage Calculations

cpp
// 12-bit ADC with 3.3V full-scale reference (attenuation 11dB)
// GPIO 0: 5V Rail Sense (100k / 100k divider -> ratio = 2.0)
float read5VRail() {
    uint32_t raw = analogReadMilliVolts(0);
    return (raw * 2.0f) / 1000.0f; // Volts
}

// GPIO 4: 18650 Battery Sense (100k / 100k divider -> ratio = 2.0)
float readBatteryVoltage() {
    uint32_t raw = analogReadMilliVolts(4);
    return (raw * 2.0f) / 1000.0f; // Volts (3.0V = 0%, 4.2V = 100%)
}

JLCPCB SMT Ordering Step-by-Step Guide

  1. Upload Gerber Package:
    • Go to JLCPCB.com and click Add Gerber file.
    • Upload plant-esp32-onboard_gerbers.zip.
    • Set dimensions: 74.0 mm × 54.0 mm, 2 layers, PCB thickness 1.6 mm, Solder mask Green, Silkscreen White, Surface finish HASL (with lead) or LeadFree HASL.
  2. Enable PCB Assembly:
    • Switch the PCB Assembly toggle to ON.
    • Select Assemble top side only (Bottom side: No).
    • Tooling holes: Select Added by JLCPCB.
  3. Upload BOM & CPL:
    • Upload plant-esp32-onboard_bom.csv to the Bill of Materials field.
    • Upload plant-esp32-onboard_cpl.csv to the Pick & Place / Centroid field.
  4. Review Component Placement:
    • Verify all 0805 components, SOT-223 regulator, SMA diodes, USB-C receptacle, tactile buttons, and ESP32-C3 module align with their silkscreen footprints.
    • Note: The CPL file has been pre-rotated according to EIA-481 tape & reel packaging standards (AO3400A at 90.0°, ESP32-C3 at 180.0°, USB-C at 270.0°).
  5. Checkout:
    • Complete payment and receive turnkey, pre-assembled boards!

Parts

46
QtyValueFootprintReferences
6100nFCapacitor_SMD:C_0805_2012MetricC1, C2, C4, C6, C7, C8
5100kResistor_SMD:R_0805_2012MetricR1, R2, R6, R8, R9
41kResistor_SMD:R_0805_2012MetricR3, R5, R14, R15
4—MountingHole_3.2mm_M3_PadH1, H2, H3, H4
310kResistor_SMD:R_0805_2012MetricR7, R10, R11
210uFCapacitor_SMD:C_0805_2012MetricC10, C11
25.1kResistor_SMD:R_0805_2012MetricR12, R13
2SS34Diode_SMD:D_SMAD1, D2
11uFCapacitor_SMD:C_0805_2012MetricC9
122uFCapacitor_SMD:C_0805_2012MetricC12
12kResistor_SMD:R_0805_2012MetricR4
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1AO3400APackage_TO_SOT_SMD:SOT-23Q1
1BH1750_I2CConnector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalMOD2
1BOOTButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW2
1ESP32-C3-WROOM-02RF_Module:ESP32-C3-WROOM-02U1
1EXT_POWER_BATTerminalBlock:TerminalBlock_bornier-3_P5.00mmTB4
1LDR_5528OptoDevice:R_LDR_5.0x4.1mm_P2.54mm_VerticalR_LDR1
1PUMP_MOTORTerminalBlock:TerminalBlock_bornier-2_P5.00mmTB3
1PWR_GREENLED_SMD:LED_0805_2012MetricD3
1RSTButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1SHT30_I2CConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalMOD1
1SOIL_SENSORTerminalBlock:TerminalBlock_bornier-3_P5.00mmTB2
1STAT_BLUELED_SMD:LED_0805_2012MetricD4
1TYPE-C-16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1
1ULTRASONICTerminalBlock:TerminalBlock_bornier-4_P5.00mmTB1

More from thomaslr/plant-esp32

2
  • 2 layers74 × 54 mmPlant esp32-smd, the printed circuit board in 3D

    Plant esp32-smd

    thomaslr/plant-esp32

    This directory contains the production files, Pick & Place centroid files (CPL), Bill of Materials (BOM), KiCad design source files, and 3D renders for the Monolithic Onboard SMD Edition of the Plant ESP32 watering…

    32 parts
  • 2 layers74 × 54 mmPlant esp32, the printed circuit board in 3D

    Plant esp32

    thomaslr/plant-esp32

    This directory contains the production files, Pick & Place centroid files (CPL), Bill of Materials (BOM), KiCad design source files, and 3D renders for the Monolithic Onboard SMD Edition of the Plant ESP32 watering…

    20 parts

Similar boards

  • 4 layers99 × 62 mmEpd c6 slimbadge, the printed circuit board in 3D

    Epd c6 slimbadge

    ZGQ-inc/3.98-epd

    [WIP]3.98英寸 4色墨水屏。

    93 parts1MIT
  • 2 layers17 × 45.3 mmRP Link, the printed circuit board in 3D

    RP Link

    swpfY/RP-Link

    基于Picoprobe的树莓派pico调试器

    32 parts4
  • 4 layers90 × 93 mmMr71, the printed circuit board in 3D

    Mr71

    7961/MR71_ESR_METER

    138 parts
  • 2 layers64 × 38 mmLedctl, the printed circuit board in 3D

    Ledctl

    BilginistAdam/esp32-led-controller

    12–24 V LED şeritleri WiFi üzerinden açıp kapatan ve PWM ile dimleyen küçük bir kontrol kartı. Proje KiCad donanım dosyalarını, iki firmware seçeneğini (ESPHome / PlatformIO) ve 3D yazıcıyla basılabilen bir kutuyu…

    36 parts
  • 2 layers59.5 × 25.3 mmIMUMaster, the printed circuit board in 3D

    IMUMaster

    Pledoge/IMU-ESPC3-Board

    58 parts
  • 2 layers50 × 40 mmLedquad c3, the printed circuit board in 3D

    Ledquad c3

    AskAlice/home-automation-pcbs

    Daily Kimi-generated home automation PCB designs with KiCad sources, 3D models, and rendered documentation

    52 parts1MIT
  • 2 layers99.9 × 79.3 mmLed controller, the printed circuit board in 3D

    Led controller

    azaslavskis/WLED-Controller

    Simple project that takes care of LED strips and connect them using esp32 to home assistant interface

    65 partsMIT
  • 4 layers65 × 65.5 mmTiltbox, the printed circuit board in 3D

    Tiltbox

    Freek-Freak/tiltbox-kicad

    kicad files voor tiltbox

    225 parts

Questions

How big is the Plant esp32-onboard PCB?

It measures 74 × 54 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Plant esp32-onboard use?

46 parts, built around the ESP32-C3-WROOM-02-H4, AMS1117-3.3, SS34 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 Plant esp32-onboard KiCad files?

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

Can I use the Plant esp32-onboard design in my own project?

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