gokul/fieldkit-usb

USB-C-powered ESP32-S3 Wi-Fi/Bluetooth handheld with an SMD 128x32 OLED, six navigation buttons, USB-C power/data, complete checked routing, and four native schematic sheets.

Version
0.4.2
License
UNLICENSED
Stars
0

index.circuit.tsx

PCBPCB preview for index.circuit.tsx
SchematicSchematic preview for index.circuit.tsx
import type { AutorouterProp } from "@tscircuit/props"
import { reviewedRouter } from "./routing/reviewed-router"
import { Controller } from "./sections/controller"
import { Controls } from "./sections/controls"
import { Display } from "./sections/display"
import { Power } from "./sections/power"

export default ({ autorouter = { local: true, algorithmFn: reviewedRouter } }: { autorouter?: AutorouterProp } = {}) => <board
  pcbRelative
  width="90mm"
  height="60mm"
  thickness="1.6mm"
  layers={2}
  borderRadius="3mm"
  autorouter={autorouter}
  autorouterVersion="latest"
  defaultTraceWidth="0.2mm"
  minTraceWidth="0.15mm"
  minViaHoleDiameter="0.2mm"
  minViaPadDiameter="0.45mm"
  pcbStyle={{ viaPadDiameter: "0.45mm", viaHoleDiameter: "0.2mm" }}
>
  <net name="GND" isGroundNet />
  <net name="VBUS" isPowerNet nominalTraceWidth="0.6mm" />
  <net name="V5" isPowerNet nominalTraceWidth="0.6mm" />
  <net name="SW" nominalTraceWidth="0.8mm" />
  <net name="V3_3" isPowerNet nominalTraceWidth="0.6mm" />
  <net name="OLED_12V" isPowerNet nominalTraceWidth="0.4mm" />
  <net name="OLED_VCC" isPowerNet nominalTraceWidth="0.4mm" />
  <net name="OLED_SW" nominalTraceWidth="0.8mm" />
  <copperpour name="GROUND" layer="bottom" connectsTo="net.GND" clearance="0.2mm" boardEdgeMargin="0.5mm" />

  <schematicsheet name="power" displayName="01 - USB-C and power" sheetIndex={0} sheetSize="ANSI_B">
    <group name="layout_power" pcbRelative pcbX={0} pcbY={0}><Power /></group>
  </schematicsheet>
  <schematicsheet name="controller" displayName="02 - Wi-Fi and Bluetooth controller" sheetIndex={1} sheetSize="ANSI_B">
    <group name="layout_controller" pcbRelative pcbX={0} pcbY={0}><Controller /></group>
  </schematicsheet>
  <schematicsheet name="display" displayName="03 - Display" sheetIndex={2} sheetSize="ANSI_B">
    <group name="layout_display" pcbRelative pcbX={0} pcbY={0}><Display /></group>
  </schematicsheet>
  <schematicsheet name="controls" displayName="04 - Buttons and status LED" sheetIndex={3} sheetSize="ANSI_B">
    <group name="layout_controls" pcbRelative pcbX={0} pcbY={0}><Controls /></group>
  </schematicsheet>

  <keepout shape="rect" pcbX={-34} pcbY={27} width={21.5} height={6} layers={["top", "bottom"]} excludeRefs={[".U1"]} />
  <silkscreentext text="FIELDKIT WIFI" pcbX={0} pcbY={28.5} fontSize={1} />
  <silkscreentext text="PWR" pcbX={1.5} pcbY={-28.5} fontSize={0.7} />
  <silkscreentext text="STATUS" pcbX={7} pcbY={-28.5} fontSize={0.7} />
</board>