ShiboSoftwareDev/msp-exp430g2et

This circuit integrates a 4MHz crystal resonator, various resistors and capacitors for power management and filtering, a microcontroller (MSP430F5528), and multiple connectors and test points to enable USB communication, programming, and system monitoring with shielding and grounding.

Version
1.0.2
License
unset
Stars
0

index.circuit.tsx

PCBPCB preview for index.circuit.tsx
SchematicSchematic preview for index.circuit.tsx
import { CSTCR4M00G53_R0 } from "./imports/CSTCR4M00G53_R0"
import { MicroXNJ } from "./imports/MicroXNJ"
import { MSP430F5528IRGCR } from "./imports/MSP430F5528IRGCR"
import { SC_32S32_768kHz20PPM12_5pF } from "./imports/SC_32S32_768kHz20PPM12_5pF"
import { TS342A2P_WZ } from "./imports/TS342A2P_WZ"
import { USBLC6_2SC6 } from "./imports/USBLC6_2SC6"

const onSheet = <const T extends Record<string, unknown>>(
  schSheetName: string,
  placement: T,
) => ({ schSheetName, ...placement })

const SCH = {
  J_USB: onSheet("EZFET", { schX: -12, schY: 6 }),
  U_ESD: onSheet("EZFET", { schX: -9, schY: 6, schRotation: 180 }),
  R_USB_DM: onSheet("EZFET", { schX: -6, schY: 5.3, schOrientation: "horizontal" }),
  R_USB_DP: onSheet("EZFET", { schX: -6, schY: 6.7, schOrientation: "horizontal" }),
  R_USB_PUR: onSheet("EZFET", { schX: -2.5, schY: 8.2, schOrientation: "horizontal" }),
  R_DBG_VBUS_LINK: onSheet("EZFET", { schX: -2.5, schY: 9.2, schOrientation: "horizontal" }),
  R_SHIELD: onSheet("EZFET", { schX: -10, schY: 2.2, schOrientation: "vertical" }),
  C_SHIELD: onSheet("EZFET", { schX: -7.8, schY: 2.2, schOrientation: "vertical" }),
  U_DBG: onSheet("EZFET", { schX: 2.5, schY: 1 }),
  Y_DBG: onSheet("EZFET", { schX: -3, schY: 0.5, schOrientation: "right" }),
  C_DBG_VCORE: onSheet("EZFET", { schX: 10.5, schY: 7.5, schOrientation: "vertical" }),
  C_DBG_VUSB: onSheet("EZFET", { schX: -1.5, schY: -4, schOrientation: "vertical" }),
  C_DBG_V18: onSheet("EZFET", { schX: 0.5, schY: -4, schOrientation: "vertical" }),
  C_DBG_AVCC: onSheet("EZFET", { schX: 3, schY: -6, schOrientation: "vertical" }),
  C_DBG_DVCC1: onSheet("EZFET", { schX: 5, schY: -6, schOrientation: "vertical" }),
  C_DBG_DVCC2: onSheet("EZFET", { schX: 7, schY: -6, schOrientation: "vertical" }),
  C_DBG_BULK: onSheet("EZFET", { schX: 9, schY: -6, schOrientation: "vertical" }),
  R_DBG_RST: onSheet("EZFET", { schX: 8.5, schY: 8.7, schOrientation: "horizontal" }),
  C_DBG_RST: onSheet("EZFET", { schX: 11.5, schY: 8.7, schOrientation: "vertical" }),
  LED_DBG_RED: onSheet("EZFET", { schX: -8, schY: -8.5, schOrientation: "horizontal" }),
  R_DBG_RED: onSheet("EZFET", { schX: -5.5, schY: -8.5, schOrientation: "horizontal" }),
  LED_DBG_GREEN: onSheet("EZFET", { schX: -1.5, schY: -8.5, schOrientation: "horizontal" }),
  R_DBG_GREEN: onSheet("EZFET", { schX: 1, schY: -8.5, schOrientation: "horizontal" }),
  LED_DBG_YELLOW: onSheet("EZFET", { schX: 5, schY: -8.5, schOrientation: "horizontal" }),
  R_DBG_YELLOW: onSheet("EZFET", { schX: 7.5, schY: -8.5, schOrientation: "horizontal" }),
  J_DBG_PROG: onSheet("EZFET", { schX: 11, schY: 1, schRotation: 180 }),

  U_LDO: onSheet("POWER", { schX: -7, schY: 5 }),
  C_LDO_IN: onSheet("POWER", { schX: -11, schY: 2, schOrientation: "vertical" }),
  C_LDO_OUT: onSheet("POWER", { schX: -3, schY: 2, schOrientation: "vertical" }),
  R_LDO_EN: onSheet("POWER", { schX: -11, schY: 5, schOrientation: "horizontal" }),
  LED_PWR: onSheet("POWER", { schX: -6, schY: -2.5, schOrientation: "vertical" }),
  R_LED_PWR: onSheet("POWER", { schX: -6, schY: 0, schOrientation: "vertical" }),
  J_ISO_TST: onSheet("POWER", { schX: 3, schY: 7.2 }),
  J_ISO_RST: onSheet("POWER", { schX: 3, schY: 5.1 }),
  J_ISO_RX: onSheet("POWER", { schX: 3, schY: 3 }),
  J_ISO_TX: onSheet("POWER", { schX: 3, schY: 0.9 }),
  J_ISO_3V3: onSheet("POWER", { schX: 3, schY: -1.2 }),
  J_ISO_5V: onSheet("POWER", { schX: 3, schY: -3.3 }),
  J_ISO_GND: onSheet("POWER", { schX: 3, schY: -5.4 }),
  J_EXT_3V3: onSheet("POWER", { schX: 7, schY: -1.2 }),
  J_EXT_5V: onSheet("POWER", { schX: 7, schY: -3.3 }),
  TP_GND: onSheet("POWER", { schX: 6.5, schY: -5.4 }),

  U_TARGET: onSheet("TARGET", { schX: 0, schY: 2 }),
  C_TARGET_BULK: onSheet("TARGET", { schX: -10, schY: 8, schOrientation: "vertical" }),
  C_TARGET_MID: onSheet("TARGET", { schX: -8, schY: 8, schOrientation: "vertical" }),
  C_TARGET_DEC: onSheet("TARGET", { schX: -6, schY: 8, schOrientation: "vertical" }),
  J1: onSheet("TARGET", { schX: -11, schY: 2 }),
  J2: onSheet("TARGET", { schX: 8, schY: 2 }),
  SW_USER: onSheet("TARGET", { schX: -8, schY: -5.5, schOrientation: "down" }),
  R_USER: onSheet("TARGET", { schX: -8, schY: -2.5, schOrientation: "vertical" }),
  SW_RESET: onSheet("TARGET", { schX: -3.5, schY: -5.5, schOrientation: "down" }),
  R_TARGET_RST: onSheet("TARGET", { schX: -3.5, schY: -2.5, schOrientation: "vertical" }),
  C_TARGET_RST: onSheet("TARGET", { schX: -1.5, schY: -5.5, schOrientation: "vertical" }),
  R_LED1_EN: onSheet("TARGET", { schX: 1.5, schY: -4, schOrientation: "horizontal" }),
  R_LED1: onSheet("TARGET", { schX: 4, schY: -4, schOrientation: "horizontal" }),
  LED1: onSheet("TARGET", { schX: 6.5, schY: -4, schOrientation: "horizontal" }),
  R_LED2_EN: onSheet("TARGET", { schX: 1.5, schY: -6, schOrientation: "horizontal" }),
  R_LED2: onSheet("TARGET", { schX: 4, schY: -6, schOrientation: "horizontal" }),
  LED2: onSheet("TARGET", { schX: 6.5, schY: -6, schOrientation: "horizontal" }),
  LED_RGB: onSheet("TARGET", { schX: 8.5, schY: -6 }),
  R_RGB_B: onSheet("TARGET", { schX: 6.5, schY: -5, schOrientation: "horizontal" }),
  R_RGB_R: onSheet("TARGET", { schX: 6.5, schY: -6.5, schOrientation: "horizontal" }),
  R_RGB_G: onSheet("TARGET", { schX: 6.5, schY: -8, schOrientation: "horizontal" }),
  Y_TARGET: onSheet("TARGET", { schX: 8, schY: 8, schOrientation: "horizontal" }),
  R_XIN: onSheet("TARGET", { schX: 5, schY: 8.7, schOrientation: "horizontal" }),
  R_XOUT: onSheet("TARGET", { schX: 5, schY: 7.3, schOrientation: "horizontal" }),
  C_XIN: onSheet("TARGET", { schX: 9, schY: 5, schOrientation: "vertical" }),
  C_XOUT: onSheet("TARGET", { schX: 10, schY: 5, schOrientation: "vertical" }),
} as const

const Ldo3V3 = (props: any) => (
  <chip
    {...props}
    manufacturerPartNumber="TLV70033DDCR"
    supplierPartNumbers={{ jlcpcb: ["C11337"] }}
    footprint="sot23_5"
    pinLabels={{ pin1: "IN", pin2: "GND", pin3: "EN", pin4: "NC", pin5: "OUT" }}
    pinAttributes={{
      IN: { requiresPower: true },
      GND: { requiresGround: true },
      OUT: { providesPower: true },
    }}
  />
)

const DipPad = ({ pin, x, y }: { pin: number; x: number; y: number }) => (
  <platedhole
    portHints={[`pin${pin}`]}
    pcbX={`${x}mm`}
    pcbY={`${y}mm`}
    shape="circle"
    holeDiameter="0.9mm"
    outerDiameter="1.7mm"
  />
)

const MSP430G2553IN20 = (props: any) => {
  const pinLabels = {
    pin1: "DVCC",
    pin2: "P1_0",
    pin3: "P1_1_UART_RX",
    pin4: "P1_2_UART_TX",
    pin5: "P1_3_USER",
    pin6: "P1_4",
    pin7: "P1_5",
    pin8: "P2_0",
    pin9: "P2_1",
    pin10: "P2_2",
    pin11: "P2_3",
    pin12: "P2_4",
    pin13: "P2_5",
    pin14: "P1_6",
    pin15: "P1_7",
    pin16: "RST",
    pin17: "TEST",
    pin18: "P2_7_XOUT",
    pin19: "P2_6_XIN",
    pin20: "DVSS",
  } as const

  return (
    <chip
      {...props}
      manufacturerPartNumber="MSP430G2553IN20"
      pinLabels={pinLabels}
      footprint={
        <footprint>
          {Array.from({ length: 10 }, (_, i) => (
            <DipPad key={`l${i}`} pin={i + 1} x={-3.81} y={11.43 - i * 2.54} />
          ))}
          {Array.from({ length: 10 }, (_, i) => (
            <DipPad key={`r${i}`} pin={i + 11} x={3.81} y={-11.43 + i * 2.54} />
          ))}
          <silkscreenrect width="10.2mm" height="26.8mm" />
          <silkscreencircle pcbX="-2.7mm" pcbY="10.2mm" radius="0.5mm" />
          <courtyardrect width="11.2mm" height="27.8mm" />
        </footprint>
      }
      pinAttributes={{ DVCC: { requiresPower: true }, DVSS: { requiresGround: true } }}
    />
  )
}

const RgbLed = (props: any) => (
  <chip
    {...props}
    manufacturerPartNumber="19-337/R6GHHC-A01/2T"
    pinLabels={{
      pin1: "GND_B",
      pin2: "GND_R",
      pin3: "GND_G",
      pin4: "BLUE",
      pin5: "RED",
      pin6: "GREEN",
    }}
    footprint={
      <footprint>
        <smtpad portHints={["pin1"]} pcbX="-1.45mm" pcbY="-1.1mm" width="1.4mm" height="0.8mm" shape="rect" />
        <smtpad portHints={["pin2"]} pcbX="-1.45mm" pcbY="0mm" width="1.4mm" height="0.8mm" shape="rect" />
        <smtpad portHints={["pin3"]} pcbX="-1.45mm" pcbY="1.1mm" width="1.4mm" height="0.8mm" shape="rect" />
        <smtpad portHints={["pin4"]} pcbX="1.45mm" pcbY="1.1mm" width="1.4mm" height="0.8mm" shape="rect" />
        <smtpad portHints={["pin5"]} pcbX="1.45mm" pcbY="0mm" width="1.4mm" height="0.8mm" shape="rect" />
        <smtpad portHints={["pin6"]} pcbX="1.45mm" pcbY="-1.1mm" width="1.4mm" height="0.8mm" shape="rect" />
        <silkscreenrect width="2.2mm" height="3.8mm" />
        <courtyardrect width="4.2mm" height="4.4mm" />
      </footprint>
    }
  />
)

const TwoPinHeaderJumper = ({
  name,
  pcbX,
  schX,
  schY,
  schSheetName,
}: {
  name: string
  pcbX: number
  schX: number
  schY: number
  schSheetName: string
}) => (
  <jumper
    name={name}
    manufacturerPartNumber="2.54mm removable shunt jumper"
    footprint={
      <footprint>
        <platedhole shape="circle" portHints={["pin1"]} pcbX="0mm" pcbY="1.27mm" holeDiameter="0.9mm" outerDiameter="1.7mm" />
        <platedhole shape="circle" portHints={["pin2"]} pcbX="0mm" pcbY="-1.27mm" holeDiameter="0.9mm" outerDiameter="1.7mm" />
        <silkscreenrect width="2mm" height="3.4mm" />
      </footprint>
    }
    pinLabels={{ pin1: "HOST", pin2: "TARGET" }}
    schPinArrangement={{ leftSide: ["HOST"], rightSide: ["TARGET"] }}
    schX={schX}
    schY={schY}
    schSheetName={schSheetName}
    pcbX={pcbX}
    pcbY={6.5}
  />
)

export default () => (
  <board
    title="MSP-EXP430G2ET LaunchPad - tscircuit edition"
    width="52mm"
    height="70mm"
    layers={4}
    borderRadius="2mm"
    minTraceWidth="0.15mm"
    minViaHoleDiameter="0.3mm"
    minViaPadDiameter="0.45mm"
    pcbStyle={{ viaHoleDiameter: "0.3mm", viaPadDiameter: "0.45mm" }}
    autorouter={{ preset: "default", allowViaInPad: false }}
  >
    <schematicsheet name="EZFET" displayName="eZ-FET Host MCU and Protected USB" sheetIndex={0}>
      <schematictext text="eZ-FET Host MCU, USB Interface, and Debug Status" schX={-12} schY={10} fontSize={0.7} anchor="left" />
      <schematictext text="MSP430F5528 USB debug probe with 4 MHz resonator, reset, and three status LEDs" schX={-12} schY={-10} fontSize={0.35} anchor="left" color="#555555" />
    </schematicsheet>
    <schematicsheet name="POWER" displayName="3.3 V Supply and Target Isolation" sheetIndex={1}>
      <schematictext text="Target Power and Seven-Link Isolation Block" schX={-12} schY={10} fontSize={0.7} anchor="left" />
      <schematictext text="Install all seven shunts for normal USB-powered programming, UART, and target operation." schX={-12} schY={-9} fontSize={0.35} anchor="left" />
      <schematictext text="Conventional 3.3 V LDO replacement; EnergyTrace current profiling is not implemented." schX={-12} schY={-10} fontSize={0.35} anchor="left" color="#555555" />
    </schematicsheet>
    <schematicsheet name="TARGET" displayName="MSP430G2553 Target and 20-pin BoosterPack" sheetIndex={2}>
      <schematictext text="MSP430G2553 Target, Buttons, LEDs, Clock Option, and BoosterPack Headers" schX={-12} schY={10} fontSize={0.7} anchor="left" />
      <schematictext text="Reference-default P2.6/P2.7 header paths are fitted; the 32.768 kHz crystal branch is marked DNP." schX={-12} schY={-10} fontSize={0.35} anchor="left" color="#555555" />
    </schematicsheet>

    <hole name="H1" diameter="3.2mm" pcbX={-22} pcbY={31} />
    <hole name="H2" diameter="3.2mm" pcbX={22} pcbY={31} />
    <hole name="H3" diameter="3.2mm" pcbX={-22} pcbY={-31} />
    <hole name="H4" diameter="3.2mm" pcbX={22} pcbY={-31} />
    <fiducial name="FID1" padDiameter="1mm" soldermaskPullback="1mm" pcbX={-18.5} pcbY={31} />
    <fiducial name="FID2" padDiameter="1mm" soldermaskPullback="1mm" pcbX={18.5} pcbY={31} />
    <silkscreentext text="MSP-EXP430G2ET" fontSize="1.2mm" pcbX={0} pcbY={-32.5} />
    <silkscreentext text="eZ-FET" fontSize="1mm" pcbX={17} pcbY={26} />
    <silkscreentext text="TST RST RX TX 3V3 5V GND" fontSize="0.65mm" pcbX={0} pcbY={9.5} />
    <silkscreentext text="TARGET / 20-PIN BOOSTERPACK" fontSize="0.8mm" pcbX={0} pcbY={2.5} />
    <silkscreentext text="32K OPTION DNP" fontSize="0.65mm" pcbX={12.5} pcbY={-25.5} />

    <MicroXNJ name="J_USB" {...SCH.J_USB} pcbX={0} pcbY={31.5} pcbRotation={90} noConnect={["ID"]} />
    <USBLC6_2SC6
      name="U_ESD"
      {...SCH.U_ESD}
      pcbX={0}
      pcbY={24.8}
      pcbRotation={90}
      pinAttributes={{ VBUS: { requiresPower: true }, GND: { requiresGround: true } }}
    />
    <resistor name="R_USB_DM" {...SCH.R_USB_DM} resistance="27ohm" footprint="0402" pcbX={-7} pcbY={19.75} />
    <resistor name="R_USB_DP" {...SCH.R_USB_DP} resistance="27ohm" footprint="0402" pcbX={-7} pcbY={20.75} />
    <resistor name="R_USB_PUR" {...SCH.R_USB_PUR} resistance="1.4kohm" footprint="0402" layer="bottom" pcbX={-11} pcbY={21.5} />
    <resistor name="R_DBG_VBUS_LINK" {...SCH.R_DBG_VBUS_LINK} resistance="0ohm" footprint="0402" layer="bottom" pcbX={-8} pcbY={16} />
    <resistor name="R_SHIELD" {...SCH.R_SHIELD} resistance="1Mohm" footprint="0603" pcbX={7} pcbY={31} />
    <capacitor name="C_SHIELD" {...SCH.C_SHIELD} capacitance="220nF" footprint="0603" pcbX={10} pcbY={31} />

    <MSP430F5528IRGCR
      name="U_DBG"
      {...SCH.U_DBG}
      schWidth="5.5mm"
      schHeight="8mm"
      pcbX={0}
      pcbY={17.5}
      pinAttributes={{
        AVCC1: { requiresPower: true },
        AVSS1: { requiresGround: true },
        DVCC1: { requiresPower: true },
        DVSS1: { requiresGround: true },
        DVCC2: { requiresPower: true },
        DVSS2: { requiresGround: true },
        AVSS2: { requiresGround: true },
        VSSU: { requiresGround: true },
        GND_EP: { requiresGround: true },
        VBUS: { requiresPower: true },
      }}
    />
    <CSTCR4M00G53_R0 name="Y_DBG" {...SCH.Y_DBG} pcbX={-10} pcbY={17.5} pcbRotation={90} pinAttributes={{ GND: { requiresGround: true } }} />
    <capacitor name="C_DBG_VCORE" {...SCH.C_DBG_VCORE} capacitance="470nF" maxDecouplingTraceLength="10mm" footprint="0402" layer="bottom" pcbX={5.7} pcbY={14.26} pcbRotation={270} />
    <capacitor name="C_DBG_VUSB" {...SCH.C_DBG_VUSB} capacitance="220nF" maxDecouplingTraceLength="10mm" footprint="0402" layer="bottom" pcbX={-5.2} pcbY={19.6} pcbRotation={270} />
    <capacitor name="C_DBG_V18" {...SCH.C_DBG_V18} capacitance="220nF" maxDecouplingTraceLength="20mm" footprint="0402" layer="bottom" pcbX={-5.2} pcbY={17.4} pcbRotation={90} />
    <capacitor name="C_DBG_AVCC" {...SCH.C_DBG_AVCC} capacitance="100nF" maxDecouplingTraceLength="25mm" footprint="0402" pcbX={0} pcbY={11.2} />
    <capacitor name="C_DBG_DVCC1" {...SCH.C_DBG_DVCC1} capacitance="100nF" maxDecouplingTraceLength="25mm" footprint="0402" pcbX={2.2} pcbY={11.2} />
    <capacitor name="C_DBG_DVCC2" {...SCH.C_DBG_DVCC2} capacitance="100nF" maxDecouplingTraceLength="25mm" footprint="0402" pcbX={4.4} pcbY={11.2} />
    <capacitor name="C_DBG_BULK" {...SCH.C_DBG_BULK} capacitance="4.7uF" maxDecouplingTraceLength="25mm" footprint="0805" pcbX={-4} pcbY={10.4} />
    <resistor name="R_DBG_RST" {...SCH.R_DBG_RST} resistance="47kohm" footprint="0402" pcbX={-7.5} pcbY={12} />
    <capacitor name="C_DBG_RST" {...SCH.C_DBG_RST} capacitance="1nF" footprint="0402" pcbX={-9.5} pcbY={12} />
    <led name="LED_DBG_RED" {...SCH.LED_DBG_RED} color="red" footprint="0603" pcbX={8.5} pcbY={28} />
    <resistor name="R_DBG_RED" {...SCH.R_DBG_RED} resistance="470ohm" footprint="0603" pcbX={12.5} pcbY={28} />
    <led name="LED_DBG_GREEN" {...SCH.LED_DBG_GREEN} color="green" footprint="0603" pcbX={8.5} pcbY={25} />
    <resistor name="R_DBG_GREEN" {...SCH.R_DBG_GREEN} resistance="390ohm" footprint="0603" pcbX={12.5} pcbY={24.5} />
    <led name="LED_DBG_YELLOW" {...SCH.LED_DBG_YELLOW} color="yellow" footprint="0603" pcbX={8.5} pcbY={22} />
    <resistor name="R_DBG_YELLOW" {...SCH.R_DBG_YELLOW} resistance="390ohm" footprint="0603" pcbX={12.5} pcbY={21.5} />
    <pinheader
      name="J_DBG_PROG"
      {...SCH.J_DBG_PROG}
      pinCount={7}
      gender="male"
      pitch="2.54mm"
      footprint="pinrow7_p2.54mm"
      manufacturerPartNumber="DNP - eZ-FET host debug header"
      pinLabels={["TEST", "TDO", "TDI", "TMS", "TCK", "RST", "GND"]}
      pcbX={-21.5}
      pcbY={14}
      pcbRotation={270}
    />

    <Ldo3V3 name="U_LDO" {...SCH.U_LDO} pcbX={-17} pcbY={26} pcbRotation={180} />
    <capacitor name="C_LDO_IN" {...SCH.C_LDO_IN} capacitance="1uF" maxDecouplingTraceLength="25mm" footprint="0603" pcbX={-21} pcbY={24.5} />
    <capacitor name="C_LDO_OUT" {...SCH.C_LDO_OUT} capacitance="2.2uF" maxDecouplingTraceLength="25mm" footprint="0603" pcbX={-13} pcbY={24.5} />
    <resistor name="R_LDO_EN" {...SCH.R_LDO_EN} resistance="10kohm" footprint="0402" pcbX={-20} pcbY={27.8} />
    <led name="LED_PWR" {...SCH.LED_PWR} color="green" footprint="0603" pcbX={17} pcbY={23.5} />
    <resistor name="R_LED_PWR" {...SCH.R_LED_PWR} resistance="1kohm" footprint="0603" pcbX={20} pcbY={23.5} />

    <TwoPinHeaderJumper name="J_ISO_TST" pcbX={-10.5} {...SCH.J_ISO_TST} />
    <TwoPinHeaderJumper name="J_ISO_RST" pcbX={-7} {...SCH.J_ISO_RST} />
    <TwoPinHeaderJumper name="J_ISO_RX" pcbX={-3.5} {...SCH.J_ISO_RX} />
    <TwoPinHeaderJumper name="J_ISO_TX" pcbX={0} {...SCH.J_ISO_TX} />
    <TwoPinHeaderJumper name="J_ISO_3V3" pcbX={3.5} {...SCH.J_ISO_3V3} />
    <TwoPinHeaderJumper name="J_ISO_5V" pcbX={7} {...SCH.J_ISO_5V} />
    <TwoPinHeaderJumper name="J_ISO_GND" pcbX={10.5} {...SCH.J_ISO_GND} />
    <pinheader name="J_EXT_3V3" {...SCH.J_EXT_3V3} pinCount={2} gender="male" pitch="2.54mm" footprint="pinrow2_p2.54mm" pinLabels={["V3_3", "GND"]} pcbX={14.5} pcbY={7.5} />
    <pinheader name="J_EXT_5V" {...SCH.J_EXT_5V} pinCount={2} gender="male" pitch="2.54mm" footprint="pinrow2_p2.54mm" pinLabels={["V5", "GND"]} pcbX={21} pcbY={7.5} />
    <testpoint name="TP_GND" {...SCH.TP_GND} footprintVariant="pad" padShape="circle" padDiameter="1.2mm" pcbX={21} pcbY={12} />

    <MSP430G2553IN20
      name="U_TARGET"
      {...SCH.U_TARGET}
      schWidth="7mm"
      schHeight="11mm"
      schPinArrangement={{ leftSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], rightSide: [20, 19, 18, 17, 16, 15, 14, 13, 12, 11] }}
      pcbX={0}
      pcbY={-12}
    />
    <capacitor name="C_TARGET_BULK" {...SCH.C_TARGET_BULK} capacitance="10uF" maxDecouplingTraceLength="40mm" footprint="0805" pcbX={-17} pcbY={2.5} pcbRotation={90} />
    <capacitor name="C_TARGET_MID" {...SCH.C_TARGET_MID} capacitance="1uF" maxDecouplingTraceLength="40mm" footprint="0603" pcbX={-14} pcbY={2.5} pcbRotation={90} />
    <capacitor name="C_TARGET_DEC" {...SCH.C_TARGET_DEC} capacitance="100nF" maxDecouplingTraceLength="40mm" footprint="0402" pcbX={-11} pcbY={2.5} pcbRotation={90} />
    <resistor name="R_USER" {...SCH.R_USER} resistance="47kohm" footprint="0603" pcbX={-17} pcbY={-27.5} />
    <TS342A2P_WZ name="SW_USER" {...SCH.SW_USER} pcbX={-12} pcbY={-27.5} />
    <resistor name="R_TARGET_RST" {...SCH.R_TARGET_RST} resistance="47kohm" footprint="0603" pcbX={8} pcbY={0.5} />
    <capacitor name="C_TARGET_RST" {...SCH.C_TARGET_RST} capacitance="1nF" footprint="0402" pcbX={11} pcbY={0.5} />
    <TS342A2P_WZ name="SW_RESET" {...SCH.SW_RESET} pcbX={16} pcbY={-27.5} />

    <resistor name="R_LED1_EN" {...SCH.R_LED1_EN} resistance="0ohm" footprint="0603" pcbX={-17} pcbY={-23.5} />
    <resistor name="R_LED1" {...SCH.R_LED1} resistance="390ohm" footprint="0603" pcbX={-13.5} pcbY={-23.5} />
    <led name="LED1" {...SCH.LED1} color="green" footprint="0603" pcbX={-10} pcbY={-23.5} />
    <resistor name="R_LED2_EN" {...SCH.R_LED2_EN} resistance="0ohm" footprint="0603" pcbX={-17} pcbY={-20.5} />
    <resistor name="R_LED2" {...SCH.R_LED2} resistance="470ohm" footprint="0603" pcbX={-13.5} pcbY={-20.5} />
    <led name="LED2" {...SCH.LED2} color="red" footprint="0603" pcbX={-10} pcbY={-20.5} />
    <RgbLed name="U_RGB" {...SCH.LED_RGB} pcbX={17} pcbY={-22.5} />
    <resistor name="R_RGB_B" {...SCH.R_RGB_B} resistance="24ohm" footprint="0603" pcbX={12.5} pcbY={-20.5} />
    <resistor name="R_RGB_R" {...SCH.R_RGB_R} resistance="110ohm" footprint="0603" pcbX={12.5} pcbY={-22.5} />
    <resistor name="R_RGB_G" {...SCH.R_RGB_G} resistance="16ohm" footprint="0603" pcbX={12.5} pcbY={-24.5} />

    <SC_32S32_768kHz20PPM12_5pF name="Y_TARGET" {...SCH.Y_TARGET} manufacturerPartNumber="DNP - 32.768 kHz option" pcbX={8.8} pcbY={-27.8} pcbRotation={90} />
    <resistor name="R_XIN" {...SCH.R_XIN} manufacturerPartNumber="DNP - crystal selection link" resistance="0ohm" footprint="0402" pcbX={5.5} pcbY={-26.8} />
    <resistor name="R_XOUT" {...SCH.R_XOUT} manufacturerPartNumber="DNP - crystal selection link" resistance="0ohm" footprint="0402" pcbX={5.5} pcbY={-29} />
    <capacitor name="C_XIN" {...SCH.C_XIN} manufacturerPartNumber="DNP - crystal load capacitor" capacitance="12pF" footprint="0402" pcbX={12} pcbY={-26.8} />
    <capacitor name="C_XOUT" {...SCH.C_XOUT} manufacturerPartNumber="DNP - crystal load capacitor" capacitance="12pF" footprint="0402" pcbX={12} pcbY={-29} />

    <pinheader
      name="J1"
      {...SCH.J1}
      pinCount={10}
      gender="female"
      pitch="2.54mm"
      footprint="pinrow10_p2.54mm"
      pinLabels={["V3_3", "P1_0", "P1_1_UART_RX", "P1_2_UART_TX", "P1_3_USER", "P1_4", "P1_5", "P2_0", "P2_1", "P2_2"]}
      schPinArrangement={{ leftSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }}
      showSilkscreenPinLabels={true}
      pcbX={-22}
      pcbY={-12}
      pcbRotation={90}
    />
    <pinheader
      name="J2"
      {...SCH.J2}
      pinCount={10}
      gender="female"
      pitch="2.54mm"
      footprint="pinrow10_p2.54mm"
      pinLabels={["P2_3", "P2_4", "P2_5", "P1_6", "P1_7", "RST", "TEST", "P2_7_XOUT", "P2_6_XIN", "GND"]}
      schPinArrangement={{ rightSide: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] }}
      showSilkscreenPinLabels={true}
      pcbX={22}
      pcbY={-12}
      pcbRotation={90}
    />

    <trace from="J_USB.VBUS" to="U_ESD.VBUS" thickness="0.3mm" />
    <trace
      from="J_USB.D_NEG"
      to="U_ESD.DM_CONNECTOR"
      pcbPathRelativeTo="J_USB.D_NEG"
      pcbPath={[
        "J_USB.D_NEG",
        { x: -3.8, y: -0.65 },
        { x: -5.45, y: -2.3 },
        { x: -7.65, y: -2.3 },
        "U_ESD.DM_CONNECTOR",
      ]}
      thickness="0.22mm"
    />
    <trace
      from="J_USB.D_POS"
      to="U_ESD.DP_CONNECTOR"
      pcbPathRelativeTo="J_USB.D_POS"
      pcbPath={[
        "J_USB.D_POS",
        { x: -4.6, y: 0 },
        "U_ESD.DP_CONNECTOR",
      ]}
      thickness="0.22mm"
    />
    <trace from="J_USB.GND" to="net.GND" />
    <trace from="J_USB.SH1" to="net.USB_SHIELD" />
    <trace from="J_USB.SH2" to="net.USB_SHIELD" />
    <trace from="J_USB.SH3" to="net.USB_SHIELD" />
    <trace from="J_USB.SH4" to="net.USB_SHIELD" />
    <trace from="R_SHIELD.pin1" to="net.USB_SHIELD" />
    <trace from="R_SHIELD.pin2" to="net.GND" />
    <trace from="C_SHIELD.pin1" to="net.USB_SHIELD" />
    <trace from="C_SHIELD.pin2" to="net.GND" />
    <trace from="U_ESD.DM_MCU" to="R_USB_DM.pin1" thickness="0.2mm" />
    <trace from="R_USB_DM.pin2" to="U_DBG.USB_DM" thickness="0.22mm" pcbStraightLine />
    <trace from="U_ESD.DP_MCU" to="R_USB_DP.pin1" thickness="0.2mm" />
    <trace
      from="R_USB_DP.pin2"
      to="U_DBG.USB_DP"
      pcbPathRelativeTo="R_USB_DP.pin2"
      pcbPath={[
        "R_USB_DP.pin2",
        { x: 1, y: 0 },
        { x: 1, y: 0, via: true, toLayer: "inner2" },
        { x: 1, y: 0 },
        { x: 1.7, y: 0 },
        { x: 1.7, y: 0, via: true, fromLayer: "inner2", toLayer: "top" },
        { x: 1.7, y: 0 },
        "U_DBG.USB_DP",
      ]}
      thickness="0.22mm"
    />
    <trace from="U_ESD.GND" to="net.GND" />
    <trace
      from="U_DBG.PUR"
      to="R_USB_PUR.pin1"
      pcbPathRelativeTo="U_DBG.PUR"
      pcbPath={[
        "U_DBG.PUR",
        { x: -5.2, y: 2.75 },
        { x: -5.2, y: 2.75, via: true, toLayer: "inner1" },
        { x: -5.2, y: 2.75 },
        { x: -6.5, y: 2.75 },
        { x: -6.5, y: 6 },
        { x: -10.49, y: 6 },
        { x: -10.49, y: 3.2 },
        { x: -10.49, y: 3.2, via: true, fromLayer: "inner1", toLayer: "bottom" },
        { x: -10.49, y: 3.2 },
        "R_USB_PUR.pin1",
      ]}
    />
    <trace from="R_USB_PUR.pin2" to="net.EZ_3V3" />
    <trace
      from="U_DBG.VBUS"
      to="R_DBG_VBUS_LINK.pin1"
      thickness="0.3mm"
      pcbPathRelativeTo="U_DBG.VBUS"
      pcbPath={[
        "U_DBG.VBUS",
        { x: -6, y: 1.75 },
        { x: -6, y: 1.3 },
        { x: -6, y: 1.3, via: true, toLayer: "bottom" },
        { x: -6, y: 1.3 },
        { x: -6, y: -1.5 },
        "R_DBG_VBUS_LINK.pin1",
      ]}
    />
    <trace from="R_DBG_VBUS_LINK.pin2" to="net.VBUS_USB" thickness="0.3mm" />
    <trace
      from="U_DBG.VUSB"
      to="C_DBG_VUSB.pin1"
      pcbPath={[
        "U_DBG.VUSB",
        { x: -5.15, y: 1.25 },
        { x: -5.15, y: 1.25, via: true, toLayer: "bottom" },
        { x: -5.15, y: 1.25 },
        "C_DBG_VUSB.pin1",
      ]}
      maxLength="3mm"
    />
    <trace from="C_DBG_VUSB.pin2" to="net.GND" />
    <trace
      from="U_DBG.V18"
      to="C_DBG_V18.pin1"
      pcbPath={[
        "U_DBG.V18",
        { x: -5.15, y: 0.75 },
        { x: -5.15, y: 0.75, via: true, toLayer: "bottom" },
        { x: -5.15, y: 0.75 },
        "C_DBG_V18.pin1",
      ]}
      maxLength="3mm"
    />
    <trace from="C_DBG_V18.pin2" to="net.GND" />
    <trace
      from="U_DBG.VCORE"
      to="C_DBG_VCORE.pin1"
      pcbPath={[
        "U_DBG.VCORE",
        { x: 5.15, y: -3.75 },
        { x: 5.15, y: -3.75, via: true, toLayer: "bottom" },
        { x: 5.15, y: -3.75 },
        "C_DBG_VCORE.pin1",
      ]}
      maxLength="3mm"
    />
    <trace from="C_DBG_VCORE.pin2" to="net.GND" />
    <trace from="U_DBG.AVCC1" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="U_DBG.DVCC1" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="U_DBG.DVCC2" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="U_DBG.AVSS1" to="net.GND" />
    <trace from="U_DBG.DVSS1" to="net.GND" />
    <trace from="U_DBG.DVSS2" to="net.GND" />
    <trace from="U_DBG.AVSS2" to="U_DBG.GND_EP" pcbStraightLine />
    <trace from="U_DBG.VSSU" to="net.GND" />
    <trace from="U_DBG.GND_EP" to="net.GND" thickness="0.3mm" />
    <trace from="C_DBG_AVCC.pin1" to="net.EZ_3V3" />
    <trace from="C_DBG_AVCC.pin2" to="net.GND" />
    <trace from="C_DBG_DVCC1.pin1" to="net.EZ_3V3" />
    <trace from="C_DBG_DVCC1.pin2" to="net.GND" />
    <trace from="C_DBG_DVCC2.pin1" to="net.EZ_3V3" />
    <trace from="C_DBG_DVCC2.pin2" to="net.GND" />
    <trace from="C_DBG_BULK.pin1" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="C_DBG_BULK.pin2" to="net.GND" />
    <trace from="Y_DBG.pin1" to="U_DBG.XT2OUT" />
    <trace from="Y_DBG.pin3" to="U_DBG.XT2IN" />
    <trace from="Y_DBG.pin2" to="net.GND" />
    <trace from="U_DBG.RST" to="net.DBG_RST" />
    <trace from="R_DBG_RST.pin1" to="net.DBG_RST" />
    <trace from="R_DBG_RST.pin2" to="net.EZ_3V3" />
    <trace from="C_DBG_RST.pin1" to="net.DBG_RST" />
    <trace from="C_DBG_RST.pin2" to="net.GND" />
    <trace from="U_DBG.LED0" to="R_DBG_RED.pin1" />
    <trace from="R_DBG_RED.pin2" to="LED_DBG_RED.anode" />
    <trace from="LED_DBG_RED.cathode" to="net.GND" />
    <trace from="U_DBG.LED1" to="R_DBG_GREEN.pin1" />
    <trace from="R_DBG_GREEN.pin2" to="LED_DBG_GREEN.anode" />
    <trace from="LED_DBG_GREEN.cathode" to="net.GND" />
    <trace from="U_DBG.LED2" to="R_DBG_YELLOW.pin1" />
    <trace from="R_DBG_YELLOW.pin2" to="LED_DBG_YELLOW.anode" />
    <trace from="LED_DBG_YELLOW.cathode" to="net.GND" />
    <trace from="J_DBG_PROG.TEST" to="U_DBG.TEST" />
    <trace from="J_DBG_PROG.TDO" to="U_DBG.TDO" />
    <trace from="J_DBG_PROG.TDI" to="U_DBG.TDI" />
    <trace from="J_DBG_PROG.TMS" to="U_DBG.TMS" />
    <trace from="J_DBG_PROG.TCK" to="U_DBG.TCK" />
    <trace from="J_DBG_PROG.RST" to="net.DBG_RST" />
    <trace from="J_DBG_PROG.GND" to="net.GND" />

    <trace from="U_ESD.VBUS" to="net.VBUS_USB" thickness="0.3mm" />
    <trace from="U_LDO.IN" to="net.VBUS_USB" thickness="0.3mm" />
    <trace from="U_LDO.EN" to="R_LDO_EN.pin1" />
    <trace from="R_LDO_EN.pin2" to="net.VBUS_USB" />
    <trace from="U_LDO.GND" to="net.GND" />
    <trace from="U_LDO.OUT" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="C_LDO_IN.pin1" to="net.VBUS_USB" thickness="0.3mm" />
    <trace from="C_LDO_IN.pin2" to="net.GND" />
    <trace from="C_LDO_OUT.pin1" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="C_LDO_OUT.pin2" to="net.GND" />
    <trace from="R_LED_PWR.pin1" to="net.EZ_3V3" />
    <trace from="R_LED_PWR.pin2" to="LED_PWR.anode" />
    <trace from="LED_PWR.cathode" to="net.GND" />

    <trace from="U_DBG.TARGET_SBWTCK" to="J_ISO_TST.HOST" />
    <trace from="J_ISO_TST.TARGET" to="U_TARGET.TEST" />
    <trace from="U_DBG.TARGET_SBWTDIO" to="J_ISO_RST.HOST" />
    <trace from="J_ISO_RST.TARGET" to="net.TARGET_RST" />
    <trace from="U_DBG.UART_TXD" to="J_ISO_RX.HOST" />
    <trace from="J_ISO_RX.TARGET" to="U_TARGET.P1_1_UART_RX" />
    <trace from="U_DBG.UART_RXD" to="J_ISO_TX.HOST" />
    <trace from="J_ISO_TX.TARGET" to="U_TARGET.P1_2_UART_TX" />
    <trace from="J_ISO_3V3.HOST" to="net.EZ_3V3" thickness="0.3mm" />
    <trace from="J_ISO_3V3.TARGET" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="J_ISO_5V.HOST" to="net.VBUS_USB" thickness="0.3mm" />
    <trace from="J_ISO_5V.TARGET" to="net.TARGET_5V" thickness="0.3mm" />
    <trace from="J_ISO_GND.HOST" to="net.GND" thickness="0.3mm" />
    <trace from="J_ISO_GND.TARGET" to="net.TARGET_GND" thickness="0.3mm" />
    <trace from="J_EXT_3V3.V3_3" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="J_EXT_3V3.GND" to="net.TARGET_GND" />
    <trace from="J_EXT_5V.V5" to="net.TARGET_5V" thickness="0.3mm" />
    <trace from="J_EXT_5V.GND" to="net.TARGET_GND" />
    <trace from="TP_GND.pin1" to="net.GND" />

    <trace from="U_TARGET.DVCC" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="U_TARGET.DVSS" to="net.TARGET_GND" thickness="0.3mm" />
    <trace from="C_TARGET_BULK.pin1" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="C_TARGET_BULK.pin2" to="net.TARGET_GND" />
    <trace from="C_TARGET_MID.pin1" to="net.TARGET_3V3" />
    <trace from="C_TARGET_MID.pin2" to="net.TARGET_GND" />
    <trace from="C_TARGET_DEC.pin1" to="net.TARGET_3V3" />
    <trace from="C_TARGET_DEC.pin2" to="net.TARGET_GND" />
    <trace from="U_TARGET.RST" to="net.TARGET_RST" />
    <trace from="R_TARGET_RST.pin1" to="net.TARGET_RST" />
    <trace from="R_TARGET_RST.pin2" to="net.TARGET_3V3" />
    <trace from="C_TARGET_RST.pin1" to="net.TARGET_RST" />
    <trace from="C_TARGET_RST.pin2" to="net.TARGET_GND" />
    <trace from="SW_RESET.pin1" to="net.TARGET_RST" />
    <trace from="SW_RESET.pin2" to="net.TARGET_GND" />
    <trace from="R_USER.pin1" to="net.TARGET_3V3" />
    <trace from="R_USER.pin2" to="U_TARGET.P1_3_USER" />
    <trace from="SW_USER.pin1" to="U_TARGET.P1_3_USER" />
    <trace from="SW_USER.pin2" to="net.TARGET_GND" />

    <trace from="U_TARGET.P1_0" to="R_LED1_EN.pin1" />
    <trace from="R_LED1_EN.pin2" to="R_LED1.pin1" />
    <trace from="R_LED1.pin2" to="LED1.anode" />
    <trace from="LED1.cathode" to="net.TARGET_GND" />
    <trace from="U_TARGET.P1_6" to="R_LED2_EN.pin1" />
    <trace from="R_LED2_EN.pin2" to="R_LED2.pin1" />
    <trace from="R_LED2.pin2" to="LED2.anode" />
    <trace from="LED2.cathode" to="net.TARGET_GND" />
    <trace from="U_TARGET.P2_5" to="R_RGB_B.pin1" />
    <trace from="R_RGB_B.pin2" to="U_RGB.BLUE" />
    <trace from="U_TARGET.P2_1" to="R_RGB_R.pin1" />
    <trace from="R_RGB_R.pin2" to="U_RGB.RED" />
    <trace from="U_TARGET.P2_3" to="R_RGB_G.pin1" />
    <trace from="R_RGB_G.pin2" to="U_RGB.GREEN" />
    <trace from="U_RGB.GND_B" to="net.TARGET_GND" />
    <trace from="U_RGB.GND_R" to="net.TARGET_GND" />
    <trace from="U_RGB.GND_G" to="net.TARGET_GND" />

    <trace from="U_TARGET.P2_6_XIN" to="R_XIN.pin1" />
    <trace from="R_XIN.pin2" to="Y_TARGET.pin1" />
    <trace from="U_TARGET.P2_7_XOUT" to="R_XOUT.pin1" />
    <trace from="R_XOUT.pin2" to="Y_TARGET.pin2" />
    <trace from="Y_TARGET.pin1" to="C_XIN.pin1" />
    <trace from="C_XIN.pin2" to="net.TARGET_GND" />
    <trace from="Y_TARGET.pin2" to="C_XOUT.pin1" />
    <trace from="C_XOUT.pin2" to="net.TARGET_GND" />

    <trace from="J1.V3_3" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="J1.P1_0" to="U_TARGET.P1_0" />
    <trace from="J1.P1_1_UART_RX" to="U_TARGET.P1_1_UART_RX" />
    <trace from="J1.P1_2_UART_TX" to="U_TARGET.P1_2_UART_TX" />
    <trace from="J1.P1_3_USER" to="U_TARGET.P1_3_USER" />
    <trace from="J1.P1_4" to="U_TARGET.P1_4" />
    <trace from="J1.P1_5" to="U_TARGET.P1_5" />
    <trace from="J1.P2_0" to="U_TARGET.P2_0" />
    <trace from="J1.P2_1" to="U_TARGET.P2_1" />
    <trace from="J1.P2_2" to="U_TARGET.P2_2" />
    <trace from="J2.P2_3" to="U_TARGET.P2_3" />
    <trace from="J2.P2_4" to="U_TARGET.P2_4" />
    <trace from="J2.P2_5" to="U_TARGET.P2_5" />
    <trace from="J2.P1_6" to="U_TARGET.P1_6" />
    <trace from="J2.P1_7" to="U_TARGET.P1_7" />
    <trace from="J2.RST" to="net.TARGET_RST" />
    <trace from="J2.TEST" to="U_TARGET.TEST" />
    <trace from="J2.P2_7_XOUT" to="U_TARGET.P2_7_XOUT" />
    <trace from="J2.P2_6_XIN" to="U_TARGET.P2_6_XIN" />
    <trace from="J2.GND" to="net.TARGET_GND" thickness="0.3mm" />
  </board>
)