liammcg/BayFinder_V1_REVC_ESP32_CARRIER

This design implements a control PCB assembly featuring multiple headers (J1–J4) for ESP32-S3 module connection, integrated USB Type-B and A connectors (J5, J6) for power and data, a protected 5V power circuitry with fuses and TVS diode, an onboard SSD1306 OLED display (J8), and mechanical DIN-rail mounting holes, all interconnected with signal traces, ground pours, and test points.

Version
0.0.1
License
unset
Stars
0

dist/index.cjs

'use strict';

var jsxRuntime = require('react/jsx-runtime');

/*
 * BAYFINDER BF-CTRL-PCB REV B — SELECTED PRODUCTION PARTS
 *
 * ESP socket rows:
 *   J1/J4  Sullins PRPC022SAAN-RC  (5.84 mm mating length)
 *   J2/J3  Sullins PPPC221LFBN-RC  (DigiKey S7055-ND)
 *
 * Display assembly:
 *   DS1    Adafruit 4440 SSD1306 128x32 OLED (DigiKey 1528-4440-ND)
 *   J8     Sullins PPPC061LGBN-RC 6-pin right-angle socket (DigiKey S5481-ND)
 *
 * Power and service connectors:
 *   J5     Amphenol 61729-0010BLF USB-B (DigiKey 609-1039-ND)
 *   J6     Molex 0676433910 USB-A receptacle (DigiKey WM14667-ND)
 *   J7     On Shore EDSTLZ950/2 5.08 mm header (DigiKey ED1817-ND)
 *          Mating field plug: EDZ950/2
 *   JP1    Sullins PRPC002SAAN-RC (DigiKey 35-PRPC002SAAN-RC-ND)
 *
 * DIN-rail mounting:
 *   CL1/2  Hammond 1427DINCLIP, black nylon 35 mm DIN-rail clips
 *          One package contains the two clips used on the PCB back side;
 *          each clip uses the documented 30 mm mounting-hole spacing.
 *
 * Off-board service cables:
 *   PC->J5 Eaton U023-006 USB-A male to USB-B male (DigiKey TL773-ND)
 *   J6->ESP Assmann AK67421-0.3-VM USB-A male to Micro-B male
 *           300 mm cable (DigiKey AE11229-ND)
 *
 * Protection and indication:
 *   F1     Littelfuse 0468001.NR, 1 A / 63 V, 1206 (F2658CT-ND)
 *   F2     Littelfuse 0468.500NR, 0.5 A / 63 V, 1206 (F3156CT-ND)
 *   D1/D3  Diodes Inc. B140HW-7, 1 A / 40 V Schottky (B140HWDICT-ND)
 *   D2     Littelfuse SMF5.0A, 5 V TVS, SOD-123 (F5748CT-ND)
 *   C1     Murata GRM31CR61A476ME15L, 47 uF / 10 V, 1206 (490-5528-1-ND)
 *   C2/C3  Wurth 885012207098, 100 nF / 50 V, 0805 (732-8080-1-ND)
 *   R1     Vishay CRCW08051K00FKEA, 1 k, 0805 (541-1.00KCCT-ND)
 *   R2     Vishay CRCW0805100KFKEA, 100 k, 0805 (541-100KCCT-ND)
 *   R3     Vishay CRCW080568K0FKEA, 68 k, 0805 (541-68.0KCCT-ND)
 *   LED1   Wurth 150080GS75000, green 0805 (732-4983-1-ND)
 *
 * The 100 k / 68 k divider scales 5.25 V to about 2.13 V at GPIO1.
 * Firmware conversion: input5V = adcVolts * (100.0 + 68.0) / 68.0.
 *
 * POWER-SOURCE RULE:
 *   Normal enclosure operation: install the JP1 shunt.
 *   PC USB maintenance: remove the JP1 shunt before connecting J5.
 *   Never power the ESP32-S3 from enclosure 5 V and USB simultaneously.
 */
const leftPins = [
    "L_3V3_1",
    "L_3V3_2",
    "L_RST",
    "L_GPIO4",
    "L_GPIO5",
    "L_GPIO6",
    "L_GPIO7",
    "L_GPIO15",
    "L_GPIO16",
    "L_GPIO17",
    "L_GPIO18",
    "L_GPIO8",
    "L_GPIO3",
    "L_GPIO46",
    "L_GPIO9",
    "L_GPIO10",
    "L_GPIO11",
    "L_GPIO12",
    "L_GPIO13",
    "L_GPIO14",
    "L_5V",
    "L_GND",
];
const rightPins = [
    "R_GND_1",
    "R_GPIO43_TX",
    "R_GPIO44_RX",
    "R_GPIO1",
    "R_GPIO2",
    "R_GPIO42",
    "R_GPIO41",
    "R_GPIO40",
    "R_GPIO39",
    "R_GPIO38",
    "R_GPIO37_RESERVED",
    "R_GPIO36_RESERVED",
    "R_GPIO35_RESERVED",
    "R_GPIO0_BOOT",
    "R_GPIO45",
    "R_GPIO48",
    "R_GPIO47",
    "R_GPIO21",
    "R_GPIO20_USB_DP",
    "R_GPIO19_USB_DM",
    "R_GND_2",
    "R_GND_3",
];
// Avoid String.padStart() so editors using an older JavaScript library target
// do not report a false compatibility error.
const twoDigit = (value) => (value < 10 ? `0${value}` : `${value}`);
const leftTraceNames = leftPins.map((_, index) => `LEFT_IO_${twoDigit(index + 1)}`);
const rightTraceNames = rightPins.map((_, index) => `RIGHT_IO_${twoDigit(index + 1)}`);
/*
 * Each relocation trace is a short, direct horizontal connection.
 * pcbStraightLine prevents the autorouter from producing unnecessary
 * jogs or vias between the outer male headers and the ESP32 sockets.
 */
const leftTraces = leftPins.map((pin, index) => (jsxRuntime.jsx("trace", { name: leftTraceNames[index], from: `J1.${pin}`, to: `J2.${pin}`, width: "0.40mm", pcbStraightLine: true, maxViaCount: pin.includes("GND") ? 1 : 0 }, `L-${pin}`)));
const rightTraces = rightPins.map((pin, index) => (jsxRuntime.jsx("trace", { name: rightTraceNames[index], from: `J3.${pin}`, to: `J4.${pin}`, width: "0.40mm", pcbStraightLine: true, maxViaCount: pin.includes("GND") ? 1 : 0 }, `R-${pin}`)));
/*
 * Short, human-readable ESP32-S3 pin names for the two female
 * DevKit socket rows. Pin 1 is at the top of each vertical row.
 */
const j2SilkLabels = [
    "3V3",
    "3V3",
    "RST",
    "IO4",
    "IO5",
    "IO6",
    "IO7",
    "IO15",
    "IO16",
    "IO17",
    "IO18",
    "IO8",
    "IO3",
    "IO46",
    "IO9",
    "IO10",
    "IO11",
    "IO12",
    "IO13",
    "IO14",
    "5V",
    "GND",
];
const j3SilkLabels = [
    "GND",
    "TX0",
    "RX0",
    "IO1",
    "IO2",
    "IO42",
    "IO41",
    "IO40",
    "IO39",
    "IO38",
    "IO37*",
    "IO36*",
    "IO35*",
    "BOOT",
    "IO45",
    "IO48",
    "IO47",
    "IO21",
    "USB+",
    "USB-",
    "GND",
    "GND",
];
const espHeaderPinY = (index) => 26.67 - index * 2.54;
const j2PinSilk = j2SilkLabels.map((label, index) => (jsxRuntime.jsx("silkscreentext", { text: label, pcbX: -15.4, pcbY: espHeaderPinY(index), pcbRotation: 0, fontSize: "0.55mm" }, `J2-SILK-${index}`)));
const j3PinSilk = j3SilkLabels.map((label, index) => (jsxRuntime.jsx("silkscreentext", { text: label, pcbX: 15.4, pcbY: espHeaderPinY(index), pcbRotation: 0, fontSize: "0.55mm" }, `J3-SILK-${index}`)));
const makeThTestpointFootprint = () => (jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("platedhole", { portHints: ["pin1"], pcbX: "0mm", pcbY: "0mm", shape: "circle", holeDiameter: "1.02mm", outerDiameter: "2mm" }), jsxRuntime.jsx("courtyardcircle", { pcbX: "0mm", pcbY: "0mm", radius: "1.25mm" })] }));
/*
 * Accurate 3D model for the stock-length, upward-facing J1/J4 headers.
 *
 * PRPC022SAAN-RC dimensions:
 *   5.84 mm mating section above the 2.50 mm insulator
 *   3.05 mm solder post below the insulator
 *   11.39 mm overall contact length
 *
 * The black plastic carrier stays above the PCB, matching the orientation
 * of the female socket rows. The footprint and pin locations are unchanged.
 */
const makeUpwardStockMaleHeaderCadModel = () => {
    const pinCount = 22;
    const pitch = 2.54;
    const pinSize = 0.64;
    const bodyWidth = 2.54;
    const bodyHeight = 2.5;
    const matingLength = 5.84;
    const postLength = 3.05;
    const bodyLength = pinCount * pitch;
    const totalPinLength = postLength + bodyHeight + matingLength;
    const pinCenterZ = (-postLength + bodyHeight + matingLength) / 2;
    const firstPinX = -53.34 / 2;
    const pins = Array.from({ length: pinCount }, (_, index) => ({
        type: "colorize",
        color: [0.88, 0.66, 0.12],
        shape: {
            type: "translate",
            vector: [
                firstPinX + index * pitch,
                0,
                pinCenterZ,
            ],
            shape: {
                type: "cuboid",
                size: [
                    pinSize,
                    pinSize,
                    totalPinLength,
                ],
            },
        },
    }));
    return {
        jscad: {
            type: "union",
            shapes: [
                {
                    type: "colorize",
                    color: [0.05, 0.05, 0.05],
                    shape: {
                        type: "translate",
                        vector: [0, 0, bodyHeight / 2],
                        shape: {
                            type: "cuboid",
                            size: [
                                bodyLength,
                                bodyWidth,
                                bodyHeight,
                            ],
                        },
                    },
                },
                ...pins,
            ],
        },
        modelOriginPosition: {
            x: 0,
            y: 0,
            z: 0,
        },
        modelBounds: {
            min: {
                x: -bodyLength / 2,
                y: -bodyWidth / 2,
                z: -postLength,
            },
            max: {
                x: bodyLength / 2,
                y: bodyWidth / 2,
                z: bodyHeight + matingLength,
            },
        },
        size: {
            x: bodyLength,
            y: bodyWidth,
            z: totalPinLength,
        },
        modelBoardNormalDirection: "z+",
    };
};
const BayFinderCarrier = () => (jsxRuntime.jsxs("board", { name: "BF_CTRL_REVB", title: "BayFinder Control PCB Rev B", width: "150mm", height: "100mm", thickness: "1.6mm", layers: 2, material: "fr4", solderMaskColor: "black", silkscreenColor: "white", autorouter: { preset: "auto" }, defaultTraceWidth: "0.25mm", minTraceWidth: "0.20mm", minTraceToPadEdgeClearance: "0.20mm", minPadEdgeToPadEdgeClearance: "0.20mm", minViaEdgeToPadEdgeClearance: "0.20mm", minViaHoleEdgeToViaHoleEdgeClearance: "0.20mm", minPlatedHoleDrillEdgeToDrillEdgeClearance: "0.25mm", minBoardEdgeClearance: "0.35mm", schAutoLayoutEnabled: true, schTraceAutoLabelEnabled: true, pcbStyle: { silkscreenFontSize: 0.8 }, children: [jsxRuntime.jsx("schematicsheet", { name: "MAIN", displayName: "BayFinder Carrier Rev B" }), jsxRuntime.jsx("pinheader", { name: "J1", manufacturerPartNumber: "PRPC022SAAN-RC", pinCount: 22, pinLabels: leftPins, gender: "male", connectsFromAbove: true, footprint: "pinrow22_p2.54mm_id1.10mm_od1.80mm_male_invert_nopinlabels", cadModel: makeUpwardStockMaleHeaderCadModel(), pitch: "2.54mm", holeDiameter: "1.1mm", platedDiameter: "1.8mm", showSilkscreenPinLabels: false, pcbStyle: { silkscreenTextVisibility: "hidden" }, pcbX: -54, pcbY: 0, pcbRotation: -90 }), jsxRuntime.jsx("pinheader", { name: "J2", manufacturerPartNumber: "PPPC221LFBN-RC", pinCount: 22, pinLabels: leftPins, gender: "female", pitch: "2.54mm", holeDiameter: "1.1mm", platedDiameter: "1.8mm", showSilkscreenPinLabels: false, pcbStyle: { silkscreenTextVisibility: "hidden" }, pcbX: -11.43, pcbY: 0, pcbRotation: -90 }), jsxRuntime.jsx("pinheader", { name: "J3", manufacturerPartNumber: "PPPC221LFBN-RC", pinCount: 22, pinLabels: rightPins, gender: "female", pitch: "2.54mm", holeDiameter: "1.1mm", platedDiameter: "1.8mm", showSilkscreenPinLabels: false, pcbStyle: { silkscreenTextVisibility: "hidden" }, pcbX: 11.43, pcbY: 0, pcbRotation: -90 }), jsxRuntime.jsx("pinheader", { name: "J4", manufacturerPartNumber: "PRPC022SAAN-RC", pinCount: 22, pinLabels: rightPins, gender: "male", connectsFromAbove: true, footprint: "pinrow22_p2.54mm_id1.10mm_od1.80mm_male_invert_nopinlabels", cadModel: makeUpwardStockMaleHeaderCadModel(), pitch: "2.54mm", holeDiameter: "1.1mm", platedDiameter: "1.8mm", showSilkscreenPinLabels: false, pcbStyle: { silkscreenTextVisibility: "hidden" }, pcbX: 54, pcbY: 0, pcbRotation: -90 }), j2PinSilk, j3PinSilk, leftTraces, rightTraces, jsxRuntime.jsx("connector", { name: "J7", manufacturerPartNumber: "EDSTLZ950/2", pinLabels: {
                pin1: "VIN",
                pin2: "GND",
            }, pcbX: 36, pcbY: -31.5, pcbRotation: 0, allowOffBoard: true, footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_bottom", children: [jsxRuntime.jsx("platedhole", { portHints: ["pin1", "VIN"], pcbX: "-2.54mm", pcbY: "0mm", shape: "circle", holeDiameter: "1.4mm", outerDiameter: "2.4mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin2", "GND"], pcbX: "2.54mm", pcbY: "0mm", shape: "circle", holeDiameter: "1.4mm", outerDiameter: "2.4mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: "0mm", pcbY: "0mm", width: "10.5mm", height: "8mm", strokeWidth: "0.25mm" }), jsxRuntime.jsx("courtyardrect", { pcbX: "0mm", pcbY: "0mm", width: "11.5mm", height: "9mm" })] }) }), jsxRuntime.jsx("fuse", { name: "F1", manufacturerPartNumber: "0468001.NR", currentRating: "1A", voltageRating: "63V", footprint: "1206", pcbX: 26.5, pcbY: -32, pcbRotation: 180 }), jsxRuntime.jsx("diode", { name: "D1", manufacturerPartNumber: "B140HW-7", variant: "schottky", footprint: "sod123", pcbX: 21, pcbY: -32, pcbRotation: 180 }), jsxRuntime.jsx("diode", { name: "D2", manufacturerPartNumber: "SMF5.0A", variant: "tvs", footprint: "sod123", pcbX: 16, pcbY: -32, pcbRotation: 90 }), jsxRuntime.jsx("capacitor", { name: "C1", manufacturerPartNumber: "GRM31CR61A476ME15L", capacitance: "47uF", footprint: "1206", pcbX: 11, pcbY: -32 }), jsxRuntime.jsx("capacitor", { name: "C2", manufacturerPartNumber: "885012207098", capacitance: "0.1uF", footprint: "0805", pcbX: 7, pcbY: -32, pcbRotation: 180 }), jsxRuntime.jsx("trace", { name: "VIN_TO_F1", from: "J7.VIN", to: "F1.pin1", width: "0.80mm", pcbStraightLine: true, maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "F1_TO_D1", from: "F1.pin2", to: "D1.pin1", width: "0.80mm", pcbStraightLine: true, maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "J7_GND", from: "J7.GND", to: "net.GND", width: "0.80mm", maxViaCount: 1 }), jsxRuntime.jsx("trace", { name: "PROT_5V_TVS", from: "D1.pin2", to: "D2.pin1", width: "0.80mm", pcbPath: [
                { x: 1.65, y: 2.5 },
                { x: 5, y: 2.5 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "TVS_GND", from: "D2.pin2", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "PROT_5V_BULK", from: "D2.pin1", to: "C1.pin1", width: "0.60mm", pcbPath: [
                { x: -2.5, y: 0 },
                { x: -2.5, y: 6.46 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "C1_GND", from: "C1.pin2", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "PROT_5V_DECOUPLE", from: "C1.pin1", to: "C2.pin1", width: "0.60mm", pcbStraightLine: true, maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "C2_GND", from: "C2.pin2", to: "net.GND", width: "0.50mm" }), jsxRuntime.jsx("pinheader", { name: "JP1", manufacturerPartNumber: "PRPC002SAAN-RC", pinCount: 2, pinLabels: {
                pin1: "SYS",
                pin2: "ESP",
            }, gender: "male", pitch: "2.54mm", holeDiameter: "1.1mm", platedDiameter: "1.8mm", showSilkscreenPinLabels: false, pcbX: -20, pcbY: 30.5 }), jsxRuntime.jsx("trace", { name: "PWR_5V_SYS", from: "JP1.SYS", to: "D1.pin2", width: "0.80mm", pcbPathRelativeTo: "JP1.SYS", pcbPath: [
                { x: -1.27, y: 0 },
                { x: -1.27, y: 3.5 },
                {
                    x: -1.27,
                    y: 3.5,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: -1.27, y: 3.5 },
                { x: 31.5, y: 3.5 },
                { x: 31.5, y: 0.7 },
                { x: 50.5, y: 0.7 },
                { x: 50.5, y: -60.5 },
                { x: 39.35, y: -60.5 },
                {
                    x: 39.35,
                    y: -60.5,
                    via: true,
                    fromLayer: "bottom",
                    toLayer: "top",
                },
                { x: 39.35, y: -60.5 },
                { x: 39.35, y: -62.5 },
            ], maxViaCount: 2 }), jsxRuntime.jsx("trace", { name: "PWR_5V_ESP", from: "JP1.ESP", to: "J2.L_5V", width: "0.80mm", pcbPathRelativeTo: "JP1.ESP", pcbPath: [
                { x: 1.27, y: 0 },
                { x: 1.27, y: -2 },
                {
                    x: 1.27,
                    y: -2,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: 1.27, y: -2 },
                { x: 12, y: -2 },
                { x: 12, y: -54.63 },
                { x: 8.57, y: -54.63 },
            ], maxViaCount: 1 }), jsxRuntime.jsx("trace", { name: "ESP_GND_L", from: "J2.L_GND", to: "net.GND", width: "0.80mm" }), jsxRuntime.jsx("trace", { name: "ESP_GND_R1", from: "J3.R_GND_1", to: "net.GND", width: "0.80mm" }), jsxRuntime.jsx("trace", { name: "ESP_GND_R2", from: "J3.R_GND_2", to: "net.GND", width: "0.80mm" }), jsxRuntime.jsx("trace", { name: "ESP_GND_R3", from: "J3.R_GND_3", to: "net.GND", width: "0.80mm" }), jsxRuntime.jsx("connector", { name: "J5", manufacturerPartNumber: "61729-0010BLF", pinLabels: {
                pin1: "VBUS",
                pin2: "DM",
                pin3: "DP",
                pin4: "UGND",
                pin5: "SH1",
                pin6: "SH2",
            }, pcbX: -50, pcbY: -39.5, pcbRotation: 0, allowOffBoard: true, footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_bottom", children: [jsxRuntime.jsx("platedhole", { portHints: ["pin1", "VBUS"], pcbX: "-1.25mm", pcbY: "4.71mm", shape: "circle", holeDiameter: "1mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin2", "DM"], pcbX: "1.25mm", pcbY: "4.71mm", shape: "circle", holeDiameter: "1mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin3", "DP"], pcbX: "1.25mm", pcbY: "2.71mm", shape: "circle", holeDiameter: "1mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin4", "UGND"], pcbX: "-1.25mm", pcbY: "2.71mm", shape: "circle", holeDiameter: "1mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin5", "SH1"], pcbX: "-6.02mm", pcbY: "0mm", shape: "circle", holeDiameter: "2.3mm", outerDiameter: "3mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin6", "SH2"], pcbX: "6.02mm", pcbY: "0mm", shape: "circle", holeDiameter: "2.3mm", outerDiameter: "3mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: "0mm", pcbY: "-2.4mm", width: "12.2mm", height: "16mm", strokeWidth: "0.25mm" }), jsxRuntime.jsx("courtyardrect", { pcbX: "0mm", pcbY: "-2.4mm", width: "13.2mm", height: "17mm" })] }) }), jsxRuntime.jsx("fuse", { name: "F2", manufacturerPartNumber: "0468.500NR", currentRating: "0.5A", voltageRating: "63V", footprint: "1206", pcbX: -40, pcbY: -31.5 }), jsxRuntime.jsx("diode", { name: "D3", manufacturerPartNumber: "B140HW-7", variant: "schottky", footprint: "sod123", pcbX: -35, pcbY: -31.5 }), jsxRuntime.jsx("connector", { name: "J6", manufacturerPartNumber: "0676433910", pinLabels: {
                pin1: "U5V",
                pin2: "DM",
                pin3: "DP",
                pin4: "UGND",
                pin5: "SH1",
                pin6: "SH2",
            }, pcbX: -22, pcbY: -39.5, pcbRotation: 180, allowOffBoard: true, footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_top", children: [jsxRuntime.jsx("platedhole", { portHints: ["pin1", "U5V"], pcbX: "3.5mm", pcbY: "-2.71mm", shape: "circle", holeDiameter: "0.95mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin2", "DM"], pcbX: "1mm", pcbY: "-2.71mm", shape: "circle", holeDiameter: "0.95mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin3", "DP"], pcbX: "-1mm", pcbY: "-2.71mm", shape: "circle", holeDiameter: "0.95mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin4", "UGND"], pcbX: "-3.5mm", pcbY: "-2.71mm", shape: "circle", holeDiameter: "0.95mm", outerDiameter: "1.8mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin5", "SH1"], pcbX: "6.57mm", pcbY: "0mm", shape: "circle", holeDiameter: "2.3mm", outerDiameter: "3.2mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin6", "SH2"], pcbX: "-6.57mm", pcbY: "0mm", shape: "circle", holeDiameter: "2.3mm", outerDiameter: "3.2mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: "0mm", pcbY: "2.65mm", width: "16mm", height: "15.26mm", strokeWidth: "0.25mm" }), jsxRuntime.jsx("courtyardrect", { pcbX: "0mm", pcbY: "2.65mm", width: "16.5mm", height: "16.26mm" })] }) }), jsxRuntime.jsx("trace", { name: "USB_VBUS_IN", from: "J5.VBUS", to: "F2.pin1", width: "0.40mm", pcbPathRelativeTo: "J5.VBUS", pcbPath: [
                { x: -1.25, y: 4.71 },
                { x: -1.25, y: 8 },
                { x: 8.5375, y: 8 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "USB_VBUS_FUSED", from: "F2.pin2", to: "D3.pin1", width: "0.60mm", pcbStraightLine: true, maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "USB_VBUS_OUT", from: "D3.pin2", to: "J6.U5V", width: "0.60mm", pcbPathRelativeTo: "D3.pin2", pcbPath: [
                { x: 1.65, y: 0 },
                { x: 3, y: 0 },
                {
                    x: 3,
                    y: 0,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: 3, y: 0 },
                { x: 9.5, y: 0 },
                { x: 9.5, y: -5.29 },
            ], maxViaCount: 1 }), jsxRuntime.jsx("trace", { name: "USB_DM", from: "J5.DM", to: "J6.DM", width: "0.25mm", pcbPathRelativeTo: "J5.DM", pcbPath: [
                { x: 1.25, y: 4.71 },
                { x: 11, y: 4.71 },
                { x: 11, y: -2.5 },
                { x: 27, y: -2.5 },
                { x: 27, y: 2.71 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "USB_DP", from: "J5.DP", to: "J6.DP", width: "0.25mm", pcbPathRelativeTo: "J5.DP", pcbPath: [
                { x: 1.25, y: 2.71 },
                { x: 9, y: 2.71 },
                { x: 9, y: -3.5 },
                { x: 29, y: -3.5 },
                { x: 29, y: 2.71 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "USB_GND_IN", from: "J5.UGND", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "USB_IN_SHIELD_1", from: "J5.SH1", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "USB_IN_SHIELD_2", from: "J5.SH2", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "USB_GND_OUT", from: "J6.UGND", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "USB_SHIELD_1", from: "J6.SH1", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("trace", { name: "USB_SHIELD_2", from: "J6.SH2", to: "net.GND", width: "0.60mm" }), jsxRuntime.jsx("pinheader", { name: "J8", manufacturerPartNumber: "PPPC061LGBN-RC", pinCount: 6, pinLabels: [
                "VIN",
                "3VO",
                "GND",
                "RST",
                "SCL",
                "SDA",
            ], gender: "female", rightAngle: true, pitch: "2.54mm", holeDiameter: "1.1mm", platedDiameter: "1.8mm", showSilkscreenPinLabels: false, pcbX: -45, pcbY: 31, pcbRotation: 0 }), jsxRuntime.jsx("trace", { name: "OLED_3V3", from: "J8.VIN", to: "J1.L_3V3_1", width: "0.40mm", pcbPathRelativeTo: "J8.VIN", pcbPath: [
                { x: -6.35, y: 0 },
                { x: -9, y: 0 },
                { x: -9, y: -4.33 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "OLED_3VO_TEST", from: "J8.3VO", to: "TP5.pin1", width: "0.30mm", pcbPathRelativeTo: "J8.3VO", pcbPath: [
                { x: -3.81, y: 0 },
                { x: -3.81, y: 3.5 },
                { x: 9, y: 3.5 },
                { x: 9, y: 1.5 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "OLED_GND", from: "J8.GND", to: "net.GND", width: "0.40mm" }), jsxRuntime.jsx("trace", { name: "OLED_RST", from: "J8.RST", to: "J1.L_RST", width: "0.20mm", pcbPathRelativeTo: "J8.RST", pcbPath: [
                { x: 1.27, y: -1.2 },
                {
                    x: 1.27,
                    y: -1.2,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: 1.27, y: -1.2 },
                { x: 1.27, y: -4 },
                { x: -7.5, y: -4 },
                { x: -7.5, y: -9.41 },
            ], maxViaCount: 1 }), jsxRuntime.jsx("trace", { name: "OLED_SCL", from: "J8.SCL", to: "J1.L_GPIO4", width: "0.20mm", pcbPathRelativeTo: "J8.SCL", pcbPath: [
                { x: 3.81, y: -1.2 },
                {
                    x: 3.81,
                    y: -1.2,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: 3.81, y: -1.2 },
                { x: 3.81, y: -5.5 },
                { x: -6, y: -5.5 },
                { x: -6, y: -11.95 },
            ], maxViaCount: 1 }), jsxRuntime.jsx("trace", { name: "OLED_SDA", from: "J8.SDA", to: "J1.L_GPIO5", width: "0.20mm", pcbPathRelativeTo: "J8.SDA", pcbPath: [
                { x: 6.35, y: -1.2 },
                {
                    x: 6.35,
                    y: -1.2,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: 6.35, y: -1.2 },
                { x: 6.35, y: -7 },
                { x: -4.5, y: -7 },
                { x: -4.5, y: -14.49 },
            ], maxViaCount: 1 }), jsxRuntime.jsx("silkscreenrect", { pcbX: -45, pcbY: 31, width: "16mm", height: "5mm", strokeWidth: "0.25mm" }), jsxRuntime.jsx("silkscreentext", { text: "DS1 OLED", pcbX: -45, pcbY: 27.8, pcbRotation: 0, fontSize: "0.8mm" }), jsxRuntime.jsx("resistor", { name: "R2", manufacturerPartNumber: "CRCW0805100KFKEA", resistance: "100k", footprint: "0805", pcbX: 31, pcbY: 30.5 }), jsxRuntime.jsx("resistor", { name: "R3", manufacturerPartNumber: "CRCW080568K0FKEA", resistance: "68k", footprint: "0805", pcbX: 35, pcbY: 30.5 }), jsxRuntime.jsx("capacitor", { name: "C3", manufacturerPartNumber: "885012207098", capacitance: "0.1uF", footprint: "0805", pcbX: 39, pcbY: 30.5 }), jsxRuntime.jsx("trace", { name: "VSNS_FEED", from: "TP1.pin1", to: "R2.pin1", width: "0.30mm", pcbPathRelativeTo: "TP1.pin1", pcbPath: [
                { x: 0, y: 0 },
                { x: 6, y: 0 },
                { x: 6, y: -7.5 },
                { x: 10.0875, y: -7.5 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "VSNS_DIV", from: "R2.pin2", to: "R3.pin1", width: "0.25mm", pcbStraightLine: true, maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "VSNS_FILTER", from: "R3.pin1", to: "C3.pin1", width: "0.25mm", pcbPathRelativeTo: "R3.pin1", pcbPath: [
                { x: -0.9125, y: 0 },
                { x: -0.9125, y: -2 },
                { x: 3.0875, y: -2 },
                { x: 3.0875, y: 0 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "VSNS_ADC", from: "C3.pin1", to: "J4.R_GPIO1", width: "0.25mm", pcbPathRelativeTo: "C3.pin1", pcbPath: [
                { x: -0.9125, y: 0 },
                { x: -0.9125, y: -2 },
                { x: 2.5, y: -2 },
                {
                    x: 2.5,
                    y: -2,
                    via: true,
                    fromLayer: "top",
                    toLayer: "bottom",
                },
                { x: 2.5, y: -2 },
                { x: 2.5, y: -11.45 },
                { x: 15, y: -11.45 },
            ], maxViaCount: 1 }), jsxRuntime.jsx("trace", { name: "VSNS_R_GND", from: "R3.pin2", to: "net.GND", width: "0.35mm" }), jsxRuntime.jsx("trace", { name: "VSNS_C_GND", from: "C3.pin2", to: "net.GND", width: "0.35mm" }), jsxRuntime.jsx("resistor", { name: "R1", manufacturerPartNumber: "CRCW08051K00FKEA", resistance: "1k", footprint: "0805", pcbX: 23, pcbY: -28 }), jsxRuntime.jsx("led", { name: "IND", manufacturerPartNumber: "150080GS75000", color: "green", footprint: "led0805", pcbX: 27, pcbY: -28 }), jsxRuntime.jsx("trace", { name: "PWR_LED_FEED", from: "R1.pin1", to: "D1.pin2", width: "0.25mm", pcbPathRelativeTo: "R1.pin1", pcbPath: [
                { x: -0.9125, y: 0 },
                { x: -3.65, y: 0 },
                { x: -3.65, y: -4 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "PWR_LED_SERIES", from: "R1.pin2", to: "IND.pin1", width: "0.35mm", pcbStraightLine: true, maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "PWR_LED_GND", from: "IND.pin2", to: "net.GND", width: "0.35mm" }), jsxRuntime.jsx("testpoint", { name: "TP1", manufacturerPartNumber: "5000", footprint: makeThTestpointFootprint(), pcbX: 20, pcbY: 38 }), jsxRuntime.jsx("testpoint", { name: "TP2", manufacturerPartNumber: "5000", footprint: makeThTestpointFootprint(), pcbX: -14.5, pcbY: 32 }), jsxRuntime.jsx("testpoint", { name: "TP4", manufacturerPartNumber: "5000", footprint: makeThTestpointFootprint(), pcbX: 4, pcbY: -29.5 }), jsxRuntime.jsx("testpoint", { name: "TP5", manufacturerPartNumber: "5000", footprint: makeThTestpointFootprint(), pcbX: -34.5, pcbY: 32.5 }), jsxRuntime.jsx("trace", { name: "TP_5V", from: "JP1.SYS", to: "TP1.pin1", width: "0.50mm", pcbPathRelativeTo: "JP1.SYS", pcbPath: [
                { x: -1.27, y: 0 },
                { x: -1.27, y: 7.5 },
                { x: 40, y: 7.5 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "TP_3V3", from: "TP2.pin1", to: "J2.L_3V3_1", width: "0.40mm", pcbPathRelativeTo: "TP2.pin1", pcbPath: [
                { x: 0, y: 0 },
                { x: 3.07, y: 0 },
                { x: 3.07, y: -5.33 },
            ], maxViaCount: 0 }), jsxRuntime.jsx("trace", { name: "TP_GND", from: "TP4.pin1", to: "net.GND", width: "0.50mm" }), jsxRuntime.jsx("chip", { name: "H1", noSchematicRepresentation: true, pcbX: -71, pcbY: 46, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "3.2mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 3.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "H2", noSchematicRepresentation: true, pcbX: 71, pcbY: 46, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "3.2mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 3.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "H3", noSchematicRepresentation: true, pcbX: -71, pcbY: -46, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "3.2mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 3.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "H4", noSchematicRepresentation: true, pcbX: 71, pcbY: -46, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "3.2mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 3.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "DIN_L1", noSchematicRepresentation: true, pcbX: -67, pcbY: 15, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "4mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 4.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "DIN_L2", noSchematicRepresentation: true, pcbX: -67, pcbY: -15, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "4mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 4.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "DIN_R1", noSchematicRepresentation: true, pcbX: 67, pcbY: 15, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "4mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 4.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("chip", { name: "DIN_R2", noSchematicRepresentation: true, pcbX: 67, pcbY: -15, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { diameter: "4mm", pcbX: 0, pcbY: 0 }), jsxRuntime.jsx("courtyardcircle", { pcbX: 0, pcbY: 0, radius: 4.5, strokeWidth: 0.1 })] }) }), jsxRuntime.jsx("silkscreenrect", { pcbX: -67, pcbY: 0, width: "10.1mm", height: "45.7mm", strokeWidth: "0.25mm", layer: "bottom" }), jsxRuntime.jsx("silkscreenrect", { pcbX: 67, pcbY: 0, width: "10.1mm", height: "45.7mm", strokeWidth: "0.25mm", layer: "bottom" }), jsxRuntime.jsx("silkscreentext", { text: "DIN CLIP 30 C-C", pcbX: -60.5, pcbY: 0, pcbRotation: 90, fontSize: "0.7mm", layer: "bottom" }), jsxRuntime.jsx("silkscreentext", { text: "DIN CLIP 30 C-C", pcbX: 60.5, pcbY: 0, pcbRotation: 90, fontSize: "0.7mm", layer: "bottom" }), jsxRuntime.jsx("silkscreenrect", { pcbX: 0, pcbY: 31, width: "18mm", height: "10mm", strokeWidth: "0.25mm" }), jsxRuntime.jsx("copperpour", { name: "GND_BOTTOM", layer: "bottom", connectsTo: "net.GND", unbroken: true, clearance: "0.25mm", padMargin: "0.25mm", traceMargin: "0.25mm", boardEdgeMargin: "0.50mm", cutoutMargin: "0.30mm", useThermalReliefs: true, coveredWithSolderMask: true }), jsxRuntime.jsx("copperpour", { name: "GND_TOP", layer: "top", connectsTo: "net.GND", clearance: "0.25mm", padMargin: "0.25mm", traceMargin: "0.25mm", boardEdgeMargin: "0.50mm", cutoutMargin: "0.30mm", useThermalReliefs: true, coveredWithSolderMask: true }), jsxRuntime.jsx("silkscreentext", { text: "BAYFINDER V1 CARRIER PCB", pcbX: 0, pcbY: 48, fontSize: "1.4mm" }), jsxRuntime.jsx("silkscreentext", { text: "REV B", pcbX: 65, pcbY: 48, fontSize: "1.5mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: 0, pcbY: 0, width: "25.4mm", height: "62.74mm", strokeWidth: "0.25mm" }), jsxRuntime.jsx("silkscreentext", { text: "ESP32-S3", pcbX: 0, pcbY: 0, pcbRotation: -90, fontSize: "2.5mm" }), jsxRuntime.jsx("silkscreentext", { text: "OUT", pcbX: -57.2, pcbY: 0, pcbRotation: 90 }), jsxRuntime.jsx("silkscreentext", { text: "OUT", pcbX: 57.2, pcbY: 0, pcbRotation: 90 }), jsxRuntime.jsx("silkscreentext", { text: "J5 PC USB-B", pcbX: -50, pcbY: -30.5 }), jsxRuntime.jsx("silkscreentext", { text: "J6 ESP USB-A", pcbX: -22, pcbY: -30.5 }), jsxRuntime.jsx("silkscreentext", { text: "5V IN", pcbX: 36, pcbY: -28.5 }), jsxRuntime.jsx("silkscreentext", { text: "PWR", pcbX: 25, pcbY: -25.8 }), jsxRuntime.jsx("silkscreentext", { text: "OLED RA", pcbX: -45, pcbY: 34, fontSize: "0.7mm" }), jsxRuntime.jsx("silkscreentext", { text: "JP1 RUN=ON", pcbX: -20, pcbY: 34.5, fontSize: "0.65mm" }), jsxRuntime.jsx("silkscreentext", { text: "PC USB=OFF", pcbX: -20, pcbY: 27.5, fontSize: "0.65mm" }), jsxRuntime.jsx("silkscreentext", { text: "5V MON", pcbX: 35, pcbY: 27.8, fontSize: "0.7mm" }), jsxRuntime.jsx("silkscreentext", { text: "5V", pcbX: 20, pcbY: 40.5, fontSize: "0.7mm" }), jsxRuntime.jsx("silkscreentext", { text: "3V3", pcbX: -14.5, pcbY: 29.8, fontSize: "0.7mm" }), jsxRuntime.jsx("silkscreentext", { text: "GND", pcbX: 4, pcbY: -31.5, fontSize: "0.7mm" }), jsxRuntime.jsx("silkscreentext", { text: "O3V", pcbX: -34.5, pcbY: 30.2, fontSize: "0.7mm" }), jsxRuntime.jsx("silkscreentext", { text: "5V", pcbX: -25.5, pcbY: -34.6, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "D-", pcbX: -23, pcbY: -34.6, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "D+", pcbX: -21, pcbY: -34.6, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "G", pcbX: -18.5, pcbY: -34.6, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "ANT ZONE", pcbX: 0, pcbY: 37, fontSize: "0.7mm" })] }));

module.exports = BayFinderCarrier;