Skip to the content
PCBKitNew board
2 layers110 × 75 mmController, the printed circuit board in 3D

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.md

OpenCanopy — 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-testable control crate and cargo fmt/clippy/test gates 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

WhatPath
Documentation (rendered)https://simon446.github.io/opencanopy/
Documentation (source)docs/ — requirements, scope, risk register, guides
Contributing & workflowCONTRIBUTING.md; issue/PR templates in .github/
Licensing (per asset type)LICENSES/
Implementation subtreesfirmware/, 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-testable no_std logic), controller/ (esp-hal binary), 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
QtyValueFootprintReferences
8100nFtscircuit:capacitor_0402C_BULK3, C_EN, C_INA, C_LK, C_RTC, C_U5, C2, C3
6tscircuit:chip_pinrow2BT1, J_LEAK, J_PUMP, J_PWR, SW1, SW2
510kΩtscircuit:resistor_res0402R_EN, R_LK_OUT, R_LK_RA, R_LK_RB, R1
4tscircuit:chip_pinrow4J_DBG, J_LED, J_SENS, U8
4Dtscircuit:diode_sod123D_CAT5, D1, D2, DZ_RP
3tscircuit:chip_pinrow3J_MOIST, J_RES, J_STATUS
2tscircuit:chip_pinrow5J_USB, U3
2100kΩtscircuit:resistor_res0402R_LK_PU, R_RP
2100Ωtscircuit:resistor_res0402R_DIM, R2
210nFtscircuit:capacitor_0402C_BT5, C_MOIST
210uFtscircuit:capacitor_1206C_BULK2, C_IN5
21uFtscircuit:capacitor_0402C_IN33, C_OUT33
24.7kΩtscircuit:resistor_res0402R_SCL, R_SDA
1tscircuit:chip_pinrow26U1
1tscircuit:chip_pinrow7U5
1tscircuit:chip_pinrow8U4
1tscircuit:chip_pinrow6U7
1100mΩtscircuit:resistor_res2512R_SHUNT
1100uFtscircuit:capacitor_1210C_BULK1
110Htscircuit:inductor_1210L5
11kΩtscircuit:resistor_res0402R_MOIST
122kΩtscircuit:resistor_res0402R_FB5A
122uFtscircuit:capacitor_0805C1
122uFtscircuit:capacitor_1210C_OUT5
1330Ωtscircuit:resistor_res0402R_DATA
17.15kΩtscircuit:resistor_res0402R_FB5B
1F1tscircuit:fuse_1206F1
1Q1tscircuit:mosfet_sot23Q1
1Q2tscircuit:mosfet_sot23Q2

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 mmGoblin, the printed circuit board in 3D

    Goblin

    kelu124/echomods

    Open source ultrasound processing modules and building blocks

    60 parts463
  • 2 layers32.9 × 119.1 mmConnector, the printed circuit board in 3D

    Connector

    thpoll83/PolyKybd

    PolyKybd

    60 parts411CERN-OHL-W-2.0
  • 2 layers35.9 × 62.7 mmRp2040-memcard, the printed circuit board in 3D

    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 mmBrain ui split pulse, the printed circuit board in 3D

    Brain ui split pulse

    shmoergh/moduleur

    Fully analog DIY-friendly modular synth

    60 parts222
  • 2 layers52 × 90 mmEmu brd, the printed circuit board in 3D

    Emu brd

    rscott2049/DECstation2040

    A RP2040 based DECstation emulator

    60 parts212BSD-3-Clause
  • 2 layers42.5 × 80 mmSimplemixsmall, the printed circuit board in 3D

    Simplemixsmall

    nickajeglin/Eurorack-pcbs

    A collection of easy to solder DIY eurorack PCB's

    60 parts208
  • 2 layers57.4 × 12 mmZicada, the printed circuit board in 3D

    Zicada

    CoretechR/Zicada

    DIY Zigbee Multisensor

    60 parts205GPL-3.0
  • 2 layers87.9 × 123.9 mmBitdoglab, the printed circuit board in 3D

    Bitdoglab

    BitDogLab/BitDogLab

    Open-source educational hardware for embedded systems, programming, electronics, and physical computing.

    60 parts203