Live Agent working · engine-01 Placer/router engine positioning
GH-01Open Source Hardwaredesigned

Greenhouse Controller

ESP32-S3 environmental controller — fan/pump drivers, dual SSR breakouts, 4 soil-moisture inputs, I2C SHT41 sensor.

Readout
Board100×90mm
Layers2layer
Components24rows·24parts
BOM Cost$5.00/ unit
Placementextracted
DRC0S/0U
Schematics1sheets
Build Phases3
Info

A grow-friendly controller designed for a hobby greenhouse. Reads temperature, humidity, and soil moisture from up to four pots. Drives two DC loads (circulation fan and a peristaltic water pump) and two AC loads (heater and grow lights) via solid-state relays.

Local-first by design: schedules and thresholds run on the ESP32 with no cloud dependency. An optional MQTT bridge surfaces telemetry to Home Assistant.

Inspired by Blueprint.am's "smart greenhouse controller" example — but built through to a real PCB.

Specification
MCU Module ES-01 ESP32-S3-DevKitC-1 Plugs into 2x 1x22 pin headers (J1/J2)
DC Drivers DR-01 AO3400A ×2 + 1N4007 flyback Low-side switches for 12V fan + pump (J4/J5)
AC Drivers DR-02 Off-board SSR breakouts ×2 GPIO + 330R current-limit drives SSR LED directly (J6/J7)
Sensors SE-01 SHT41 (I2C) + 4× capacitive soil probes (ADC) I2C bus on J9, soil probes on J8 (ESP32 ADC channels)
Power PW-01 USB-C (logic) + 12V terminal (DC loads) Two isolated rails — logic stays alive if 12V drops
Board PB-01 2-layer, 100 × 90 mm 24 components, auto-routed with 0 shorts and 0 unconnected
Architecture
GP5 GP6 GP7+R GP8+R I2C ADC USB-C 5V via DevKitC ESP32-S3-DevKitC 12V Screw Terminal N-MOSFETAO3400A N-MOSFETAO3400A SSR Heater SSR Light SHT41I2C Sensor 4x Soil Probes Fan Pump
Features
GH-F1
Auto-routed via the same pipeline
Generated from a 24-component designgraph TOML through the Rust place→route→DRC pipeline.
GH-F2
Two driver families
Low-side N-MOSFETs for inductive 12V loads (fan/pump) with flyback diodes; current-limited GPIO drives for off-board SSRs (heater/light).
GH-F3
Local-first
Schedules and thresholds run on the ESP32. MQTT bridge optional via firmware.
GH-F4
Modular sensors
SHT41 on a 4-pin I2C header you can replace with any other I2C sensor. 4 ADC channels on a single 8-pin terminal for capacitive moisture probes.
— · — · —
Bill of Materials
24 rows priced live from JLCPCB · refreshed 2026-04-27
24 rows · 24 components · Total $5.00
Ref Category MPN Description Qty Unit Ext Stock Links
J1 PinHeader_1x22 PinHeader_1x22_2.54mm 1x22 0.1in pin header 1 $0.30 $0.30 LCSC
J2 PinHeader_1x22 PinHeader_1x22_2.54mm 1x22 0.1in pin header 1 $0.30 $0.30 LCSC
J3 Phoenix_MPT_2P MPT 0.5/2-2.54 2-pin 2.54mm screw terminal 1 $0.45 $0.45 LCSC
J4 Phoenix_MPT_2P MPT 0.5/2-2.54 2-pin 2.54mm screw terminal 1 $0.45 $0.45 LCSC
J5 Phoenix_MPT_2P MPT 0.5/2-2.54 2-pin 2.54mm screw terminal 1 $0.45 $0.45 LCSC
J6 Phoenix_MPT_3P MPT 0.5/3-2.54 3-pin 2.54mm screw terminal 1 $0.65 $0.65 LCSC
J7 Phoenix_MPT_3P MPT 0.5/3-2.54 3-pin 2.54mm screw terminal 1 $0.65 $0.65 LCSC
J8 Phoenix_MPT_8P MPT 0.5/8-2.54 8-pin 2.54mm screw terminal 1 $1.50 $1.50 LCSC
J9 PinHeader_1x04 PinHeader_1x04_2.54mm 1x4 0.1in pin header 1 $0.10 $0.10 LCSC
Q1 SOT-23 AO3400A B N-channel MOSFET 30V 5.8A 1 $0.05 $0.05 In stock LCSC
Q2 SOT-23 AO3400A B N-channel MOSFET 30V 5.8A 1 $0.05 $0.05 In stock LCSC
D1 SMA 1N4007 1A 1000V flyback diode 1 $0.0062 $0.0062 In stock LCSC
D2 SMA 1N4007 1A 1000V flyback diode 1 $0.0062 $0.0062 In stock LCSC
D3 LED_0805 LTST-C170KGKT Green 0805 LED 1 $0.02 $0.02 In stock LCSC
R1 R_0402 RC0402FR-0710KL 10k 0402 1% 1 $0.0004 $0.0004 In stock LCSC
R2 R_0402 RC0402FR-0710KL 10k 0402 1% 1 $0.0004 $0.0004 In stock LCSC
R3 R_0402 RC0402FR-07330RL 330R 0402 1% 1 $0.0004 $0.0004 In stock LCSC
R4 R_0402 RC0402FR-07330RL 330R 0402 1% 1 $0.0004 $0.0004 In stock LCSC
R5 R_0402 RC0402FR-074K7L 4.7k 0402 1% 1 $0.0004 $0.0004 In stock LCSC
R6 R_0402 RC0402FR-074K7L 4.7k 0402 1% 1 $0.0004 $0.0004 In stock LCSC
R7 R_0402 RC0402FR-071KL 1k 0402 1% 1 $0.0004 $0.0004 In stock LCSC
C1 C_0402 CL05B104KO5NNNC B 100nF 50V X7R 0402 1 $0.0008 $0.0008 In stock LCSC
C2 C_0805 CL21A106KAYNNNE B 10uF 25V X5R 0805 1 $0.0068 $0.0068 In stock LCSC
C3 C_0402 CL05B104KO5NNNC B 100nF 50V X7R 0402 1 $0.0008 $0.0008 In stock LCSC
Total $5.00
— · — · —
Wiring

Real KiCad schematic auto-generated from the designgraph TOML by gen_kicad_schematic.py — generic block symbols with label-based connectivity, exported via kicad-cli sch export svg.

1 sheet · click to open
Drag to pan · Wheel/pinch to zoom · ← → next sheet
— · — · —
Mech

2-layer, 100 × 90 mm. Auto-placed and auto-routed by the Rust placer/router pipeline, with generated 3D, layer, enclosure, and DRC assets.

100 × 90 mm 2 layer
PCB front
GH-01 Front
PCB back
GH-01 Back
DRC Report
2026-05-05T18:13:40
0
Shorts
0
Unconnected
0
Parity
0
Violations
Component Map · Dimensions
Hover BOM ↔ Map
100.0 mm 90.0 mm J1 J2 J3 J4 J5 J6 J7 J8 J9 Q1 Q2 D1 D2 R1 R2 R3 R4 R5 R6 D3 R7 C1 C2 C3 MH1 MH2 MH3 MH4
Enclosure (TurboCase)
Ready
TurboCase enclosure outline
IP54-style outdoor enclosure. Cable glands serve the soil-moisture probe and 12V harness. Lid clears the relay block; transparent panel above the OLED for status visibility.
3D Model
Loading…
GH-01 Copper Layers
Copper layers
X-Ray Layer Viewer
F.SilkscreenF.CuB.CuB.SilkscreenEdge Cuts
— · — · —
Instructions
  1. Phase 01 Order PCB
    Tools: JLCPCB account
    1. Run `target/release/pipeline hardware/design/greenhouse-ctl/main.toml hardware/design/greenhouse-ctl/greenhouse-ctl.kicad_pcb --rounds 5` to regenerate.
    2. Open in KiCad, clean any remaining DRC warnings.
    3. Export gerbers; upload to JLCPCB. 2-layer, 1.6mm, qty 5 → ~$15.
  2. Phase 02 Source parts
    Tools: LCSC cart
    1. Use site/src/projects/greenhouse-ctl-bom.csv. ~$5 in passives + screw terminals.
    2. Order ESP32-S3-DevKitC-1 separately (~$8).
    3. Order off-board SSRs (Crydom or similar, depends on your AC load — 10A typical).
  3. Phase 03 Assemble
    Tools: Soldering iron, Solder paste (optional), Tweezers
    1. Hand-solder the SOT-23 MOSFETs (Q1, Q2) and SMA diodes (D1, D2) first.
    2. Hand-solder all 0402 passives.
    3. Reflow or hand-solder the 0805 cap (C2) and LED (D3).
    4. Solder the 1x22 pin headers (J1, J2) for the DevKitC socket.
    5. Solder the screw terminals (J3-J8) and the 1x4 I2C header (J9) last.
    6. Plug in the ESP32-S3-DevKitC-1 module and a SHT41 breakout on J9.