pixalynx/edge-connector

Configures USB-A, Micro-USB, and USB-C PCB-edge connectors with exposed copper contacts and automatically shaped, positioned board tongues.

Version
1.0.0
License
GPL-3.0-only
Stars
0

EdgeContactFootprint.tsx

import { Fragment } from "react"

export interface EdgeContact {
  pin: string
  x: number
  y: number
  width: number
  height: number
  layer: "top" | "bottom"
}

/** Exposed contacts with no stencil openings, on their original copper faces. */
export function EdgeContactFootprint({
  pads,
  solderMaskMargin = 0.025,
}: {
  pads: readonly EdgeContact[]
  solderMaskMargin?: number
}) {
  return (
    <footprint insertionDirection="from_top">
      {pads.map((pad) => (
        <Fragment key={pad.pin}>
          <smtpad
            portHints={[pad.pin]}
            pcbX={pad.x}
            pcbY={pad.y}
            width={pad.width}
            height={pad.height}
            shape="rect"
            layer={pad.layer}
            coveredWithSolderMask={false}
            solderMaskMargin={solderMaskMargin}
            solderPasteMargin={-pad.width / 2}
          />
        </Fragment>
      ))}
    </footprint>
  )
}