mohan-bee/hub

This design implements a compact USB-C hub with HDMI output, gigabit Ethernet, multiple USB ports, and integrated power management and ESD protection components.

Version
1.0.12
License
unset
Stars
0

index.circuit.tsx

PCBPCB preview for index.circuit.tsx
SchematicSchematic preview for index.circuit.tsx
import { AF_90__WJDG } from "./imports/AF_90__WJDG"
import { HDMI_001_19PCBTP } from "./imports/HDMI_001_19PCBTP"
import { HR911130A } from "./imports/HR911130A"
import { TYPE_C16PIN } from "./imports/TYPE_C16PIN"
import { HMT_TYPE_C_24PIN } from "./imports/HMT_TYPE_C_24PIN"
import { CYPD4225_40LQXIT } from "./imports/CYPD4225_40LQXIT"
import { HD3SS460RHRT } from "./imports/HD3SS460RHRT"
import { PS176 } from "./imports/PS176"
import { RTL8153B_VB_CG } from "./imports/RTL8153B_VB_CG"
import { USB5744_I_2G } from "./imports/USB5744_I_2G"
import { TLV62569DBVR } from "./imports/TLV62569DBVR"
import { TPS2553DBVR } from "./imports/TPS2553DBVR"
import { TPD4E05U06DQAR } from "./imports/TPD4E05U06DQAR"
import { TPD6E05U06RVZR } from "./imports/TPD6E05U06RVZR"
import { X322525MQB4SI } from "./imports/X322525MQB4SI"
import { X322525MRB4SI } from "./imports/X322525MRB4SI"
import { FNR3015S2R2MT } from "./imports/FNR3015S2R2MT"
import { schematicPlacements } from "./schematic-placements"
import type { CapacitorProps, ResistorProps } from "@tscircuit/props"

const TopCap = (props: CapacitorProps) => (
  <capacitor layer="top" footprint="0402" schOrientation="vertical" {...props} />
)

const TopRes = (props: ResistorProps) => (
  <resistor layer="top" footprint="0402" tolerance="1%" {...props} />
)

const boardOutline = [
  { x: -16, y: -46 },
  { x: 30, y: -46 },
  { x: 30, y: 46 },
  { x: -16, y: 46 },
] as const

const compactGigabitMagjackSymbol = (
  <symbol>
    <schematicrect schX={0} schY={0} width={2.15} height={4} color="#880000" />
    <schematictext schX={0} schY={1.65} text="4-PAIR MAGJACK" fontSize={0.16} anchor="center" color="#880000" />
    <port name="pin15" pinNumber={15} aliases={["MDI0+"]} direction="left" schX={-1.475} schY={1.2} schStemLength={0.4} />
    <port name="pin16" pinNumber={16} aliases={["MDI0-"]} direction="left" schX={-1.475} schY={0.8} schStemLength={0.4} />
    <port name="pin20" pinNumber={20} aliases={["MDI1+"]} direction="left" schX={-1.475} schY={0.4} schStemLength={0.4} />
    <port name="pin17" pinNumber={17} aliases={["MDI1-"]} direction="left" schX={-1.475} schY={0} schStemLength={0.4} />
    <port name="pin21" pinNumber={21} aliases={["MDI2+"]} direction="left" schX={-1.475} schY={-0.4} schStemLength={0.4} />
    <port name="pin18" pinNumber={18} aliases={["MDI2-"]} direction="left" schX={-1.475} schY={-0.8} schStemLength={0.4} />
    <port name="pin22" pinNumber={22} aliases={["MDI3+"]} direction="left" schX={-1.475} schY={-1.2} schStemLength={0.4} />
    <port name="pin19" pinNumber={19} aliases={["MDI3-"]} direction="left" schX={-1.475} schY={-1.6} schStemLength={0.4} />
    <port name="pin11" pinNumber={11} aliases={["LED1A"]} direction="right" schX={1.475} schY={1.2} schStemLength={0.4} />
    <port name="pin12" pinNumber={12} aliases={["LED1K"]} direction="right" schX={1.475} schY={0.8} schStemLength={0.4} />
    <port name="pin13" pinNumber={13} aliases={["LED2A"]} direction="right" schX={1.475} schY={0.4} schStemLength={0.4} />
    <port name="pin14" pinNumber={14} aliases={["LED2K"]} direction="right" schX={1.475} schY={0} schStemLength={0.4} />
    <port name="pin25" pinNumber={25} aliases={["P9"]} direction="right" schX={1.475} schY={-0.6} schStemLength={0.4} />
    <port name="pin26" pinNumber={26} aliases={["P10"]} direction="right" schX={1.475} schY={-1} schStemLength={0.4} />
    <port name="pin23" pinNumber={23} aliases={["SH1"]} direction="right" schX={1.475} schY={-1.4} schStemLength={0.4} />
    <port name="pin24" pinNumber={24} aliases={["SH2"]} direction="right" schX={1.475} schY={-1.8} schStemLength={0.4} />
  </symbol>
)

export default function CompactMacHub() {
  return (
    <board
      name="MAC_HUB"
      title="Compact vertical Mac USB-C hub"
      outline={[...boardOutline]}
      layers={4}
      thickness={1.2}
      solderMaskColor="black"
      silkscreenColor="white"
      doubleSidedAssembly={false}
      autorouter={{ preset: "default", traceClearance: "0.15mm" }}
      autorouterEffortLevel="5x"
      autorouterVersion="beta_pipeline9"
      defaultTraceWidth="0.15mm"
      minTraceToPadEdgeClearance="0.1mm"
      minViaEdgeToPadEdgeClearance="0.1mm"
      minViaHoleEdgeToViaHoleEdgeClearance="0.1mm"
      schLayout={{ layoutMode: "none" }}
      manualEdits={{ schematic_placements: schematicPlacements }}
    >
      <copperpour name="GND_TOP" layer="top" connectsTo="net.GND" useThermalReliefs />
      <copperpour name="GND_INNER1" layer="inner1" connectsTo="net.GND" useThermalReliefs />
      <copperpour name="GND_INNER2" layer="inner2" connectsTo="net.GND" useThermalReliefs />
      <copperpour name="GND_BOTTOM" layer="bottom" connectsTo="net.GND" useThermalReliefs />

      <schematicsheet name="host" displayName="1. Mac USB-C Host & Alt Mode" sheetIndex={0} sheetSize="A4" sheetWidth="140mm" sheetHeight="110mm">
        <schematicsection name="host" displayName="Mac USB-C Host & Alt Mode" />
      </schematicsheet>
      <schematicsheet name="usb" displayName="2. USB Hub & Downstream Ports" sheetIndex={1} sheetSize="A4" sheetWidth="285mm" sheetHeight="160mm">
        <schematicsection name="usb" displayName="USB Hub & Downstream Ports" />
      </schematicsheet>
      <schematicsheet name="video" displayName="3. DisplayPort to HDMI" sheetIndex={2} sheetSize="A4" sheetWidth="135mm" sheetHeight="100mm">
        <schematicsection name="video" displayName="DisplayPort to HDMI" />
      </schematicsheet>
      <schematicsheet name="ethernet" displayName="4. USB Gigabit Ethernet" sheetIndex={3} sheetSize="A4" sheetWidth="190mm" sheetHeight="150mm">
        <schematicsection name="ethernet" displayName="USB Gigabit Ethernet" />
      </schematicsheet>
      <schematicsheet name="power" displayName="5. Power Regulation & Port Protection" sheetIndex={4} sheetSize="A4" sheetWidth="170mm" sheetHeight="170mm">
        <schematicsection name="power" displayName="Power Regulation & Port Protection" />
      </schematicsheet>
      <schematicsheet name="protection" displayName="6. Connector ESD Protection" sheetIndex={5} sheetSize="A4" sheetWidth="130mm" sheetHeight="175mm">
        <schematicsection name="protection" displayName="Connector ESD Protection" />
      </schematicsheet>

      <HMT_TYPE_C_24PIN
        name="J_HOST"
        displayName="USB-C HOST RECEPTACLE (JLC C53121393)"
        pcbX={19}
        pcbY={39.5}
        pcbRotation={90}
        schHeight="2.8mm"
        allowOffBoard
        schSheetName="host"
        connections={{
          GND1: "net.GND", GND2: "net.GND", GND3: "net.GND", GND4: "net.GND",
          shell1: "net.CHASSIS_GND", shell2: "net.CHASSIS_GND", shell3: "net.CHASSIS_GND",
          VBUS1: "net.VBUS_5V", VBUS2: "net.VBUS_5V", VBUS3: "net.VBUS_5V", VBUS4: "net.VBUS_5V",
          D_POS1: "net.USB2_HOST_DP", D_POS2: "net.USB2_HOST_DP",
          D_NEG1: "net.USB2_HOST_DM", D_NEG2: "net.USB2_HOST_DM",
          TX1_POS: "net.TYPEC_TX1_P", TX1_NEG: "net.TYPEC_TX1_N",
          TX2_POS: "net.TYPEC_TX2_P", TX2_NEG: "net.TYPEC_TX2_N",
          RX1_POS: "net.TYPEC_RX1_P", RX1_NEG: "net.TYPEC_RX1_N",
          RX2_POS: "net.TYPEC_RX2_P", RX2_NEG: "net.TYPEC_RX2_N",
          CC1: "net.HOST_CC1", CC2: "net.HOST_CC2",
          SUB1: "net.TYPEC_SBU1", SUB2: "net.TYPEC_SBU2",
        }}
      />

      {/* The host receptacle faces right; use a certified full-featured USB-C cable to the Mac. */}
      <HR911130A
        name="J_ETH"
        displayName="GIGABIT ETHERNET"
        pcbX={-7}
        pcbY={34}
        pcbRotation={90}
        symbol={compactGigabitMagjackSymbol}
        allowOffBoard
        schSheetName="ethernet"
        connections={{
          pin15: "net.ETH_MDI0_P", pin16: "net.ETH_MDI0_N",
          pin20: "net.ETH_MDI1_P", pin17: "net.ETH_MDI1_N",
          pin21: "net.ETH_MDI2_P", pin18: "net.ETH_MDI2_N",
          pin22: "net.ETH_MDI3_P", pin19: "net.ETH_MDI3_N",
          pin23: "net.CHASSIS_GND", pin24: "net.CHASSIS_GND",
        }}
      />
      <AF_90__WJDG
        name="J_USB1"
        displayName="USB-A 1 (USB 2.0)"
        pcbX={-8}
        pcbY={15}
        pcbRotation={-90}
        schHeight="0.6mm"
        allowOffBoard
        schSheetName="usb"
        connections={{ VCC: "net.USB1_VBUS", D_POS: "net.USB2_P1_DP", D_NEG: "net.USB2_P1_DM", GND: "net.GND", SHLD: "net.CHASSIS_GND" }}
      />
      <AF_90__WJDG
        name="J_USB2"
        displayName="USB-A 2 (USB 2.0)"
        pcbX={-8}
        pcbY={-3}
        pcbRotation={-90}
        schHeight="0.6mm"
        allowOffBoard
        schSheetName="usb"
        connections={{ VCC: "net.USB2_VBUS", D_POS: "net.USB2_P2_DP", D_NEG: "net.USB2_P2_DM", GND: "net.GND", SHLD: "net.CHASSIS_GND" }}
      />
      <TYPE_C16PIN
        name="J_USBC"
        displayName="USB-C DOWNSTREAM (USB 2.0)"
        pcbX={-10.5}
        pcbY={-17}
        pcbRotation={-90}
        allowOffBoard
        schSheetName="usb"
        connections={{
          GND1: "net.GND", GND2: "net.GND", VBUS1: "net.USBC_VBUS", VBUS2: "net.USBC_VBUS",
          DP1: "net.USB2_P3_DP", DP2: "net.USB2_P3_DP", DN1: "net.USB2_P3_DM", DN2: "net.USB2_P3_DM",
          CC1: "net.DOWNSTREAM_CC1", CC2: "net.DOWNSTREAM_CC2",
          SHELL1: "net.CHASSIS_GND", SHELL2: "net.CHASSIS_GND", SHELL3: "net.CHASSIS_GND", SHELL4: "net.CHASSIS_GND",
        }}
      />
      <HDMI_001_19PCBTP
        name="J_HDMI"
        displayName="HDMI-A"
        pcbX={-10}
        pcbY={-36}
        pcbRotation={-90}
        schHeight="2.4mm"
        allowOffBoard
        schSheetName="video"
        connections={{
          D2_POS: "net.HDMI_D2_P", D2_NEG: "net.HDMI_D2_N", D2_SHIELD: "net.GND",
          D1_POS: "net.HDMI_D1_P", D1_NEG: "net.HDMI_D1_N", D1_SHIELD: "net.GND",
          D0_POS: "net.HDMI_D0_P", D0_NEG: "net.HDMI_D0_N", D0_SHIELD: "net.GND",
          CLK_POS: "net.HDMI_CLK_P", CLK_NEG: "net.HDMI_CLK_N", CLK_SHIELD: "net.GND",
          CEC: "net.HDMI_CEC", SCL: "net.HDMI_DDC_SCL", SDA: "net.HDMI_DDC_SDA",
          DDC_GND: "net.GND", HDMI_5V: "net.HDMI_5V", HPD: "net.HDMI_HPD",
          SHIELD1: "net.CHASSIS_GND", SHIELD2: "net.CHASSIS_GND", SHIELD3: "net.CHASSIS_GND", SHIELD4: "net.CHASSIS_GND",
        }}
      />

      {/* Real JLCPCB-orderable silicon; connectivity comes in the routing pass. */}
      <USB5744_I_2G
        name="U1"
        displayName="USB5744 USB 3.2 HUB"
        pcbX={12}
        pcbY={5}
        schHeight="5.8mm"
        schSheetName="usb"
        connections={{
          USB2UP_DP: "net.USB2_HOST_DP", USB2UP_DM: "net.USB2_HOST_DM",
          USB3UP_TXDP: "net.USB3_HUB_TX_RAW_P", USB3UP_TXDM: "net.USB3_HUB_TX_RAW_N",
          USB3UP_RXDP: "net.USB3_HUB_RX_P", USB3UP_RXDM: "net.USB3_HUB_RX_N",
          USB2DN_DP1: "net.USB2_P1_DP", USB2DN_DM1: "net.USB2_P1_DM",
          USB2DN_DP2: "net.USB2_P2_DP", USB2DN_DM2: "net.USB2_P2_DM",
          USB2DN_DP3: "net.USB2_P3_DP", USB2DN_DM3: "net.USB2_P3_DM",
          USB2DN_DP4: "net.USB2_ETH_DP", USB2DN_DM4: "net.USB2_ETH_DM",
          USB3DN_TXDP4: "net.USB3_ETH_RX_RAW_P", USB3DN_TXDM4: "net.USB3_ETH_RX_RAW_N",
          USB3DN_RXDP4: "net.USB3_ETH_TX_P", USB3DN_RXDM4: "net.USB3_ETH_TX_N",
          VDD121: "net.VDD_1V2", VDD122: "net.VDD_1V2", VDD123: "net.VDD_1V2", VDD124: "net.VDD_1V2",
          VDD125: "net.VDD_1V2", VDD126: "net.VDD_1V2", VDD127: "net.VDD_1V2", VDD128: "net.VDD_1V2",
          VDD331: "net.VDD_3V3", VDD332: "net.VDD_3V3", VDD333: "net.VDD_3V3", VDD334: "net.VDD_3V3",
          PRT_CTL1: "net.PWR_CTL_USB1", PRT_CTL2: "net.PWR_CTL_USB2", PRT_CTL3: "net.PWR_CTL_USBC",
          VBUS_DET: "net.USBH_VBUS_DET", RESET_N: "net.HUB_RESET_N",
          XTALI: "net.HUB_XTALI", XTALO: "net.HUB_XTALO", RBIAS: "net.HUB_RBIAS", ATEST: "net.HUB_ATEST",
          VSS: "net.GND",
        }}
      />
      <PS176
        name="U2"
        displayName="PS176 DISPLAYPORT TO HDMI 2.0"
        pcbX={17}
        pcbY={-34}
        pcbRotation={45}
        schHeight="5mm"
        schSheetName="video"
        connections={{
          DRX0P: "net.DP_L0_P", DRX0N: "net.DP_L0_N", DRX1P: "net.DP_L1_P", DRX1N: "net.DP_L1_N",
          DRX2P: "net.DP_L2_P", DRX2N: "net.DP_L2_N", DRX3P: "net.DP_L3_P", DRX3N: "net.DP_L3_N",
          AUXP: "net.DP_AUX_P", AUXN: "net.DP_AUX_N", DP_HPD: "net.DP_HPD",
          HDMID2P: "net.HDMI_D2_P", HDMID2N: "net.HDMI_D2_N",
          HDMID1P: "net.HDMI_D1_P", HDMID1N: "net.HDMI_D1_N",
          HDMID0P: "net.HDMI_D0_P", HDMID0N: "net.HDMI_D0_N",
          HDMICKP: "net.HDMI_CLK_P", HDMICKN: "net.HDMI_CLK_N",
          HDMI_CEC: "net.HDMI_CEC", DDC_SCL: "net.HDMI_DDC_SCL", DDC_SDA: "net.HDMI_DDC_SDA", HDMI_HPD: "net.HDMI_HPD",
          PDB: "net.VDD_3V3", RESETB: "net.VDD_3V3", VDD12_ON: "net.VDD_3V3",
          VDD331: "net.VDD_3V3", VDD332: "net.VDD_3V3",
          VDD121: "net.VDD_1V2", VDD122: "net.VDD_1V2", VDDA12: "net.VDD_1V2", VDDTX121: "net.VDD_1V2",
          VDDTX122: "net.VDD_1V2", VDDRX121: "net.VDD_1V2", VDDRX122: "net.VDD_1V2", EP: "net.GND",
        }}
      />
      <RTL8153B_VB_CG
        name="U3"
        displayName="RTL8153B USB 3 GIGABIT ETHERNET"
        pcbX={17}
        pcbY={28}
        schHeight="4.2mm"
        schSheetName="ethernet"
        connections={{
          U2DP: "net.USB2_ETH_DP", U2DM: "net.USB2_ETH_DM",
          U3SSTXP: "net.USB3_ETH_TX_RAW_P", U3SSTXN: "net.USB3_ETH_TX_RAW_N",
          U3SSRXP: "net.USB3_ETH_RX_P", U3SSRXN: "net.USB3_ETH_RX_N",
          MDIP0: "net.ETH_MDI0_P", MDIN0: "net.ETH_MDI0_N",
          MDIP1: "net.ETH_MDI1_P", MDIN1: "net.ETH_MDI1_N",
          MDIP2: "net.ETH_MDI2_P", MDIN2: "net.ETH_MDI2_N",
          MDIP3: "net.ETH_MDI3_P", MDIN3: "net.ETH_MDI3_N",
          VDD5: "net.VBUS_5V", VDDREG5: "net.VBUS_5V",
          AVDD331: "net.VDD_3V3", AVDD332: "net.VDD_3V3", AVDD333: "net.VDD_3V3", AVDD334: "net.VDD_3V3",
          DVDD331: "net.VDD_3V3", DVDD332: "net.VDD_3V3", VDDREG33: "net.VDD_3V3",
          AVDD101: "net.RTL_VDD_1V0", AVDD102: "net.RTL_VDD_1V0", AVDD103: "net.RTL_VDD_1V0",
          U3VDD10: "net.RTL_VDD_1V0", U2VDD10: "net.RTL_VDD_1V0", DVDD10: "net.RTL_VDD_1V0",
          DVDD10_UPS: "net.RTL_UPS_1V0", REGOUT: "net.RTL_REG_SW", pin25: "net.RTL_ENSWREG",
          CKXTAL1: "net.RTL_XTALI", CKXTAL2: "net.RTL_XTALO", RSET: "net.RTL_RSET",
          GND: "net.GND", EP: "net.GND",
        }}
      />
      <CYPD4225_40LQXIT
        name="U4"
        displayName="CYPD4225 USB-C PD / ALT MODE"
        pcbX={18}
        pcbY={17}
        schHeight="4.2mm"
        schSheetName="host"
        connections={{
          CC1_P1: "net.HOST_CC1", CC2_P1: "net.HOST_CC2",
          CC1_P2: "net.DOWNSTREAM_CC1", CC2_P2: "net.DOWNSTREAM_CC2",
          MUX_CTRL_1_P1: "net.MUX_EN", MUX_CTRL_2_P1: "net.MUX_POL", MUX_CTRL_3_P1: "net.MUX_AMSEL",
          HPD_P0: "net.DP_HPD",
          V5V_P1: "net.VBUS_5V", V5V_P2: "net.VBUS_5V",
          VDDD: "net.VDD_3V3", VDDIO: "net.VDD_3V3", VCCD: "net.CCG4_VCCD", EP: "net.GND",
        }}
      />
      <HD3SS460RHRT
        name="U5"
        displayName="HD3SS460 TYPE-C LANE MUX"
        pcbX={12.5}
        pcbY={36}
        schHeight="3mm"
        schSheetName="host"
        connections={{
          CTX1p: "net.TYPEC_TX1_P", CTX1n: "net.TYPEC_TX1_N", CTX2p: "net.TYPEC_TX2_P", CTX2n: "net.TYPEC_TX2_N",
          CRX1p: "net.TYPEC_RX1_P", CRX1n: "net.TYPEC_RX1_N", CRX2p: "net.TYPEC_RX2_P", CRX2n: "net.TYPEC_RX2_N",
          CSBU1: "net.TYPEC_SBU1", CSBU2: "net.TYPEC_SBU2", SBU1: "net.DP_AUX_P", SBU2: "net.DP_AUX_N",
          SSTXp: "net.USB3_HUB_TX_P", SSTXn: "net.USB3_HUB_TX_N", SSRXp: "net.USB3_HUB_RX_P", SSRXn: "net.USB3_HUB_RX_N",
          LnAp: "net.DP_L0_P", LnAn: "net.DP_L0_N", LnBp: "net.DP_L1_P", LnBn: "net.DP_L1_N",
          LnCp: "net.DP_L2_P", LnCn: "net.DP_L2_N", LnDp: "net.DP_L3_P", LnDn: "net.DP_L3_N",
          EN: "net.MUX_EN", POL: "net.MUX_POL", AMSEL: "net.MUX_AMSEL", VCC: "net.VDD_3V3", GND: "net.GND",
        }}
      />

      {/* Top-side-only power tree. TLV62569 values follow TI's 2.2 uH / ceramic-capacitor reference design. */}
      <TLV62569DBVR
        name="U6" displayName="3V3 BUCK (JLC C141836)" layer="top"
        pcbX={8} pcbY={-13} schHeight="0.6mm" schSheetName="power"
        connections={{ VIN: "net.VBUS_5V", EN: "net.VBUS_5V", GND: "net.GND", SW: "net.BUCK3V3_SW", FB: "net.BUCK3V3_FB" }}
      />
      <FNR3015S2R2MT
        name="L1" layer="top" pcbX={12.5} pcbY={-13} schSheetName="power"
        connections={{ pin1: "net.BUCK3V3_SW", pin2: "net.VDD_3V3" }}
      />
      <TopCap name="C1" capacitance="4.7uF" footprint="0805" pcbX={4.2} pcbY={-13} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C2857993"] }} connections={{ pin1: "net.VBUS_5V", pin2: "net.GND" }} />
      <TopCap name="C2" capacitance="22uF" footprint="0805" pcbX={12.5} pcbY={-10.2} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C907991"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopRes name="R1" resistance="450k" pcbX={6} pcbY={-16} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C5159688"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.BUCK3V3_FB" }} />
      <TopRes name="R2" resistance="100k" pcbX={8} pcbY={-16} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25741"] }} connections={{ pin1: "net.BUCK3V3_FB", pin2: "net.GND" }} />

      <TLV62569DBVR
        name="U7" displayName="1V2 BUCK (JLC C141836)" layer="top"
        pcbX={8} pcbY={-21} schHeight="0.6mm" schSheetName="power"
        connections={{ VIN: "net.VBUS_5V", EN: "net.VBUS_5V", GND: "net.GND", SW: "net.BUCK1V2_SW", FB: "net.BUCK1V2_FB" }}
      />
      <FNR3015S2R2MT
        name="L2" layer="top" pcbX={12.5} pcbY={-21} schSheetName="power"
        connections={{ pin1: "net.BUCK1V2_SW", pin2: "net.VDD_1V2" }}
      />
      <TopCap name="C3" capacitance="4.7uF" footprint="0805" pcbX={4.2} pcbY={-21} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C2857993"] }} connections={{ pin1: "net.VBUS_5V", pin2: "net.GND" }} />
      <TopCap name="C4" capacitance="22uF" footprint="0805" pcbX={12.5} pcbY={-18.2} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C907991"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      <TopRes name="R3" resistance="100k" pcbX={6} pcbY={-24} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25741"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.BUCK1V2_FB" }} />
      <TopRes name="R4" resistance="100k" pcbX={8} pcbY={-24} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25741"] }} connections={{ pin1: "net.BUCK1V2_FB", pin2: "net.GND" }} />

      {/* Individually current-limited VBUS outputs: 0.5 A USB-A, 0.9 A USB-C, 0.2 A HDMI. */}
      <TPS2553DBVR name="U8" displayName="USB-A1 POWER" layer="top" pcbX={0} pcbY={18} schSheetName="power" connections={{ IN: "net.VBUS_5V", GND: "net.GND", EN: "net.PWR_EN_USB1", pin4: "net.PWR_CTL_USB1", ILIM: "net.ILIM_USB1", OUT: "net.USB1_VBUS" }} />
      <TPS2553DBVR name="U9" displayName="USB-A2 POWER" layer="top" pcbX={0} pcbY={-4} schSheetName="power" connections={{ IN: "net.VBUS_5V", GND: "net.GND", EN: "net.PWR_EN_USB2", pin4: "net.PWR_CTL_USB2", ILIM: "net.ILIM_USB2", OUT: "net.USB2_VBUS" }} />
      <TPS2553DBVR name="U10" displayName="USB-C POWER" layer="top" pcbX={0} pcbY={-15} schSheetName="power" connections={{ IN: "net.VBUS_5V", GND: "net.GND", EN: "net.PWR_EN_USBC", pin4: "net.PWR_CTL_USBC", ILIM: "net.ILIM_USBC", OUT: "net.USBC_VBUS" }} />
      <TPS2553DBVR name="U11" displayName="HDMI 5V POWER" layer="top" pcbX={-0.5} pcbY={-27} schSheetName="power" connections={{ IN: "net.VBUS_5V", GND: "net.GND", EN: "net.VDD_3V3", pin4: "net.PWR_FAULT_HDMI_N", ILIM: "net.ILIM_HDMI", OUT: "net.HDMI_5V" }} />
      <TopRes name="R5" resistance="52.3k" pcbX={0} pcbY={15.5} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C26982"] }} connections={{ pin1: "net.ILIM_USB1", pin2: "net.GND" }} />
      <TopRes name="R6" resistance="52.3k" pcbX={1.8} pcbY={-6.5} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C26982"] }} connections={{ pin1: "net.ILIM_USB2", pin2: "net.GND" }} />
      <TopRes name="R7" resistance="28.7k" pcbX={0} pcbY={-17.8} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C2998072"] }} connections={{ pin1: "net.ILIM_USBC", pin2: "net.GND" }} />
      <TopRes name="R8" resistance="133k" pcbX={-0.5} pcbY={-29.8} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C2998045"] }} connections={{ pin1: "net.ILIM_HDMI", pin2: "net.GND" }} />
      <TopRes name="R18" resistance="100" pcbX={-3.5} pcbY={19.2} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25076"] }} connections={{ pin1: "net.PWR_CTL_USB1", pin2: "net.PWR_EN_USB1" }} />
      <TopRes name="R19" resistance="100" pcbX={1.8} pcbY={-1.5} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25076"] }} connections={{ pin1: "net.PWR_CTL_USB2", pin2: "net.PWR_EN_USB2" }} />
      <TopRes name="R20" resistance="100" pcbX={1.2} pcbY={-12.5} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25076"] }} connections={{ pin1: "net.PWR_CTL_USBC", pin2: "net.PWR_EN_USBC" }} />
      <TopRes name="R21" resistance="10k" pcbX={1.8} pcbY={-24.5} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C25744"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.PWR_FAULT_HDMI_N" }} />
      <TopCap name="C5" capacitance="10uF" footprint="0603" pcbX={-3} pcbY={21} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C19702"] }} connections={{ pin1: "net.USB1_VBUS", pin2: "net.GND" }} />
      <TopCap name="C6" capacitance="10uF" footprint="0603" pcbX={-3.8} pcbY={-4} pcbRotation={90} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C19702"] }} connections={{ pin1: "net.USB2_VBUS", pin2: "net.GND" }} />
      <TopCap name="C7" capacitance="10uF" footprint="0603" pcbX={-3.8} pcbY={-15} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C19702"] }} connections={{ pin1: "net.USBC_VBUS", pin2: "net.GND" }} />
      <TopCap name="C8" capacitance="10uF" footprint="0603" pcbX={-4.3} pcbY={-27} schSheetName="power" supplierPartNumbers={{ jlcpcb: ["C19702"] }} connections={{ pin1: "net.HDMI_5V", pin2: "net.GND" }} />

      {/* USB5744 reference clock, analog bias, reset, VBUS sensing, and local rail bypass. */}
      <X322525MQB4SI name="Y1" loadCapacitance="16pF" layer="top" pcbX={4} pcbY={4.2} schSheetName="usb" connections={{ pin1: "net.HUB_XTALI", pin2: "net.GND", pin3: "net.HUB_XTALO", pin4: "net.GND" }} />
      <TopCap name="C9" capacitance="16pF" pcbX={0.4} pcbY={3.4} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C48836"] }} connections={{ pin1: "net.HUB_XTALI", pin2: "net.GND" }} />
      <TopCap name="C10" capacitance="16pF" pcbX={0.4} pcbY={5.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C48836"] }} connections={{ pin1: "net.HUB_XTALO", pin2: "net.GND" }} />
      <TopRes name="R9" resistance="12k" pcbX={-2.3} pcbY={10.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C25752"] }} connections={{ pin1: "net.HUB_RBIAS", pin2: "net.GND" }} />
      <TopRes name="R10" resistance="1k" pcbX={-0.3} pcbY={10.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C11702"] }} connections={{ pin1: "net.HUB_ATEST", pin2: "net.GND" }} />
      <TopRes name="R11" resistance="10k" pcbX={1.7} pcbY={10.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C25744"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.HUB_RESET_N" }} />
      <TopCap name="C11" capacitance="100nF" pcbX={3.7} pcbY={10.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.HUB_RESET_N", pin2: "net.GND" }} />
      <TopRes name="R12" resistance="100k" pcbX={-2.3} pcbY={12.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C25741"] }} connections={{ pin1: "net.VBUS_5V", pin2: "net.USBH_VBUS_DET" }} />
      <TopRes name="R13" resistance="100k" pcbX={-0.3} pcbY={12.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C25741"] }} connections={{ pin1: "net.USBH_VBUS_DET", pin2: "net.GND" }} />
      <TopCap name="C12" capacitance="2.2uF" pcbX={1.7} pcbY={12.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C326606"] }} connections={{ pin1: "net.USBH_VBUS_DET", pin2: "net.GND" }} />
      <TopCap name="C13" capacitance="10nF" pcbX={3.7} pcbY={12.2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C15195"] }} connections={{ pin1: "net.USBH_VBUS_DET", pin2: "net.GND" }} />
      {Array.from({ length: 8 }).map((_, index) => (
        <TopCap key={`hub12-${index}`} name={`C${14 + index}`} capacitance="100nF" pcbX={4.2 + (index % 4) * 2} pcbY={-3.5 - Math.floor(index / 4) * 2} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      ))}
      {Array.from({ length: 4 }).map((_, index) => (
        <TopCap key={`hub33-${index}`} name={`C${22 + index}`} capacitance="100nF" pcbX={4.2 + index * 2} pcbY={-7.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      ))}
      <TopCap name="C26" capacitance="4.7uF" footprint="0805" pcbX={13} pcbY={-3.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C2857993"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      <TopCap name="C27" capacitance="4.7uF" footprint="0805" pcbX={13} pcbY={-7.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C2857993"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopCap name="C44" capacitance="1nF" pcbX={4.2} pcbY={-9.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C53547"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      <TopCap name="C45" capacitance="1nF" pcbX={6.2} pcbY={-9.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C53547"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      <TopCap name="C46" capacitance="1nF" pcbX={8.2} pcbY={-9.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C53547"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      <TopCap name="C47" capacitance="1nF" pcbX={0} pcbY={-11.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C53547"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopCap name="C48" capacitance="1nF" pcbX={1.5} pcbY={-9.5} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C53547"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />

      {/* Required SuperSpeed transmitter AC-coupling capacitors. */}
      <TopCap name="C49" capacitance="100nF" schOrientation="vertical" pcbX={6.9} pcbY={36} pcbRotation={90} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.USB3_HUB_TX_RAW_P", pin2: "net.USB3_HUB_TX_P" }} />
      <TopCap name="C50" capacitance="100nF" schOrientation="vertical" pcbX={8.5} pcbY={36} pcbRotation={90} schSheetName="usb" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.USB3_HUB_TX_RAW_N", pin2: "net.USB3_HUB_TX_N" }} />
      <TopCap name="C51" capacitance="100nF" schOrientation="vertical" pcbX={5.5} pcbY={22} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.USB3_ETH_RX_RAW_P", pin2: "net.USB3_ETH_RX_P" }} />
      <TopCap name="C52" capacitance="100nF" schOrientation="vertical" pcbX={7.5} pcbY={22} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.USB3_ETH_RX_RAW_N", pin2: "net.USB3_ETH_RX_N" }} />
      <TopCap name="C53" capacitance="100nF" schOrientation="vertical" pcbX={5.5} pcbY={23.5} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.USB3_ETH_TX_RAW_P", pin2: "net.USB3_ETH_TX_P" }} />
      <TopCap name="C54" capacitance="100nF" schOrientation="vertical" pcbX={7.5} pcbY={23.5} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.USB3_ETH_TX_RAW_N", pin2: "net.USB3_ETH_TX_N" }} />

      {/* RTL8153B reference regulator and oscillator: REGOUT is isolated from the shared 1.2 V rail. */}
      <FNR3015S2R2MT name="L3" layer="top" pcbX={11.5} pcbY={24} schSheetName="ethernet" connections={{ pin1: "net.RTL_REG_SW", pin2: "net.RTL_VDD_1V0" }} />
      <TopRes name="R14" resistance="10k" pcbX={12} pcbY={31} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C25744"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.RTL_ENSWREG" }} />
      <TopRes name="R15" resistance="2.49k" pcbX={12} pcbY={30} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C2933083"] }} connections={{ pin1: "net.RTL_RSET", pin2: "net.GND" }} />
      <TopCap name="C28" capacitance="10uF" footprint="0603" pcbX={22} pcbY={26.5} pcbRotation={90} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C19702"] }} connections={{ pin1: "net.RTL_VDD_1V0", pin2: "net.GND" }} />
      <TopCap name="C29" capacitance="1uF" pcbX={10} pcbY={32} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C5137473"] }} connections={{ pin1: "net.RTL_UPS_1V0", pin2: "net.GND" }} />
      <X322525MRB4SI name="Y2" layer="top" pcbX={7.5} pcbY={29} schWidth="1.2mm" schSheetName="ethernet" connections={{ OSC1: "net.RTL_XTALI", OSC2: "net.RTL_XTALO", GND1: "net.GND", GND2: "net.GND" }} />
      <TopCap name="C30" capacitance="27pF" pcbX={3.5} pcbY={28} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C1557"] }} connections={{ pin1: "net.RTL_XTALI", pin2: "net.GND" }} />
      <TopCap name="C31" capacitance="27pF" pcbX={3.5} pcbY={30} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C1557"] }} connections={{ pin1: "net.RTL_XTALO", pin2: "net.GND" }} />
      {Array.from({ length: 4 }).map((_, index) => (
        <TopCap key={`rtl10-${index}`} name={`C${32 + index}`} capacitance="100nF" pcbX={13 + index * 2} pcbY={32.5} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.RTL_VDD_1V0", pin2: "net.GND" }} />
      ))}
      <TopCap name="C36" capacitance="100nF" pcbX={21} pcbY={33} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopCap name="C37" capacitance="100nF" pcbX={21.5} pcbY={32} schSheetName="ethernet" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VBUS_5V", pin2: "net.GND" }} />

      {/* Local support for Type-C controller, lane mux, and DP-to-HDMI bridge. */}
      <TopCap name="C38" capacitance="1uF" pcbX={16} pcbY={23} schSheetName="host" supplierPartNumbers={{ jlcpcb: ["C5137473"] }} connections={{ pin1: "net.CCG4_VCCD", pin2: "net.GND" }} />
      <TopCap name="C39" capacitance="100nF" pcbX={21.8} pcbY={11.8} schSheetName="host" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopCap name="C40" capacitance="100nF" pcbX={7.5} pcbY={33.5} schSheetName="host" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopRes name="R16" resistance="2M" pcbX={7.5} pcbY={40} schSheetName="host" supplierPartNumbers={{ jlcpcb: ["C2930015"] }} connections={{ pin1: "net.TYPEC_SBU1", pin2: "net.GND" }} />
      <TopRes name="R17" resistance="2M" pcbX={8} pcbY={32} schSheetName="host" supplierPartNumbers={{ jlcpcb: ["C2930015"] }} connections={{ pin1: "net.TYPEC_SBU2", pin2: "net.GND" }} />
      <TopCap name="C41" capacitance="100nF" pcbX={22} pcbY={-27.5} schSheetName="video" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_3V3", pin2: "net.GND" }} />
      <TopCap name="C42" capacitance="100nF" pcbX={22} pcbY={-40} schSheetName="video" supplierPartNumbers={{ jlcpcb: ["C6955083"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />
      <TopCap name="C43" capacitance="4.7uF" footprint="0805" pcbX={17} pcbY={-43} schSheetName="video" supplierPartNumbers={{ jlcpcb: ["C2857993"] }} connections={{ pin1: "net.VDD_1V2", pin2: "net.GND" }} />

      {/* Low-capacitance shunt ESD arrays, placed adjacent to connector groups. */}
      <TPD4E05U06DQAR name="D1" displayName="HOST SS ESD A" layer="top" pcbX={7.5} pcbY={44.8} schSheetName="protection" connections={{ D1_POS: "net.TYPEC_TX1_P", D1_NEG: "net.TYPEC_TX1_N", D2_POS: "net.TYPEC_RX1_P", D2_NEG: "net.TYPEC_RX1_N", GND1: "net.GND", GND2: "net.GND" }} />
      <TPD4E05U06DQAR name="D2" displayName="HOST SS ESD B" layer="top" pcbX={11.5} pcbY={44} schSheetName="protection" connections={{ D1_POS: "net.TYPEC_TX2_P", D1_NEG: "net.TYPEC_TX2_N", D2_POS: "net.TYPEC_RX2_P", D2_NEG: "net.TYPEC_RX2_N", GND1: "net.GND", GND2: "net.GND" }} />
      <TPD6E05U06RVZR name="D3" displayName="HOST USB2/CC/SBU ESD" layer="top" pcbX={13.5} pcbY={41.5} schSheetName="protection" connections={{ D1_POS: "net.USB2_HOST_DP", D1_NEG: "net.USB2_HOST_DM", D2_POS: "net.HOST_CC1", D2_NEG: "net.HOST_CC2", D3_POS: "net.TYPEC_SBU1", D3_NEG: "net.TYPEC_SBU2", GND1: "net.GND", GND2: "net.GND" }} />
      <TPD6E05U06RVZR name="D4" displayName="DOWNSTREAM USB2 ESD" layer="top" pcbX={-2} pcbY={-9} schSheetName="protection" connections={{ D1_POS: "net.USB2_P1_DP", D1_NEG: "net.USB2_P1_DM", D2_POS: "net.USB2_P2_DP", D2_NEG: "net.USB2_P2_DM", D3_POS: "net.USB2_P3_DP", D3_NEG: "net.USB2_P3_DM", GND1: "net.GND", GND2: "net.GND" }} />
      <TPD4E05U06DQAR name="D5" displayName="HDMI TMDS ESD A" layer="top" pcbX={0} pcbY={-39} schSheetName="protection" connections={{ D1_POS: "net.HDMI_D2_P", D1_NEG: "net.HDMI_D2_N", D2_POS: "net.HDMI_D1_P", D2_NEG: "net.HDMI_D1_N", GND1: "net.GND", GND2: "net.GND" }} />
      <TPD4E05U06DQAR name="D6" displayName="HDMI TMDS ESD B" layer="top" pcbX={4} pcbY={-42} schSheetName="protection" connections={{ D1_POS: "net.HDMI_D0_P", D1_NEG: "net.HDMI_D0_N", D2_POS: "net.HDMI_CLK_P", D2_NEG: "net.HDMI_CLK_N", GND1: "net.GND", GND2: "net.GND" }} />
      <TPD6E05U06RVZR name="D7" displayName="HDMI CONTROL ESD" layer="top" pcbX={-2} pcbY={-35} schSheetName="protection" connections={{ D1_POS: "net.HDMI_DDC_SCL", D1_NEG: "net.HDMI_DDC_SDA", D2_POS: "net.HDMI_HPD", D2_NEG: "net.HDMI_CEC", D3_POS: "net.HDMI_5V", D3_NEG: "net.GND", GND1: "net.GND", GND2: "net.GND" }} />

      <silkscreentext text="ETH" pcbX={1} pcbY={43.5} fontSize={1.2} />
      <silkscreentext text="USB  USB" pcbX={5} pcbY={4.5} pcbRotation={-90} fontSize={1} />
      <silkscreentext text="C" pcbX={-2} pcbY={-17} fontSize={1.2} />
      <silkscreentext text="HDMI" pcbX={3} pcbY={-43.5} fontSize={1.1} />
      <silkscreentext text="MAC HUB // PLACEMENT R2" pcbX={14.2} pcbY={0} pcbRotation={-90} fontSize={0.9} />
    </board>
  )
}