tscircuit/sparkfun-boards

This code defines a detailed PCB schematic and physical footprint layout for various embedded hardware modules, mapping electrical pins, mechanical mounting holes, and silk-screen annotations for manufacturing and assembly.

Version
0.0.32
License
unset
Stars
3

boards/SparkFun-USB-to-Serial-Breakout-FT232RL/SparkFun-USB-to-Serial-Breakout-FT232RL.circuit.tsx

import { FT232RL } from "./FT232RL"
import { TYPE_C_31_M_12 } from "./TYPE_C_31_M_12"
import { MST22D18G2_125 } from "./MST22D18G2_125"
import { sel } from "@tscircuit/core"

const selectors = {
  U1: sel.U1(FT232RL),
  USBC: sel.USBC(TYPE_C_31_M_12),
  JP1: sel<
    | "GND"
    | "TXLED"
    | "RXLED"
    | "VCC"
    | "V3_3"
    | "CTS"
    | "SLEEP"
    | "TXDEN"
    | "PWREN"
  >("JP1"),
  JP2: sel<
    "TXD" | "DTR" | "RTS" | "VCCIO" | "RXD" | "RI" | "GND" | "DSR" | "DCD"
  >("JP2"),
  JP3: sel<"VCC" | "TXD" | "RXD" | "GND">("JP3"),
  net: sel.net<
    | "TXD"
    | "DTR"
    | "RTS"
    | "VCCIO"
    | "RXD"
    | "RI"
    | "GND"
    | "DSR"
    | "DCD"
    | "GND"
    | "TXLED"
    | "RXLED"
    | "VCC"
    | "V3_3"
    | "CTS"
    | "SLEEP"
    | "TXDEN"
    | "PWREN"
  >(),
}

const USBToSerialBreakout = () => (
  <board width="18mm" height="35mm" autorouter="auto-cloud">
    <FT232RL
      name="U1"
      pcbRotation={90}
      pcbY={-5}
      connections={{
        TXD: "net.TXD",
        DTR: "net.DTR",
        RTS: "net.RTS",
        RI: "net.RI",
        DCD: "net.DCD",
        DSR: "net.DSR",
        CTS: "net.CTS",
        VCCIO: "net.VCCIO",
        RXD: "net.RXD",
        GND1: "net.GND",
        GND2: "net.GND",
        GND3: "net.GND",
        AGND: "net.GND",
        TEST: "net.GND",
        CBUS4: "net.SLEEP",
        CBUS2: "net.TXDEN",
        CBUS3: "net.PWREN",
        CBUS0: sel.LED1.pin2,
        CBUS1: sel.LED2.pin2,
        VCC: sel.F1.pin2,
        USBDM: selectors.USBC.D_MINUS,
        USBDP: selectors.USBC.D_PLUS,
        V3_3OUT: sel.C1.pin2,
      }}
    />

    <TYPE_C_31_M_12
      name="USBC"
      pcbY={12.2}
      pcbRotation={180}
      schX={-12.5}
      schY={0.1}
      connections={{ GND: "net.GND" }}
    />

    <fuse
      name="F1"
      currentRating="0.5"
      voltageRating="220"
      footprint="0402"
      pcbX={6}
      pcbY={8}
      pcbRotation={90}
      schY={0.5}
      schX={-9}
      connections={{
        pin1: selectors.USBC.VCC,
      }}
    />

    <resistor
      name="R1"
      resistance="0.33k"
      footprint="0603"
      schX={3}
      schRotation={90}
      pcbX={6.3}
      pcbY={-16.2}
      connections={{ pin1: sel.LED1.pin1, pin2: "net.VCCIO" }}
    />

    <resistor
      name="R2"
      resistance="0.33k"
      footprint="0603"
      schX={4}
      schRotation={90}
      pcbX={-6}
      pcbY={-5}
      pcbRotation={90}
      connections={{ pin1: sel.LED2.pin1, pin2: "net.VCCIO" }}
    />

    <led
      name="LED1"
      footprint="0402"
      schRotation={270}
      schY={-2}
      schX={3}
      pcbX={-6.3}
      pcbY={-14}
      color="red"
      schDisplayValue="Red"
    />

    <led
      name="LED2"
      footprint="0402"
      schRotation={270}
      schY={-2}
      schX={4}
      pcbX={6.3}
      pcbY={-14}
      color="red"
      schDisplayValue="Green"
    />

    <capacitor
      name="C1"
      capacitance="100000pF"
      footprint="cap0603"
      schY={-2}
      schX={-5}
      pcbX={6.1}
      pcbY={-10.5}
      schRotation={90}
      pcbRotation={90}
      connections={{ pin1: "net.GND", pin2: "net.VCC" }}
    />

    <capacitor
      name="C2"
      capacitance="100000pF"
      footprint="cap0603"
      schY={-2}
      schX={-8}
      pcbX={-6.3}
      pcbY={-16.2}
      schRotation={90}
      connections={{ pin1: "net.GND", pin2: sel.F1.pin2 }}
    />

    <capacitor
      name="C5"
      capacitance="10000000pF"
      footprint="cap0603"
      schY={-2}
      schX={-6.5}
      pcbX={-6}
      pcbY={8}
      schRotation={270}
      pcbRotation={90}
      polarized
      connections={{ pin1: sel.F1.pin2, pin2: sel.net.GND }}
    />

    <jumper
      name="JP1"
      pinLabels={{
        pin1: "GND",
        pin2: "TXLED",
        pin3: "RXLED",
        pin4: "VCC",
        pin5: "V3_3",
        pin6: "CTS",
        pin7: "SLEEP",
        pin8: "TXDEN",
        pin9: "PWREN",
      }}
      footprint="pinrow9_nosquareplating"
      pcbY={0}
      pcbX={8}
      pcbRotation={90}
      schDirection="left"
      schX={7}
      schY={3}
      connections={{
        pin1: selectors.net.GND,
        pin2: selectors.net.TXLED,
        pin3: selectors.net.RXLED,
        pin4: selectors.net.VCC,
        pin5: selectors.net.V3_3,
        pin6: selectors.net.CTS,
        pin7: selectors.net.SLEEP,
        pin8: selectors.net.TXDEN,
        pin9: selectors.net.PWREN,
      }}
    />

    <jumper
      name="JP2"
      footprint="pinrow9_nosquareplating_pinlabeltextalignleft_pinlabelorthogonal"
      pcbX={-8}
      pcbRotation={90}
      pcbY={0}
      schDirection="left"
      schX={7}
      schY={-2}
      pinLabels={{
        pin1: ["TXD"],
        pin2: ["DTR"],
        pin3: ["RTS"],
        pin4: ["VCCIO"],
        pin5: ["RXD"],
        pin6: ["RI"],
        pin7: ["GND"],
        pin8: ["DSR"],
        pin9: ["DCD"],
      }}
      connections={{
        TXD: selectors.net.TXD,
        DTR: selectors.net.DTR,
        RTS: selectors.net.RTS,
        VCCIO: selectors.net.VCCIO,
        RXD: selectors.net.RXD,
        RI: selectors.net.RI,
        GND: selectors.net.GND,
        DSR: selectors.net.DSR,
        DCD: selectors.net.DCD,
      }}
    />
    <jumper
      name="JP3"
      footprint="pinrow4"
      pcbX={0}
      pcbRotation="180"
      schDirection="left"
      pcbY={-16.2}
      schX={0}
      schY={-5}
      pinLabels={{
        pin1: "VCC",
        pin2: "TXD",
        pin3: "RXD",
        pin4: "GND",
      }}
      connections={{
        VCC: selectors.net.VCC,
        TXD: selectors.net.TXD,
        RXD: selectors.net.RXD,
        GND: selectors.net.GND,
      }}
    />
    <MST22D18G2_125 name="SW3" schX={-5} schY={-6} pcbY={5} />
    <netlabel
      schX={-4.62}
      schY={-6.07}
      anchorSide="left"
      net="VCC"
      connectsTo={[sel.SW3.pin3]}
    />
    <netlabel
      schX={-4.62}
      schY={-5.83}
      anchorSide="left"
      net="V3_3"
      connectsTo={[sel.SW3.pin2]}
    />
    <netlabel
      schX={-5.37}
      schY={-5.98}
      anchorSide="right"
      net="VCCIO"
      connectsTo={[sel.SW3.pin1]}
    />
    <schematictext
      fontSize={0.3}
      text="Vcc = 2.7V to 5.5V"
      schX={-4}
      schY={5}
      anchor="center_left"
    />
    <schematictext
      fontSize={0.3}
      text="GND = 1100000 (0x60) (Default)"
      schX={-4.5}
      schY={-7.5}
      anchor="center_left"
    />
    <schematictext
      fontSize={0.3}
      text="VCC - 1100001 (0x61)"
      schX={-4.5}
      schY={-8}
      anchor="center_left"
    />
  </board>
)

export default USBToSerialBreakout