seveibar/smd-usb-c

This code defines a USB Type-C connector component with associated pin configurations, 3D model, and PCB footprint layout for electronic hardware design.

Usage: To import and use the USB-C SMD component in a tscircuit project: 1. Import the component: ```tsx import { SmdUsbC } from "@tsci/seveibar.smd-usb-c" ``` 2. Use the component in a board: ```tsx <board> <SmdUsbC name="USB1" /> </board> ``` Key features: - Available pins include: GND1, VBUS1, CC1, DP1, DM1, SBU1, etc. - Supports accessing specific pins via `sel.USB1.VBUS1` - Includes CAD model and footprint details - Manufacturer part number: TYPE-C-31-M-12

Version
0.0.2
License
unset
Stars
2

index.tsx

PCBPCB preview for index.tsx
SchematicSchematic preview for index.tsx
import type { ChipProps } from "@tscircuit/props"

const pinLabels = {
  1: ["GND1", "A1"],
  2: ["GND2", "B12"],
  3: ["VBUS1", "A4"],
  4: ["VBUS2", "B9"],
  5: ["SBU2", "B8"],
  6: ["CC1", "A5"],
  7: ["DM2", "B7"],
  8: ["DP1", "A6"],
  9: ["DM1", "A7"],
  10: ["DP2", "B6"],
  11: ["SBU1", "A8"],
  12: ["CC2", "B5"],
  13: ["VBUS1", "A9"],
  14: ["VBUS2", "B4"],
  15: ["GND1", "A12"],
  16: ["GND2", "B1"],
} as const

interface Props extends ChipProps<typeof pinLabels> {
  name: string
}

/**
 * USB Type C connector (C165948)
 */
export const SmdUsbC = (props: Props) => {
  return (
    <chip
      {...props}
      cadModel={{
        objUrl:
          "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=2a4bc2358b36497d9ab2a66ab6419ba3&pn=C165948",
        rotationOffset: { x: 0, y: 0, z: 180 },
        positionOffset: { x: 0, y: -2.5, z: 0 },
      }}
      pinLabels={pinLabels}
      supplierPartNumbers={{
        jlcpcb: ["C165948"],
      }}
      schPortArrangement={{
        leftSide: {
          pins: [],
          direction: "top-to-bottom",
        },
        rightSide: {
          pins: [
            "VBUS1",
            "VBUS2",
            "DP1",
            "DP2",
            "DM1",
            "DM2",
            "CC1",
            "CC2",
            "SBU1",
            "SBU2",
          ],
          direction: "top-to-bottom",
        },
        bottomSide: {
          pins: ["GND1", "GND2"],
          direction: "left-to-right",
        },
      }}
      schPinStyle={{
        pin8: { topMargin: 0.4 },
        pin6: { topMargin: 0.4 },
        pin11: { topMargin: 0.2 },
        pin2: {
          rightMargin: 1,
        },
      }}
      manufacturerPartNumber="TYPE-C-31-M-12"
      footprint={
        <footprint>
          <hole
            pcbX="-2.8999180000000706mm"
            pcbY="1.180611049999925mm"
            diameter="0.7500111999999999mm"
          />
          <hole
            pcbX="2.8999180000000706mm"
            pcbY="1.180611049999925mm"
            diameter="0.7500111999999999mm"
          />
          <platedhole
            portHints={["alt_2"]}
            pcbX="4.32511199999999mm"
            pcbY="-2.7740863499999477mm"
            outerHeight="1.7999964mm"
            outerWidth="1.1999975999999999mm"
            innerHeight="1.3999972mm"
            innerWidth="0.7999983999999999mm"
            height="1.3999972mm"
            shape="pill"
          />
          <platedhole
            portHints={["alt_1"]}
            pcbX="4.32511199999999mm"
            pcbY="1.4057376499998782mm"
            outerHeight="1.9999959999999999mm"
            outerWidth="1.1999975999999999mm"
            innerHeight="1.5999968mm"
            innerWidth="0.7999983999999999mm"
            height="1.5999968mm"
            shape="pill"
          />
          <platedhole
            portHints={["alt_0"]}
            pcbX="-4.32511199999999mm"
            pcbY="1.4057376499998782mm"
            outerHeight="1.9999959999999999mm"
            outerWidth="1.1999975999999999mm"
            innerHeight="1.5999968mm"
            innerWidth="0.7999983999999999mm"
            height="1.5999968mm"
            shape="pill"
          />
          <platedhole
            portHints={["alt_3"]}
            pcbX="-4.32511199999999mm"
            pcbY="-2.7740863499999477mm"
            outerHeight="1.7999964mm"
            outerWidth="1.1999975999999999mm"
            innerHeight="1.3999972mm"
            innerWidth="0.7999983999999999mm"
            height="1.3999972mm"
            shape="pill"
          />
          <smtpad
            portHints={["B8"]}
            pcbX="-1.7500600000000759mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A5"]}
            pcbX="-1.2499339999999393mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B7"]}
            pcbX="-0.7500619999999572mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A6"]}
            pcbX="-0.2499359999999342mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A7"]}
            pcbX="0.2499359999999342mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B6"]}
            pcbX="0.7500619999999572mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A8"]}
            pcbX="1.2496799999998984mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B5"]}
            pcbX="1.7500600000000759mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A1"]}
            pcbX="-3.3500060000000076mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B12"]}
            pcbX="-3.0500319999999874mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A4"]}
            pcbX="-2.5499059999999645mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B9"]}
            pcbX="-2.249932000000058mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B4"]}
            pcbX="2.249932000000058mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A9"]}
            pcbX="2.5501600000000053mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["B1"]}
            pcbX="3.050032000000101mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <smtpad
            portHints={["A12"]}
            pcbX="3.3500060000000076mm"
            pcbY="2.449087049999889mm"
            width="0.29999939999999997mm"
            height="1.2999973999999999mm"
            shape="rect"
          />
          <silkscreenpath
            route={[
              { x: -4.4689776000000165, y: -1.40071475000002 },
              { x: -4.4689776000000165, y: 0.4621974499998487 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 4.471009600000116, y: -5.119096950000085 },
              { x: -4.4689776000000165, y: -5.119096950000085 },
              { x: -4.4689776000000165, y: -3.6377943500000356 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 4.471009600000116, y: -1.4010703500000545 },
              { x: 4.471009600000116, y: 0.4625530499999968 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 4.471009600000116, y: -5.119096950000085 },
              { x: 4.471009600000116, y: -3.6374387500002285 },
            ]}
          />
        </footprint>
      }
    />
  )
}