ShiboSoftwareDev/msp-exp430fr2355

This code defines React components representing various surface-mount and through-hole electronic components—such as resonators, microcontrollers, crystals, connectors, and push buttons—with detailed physical footprints, 3D models, and pin configurations for PCB design.

Version
1.0.0
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 { MSP430FR2355TPTR } from "./imports/MSP430FR2355TPTR"
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"

// TI's reference is two sheets: the USB/eZ-FET host and the target/headers.
// These coordinates only control schematic presentation.
const onSheet = <const T extends Record<string, unknown>>(
  schSheetName: string,
  placement: T,
) => ({ schSheetName, ...placement })

const SCH = {
  J_USB: onSheet("DEBUG", { schX: -11, schY: 6 }),
  U_ESD: onSheet("DEBUG", { schX: -8, schY: 6, schRotation: 180 }),
  R_USB_DM: onSheet("DEBUG", { schX: -5, schY: 5.4, schOrientation: "horizontal" }),
  R_USB_DP: onSheet("DEBUG", { schX: -5, schY: 6.6, schOrientation: "horizontal" }),
  R_USB_PUR: onSheet("DEBUG", { schX: -2, schY: 4, schOrientation: "horizontal" }),
  R_DBG_VBUS_LINK: onSheet("DEBUG", { schX: -2, schY: 8, schOrientation: "horizontal" }),
  R_SHIELD: onSheet("DEBUG", { schX: -10, schY: 2.5, schOrientation: "vertical" }),
  C_SHIELD: onSheet("DEBUG", { schX: -7, schY: 2.5, schOrientation: "vertical" }),
  U_LDO: onSheet("DEBUG", { schX: -8, schY: -3 }),
  C_LDO_IN: onSheet("DEBUG", { schX: -11, schY: -5, schOrientation: "vertical" }),
  C_LDO_OUT: onSheet("DEBUG", { schX: -4, schY: -5, schOrientation: "vertical" }),
  R_LDO_EN: onSheet("DEBUG", { schX: -11, schY: -2, schOrientation: "horizontal" }),
  R_LED_PWR: onSheet("DEBUG", { schX: -1, schY: -5, schOrientation: "vertical" }),
  LED_PWR: onSheet("DEBUG", { schX: -1, schY: -7, schOrientation: "vertical" }),
  U_DBG: onSheet("DEBUG", { schX: 3, schY: 1 }),
  Y_DBG: onSheet("DEBUG", { schX: -2, schY: 1, schOrientation: "right" }),
  C_DBG_VCORE: onSheet("DEBUG", { schX: 10, schY: 8, schOrientation: "vertical" }),
  C_DBG_VUSB: onSheet("DEBUG", { schX: 0, schY: -4, schOrientation: "vertical" }),
  C_DBG_V18: onSheet("DEBUG", { schX: 2, schY: -4, schOrientation: "vertical" }),
  C_DBG_AVCC: onSheet("DEBUG", { schX: 4, schY: -6, schOrientation: "vertical" }),
  C_DBG_DVCC1: onSheet("DEBUG", { schX: 6, schY: -6, schOrientation: "vertical" }),
  C_DBG_DVCC2: onSheet("DEBUG", { schX: 8, schY: -6, schOrientation: "vertical" }),
  C_DBG_BULK: onSheet("DEBUG", { schX: 10, schY: -6, schOrientation: "vertical" }),
  R_DBG_RST: onSheet("DEBUG", { schX: 8, schY: 9, schOrientation: "horizontal" }),
  C_DBG_RST: onSheet("DEBUG", { schX: 11, schY: 9, schOrientation: "vertical" }),
  R_DBG_RED: onSheet("DEBUG", { schX: -5, schY: -9, schOrientation: "horizontal" }),
  LED_DBG_RED: onSheet("DEBUG", { schX: -8, schY: -9, schOrientation: "horizontal" }),
  R_DBG_GREEN: onSheet("DEBUG", { schX: 1, schY: -9, schOrientation: "horizontal" }),
  LED_DBG_GREEN: onSheet("DEBUG", { schX: -2, schY: -9, schOrientation: "horizontal" }),
  J_DBG_PROG: onSheet("DEBUG", { schX: 3, schY: 9, schRotation: 180 }),
  J_ISO_SBW_TST: onSheet("DEBUG", { schX: 10, schY: 4 }),
  J_ISO_SBW_RST: onSheet("DEBUG", { schX: 10, schY: 2.6 }),
  J_ISO_UART_RX: onSheet("DEBUG", { schX: 10, schY: 1.2 }),
  J_ISO_UART_TX: onSheet("DEBUG", { schX: 10, schY: -0.2 }),
  J_ISO_3V3: onSheet("DEBUG", { schX: 10, schY: -1.6 }),
  J_ISO_5V: onSheet("DEBUG", { schX: 10, schY: -3 }),
  J_ISO_GND: onSheet("DEBUG", { schX: 10, schY: -4.4 }),
  U_TARGET: onSheet("TARGET", { schX: 0, schY: 2 }),
  C_TARGET_DEC: onSheet("TARGET", { schX: -7, schY: 8, schOrientation: "vertical" }),
  C_TARGET_BULK: onSheet("TARGET", { schX: -5, schY: 8, schOrientation: "vertical" }),
  R_TARGET_RST: onSheet("TARGET", { schX: 8, schY: 8, schOrientation: "horizontal" }),
  C_TARGET_RST: onSheet("TARGET", { schX: 11, schY: 7, schOrientation: "vertical" }),
  Y_TARGET: onSheet("TARGET", { schX: 8, schY: 3, schOrientation: "horizontal" }),
  R_XIN: onSheet("TARGET", { schX: 5, schY: 3.8, schOrientation: "horizontal" }),
  R_XOUT: onSheet("TARGET", { schX: 5, schY: 2.2, schOrientation: "horizontal" }),
  C_XIN: onSheet("TARGET", { schX: 7, schY: 0, schOrientation: "vertical" }),
  C_XOUT: onSheet("TARGET", { schX: 10, schY: 0, schOrientation: "vertical" }),
  J_SENS_POS: onSheet("TARGET", { schX: -10, schY: 3 }),
  J_SENS_NEG: onSheet("TARGET", { schX: -10, schY: 1 }),
  J_SENS_OUT: onSheet("TARGET", { schX: -10, schY: -1 }),
  D_PHOTO: onSheet("TARGET", { schX: -7, schY: 1, schOrientation: "vertical" }),
  R_PHOTO: onSheet("TARGET", { schX: -5, schY: -1, schOrientation: "horizontal" }),
  C_PHOTO: onSheet("TARGET", { schX: -5, schY: -3, schOrientation: "horizontal" }),
  SW_RESET: onSheet("TARGET", { schX: 7, schY: -4, schOrientation: "down" }),
  SW1: onSheet("TARGET", { schX: 9, schY: -4, schOrientation: "down" }),
  SW2: onSheet("TARGET", { schX: 11, schY: -4, schOrientation: "down" }),
  J1: onSheet("TARGET", { schX: -11, schY: 8 }),
  J2: onSheet("TARGET", { schX: 9.5, schY: 8 }),
  J3: onSheet("TARGET", { schX: -11, schY: -5 }),
  J4: onSheet("TARGET", { schX: 9.5, schY: -5 }),
  J_GROVE: onSheet("TARGET", { schX: -8, schY: -7 }),
  R_LED1_EN: onSheet("TARGET", { schX: -2, schY: -7, schOrientation: "horizontal" }),
  R_LED1: onSheet("TARGET", { schX: 1, schY: -7, schOrientation: "horizontal" }),
  LED1: onSheet("TARGET", { schX: 4, schY: -7, schOrientation: "horizontal" }),
  R_LED2_EN: onSheet("TARGET", { schX: -2, schY: -9, schOrientation: "horizontal" }),
  R_LED2: onSheet("TARGET", { schX: 1, schY: -9, schOrientation: "horizontal" }),
  LED2: onSheet("TARGET", { schX: 4, schY: -9, schOrientation: "horizontal" }),
  J_EXT_3V3: onSheet("TARGET", { schX: -8, schY: -9 }),
  J_EXT_5V: onSheet("TARGET", { schX: -6, schY: -9 }),
  TP_5V: onSheet("TARGET", { schX: 6, schY: -9 }),
  TP_3V3: onSheet("TARGET", { schX: 8, schY: -9 }),
  TP_GND: onSheet("TARGET", { schX: 10, schY: -9 }),
  TP_RST: onSheet("TARGET", { schX: 12, schY: -9 }),
} 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 },
      EN: { mustBeConnected: true },
      OUT: { providesPower: true },
    }}
  />
)

const TwoPinHeaderJumper = ({
  name,
  pcbX,
  pcbY = 6.5,
  schX,
  schY,
  schSheetName,
}: {
  name: string
  pcbX: number
  pcbY?: 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={pcbY}
  />
)

export default () => (
  <board
    title="MSP-EXP430FR2355 LaunchPad - tscircuit edition"
    width="54mm"
    height="86mm"
    layers={4}
    borderRadius="2mm"
    minTraceWidth="0.15mm"
    minViaHoleDiameter="0.3mm"
    minViaPadDiameter="0.45mm"
    pcbStyle={{ viaHoleDiameter: "0.3mm", viaPadDiameter: "0.45mm" }}
  >
    <schematicsheet name="DEBUG" displayName="USB, Power, and eZ-FET Debug Probe" sheetIndex={0}>
      <schematictext text="USB Interface, Power Supply, and eZ-FET Host" schX={-11} schY={10} fontSize={0.7} anchor="left" />
      <schematictext text="Seven removable links isolate SBW, UART, and power from the target." schX={5} schY={6} fontSize={0.35} anchor="left" />
      <schematictext text="This edition uses a conventional 3.3 V LDO; EnergyTrace current profiling is not implemented." schX={-11} schY={-10} fontSize={0.35} anchor="left" color="#555555" />
    </schematicsheet>
    <schematicsheet name="TARGET" displayName="MSP430FR2355, 40-pin Headers, and Sensors" sheetIndex={1}>
      <schematictext text="MSP430FR2355 Target and 40-pin LaunchPad Interface" schX={-11} schY={10} fontSize={0.7} anchor="left" />
      <schematictext text="Ambient-light SAC front end, Grove connector, buttons, LEDs, clocks, and external power" schX={-11} schY={-10} fontSize={0.35} anchor="left" />
    </schematicsheet>

    {/* Mechanical outline and identification */}
    <hole name="H_MOUNT_1" diameter="3.2mm" pcbX={-23} pcbY={38} />
    <hole name="H_MOUNT_2" diameter="3.2mm" pcbX={23} pcbY={38} />
    <hole name="H_MOUNT_3" diameter="3.2mm" pcbX={-19.5} pcbY={-40} />
    <hole name="H_MOUNT_4" diameter="3.2mm" pcbX={19.5} pcbY={-40} />
    <fiducial name="FID1" padDiameter="1mm" soldermaskPullback="1mm" pcbX={-20} pcbY={34} />
    <fiducial name="FID2" padDiameter="1mm" soldermaskPullback="1mm" pcbX={20} pcbY={-34} />
    <silkscreentext
      text="MSP-EXP430FR2355"
      fontSize="1.2mm"
      pcbX={0}
      pcbY={-40.5}
    />
    <silkscreentext text="eZ-FET / USB" fontSize="1mm" pcbX={0} pcbY={10.5} />
    <silkscreentext text="TARGET" fontSize="1mm" pcbX={0} pcbY={1.8} />

    {/* USB input and protected USB 2.0 data path */}
    <MicroXNJ name="J_USB" {...SCH.J_USB} pcbX={0} pcbY={39.2} pcbRotation={90} noConnect={["ID"]} />
    <USBLC6_2SC6
      name="U_ESD"
      {...SCH.U_ESD}
      pcbX={0}
      pcbY={32.5}
      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={21.75} />
    <resistor name="R_USB_DP" {...SCH.R_USB_DP} resistance="27ohm" footprint="0402" pcbX={-7} pcbY={22.75} />
    <resistor name="R_USB_PUR" {...SCH.R_USB_PUR} resistance="1.4kohm" footprint="0402" layer="bottom" pcbX={-11} pcbY={23.5} />
    <resistor name="R_DBG_VBUS_LINK" {...SCH.R_DBG_VBUS_LINK} resistance="0ohm" footprint="0402" layer="bottom" pcbX={-8} pcbY={18} />
    <resistor name="R_SHIELD" {...SCH.R_SHIELD} resistance="1Mohm" footprint="0603" pcbX={7.2} pcbY={36.7} />
    <capacitor name="C_SHIELD" {...SCH.C_SHIELD} capacitance="1nF" footprint="0603" pcbX={7.2} pcbY={34.7} />

    {/* Conventional 3.3 V regulator replacing the EnergyTrace switcher */}
    <Ldo3V3 name="U_LDO" {...SCH.U_LDO} pcbX={-14.5} pcbY={32} pcbRotation={180} />
    <capacitor name="C_LDO_IN" {...SCH.C_LDO_IN} capacitance="1uF" footprint="0603" pcbX={-18.5} pcbY={32} />
    <capacitor name="C_LDO_OUT" {...SCH.C_LDO_OUT} capacitance="1uF" footprint="0603" pcbX={-10.5} pcbY={32} />
    <resistor name="R_LDO_EN" {...SCH.R_LDO_EN} resistance="10kohm" footprint="0402" pcbX={-10.5} pcbY={35} />
    <led name="LED_PWR" {...SCH.LED_PWR} color="green" footprint="0603" pcbX={-17} pcbY={27.5} />
    <resistor name="R_LED_PWR" {...SCH.R_LED_PWR} resistance="1kohm" footprint="0603" pcbX={-13.5} pcbY={27.5} />

    {/* MSP430F5528 eZ-FET Lite host controller */}
    <MSP430F5528IRGCR
      name="U_DBG"
      {...SCH.U_DBG}
      schWidth="5.5mm"
      schHeight="8mm"
      pcbX={0}
      pcbY={19.5}
      pcbRotation={0}
      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={19.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={16.26} pcbRotation={270} />
    <capacitor name="C_DBG_VUSB" {...SCH.C_DBG_VUSB} capacitance="220nF" maxDecouplingTraceLength="10mm" footprint="0402" layer="bottom" pcbX={-5.2} pcbY={21.6} pcbRotation={270} />
    <capacitor name="C_DBG_V18" {...SCH.C_DBG_V18} capacitance="220nF" maxDecouplingTraceLength="20mm" footprint="0402" layer="bottom" pcbX={-5.2} pcbY={19.4} pcbRotation={90} />
    <capacitor name="C_DBG_AVCC" {...SCH.C_DBG_AVCC} capacitance="100nF" footprint="0402" pcbX={0} pcbY={13.2} />
    <capacitor name="C_DBG_DVCC1" {...SCH.C_DBG_DVCC1} capacitance="100nF" footprint="0402" pcbX={2.2} pcbY={13.2} />
    <capacitor name="C_DBG_DVCC2" {...SCH.C_DBG_DVCC2} capacitance="100nF" footprint="0402" pcbX={4.4} pcbY={13.2} />
    <capacitor name="C_DBG_BULK" {...SCH.C_DBG_BULK} capacitance="10uF" footprint="0805" pcbX={-4} pcbY={12.4} />
    <resistor name="R_DBG_RST" {...SCH.R_DBG_RST} resistance="47kohm" footprint="0402" pcbX={-7.5} pcbY={14} />
    <capacitor name="C_DBG_RST" {...SCH.C_DBG_RST} capacitance="1nF" footprint="0402" pcbX={-9.5} pcbY={14} />
    <led name="LED_DBG_RED" {...SCH.LED_DBG_RED} color="red" footprint="0603" pcbX={8.5} pcbY={29} />
    <resistor name="R_DBG_RED" {...SCH.R_DBG_RED} resistance="470ohm" footprint="0603" pcbX={12.5} pcbY={29} />
    <led name="LED_DBG_GREEN" {...SCH.LED_DBG_GREEN} color="green" footprint="0603" pcbX={8.5} pcbY={26} />
    <resistor name="R_DBG_GREEN" {...SCH.R_DBG_GREEN} resistance="390ohm" footprint="0603" pcbX={12.5} pcbY={25.5} />
    <pinheader
      name="J_DBG_PROG"
      {...SCH.J_DBG_PROG}
      pinCount={7}
      gender="male"
      pitch="2.54mm"
      footprint="pinrow7_p2.54mm"
      pinLabels={["TEST", "TDO", "TDI", "TMS", "TCK", "RST", "GND"]}
      showSilkscreenPinLabels={true}
      pcbX={-21.5}
      pcbY={20}
      pcbRotation={270}
    />

    {/* Seven removable isolation links, arranged as the LaunchPad 2x7 block */}
    <TwoPinHeaderJumper name="J_ISO_SBW_TST" pcbX={-10.5} {...SCH.J_ISO_SBW_TST} />
    <TwoPinHeaderJumper name="J_ISO_SBW_RST" pcbX={-7} {...SCH.J_ISO_SBW_RST} />
    <TwoPinHeaderJumper name="J_ISO_UART_RX" pcbX={-3.5} {...SCH.J_ISO_UART_RX} />
    <TwoPinHeaderJumper name="J_ISO_UART_TX" pcbX={0} {...SCH.J_ISO_UART_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} />
    <silkscreentext text="TST RST RX TX 3V3 5V GND" fontSize="0.65mm" pcbX={0} pcbY={9.3} />

    {/* MSP430FR2355 target section */}
    <MSP430FR2355TPTR
      name="U_TARGET"
      {...SCH.U_TARGET}
      schWidth="7mm"
      schHeight="13mm"
      schPinArrangement={{
        leftSide: [6, 1, 2, 3, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48],
        rightSide: [4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 7],
      }}
      pcbX={0}
      pcbY={-18}
      pcbRotation={0}
      pinAttributes={{
        DVCC: { requiresPower: true },
        DVSS: { requiresGround: true },
      }}
    />
    {/* The checker propagates this limit across the merged rail, so use a rail-level
        allowance here and verify the local capacitor-to-MCU geometry separately. */}
    <capacitor name="C_TARGET_DEC" {...SCH.C_TARGET_DEC} capacitance="100nF" maxDecouplingTraceLength="25mm" footprint="0402" pcbX={0} pcbY={-24.5} />
    <capacitor name="C_TARGET_BULK" {...SCH.C_TARGET_BULK} capacitance="10uF" maxDecouplingTraceLength="25mm" footprint="0805" pcbX={0} pcbY={-26.5} />
    <resistor name="R_TARGET_RST" {...SCH.R_TARGET_RST} resistance="47kohm" footprint="0402" pcbX={-7} pcbY={-12} />
    <capacitor name="C_TARGET_RST" {...SCH.C_TARGET_RST} capacitance="1nF" footprint="0402" pcbX={-9} pcbY={-12} />
    <TS342A2P_WZ name="SW_RESET" {...SCH.SW_RESET} pcbX={-15} pcbY={1} />
    <TS342A2P_WZ name="SW1" {...SCH.SW1} pcbX={-14} pcbY={-7} />
    <TS342A2P_WZ name="SW2" {...SCH.SW2} pcbX={-7} pcbY={-7} />

    <SC_32S32_768kHz20PPM12_5pF name="Y_TARGET" {...SCH.Y_TARGET} pcbX={-13} pcbY={-18} pcbRotation={90} />
    <resistor name="R_XIN" {...SCH.R_XIN} resistance="0ohm" footprint="0402" pcbX={-9} pcbY={-16.5} />
    <resistor name="R_XOUT" {...SCH.R_XOUT} resistance="0ohm" footprint="0402" pcbX={-9} pcbY={-19.5} />
    <capacitor name="C_XIN" {...SCH.C_XIN} capacitance="12pF" footprint="0402" pcbX={-12.5} pcbY={-14.5} />
    <capacitor name="C_XOUT" {...SCH.C_XOUT} capacitance="12pF" footprint="0402" pcbX={-15.5} pcbY={-20} />

    {/* TI reference optical-sensor interface and its three removable links */}
    <TwoPinHeaderJumper name="J_SENS_POS" pcbX={12} pcbY={-11} {...SCH.J_SENS_POS} />
    <TwoPinHeaderJumper name="J_SENS_NEG" pcbX={15.5} pcbY={-11} {...SCH.J_SENS_NEG} />
    <TwoPinHeaderJumper name="J_SENS_OUT" pcbX={19} pcbY={-11} {...SCH.J_SENS_OUT} />
    <diode name="D_PHOTO" {...SCH.D_PHOTO} manufacturerPartNumber="TEMD6200FX01" footprint="0603" pcbX={13} pcbY={-15} />
    <resistor name="R_PHOTO" {...SCH.R_PHOTO} resistance="4.7Mohm" footprint="0603" pcbX={17} pcbY={-16.5} />
    <capacitor name="C_PHOTO" {...SCH.C_PHOTO} capacitance="1pF" footprint="0402" pcbX={20} pcbY={-16.5} />

    <resistor name="R_LED1_EN" {...SCH.R_LED1_EN} resistance="0ohm" footprint="0603" pcbX={-5} pcbY={-30} />
    <resistor name="R_LED1" {...SCH.R_LED1} resistance="470ohm" footprint="0603" pcbX={-1} pcbY={-30} />
    <led name="LED1" {...SCH.LED1} color="red" footprint="0603" pcbX={3} pcbY={-30} />
    <resistor name="R_LED2_EN" {...SCH.R_LED2_EN} resistance="0ohm" footprint="0603" pcbX={7} pcbY={-30} />
    <resistor name="R_LED2" {...SCH.R_LED2} resistance="390ohm" footprint="0603" pcbX={11} pcbY={-30} />
    <led name="LED2" {...SCH.LED2} color="green" footprint="0603" pcbX={15} pcbY={-30} />

    {/* TI 40-pin LaunchPad / BoosterPack-compatible headers */}
    <pinheader
      name="J1"
      {...SCH.J1}
      pinCount={10}
      gender="female"
      pitch="2.54mm"
      footprint="pinrow10_p2.54mm"
      pinLabels={["V3_3", "P1_5", "P1_6_UART_RX", "P1_7_UART_TX", "P3_6", "P5_2", "P4_5_SPI_CLK", "P3_4", "P1_3", "P1_2"]}
      schPinArrangement={{ leftSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }}
      showSilkscreenPinLabels={true}
      pcbX={-23}
      pcbY={-4}
      pcbRotation={90}
    />
    <pinheader
      name="J2"
      {...SCH.J2}
      pinCount={10}
      gender="female"
      pitch="2.54mm"
      footprint="pinrow10_p2.54mm"
      pinLabels={["GND", "P2_0", "P2_2", "P4_0", "RST", "P4_6_SPI_MOSI", "P4_7_SPI_MISO", "P4_4", "P2_5", "P3_0"]}
      schPinArrangement={{ rightSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }}
      showSilkscreenPinLabels={true}
      pcbX={23}
      pcbY={-4}
      pcbRotation={90}
    />

    <pinheader
      name="J3"
      {...SCH.J3}
      pinCount={10}
      gender="female"
      pitch="2.54mm"
      footprint="pinrow10_p2.54mm"
      pinLabels={["V5", "GND", "P1_4", "P5_3", "P5_1", "P5_0", "P5_4", "P1_1", "P3_5", "P3_1"]}
      schPinArrangement={{ leftSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }}
      showSilkscreenPinLabels={true}
      pcbX={-23}
      pcbY={-30.5}
      pcbRotation={90}
    />
    <pinheader
      name="J4"
      {...SCH.J4}
      pinCount={10}
      gender="female"
      pitch="2.54mm"
      footprint="pinrow10_p2.54mm"
      pinLabels={["P2_1", "P6_0", "P6_1", "P6_2", "P6_3", "P6_4", "P3_7", "P2_4", "P3_3", "P3_2"]}
      schPinArrangement={{ rightSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }}
      showSilkscreenPinLabels={true}
      pcbX={23}
      pcbY={-30.5}
      pcbRotation={90}
    />

    <pinheader
      name="J_GROVE"
      {...SCH.J_GROVE}
      pinCount={4}
      gender="male"
      pitch="2mm"
      footprint="pinrow4_p2mm"
      pinLabels={["P1_1", "P1_4", "V3_3", "GND"]}
      showSilkscreenPinLabels={true}
      pcbX={-13}
      pcbY={-36}
      pcbRotation={0}
    />

    {/* External power and bring-up test points */}
    <pinheader
      name="J_EXT_3V3"
      {...SCH.J_EXT_3V3}
      pinCount={2}
      gender="male"
      pitch="2.54mm"
      footprint="pinrow2_p2.54mm"
      pinLabels={["V3_3", "GND"]}
      showSilkscreenPinLabels={true}
      pcbX={-5}
      pcbY={-37}
    />
    <pinheader
      name="J_EXT_5V"
      {...SCH.J_EXT_5V}
      pinCount={2}
      gender="male"
      pitch="2.54mm"
      footprint="pinrow2_p2.54mm"
      pinLabels={["V5", "GND"]}
      showSilkscreenPinLabels={true}
      pcbX={2}
      pcbY={-37}
    />
    <testpoint name="TP_5V" {...SCH.TP_5V} footprintVariant="pad" padShape="circle" padDiameter="1.2mm" pcbX={8} pcbY={-36} />
    <testpoint name="TP_3V3" {...SCH.TP_3V3} footprintVariant="pad" padShape="circle" padDiameter="1.2mm" pcbX={11} pcbY={-36} />
    <testpoint name="TP_GND" {...SCH.TP_GND} footprintVariant="pad" padShape="circle" padDiameter="1.2mm" pcbX={14} pcbY={-36} />
    <testpoint name="TP_RST" {...SCH.TP_RST} footprintVariant="pad" padShape="circle" padDiameter="1.2mm" pcbX={17} pcbY={-36} />

    {/* USB and debugger power/data nets */}
    <trace from="J_USB.VBUS" to="net.VBUS_USB" thickness="0.3mm" />
    <trace from="J_USB.GND" to="net.GND" thickness="0.3mm" />
    <trace from="J_USB.SH1" to="net.USB_SHIELD" thickness="0.3mm" />
    <trace from="J_USB.SH2" to="net.USB_SHIELD" thickness="0.3mm" />
    <trace from="J_USB.SH3" to="net.USB_SHIELD" thickness="0.3mm" />
    <trace from="J_USB.SH4" to="net.USB_SHIELD" thickness="0.3mm" />
    <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="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="U_ESD.DM_MCU"
      to="R_USB_DM.pin1"
      pcbPathRelativeTo="U_ESD.DM_MCU"
      pcbPath={[
        "U_ESD.DM_MCU",
        { x: -0.95, y: 1.8 },
        { x: -0.95, y: 1.8, via: true, toLayer: "bottom" },
        { x: -0.95, y: 1.8 },
        { x: -10.75, y: 8.1 },
        { x: -10.75, y: 8.1, via: true, fromLayer: "bottom", toLayer: "top" },
        { x: -10.75, y: 8.1 },
        "R_USB_DM.pin1",
      ]}
      thickness="0.22mm"
    />
    <trace
      from="U_ESD.DP_MCU"
      to="R_USB_DP.pin1"
      pcbPathRelativeTo="U_ESD.DP_MCU"
      pcbPath={[
        "U_ESD.DP_MCU",
        { x: 0.95, y: 3 },
        { x: 0.95, y: 3, via: true, toLayer: "bottom" },
        { x: 0.95, y: 3 },
        { x: -9.75, y: 8.1 },
        { x: -9.75, y: 8.1, via: true, fromLayer: "bottom", toLayer: "top" },
        { x: -9.75, y: 8.1 },
        "R_USB_DP.pin1",
      ]}
      thickness="0.22mm"
    />
    <trace
      from="U_ESD.VBUS"
      to="U_LDO.IN"
      pcbPathRelativeTo="U_ESD.VBUS"
      pcbPath={[
        "U_ESD.VBUS",
        { x: 0, y: 3.8 },
        { x: 0, y: 3.8, via: true, toLayer: "inner2" },
        { x: 0, y: 3.8 },
        { x: -3.5, y: 3.8 },
        { x: -3.5, y: 14.5 },
        { x: -2.5, y: 14.5 },
        { x: -2.5, y: 14.5, via: true, fromLayer: "inner2", toLayer: "top" },
        { x: -2.5, y: 14.5 },
        "U_LDO.IN",
      ]}
      thickness="0.3mm"
    />
    <trace from="U_ESD.GND" to="net.GND" />
    <trace from="R_USB_DM.pin2" to="U_DBG.USB_DM" thickness="0.22mm" pcbStraightLine />
    <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_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"
      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",
      ]}
      thickness="0.3mm"
    />
    <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_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" thickness="0.3mm" />
    <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" />

    {/* eZ-FET host MCU support */}
    <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="net.GND" />
    <trace from="U_DBG.VSSU" to="net.GND" />
    <trace from="U_DBG.GND_EP" to="net.GND" thickness="0.3mm" />
    <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="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="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="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.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="J_DBG_PROG.pin1" to="U_DBG.TEST" />
    <trace from="J_DBG_PROG.pin2" to="U_DBG.TDO" />
    <trace from="J_DBG_PROG.pin3" to="U_DBG.TDI" />
    <trace from="J_DBG_PROG.pin4" to="U_DBG.TMS" />
    <trace from="J_DBG_PROG.pin5" to="U_DBG.TCK" />
    <trace from="J_DBG_PROG.pin6" to="net.DBG_RST" />
    <trace from="J_DBG_PROG.pin7" to="net.GND" />

    {/* Isolation block: install all seven shunts for normal LaunchPad operation */}
    <trace from="U_DBG.TARGET_SBWTCK" to="J_ISO_SBW_TST.HOST" />
    <trace
      from="J_ISO_SBW_TST.TARGET"
      to="U_TARGET.TEST"
      pcbRouteHints={[{ x: -3.2, y: -12.25 }]}
    />
    <trace from="U_DBG.TARGET_SBWTDIO" to="J_ISO_SBW_RST.HOST" />
    <trace from="J_ISO_SBW_RST.TARGET" to="net.TARGET_RST" />
    <trace from="U_DBG.UART_TXD" to="J_ISO_UART_RX.HOST" />
    <trace from="J_ISO_UART_RX.TARGET" to="U_TARGET.P4_2" />
    <trace from="U_DBG.UART_RXD" to="J_ISO_UART_TX.HOST" />
    <trace from="J_ISO_UART_TX.TARGET" to="U_TARGET.P4_3" />
    <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.GND" thickness="0.3mm" />

    {/* Target MCU power, programming, UART, clock, buttons, and LEDs */}
    <trace from="U_TARGET.DVCC" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="U_TARGET.DVSS" to="net.GND" thickness="0.3mm" />
    <trace from="C_TARGET_DEC.pin1" to="U_TARGET.DVCC" />
    <trace from="C_TARGET_DEC.pin2" to="U_TARGET.DVSS" />
    <trace from="C_TARGET_BULK.pin1" to="C_TARGET_DEC.pin1" thickness="0.3mm" />
    <trace from="C_TARGET_BULK.pin2" to="C_TARGET_DEC.pin2" />
    <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.GND" />
    <trace from="SW_RESET.pin1" to="net.TARGET_RST" />
    <trace from="SW_RESET.pin2" to="net.GND" />
    <trace from="U_TARGET.P4_1" to="SW1.pin1" schDisplayLabel="S1 / P4.1" />
    <trace from="SW1.pin2" to="net.GND" />
    <trace from="U_TARGET.P2_3" to="SW2.pin1" schDisplayLabel="S2 / P2.3" />
    <trace from="SW2.pin2" to="net.GND" />
    <trace from="U_TARGET.XIN" to="R_XIN.pin1" />
    <trace from="R_XIN.pin2" to="Y_TARGET.pin1" maxLength="20mm" />
    <trace from="Y_TARGET.pin1" to="C_XIN.pin1" />
    <trace from="C_XIN.pin2" to="net.GND" />
    <trace from="U_TARGET.XOUT" to="R_XOUT.pin1" />
    <trace from="R_XOUT.pin2" to="Y_TARGET.pin2" />
    <trace from="Y_TARGET.pin2" to="C_XOUT.pin1" />
    <trace from="C_XOUT.pin2" to="net.GND" />
    <trace from="U_TARGET.P1_0" to="R_LED1_EN.pin1" schDisplayLabel="LED1 / P1.0" />
    <trace from="R_LED1_EN.pin2" to="R_LED1.pin1" />
    <trace from="R_LED1.pin2" to="LED1.anode" />
    <trace from="LED1.cathode" to="net.GND" />
    <trace from="U_TARGET.P6_6" to="R_LED2_EN.pin1" schDisplayLabel="LED2 / P6.6" />
    <trace from="R_LED2_EN.pin2" to="R_LED2.pin1" />
    <trace from="R_LED2.pin2" to="LED2.anode" />
    <trace from="LED2.cathode" to="net.GND" />

    {/* Smart Analog Combo optical-sensor network */}
    <trace from="U_TARGET.OA2_POS" to="J_SENS_POS.HOST" />
    <trace from="J_SENS_POS.TARGET" to="D_PHOTO.anode" />
    <trace from="U_TARGET.OA2_NEG" to="J_SENS_NEG.HOST" />
    <trace from="J_SENS_NEG.TARGET" to="D_PHOTO.cathode" />
    <trace from="U_TARGET.OA2_OUT" to="J_SENS_OUT.HOST" />
    <trace from="J_SENS_OUT.TARGET" to="R_PHOTO.pin1" />
    <trace from="J_SENS_OUT.TARGET" to="C_PHOTO.pin1" />
    <trace from="R_PHOTO.pin2" to="D_PHOTO.cathode" />
    <trace from="C_PHOTO.pin2" to="D_PHOTO.cathode" />

    {/* BoosterPack signal mapping */}
    <trace from="J1.pin1" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="J1.pin2" to="U_TARGET.P1_5" />
    <trace from="J1.pin3" to="U_TARGET.P1_6" />
    <trace from="J1.pin4" to="U_TARGET.P1_7" />
    <trace from="J1.pin5" to="U_TARGET.P3_6" />
    <trace from="J1.pin6" to="U_TARGET.P5_2" />
    <trace from="J1.pin7" to="U_TARGET.P4_5" />
    <trace from="J1.pin8" to="U_TARGET.P3_4" />
    <trace from="J1.pin9" to="U_TARGET.P1_3" />
    <trace from="J1.pin10" to="U_TARGET.P1_2" />
    <trace from="J2.pin1" to="net.GND" thickness="0.3mm" />
    <trace from="J2.pin2" to="U_TARGET.P2_0" />
    <trace from="J2.pin3" to="U_TARGET.P2_2" />
    <trace from="J2.pin4" to="U_TARGET.P4_0" />
    <trace from="J2.pin5" to="net.TARGET_RST" />
    <trace from="J2.pin6" to="U_TARGET.P4_6" />
    <trace from="J2.pin7" to="U_TARGET.P4_7" />
    <trace from="J2.pin8" to="U_TARGET.P4_4" />
    <trace from="J2.pin9" to="U_TARGET.P2_5" />
    <trace from="J2.pin10" to="U_TARGET.P3_0" />
    <trace from="J3.pin1" to="net.TARGET_5V" thickness="0.3mm" />
    <trace from="J3.pin2" to="net.GND" thickness="0.3mm" />
    <trace from="J3.pin3" to="U_TARGET.P1_4" />
    <trace from="J3.pin4" to="U_TARGET.P5_3" />
    <trace from="J3.pin5" to="U_TARGET.P5_1" />
    <trace from="J3.pin6" to="U_TARGET.P5_0" />
    <trace from="J3.pin7" to="U_TARGET.P5_4" />
    <trace from="J3.pin8" to="U_TARGET.P1_1" />
    <trace from="J3.pin9" to="U_TARGET.P3_5" />
    <trace from="J3.pin10" to="U_TARGET.P3_1" />
    <trace from="J4.pin1" to="U_TARGET.P2_1" />
    <trace from="J4.pin2" to="U_TARGET.P6_0" />
    <trace from="J4.pin3" to="U_TARGET.P6_1" />
    <trace from="J4.pin4" to="U_TARGET.P6_2" />
    <trace from="J4.pin5" to="U_TARGET.P6_3" />
    <trace from="J4.pin6" to="U_TARGET.P6_4" />
    <trace from="J4.pin7" to="U_TARGET.P3_7" />
    <trace from="J4.pin8" to="U_TARGET.P2_4" />
    <trace from="J4.pin9" to="U_TARGET.P3_3" />
    <trace from="J4.pin10" to="U_TARGET.P3_2" />

    {/* Grove connector: two signals plus target power and ground */}
    <trace from="J_GROVE.pin1" to="U_TARGET.P1_1" />
    <trace from="J_GROVE.pin2" to="U_TARGET.P1_4" />
    <trace from="J_GROVE.pin3" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="J_GROVE.pin4" to="net.GND" thickness="0.3mm" />

    {/* External power */}
    <trace from="J_EXT_3V3.pin1" to="net.TARGET_3V3" thickness="0.3mm" />
    <trace from="J_EXT_3V3.pin2" to="net.GND" thickness="0.3mm" />
    <trace from="J_EXT_5V.pin1" to="net.TARGET_5V" thickness="0.3mm" />
    <trace from="J_EXT_5V.pin2" to="net.GND" thickness="0.3mm" />
    <trace from="TP_5V.pin1" to="net.TARGET_5V" />
    <trace from="TP_3V3.pin1" to="net.TARGET_3V3" />
    <trace from="TP_GND.pin1" to="net.GND" />
    <trace from="TP_RST.pin1" to="net.TARGET_RST" />

    {/* Continuous return planes on both copper layers */}
    <copperpour name="GND_INNER1" connectsTo="net.GND" layer="inner1" clearance="0.18mm" boardEdgeMargin="0.25mm" />
  </board>
)