

Controller
Open-source, zero-config, offline-first tabletop grow unit for a single hot pepper plant.
- Size
- 110 × 75 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 60
- Nets
- 35
- Pads
- 178
- Tracks, vias
- 738, 90
- Routed
- Yes
- KiCad
- KiCad 0.0.1 (file 20241229)
- Created
- 13 Jun 2026
- Updated
- 14 Jun 2026
Overview
Controller is an open-source printed circuit board by simon446, from the simon446/opencanopy repository on GitHub. It is a 2-layer board of 110 × 75 mm with 60 parts on 35 nets, routed with 738 tracks and 90 vias.
Its parts include 4 ICs, 2 transistors, 1 capacitor, 1 inductor and 1 fuse.
README
README.mdOpenCanopy — Tabletop Automated Pepper Grower
Open-source, zero-config, offline-first tabletop grow unit for a single hot pepper plant.
OpenCanopy is an open-hardware project: a compact, living-room-friendly appliance that keeps one hot
pepper plant healthy indoors with minimal user involvement. It combines a broad-spectrum horticultural
LED, automated pump irrigation with soil-moisture sensing, climate/VPD monitoring, water-safety
interlocks, and a simple LED status interface — all driven by deterministic, fully local Rust
firmware (no_std, esp-hal) on an ESP32-S3.
📖 Docs site: https://simon446.github.io/opencanopy/ · 🧩 Contributing: CONTRIBUTING.md · ⚖️ Licensing: LICENSES/
The project is built work item by work item, organized by engineering discipline. The full
engineering plan and the per-discipline work-item breakdown live in plan/ — the design
source for the build (engineering spec + work items), tracked alongside the implementation in this repo.
Project status
- Repository skeleton, licensing, scope lock, risk register, and CI are in place (the Project & Repo track is complete) — every discipline has a home and quality gates run on each PR.
- Firmware language: Rust (
no_std+esp-hal), with a host-testablecontrolcrate andcargo fmt/clippy/testgates in CI. - The remaining discipline tracks (plant science, firmware, electronics, mechanical, validation, docs)
follow the work-item breakdown in
plan/. A spec design review (§23) added pre-order modeling and bench-characterization gates and an n=2 parallel grow trial.
Where things live
| What | Path |
|---|---|
| Documentation (rendered) | https://simon446.github.io/opencanopy/ |
| Documentation (source) | docs/ — requirements, scope, risk register, guides |
| Contributing & workflow | CONTRIBUTING.md; issue/PR templates in .github/ |
| Licensing (per asset type) | LICENSES/ |
| Implementation subtrees | firmware/, electronics/, mechanical/, validation/, scripts/ |
| Work items & engineering spec (design source) | plan/ — engineering spec + per-discipline work items |
Scope
- In V1: one plant, fixed hot-pepper profile, dimmable full-spectrum LED with automated schedule, substrate moisture sensing, automated pump watering, reservoir-level + leak safety, temp/humidity sensing with VPD, circulation fan, 5-LED status interface, local deterministic firmware, and open hardware/firmware/CAD with simulation, hardware-in-loop, and grow-trial validation.
- Not in V1: camera/AI plant diagnosis, cloud control, automatic pH/EC dosing, multi-plant support, required mobile app, or AC mains inside the unit.
See docs/scope.md for the locked non-goals and docs/product-requirements.md
for the locked physical/hardware envelope.
Repository layout
The standard open-hardware structure is in place; each subtree has a README describing its purpose:
firmware/— Rust workspace:control/(host-testableno_stdlogic),controller/(esp-halbinary),sim/,hil/.electronics/— KiCad PCB, wiring, BOM, and electrical verification.mechanical/— CAD/STEP/STL, drawings, and print settings.docs/— requirements, scope, risk register, and the guides that ship with V1.validation/— test plans, measurements, and grow-trial records.scripts/— tooling (bom_check.py§16.3 grow-light gate,stl_check.py, calculators).
Full layout: spec §14 (in plan/).
Release gate
V1 is tagged only when the acceptance criteria in the V1 spec (§21, in plan/) are all met, as proven
by the Validation & QA track — including an n=2 parallel grow trial (design-review decision, §23).
License
Per-asset open-source licensing — Apache-2.0 firmware/scripts, CERN-OHL-S v2 hardware/mechanical,
CC BY 4.0 docs. See LICENSES/ and its mapping note.
Parts
60| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 100nF | tscircuit:capacitor_0402 | C_BULK3, C_EN, C_INA, C_LK, C_RTC, C_U5, C2, C3 |
| 6 | tscircuit:chip_pinrow2 | BT1, J_LEAK, J_PUMP, J_PWR, SW1, SW2 | |
| 5 | 10kΩ | tscircuit:resistor_res0402 | R_EN, R_LK_OUT, R_LK_RA, R_LK_RB, R1 |
| 4 | tscircuit:chip_pinrow4 | J_DBG, J_LED, J_SENS, U8 | |
| 4 | D | tscircuit:diode_sod123 | D_CAT5, D1, D2, DZ_RP |
| 3 | tscircuit:chip_pinrow3 | J_MOIST, J_RES, J_STATUS | |
| 2 | tscircuit:chip_pinrow5 | J_USB, U3 | |
| 2 | 100kΩ | tscircuit:resistor_res0402 | R_LK_PU, R_RP |
| 2 | 100Ω | tscircuit:resistor_res0402 | R_DIM, R2 |
| 2 | 10nF | tscircuit:capacitor_0402 | C_BT5, C_MOIST |
| 2 | 10uF | tscircuit:capacitor_1206 | C_BULK2, C_IN5 |
| 2 | 1uF | tscircuit:capacitor_0402 | C_IN33, C_OUT33 |
| 2 | 4.7kΩ | tscircuit:resistor_res0402 | R_SCL, R_SDA |
| 1 | tscircuit:chip_pinrow26 | U1 | |
| 1 | tscircuit:chip_pinrow7 | U5 | |
| 1 | tscircuit:chip_pinrow8 | U4 | |
| 1 | tscircuit:chip_pinrow6 | U7 | |
| 1 | 100mΩ | tscircuit:resistor_res2512 | R_SHUNT |
| 1 | 100uF | tscircuit:capacitor_1210 | C_BULK1 |
| 1 | 10H | tscircuit:inductor_1210 | L5 |
| 1 | 1kΩ | tscircuit:resistor_res0402 | R_MOIST |
| 1 | 22kΩ | tscircuit:resistor_res0402 | R_FB5A |
| 1 | 22uF | tscircuit:capacitor_0805 | C1 |
| 1 | 22uF | tscircuit:capacitor_1210 | C_OUT5 |
| 1 | 330Ω | tscircuit:resistor_res0402 | R_DATA |
| 1 | 7.15kΩ | tscircuit:resistor_res0402 | R_FB5B |
| 1 | F1 | tscircuit:fuse_1206 | F1 |
| 1 | Q1 | tscircuit:mosfet_sot23 | Q1 |
| 1 | Q2 | tscircuit:mosfet_sot23 | Q2 |
Questions
How big is the Controller PCB?
It measures 110 × 75 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Controller use?
60 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 Controller KiCad files?
From the simon446/opencanopy repository on GitHub, at the commit this page was made from: the board is electronics/pcb/programmatic/out/controller.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask simon446 before reusing the design.
Similar boards
- 2 layers35 × 50 mm

- 2 layers32.9 × 119.1 mm

- 2 layers35.9 × 62.7 mm

Rp2040-memcard
sd2psx/pcb
The PCB must be produced in 0.8mm thickness. Production files are provided under the "Releases" tab. These do not include the through-hole OLED module.
60 parts241 - 2 layers58 × 110 mm

- 2 layers52 × 90 mm

- 2 layers42.5 × 80 mm

- 2 layers57.4 × 12 mm

- 2 layers87.9 × 123.9 mm

Bitdoglab
BitDogLab/BitDogLab
Open-source educational hardware for embedded systems, programming, electronics, and physical computing.
60 parts203