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

dist/index.d.ts

import * as react from 'react';
import { ComponentProps } from 'react';
import { ChipProps } from 'tscircuit';

declare const usbAEdgeConnectorPinLabels: {
    readonly pin1: readonly ["VBUS"];
    readonly pin2: readonly ["DM", "D_MINUS"];
    readonly pin3: readonly ["DP", "D_PLUS"];
    readonly pin4: readonly ["GND"];
};
/** Millimetres, relative to the component origin at pcbRotation={0}. */
declare const usbAEdgeConnectorGeometry: {
    readonly tongueWidth: 12;
    readonly boardThickness: 2;
    readonly tipY: 4.8;
    readonly shoulderY: -3.9;
    readonly edgeProfile: readonly [{
        readonly x: -6;
        readonly y: -3.9;
    }, {
        readonly x: -6;
        readonly y: 4.3;
    }, {
        readonly x: -5.5;
        readonly y: 4.8;
    }, {
        readonly x: 5.5;
        readonly y: 4.8;
    }, {
        readonly x: 6;
        readonly y: 4.3;
    }, {
        readonly x: 6;
        readonly y: -3.9;
    }];
};
type UsbAEdgeConnectorProps = Omit<ChipProps<typeof usbAEdgeConnectorPinLabels>, "footprint" | "pinLabels" | "layer" | "cadModel" | "children">;
/**
 * USB 2.0 Type-A male PCB contacts. Top copper, insertion toward local +Y.
 * Looking down at the contacts with the tip up: VBUS, D-, D+, GND.
 * The host board must supply the tongue outline and thickness (see README).
 */
declare function UsbAEdgeConnector(props: UsbAEdgeConnectorProps): any;

declare const usbCEdgeConnectorPinLabels: {
    readonly pin1: readonly ["A1", "GND_A1"];
    readonly pin2: readonly ["A2", "TX1_P"];
    readonly pin3: readonly ["A3", "TX1_N"];
    readonly pin4: readonly ["A4", "VBUS_A4"];
    readonly pin5: readonly ["A5", "CC1"];
    readonly pin6: readonly ["A6", "DP_A6"];
    readonly pin7: readonly ["A7", "DM_A7"];
    readonly pin8: readonly ["A8", "SBU1"];
    readonly pin9: readonly ["A9", "VBUS_A9"];
    readonly pin10: readonly ["A10", "RX2_N"];
    readonly pin11: readonly ["A11", "RX2_P"];
    readonly pin12: readonly ["A12", "GND_A12"];
    readonly pin13: readonly ["B1", "GND_B1"];
    readonly pin14: readonly ["B2", "TX2_P"];
    readonly pin15: readonly ["B3", "TX2_N"];
    readonly pin16: readonly ["B4", "VBUS_B4"];
    readonly pin17: readonly ["B5", "CC2"];
    readonly pin18: readonly ["B6", "DP_B6"];
    readonly pin19: readonly ["B7", "DM_B7"];
    readonly pin20: readonly ["B8", "SBU2"];
    readonly pin21: readonly ["B9", "VBUS_B9"];
    readonly pin22: readonly ["B10", "RX1_N"];
    readonly pin23: readonly ["B11", "RX1_P"];
    readonly pin24: readonly ["B12", "GND_B12"];
};
declare const usbCEdgeConnectorGeometry: {
    readonly boardThickness: 0.6;
    readonly tipY: 2.55;
    readonly edgeProfile: readonly [{
        readonly x: -4.445;
        readonly y: -1.765;
    }, {
        readonly x: -4.437499;
        readonly y: -1.855527;
    }, {
        readonly x: -4.415199;
        readonly y: -1.943585;
    }, {
        readonly x: -4.378711;
        readonly y: -2.026771;
    }, {
        readonly x: -4.329027;
        readonly y: -2.102817;
    }, {
        readonly x: -4.267505;
        readonly y: -2.169648;
    }, {
        readonly x: -4.195821;
        readonly y: -2.225442;
    }, {
        readonly x: -4.115932;
        readonly y: -2.268675;
    }, {
        readonly x: -4.030017;
        readonly y: -2.29817;
    }, {
        readonly x: -3.940419;
        readonly y: -2.313121;
    }, {
        readonly x: -3.849581;
        readonly y: -2.313121;
    }, {
        readonly x: -3.759983;
        readonly y: -2.29817;
    }, {
        readonly x: -3.674068;
        readonly y: -2.268675;
    }, {
        readonly x: -3.594179;
        readonly y: -2.225442;
    }, {
        readonly x: -3.522495;
        readonly y: -2.169648;
    }, {
        readonly x: -3.460973;
        readonly y: -2.102817;
    }, {
        readonly x: -3.411289;
        readonly y: -2.026771;
    }, {
        readonly x: -3.374801;
        readonly y: -1.943585;
    }, {
        readonly x: -3.352501;
        readonly y: -1.855527;
    }, {
        readonly x: -3.345;
        readonly y: -1.765;
    }, {
        readonly x: -3.345;
        readonly y: -0.2;
    }, {
        readonly x: -3.292906;
        readonly y: -0.195442;
    }, {
        readonly x: -3.242394;
        readonly y: -0.181908;
    }, {
        readonly x: -3.195;
        readonly y: -0.159808;
    }, {
        readonly x: -3.152164;
        readonly y: -0.129813;
    }, {
        readonly x: -3.115187;
        readonly y: -0.092836;
    }, {
        readonly x: -3.085192;
        readonly y: -0.05;
    }, {
        readonly x: -3.063092;
        readonly y: -0.002606;
    }, {
        readonly x: -3.049558;
        readonly y: 0.047906;
    }, {
        readonly x: -3.045;
        readonly y: 0.1;
    }, {
        readonly x: -3.045;
        readonly y: 1;
    }, {
        readonly x: -3.049558;
        readonly y: 1.052094;
    }, {
        readonly x: -3.063092;
        readonly y: 1.102606;
    }, {
        readonly x: -3.085192;
        readonly y: 1.15;
    }, {
        readonly x: -3.115187;
        readonly y: 1.192836;
    }, {
        readonly x: -3.152164;
        readonly y: 1.229813;
    }, {
        readonly x: -3.195;
        readonly y: 1.259808;
    }, {
        readonly x: -3.242394;
        readonly y: 1.281908;
    }, {
        readonly x: -3.292906;
        readonly y: 1.295442;
    }, {
        readonly x: -3.345;
        readonly y: 1.3;
    }, {
        readonly x: -3.345;
        readonly y: 1.8;
    }, {
        readonly x: -3.045;
        readonly y: 2.55;
    }, {
        readonly x: 3.05;
        readonly y: 2.55;
    }, {
        readonly x: 3.35;
        readonly y: 1.8;
    }, {
        readonly x: 3.35;
        readonly y: 1.3;
    }, {
        readonly x: 3.297906;
        readonly y: 1.295442;
    }, {
        readonly x: 3.247394;
        readonly y: 1.281908;
    }, {
        readonly x: 3.2;
        readonly y: 1.259808;
    }, {
        readonly x: 3.157164;
        readonly y: 1.229813;
    }, {
        readonly x: 3.120187;
        readonly y: 1.192836;
    }, {
        readonly x: 3.090192;
        readonly y: 1.15;
    }, {
        readonly x: 3.068092;
        readonly y: 1.102606;
    }, {
        readonly x: 3.054558;
        readonly y: 1.052094;
    }, {
        readonly x: 3.05;
        readonly y: 1;
    }, {
        readonly x: 3.05;
        readonly y: 0.1;
    }, {
        readonly x: 3.054558;
        readonly y: 0.047906;
    }, {
        readonly x: 3.068092;
        readonly y: -0.002606;
    }, {
        readonly x: 3.090192;
        readonly y: -0.05;
    }, {
        readonly x: 3.120187;
        readonly y: -0.092836;
    }, {
        readonly x: 3.157164;
        readonly y: -0.129813;
    }, {
        readonly x: 3.2;
        readonly y: -0.159808;
    }, {
        readonly x: 3.247394;
        readonly y: -0.181908;
    }, {
        readonly x: 3.297906;
        readonly y: -0.195442;
    }, {
        readonly x: 3.35;
        readonly y: -0.2;
    }, {
        readonly x: 3.35;
        readonly y: -1.765;
    }, {
        readonly x: 3.357501;
        readonly y: -1.855527;
    }, {
        readonly x: 3.379801;
        readonly y: -1.943585;
    }, {
        readonly x: 3.416289;
        readonly y: -2.026771;
    }, {
        readonly x: 3.465973;
        readonly y: -2.102817;
    }, {
        readonly x: 3.527495;
        readonly y: -2.169648;
    }, {
        readonly x: 3.599179;
        readonly y: -2.225442;
    }, {
        readonly x: 3.679068;
        readonly y: -2.268675;
    }, {
        readonly x: 3.764983;
        readonly y: -2.29817;
    }, {
        readonly x: 3.854581;
        readonly y: -2.313121;
    }, {
        readonly x: 3.945419;
        readonly y: -2.313121;
    }, {
        readonly x: 4.035017;
        readonly y: -2.29817;
    }, {
        readonly x: 4.120932;
        readonly y: -2.268675;
    }, {
        readonly x: 4.200821;
        readonly y: -2.225442;
    }, {
        readonly x: 4.272505;
        readonly y: -2.169648;
    }, {
        readonly x: 4.334027;
        readonly y: -2.102817;
    }, {
        readonly x: 4.383711;
        readonly y: -2.026771;
    }, {
        readonly x: 4.420199;
        readonly y: -1.943585;
    }, {
        readonly x: 4.442499;
        readonly y: -1.855527;
    }, {
        readonly x: 4.45;
        readonly y: -1.765;
    }];
};
type UsbCEdgeConnectorProps = Omit<ChipProps<typeof usbCEdgeConnectorPinLabels>, "footprint" | "pinLabels" | "layer" | "cadModel" | "children">;
/** 24-contact, shell-less USB-C receptacle tongue. A on top, B on bottom. */
declare function UsbCEdgeConnector(props: UsbCEdgeConnectorProps): any;

declare const microUsbEdgeConnectorPinLabels: {
    readonly pin1: readonly ["VBUS"];
    readonly pin2: readonly ["DM", "D_MINUS"];
    readonly pin3: readonly ["DP", "D_PLUS"];
    readonly pin4: readonly ["ID"];
    readonly pin5: readonly ["GND"];
};
declare const microUsbEdgeConnectorGeometry: {
    readonly boardThickness: 0.6;
    readonly tipY: 1.58;
    readonly edgeProfile: readonly [{
        readonly x: -3.905;
        readonly y: 1.58;
    }, {
        readonly x: -3.87027;
        readonly y: 1.576961;
    }, {
        readonly x: -3.836596;
        readonly y: 1.567938;
    }, {
        readonly x: -3.805;
        readonly y: 1.553205;
    }, {
        readonly x: -3.776443;
        readonly y: 1.533209;
    }, {
        readonly x: -3.751791;
        readonly y: 1.508557;
    }, {
        readonly x: -3.731795;
        readonly y: 1.48;
    }, {
        readonly x: -3.717062;
        readonly y: 1.448404;
    }, {
        readonly x: -3.708039;
        readonly y: 1.41473;
    }, {
        readonly x: -3.705;
        readonly y: 1.38;
    }, {
        readonly x: -3.705;
        readonly y: -1.92;
    }, {
        readonly x: -3.692688;
        readonly y: -2.076435;
    }, {
        readonly x: -3.656057;
        readonly y: -2.229017;
    }, {
        readonly x: -3.596007;
        readonly y: -2.373991;
    }, {
        readonly x: -3.514017;
        readonly y: -2.507785;
    }, {
        readonly x: -3.412107;
        readonly y: -2.627107;
    }, {
        readonly x: -3.292785;
        readonly y: -2.729017;
    }, {
        readonly x: -3.158991;
        readonly y: -2.811007;
    }, {
        readonly x: -3.014017;
        readonly y: -2.871057;
    }, {
        readonly x: -2.861435;
        readonly y: -2.907688;
    }, {
        readonly x: -2.705;
        readonly y: -2.92;
    }, {
        readonly x: -2.548565;
        readonly y: -2.907688;
    }, {
        readonly x: -2.395983;
        readonly y: -2.871057;
    }, {
        readonly x: -2.251009;
        readonly y: -2.811007;
    }, {
        readonly x: -2.117215;
        readonly y: -2.729017;
    }, {
        readonly x: -1.997893;
        readonly y: -2.627107;
    }, {
        readonly x: -1.895983;
        readonly y: -2.507785;
    }, {
        readonly x: -1.813993;
        readonly y: -2.373991;
    }, {
        readonly x: -1.753943;
        readonly y: -2.229017;
    }, {
        readonly x: -1.717312;
        readonly y: -2.076435;
    }, {
        readonly x: -1.705;
        readonly y: -1.92;
    }, {
        readonly x: -1.705;
        readonly y: 1.38;
    }, {
        readonly x: -1.701961;
        readonly y: 1.41473;
    }, {
        readonly x: -1.692938;
        readonly y: 1.448404;
    }, {
        readonly x: -1.678205;
        readonly y: 1.48;
    }, {
        readonly x: -1.658209;
        readonly y: 1.508557;
    }, {
        readonly x: -1.633557;
        readonly y: 1.533209;
    }, {
        readonly x: -1.605;
        readonly y: 1.553205;
    }, {
        readonly x: -1.573404;
        readonly y: 1.567938;
    }, {
        readonly x: -1.53973;
        readonly y: 1.576961;
    }, {
        readonly x: -1.505;
        readonly y: 1.58;
    }, {
        readonly x: 1.505;
        readonly y: 1.58;
    }, {
        readonly x: 1.53973;
        readonly y: 1.576961;
    }, {
        readonly x: 1.573404;
        readonly y: 1.567938;
    }, {
        readonly x: 1.605;
        readonly y: 1.553205;
    }, {
        readonly x: 1.633557;
        readonly y: 1.533209;
    }, {
        readonly x: 1.658209;
        readonly y: 1.508557;
    }, {
        readonly x: 1.678205;
        readonly y: 1.48;
    }, {
        readonly x: 1.692938;
        readonly y: 1.448404;
    }, {
        readonly x: 1.701961;
        readonly y: 1.41473;
    }, {
        readonly x: 1.705;
        readonly y: 1.38;
    }, {
        readonly x: 1.705;
        readonly y: -1.92;
    }, {
        readonly x: 1.717312;
        readonly y: -2.076435;
    }, {
        readonly x: 1.753943;
        readonly y: -2.229017;
    }, {
        readonly x: 1.813993;
        readonly y: -2.373991;
    }, {
        readonly x: 1.895983;
        readonly y: -2.507785;
    }, {
        readonly x: 1.997893;
        readonly y: -2.627107;
    }, {
        readonly x: 2.117215;
        readonly y: -2.729017;
    }, {
        readonly x: 2.251009;
        readonly y: -2.811007;
    }, {
        readonly x: 2.395983;
        readonly y: -2.871057;
    }, {
        readonly x: 2.548565;
        readonly y: -2.907688;
    }, {
        readonly x: 2.705;
        readonly y: -2.92;
    }, {
        readonly x: 2.861435;
        readonly y: -2.907688;
    }, {
        readonly x: 3.014017;
        readonly y: -2.871057;
    }, {
        readonly x: 3.158991;
        readonly y: -2.811007;
    }, {
        readonly x: 3.292785;
        readonly y: -2.729017;
    }, {
        readonly x: 3.412107;
        readonly y: -2.627107;
    }, {
        readonly x: 3.514017;
        readonly y: -2.507785;
    }, {
        readonly x: 3.596007;
        readonly y: -2.373991;
    }, {
        readonly x: 3.656057;
        readonly y: -2.229017;
    }, {
        readonly x: 3.692688;
        readonly y: -2.076435;
    }, {
        readonly x: 3.705;
        readonly y: -1.92;
    }, {
        readonly x: 3.705;
        readonly y: 1.38;
    }, {
        readonly x: 3.708039;
        readonly y: 1.41473;
    }, {
        readonly x: 3.717062;
        readonly y: 1.448404;
    }, {
        readonly x: 3.731795;
        readonly y: 1.48;
    }, {
        readonly x: 3.751791;
        readonly y: 1.508557;
    }, {
        readonly x: 3.776443;
        readonly y: 1.533209;
    }, {
        readonly x: 3.805;
        readonly y: 1.553205;
    }, {
        readonly x: 3.836596;
        readonly y: 1.567938;
    }, {
        readonly x: 3.87027;
        readonly y: 1.576961;
    }, {
        readonly x: 3.905;
        readonly y: 1.58;
    }];
};
type MicroUsbEdgeConnectorProps = Omit<ChipProps<typeof microUsbEdgeConnectorPinLabels>, "footprint" | "pinLabels" | "layer" | "cadModel" | "children">;
/** Five-contact Micro-B receptacle tongue, top copper, mating toward +Y. */
declare function MicroUsbEdgeConnector(props: MicroUsbEdgeConnectorProps): any;

type UsbEdgeConnectorKind = "usb-a" | "usb-c" | "micro-usb";
type UsbBoardEdge = "top" | "right" | "bottom" | "left";
type PositionedProps = "pcbX" | "pcbY" | "pcbRotation" | "pcbPositionAnchor" | "pcbRelativeTo" | "pcbLayout";
type BoardOptions = Omit<ComponentProps<"board">, PositionedProps | "width" | "height" | "outline" | "thickness" | "outlineOffsetX" | "outlineOffsetY" | "boardAnchorPosition" | "boardAnchorAlignment" | "anchorAlignment" | "borderRadius"> & {
    /** Overall board bounds in millimetres, including the tongue. */
    width: number;
    height: number;
    edge?: UsbBoardEdge;
    /** Millimetres along the edge: positive is +X on top/bottom, +Y on left/right. */
    offset?: number;
};
type UsbEdgeConnectorBoardProps = BoardOptions & ({
    connector: "usb-a";
    connectorProps: Omit<UsbAEdgeConnectorProps, PositionedProps>;
} | {
    connector: "usb-c";
    connectorProps: Omit<UsbCEdgeConnectorProps, PositionedProps>;
} | {
    connector: "micro-usb";
    connectorProps: Omit<MicroUsbEdgeConnectorProps, PositionedProps>;
});
/** A rectangular carrier with one automatically shaped and placed USB edge connector. */
declare function UsbEdgeConnectorBoard(props: UsbEdgeConnectorBoardProps): any;

export { MicroUsbEdgeConnector, UsbAEdgeConnector, UsbCEdgeConnector, UsbEdgeConnectorBoard, UsbAEdgeConnector as default, microUsbEdgeConnectorGeometry, microUsbEdgeConnectorPinLabels, usbAEdgeConnectorGeometry, usbAEdgeConnectorPinLabels, usbCEdgeConnectorGeometry, usbCEdgeConnectorPinLabels };
export type { MicroUsbEdgeConnectorProps, UsbAEdgeConnectorProps, UsbBoardEdge, UsbCEdgeConnectorProps, UsbEdgeConnectorBoardProps, UsbEdgeConnectorKind };