gokul/musegrow
USB‑C powered ESP32‑C3 controller board with regulated 3.3 V supply, USB ESD protection, buttons/status LEDs, ambient-light I²C sensing, and a 555-driven capacitive soil-moisture electrode.
- Version
- 1.2.2
- License
- unset
- Stars
- 1
index.circuit.tsx
PCB
Schematic
import { ControllerSheet } from "./lib/controller-sheet"
import { PowerAndUsbSheet } from "./lib/power-and-usb-sheet"
import { SensorsAndIoSheet } from "./lib/sensors-and-io-sheet"
import { SoilElectrodes } from "./lib/soil-electrodes"
const boardOutline = [
{ x: -22, y: 42 },
{ x: 22, y: 42 },
{ x: 22, y: 8 },
{ x: 7, y: 8 },
{ x: 7, y: -40 },
{ x: 5, y: -42 },
{ x: -5, y: -42 },
{ x: -7, y: -40 },
{ x: -7, y: 8 },
{ x: -22, y: 8 },
]
const electronicsCopperOutline = [
{ x: -21.7, y: 8.3 },
{ x: 21.7, y: 8.3 },
{ x: 21.7, y: 41.7 },
{ x: -21.7, y: 41.7 },
]
export default () => (
<board
title="MuseGrow V2.1"
outline={boardOutline}
layers={2}
thickness="1.6mm"
material="fr4"
autorouter="auto"
autorouterVersion="latest"
autorouterEffortLevel="10x"
defaultTraceWidth="0.2mm"
schAutoLayoutEnabled
>
<PowerAndUsbSheet />
<ControllerSheet />
<SensorsAndIoSheet />
<SoilElectrodes />
<keepout
shape="rect"
pcbX={0}
pcbY={38.5}
width="20mm"
height="7mm"
excludeRefs={[".U1"]}
/>
<copperpour
name="GND_TOP"
connectsTo="net.GND"
layer="top"
outline={electronicsCopperOutline}
clearance="0.2mm"
boardEdgeMargin="0.3mm"
/>
<copperpour
name="GND_BOTTOM"
connectsTo="net.GND"
layer="bottom"
outline={electronicsCopperOutline}
clearance="0.2mm"
boardEdgeMargin="0.3mm"
/>
<silkscreentext text="MUSEGROW V2.1" pcbX={0} pcbY={10} fontSize="1mm" />
<silkscreentext text="RESET" pcbX={-18} pcbY={36.3} fontSize="0.8mm" />
<silkscreentext text="BOOT" pcbX={-18} pcbY={29.5} fontSize="0.8mm" />
<silkscreentext text="PAIR" pcbX={18} pcbY={29.5} fontSize="0.8mm" />
<silkscreentext text="PWR" pcbX={10} pcbY={20.2} fontSize="0.8mm" />
<silkscreentext text="STATUS" pcbX={15} pcbY={33.6} fontSize="0.8mm" />
<silkscreentext text="MAX SOIL" pcbX={0} pcbY={3.2} fontSize="0.7mm" />
<silkscreenpath route={[{ x: -6.5, y: 2 }, { x: 6.5, y: 2 }]} />
<silkscreentext text="ANTENNA KEEP CLEAR" pcbX={0} pcbY={40.5} fontSize="0.7mm" />
</board>
)