gokul/cm4-media-carrier

A tscircuit package created by gokul.

Version
0.1.0
License
unset
Stars
0

dist/index.cjs

'use strict';

var jsxRuntime = require('react/jsx-runtime');
var capacityAutorouter = require('@tscircuit/capacity-autorouter');
var socketModel = require('././assets/socket-4b89831e.glb');
require('tscircuit');
var usbModel = require('././assets/micro-b-83bece7f.glb');
var hdmiModel = require('././assets/hdmi-894abd78.glb');
var ledModel = require('././assets/led-631ab754.glb');

/** Restrict this routing phase to the outer copper layers; the physical board stays four-layer. */
async function routeOuterLayers(input) {
    console.log("Routing low-speed wiring with tscircuit on outer layers", input.layerCount);
    if (input.connections.some(connection => connection.pointsToConnect.some(point => "layer" in point ? point.layer !== "top" : !point.layers.includes("top"))))
        throw new Error("Outer-layer routing requires top-layer terminals");
    const routingInput = {
        ...input,
        layerCount: 2,
        minTraceToHoleEdgeClearance: Math.max(0.35, input.minTraceToHoleEdgeClearance ?? 0),
        allowBlindAndBuriedVias: false,
        obstacles: input.obstacles.map(obstacle => ({
            ...obstacle, layers: obstacle.layers.filter(layer => layer === "top" || layer === "bottom"),
        })).filter(obstacle => obstacle.layers.length > 0),
        traces: input.traces,
    };
    const solver = new capacityAutorouter.AutoroutingPipelineSolver(routingInput);
    const handlers = new Map();
    let stopped = false;
    let steps = 0;
    const emit = (name, event) => {
        for (const handler of handlers.get(name) ?? [])
            handler(event);
    };
    const tick = () => {
        if (stopped)
            return;
        try {
            const until = Date.now() + 20;
            while (!solver.solved && !solver.failed && Date.now() < until)
                solver.step();
            if (solver.failed)
                throw new Error(solver.error ?? "Outer-layer autorouting failed");
            if (solver.solved) {
                const traces = solver.getOutputSimplifiedPcbTraces();
                if (traces.some(trace => trace.route.some(point => point.route_type === "wire"
                    ? point.layer !== "top" && point.layer !== "bottom"
                    : point.route_type !== "via" || !["top", "bottom"].includes(point.from_layer) || !["top", "bottom"].includes(point.to_layer))))
                    throw new Error("Outer-layer router emitted a forbidden layer transition");
                emit("complete", { traces });
                return;
            }
            emit("progress", { progress: solver.progress, steps: ++steps });
            setTimeout(tick, 0);
        }
        catch (error) {
            emit("error", { error: error instanceof Error ? error : new Error(String(error)) });
        }
    };
    return {
        on(name, handler) {
            const list = handlers.get(name) ?? [];
            list.push(handler);
            handlers.set(name, list);
        },
        start() { setTimeout(tick, 0); },
        stop() { stopped = true; },
    };
}

/** Short, parallel through-via feeds into the solid L3 power and L2 ground planes. */
function PowerConnections() {
    const cm4 = [77, 79, 81, 83, 85, 87].map((pin, index) => ({
        name: `V5_CM4_${pin}`, net: "V5", port: `.J_CM4A > .pin${pin}`,
        pad: { x: -18.5, y: 0.1 - index * 0.4 }, via: { x: index % 2 ? -20.1 : -19.3, y: 0.1 - index * 0.4 }, width: 0.15,
    }));
    const usb = [
        { port: "VBUS1", net: "V5", x: 24.8258552, y: 26.4001603 },
        { port: "VBUS2", net: "V5", x: 24.8260203, y: 21.6000429 },
        { port: "GND1", net: "GND", x: 24.8259568, y: 20.8000445 },
        { port: "GND2", net: "GND", x: 24.8258552, y: 27.2000063 },
    ].flatMap(p => [0, 1].map(i => ({ name: `FEED_${p.port}_${i}`, net: p.net, port: `.J_USB > .${p.port}`, pad: { x: p.x, y: p.y }, via: { x: 26.6 - i * .8, y: p.y }, width: 0.3 })));
    const reference = [68, 74, 80, 86, 92].map((pin, index) => ({
        name: `GND_HDMI_${pin}`, net: "GND", port: `.J_CM4B > .pin${pin}`,
        pad: { x: 18.5, y: 2.1 - index * 1.2 }, via: { x: 19.3, y: 2.1 - index * 1.2 }, width: 0.1,
    }));
    return jsxRuntime.jsx(jsxRuntime.Fragment, { children: [...cm4, ...usb, ...reference].map(p => jsxRuntime.jsxs("group", { pcbRelative: true, children: [jsxRuntime.jsx("via", { name: p.name, pcbX: p.via.x, pcbY: p.via.y, fromLayer: "top", toLayer: "bottom", outerDiameter: 0.45, holeDiameter: 0.2, connectsTo: `net.${p.net}`, tented: true }), jsxRuntime.jsx("trace", { name: `${p.name}_FEED`, from: p.port, to: `.${p.name} > .top`, thickness: p.width, pcbPath: [p.port, `.${p.name} > .top`] })] }, p.name)) });
}

/** Offset each straight segment and intersect neighboring offset lines. */
function offsetPath(points, distance) {
    const normals = points.slice(1).map((point, index) => {
        const previous = points[index];
        const length = Math.hypot(point.x - previous.x, point.y - previous.y);
        return { x: -(point.y - previous.y) / length, y: (point.x - previous.x) / length };
    });
    return points.map((point, index) => {
        const before = normals[Math.max(0, index - 1)];
        const after = normals[Math.min(normals.length - 1, index)];
        const scale = distance / (1 + before.x * after.x + before.y * after.y);
        return { x: point.x + (before.x + after.x) * scale, y: point.y + (before.y + after.y) * scale };
    });
}
function hdmiPath(pairIndex, positive) {
    const sourceCenterY = 1.5 - 1.2 * pairIndex;
    const targetCenterY = 3 - 1.5 * pairIndex;
    const sign = positive ? 1 : -1;
    const centerline = [
        { x: 18.5, y: sourceCenterY },
        { x: 20, y: sourceCenterY },
        { x: 20 + targetCenterY - sourceCenterY, y: targetCenterY },
        { x: 22.5, y: targetCenterY },
    ];
    return [
        { x: 18.5, y: sourceCenterY + sign * 0.2 },
        ...offsetPath(centerline, sign * (0.1041 + 0.1501) / 2),
        { x: 23, y: targetCenterY + sign * 0.5 },
        { x: 24.27, y: targetCenterY + sign * 0.5 },
    ];
}
function usbPath(positive) {
    // Both terminal pairs face left in the same P/N order.
    const sign = positive ? 1 : -1;
    const centerline = [
        { x: 15.42, y: 14.7 },
        { x: 14, y: 14.7 },
        { x: 8.375, y: 20.325 },
        { x: -28.89, y: 20.325 },
    ];
    return [
        { x: 15.42, y: 14.7 - sign * 0.2 },
        ...offsetPath(centerline, sign * (0.1356 + 0.1501) / 2),
        { x: -29.49, y: 20.325 - sign * 0.325 },
        { x: -30.17, y: 20.325 - sign * 0.325 },
    ];
}
const highSpeedTracePaths = [
    ...["HDMI_D2", "HDMI_D1", "HDMI_D0", "HDMI_CLK"].flatMap((name, index) => [true, false].map(positive => ({
        connection: `.J_CM4B > .pin${[70, 76, 82, 88][index] + (positive ? 0 : 2)}`,
        route: hdmiPath(index, positive).map(point => ({
            ...point, route_type: "wire", layer: "top", width: 0.1041,
        })),
    }))),
    ...[true, false].map(positive => ({
        connection: `.J_CM4B > .pin${positive ? 5 : 3}`,
        route: usbPath(positive).map(point => ({
            ...point, route_type: "wire", layer: "top", width: 0.1356,
        })),
    })),
];

const SocketA = (props) => (jsxRuntime.jsx("connector", { cadModel: { glbUrl: socketModel, modelUnitToMmScale: 1, modelOriginPosition: { x: 0, y: 0, z: 0 }, modelBounds: { min: { x: -1.69, y: -11.3, z: -0.05 }, max: { x: 1.69, y: 11.3, z: 1.4 } } }, manufacturerPartNumber: "DF40C-100DS-0.4V(51)", pinLabels: Object.fromEntries(Array.from({ length: 100 }, (_, i) => [`pin${i + 1}`, [`P${i + 1}`]])), pinAttributes: Object.fromEntries(Array.from({ length: 100 }, (_, i) => [`pin${i + 1}`, { isPassive: true }])), footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_above", children: [jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["1"], pcbX: -1.54, pcbY: 9.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["2"], pcbX: 1.540, pcbY: 9.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["3"], pcbX: -1.54, pcbY: 9.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["4"], pcbX: 1.540, pcbY: 9.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["5"], pcbX: -1.54, pcbY: 9.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["6"], pcbX: 1.540, pcbY: 9.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["7"], pcbX: -1.54, pcbY: 8.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["8"], pcbX: 1.540, pcbY: 8.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["9"], pcbX: -1.54, pcbY: 8.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["10"], pcbX: 1.540, pcbY: 8.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["11"], pcbX: -1.54, pcbY: 7.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["12"], pcbX: 1.540, pcbY: 7.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["13"], pcbX: -1.54, pcbY: 7.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["14"], pcbX: 1.540, pcbY: 7.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["15"], pcbX: -1.54, pcbY: 7.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["16"], pcbX: 1.540, pcbY: 7.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["17"], pcbX: -1.54, pcbY: 6.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["18"], pcbX: 1.540, pcbY: 6.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["19"], pcbX: -1.54, pcbY: 6.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["20"], pcbX: 1.540, pcbY: 6.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["21"], pcbX: -1.54, pcbY: 5.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["22"], pcbX: 1.540, pcbY: 5.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["23"], pcbX: -1.54, pcbY: 5.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["24"], pcbX: 1.540, pcbY: 5.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["25"], pcbX: -1.54, pcbY: 5.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["26"], pcbX: 1.540, pcbY: 5.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["27"], pcbX: -1.54, pcbY: 4.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["28"], pcbX: 1.540, pcbY: 4.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["29"], pcbX: -1.54, pcbY: 4.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["30"], pcbX: 1.540, pcbY: 4.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["31"], pcbX: -1.54, pcbY: 3.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["32"], pcbX: 1.540, pcbY: 3.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["33"], pcbX: -1.54, pcbY: 3.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["34"], pcbX: 1.540, pcbY: 3.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["35"], pcbX: -1.54, pcbY: 3.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["36"], pcbX: 1.540, pcbY: 3.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["37"], pcbX: -1.54, pcbY: 2.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["38"], pcbX: 1.540, pcbY: 2.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["39"], pcbX: -1.54, pcbY: 2.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["40"], pcbX: 1.540, pcbY: 2.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["41"], pcbX: -1.54, pcbY: 1.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["42"], pcbX: 1.540, pcbY: 1.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["43"], pcbX: -1.54, pcbY: 1.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["44"], pcbX: 1.540, pcbY: 1.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["45"], pcbX: -1.54, pcbY: 1.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["46"], pcbX: 1.540, pcbY: 1.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["47"], pcbX: -1.54, pcbY: 0.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["48"], pcbX: 1.540, pcbY: 0.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["49"], pcbX: -1.54, pcbY: 0.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["50"], pcbX: 1.540, pcbY: 0.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["51"], pcbX: -1.54, pcbY: -0.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["52"], pcbX: 1.540, pcbY: -0.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["53"], pcbX: -1.54, pcbY: -0.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["54"], pcbX: 1.540, pcbY: -0.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["55"], pcbX: -1.54, pcbY: -1, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["56"], pcbX: 1.540, pcbY: -1, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["57"], pcbX: -1.54, pcbY: -1.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["58"], pcbX: 1.540, pcbY: -1.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["59"], pcbX: -1.54, pcbY: -1.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["60"], pcbX: 1.540, pcbY: -1.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["61"], pcbX: -1.54, pcbY: -2.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["62"], pcbX: 1.540, pcbY: -2.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["63"], pcbX: -1.54, pcbY: -2.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["64"], pcbX: 1.540, pcbY: -2.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["65"], pcbX: -1.54, pcbY: -3, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["66"], pcbX: 1.540, pcbY: -3, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["67"], pcbX: -1.54, pcbY: -3.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["68"], pcbX: 1.540, pcbY: -3.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["69"], pcbX: -1.54, pcbY: -3.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["70"], pcbX: 1.540, pcbY: -3.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["71"], pcbX: -1.54, pcbY: -4.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["72"], pcbX: 1.540, pcbY: -4.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["73"], pcbX: -1.54, pcbY: -4.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["74"], pcbX: 1.540, pcbY: -4.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["75"], pcbX: -1.54, pcbY: -5, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["76"], pcbX: 1.540, pcbY: -5, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["77"], pcbX: -1.54, pcbY: -5.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["78"], pcbX: 1.540, pcbY: -5.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["79"], pcbX: -1.54, pcbY: -5.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["80"], pcbX: 1.540, pcbY: -5.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["81"], pcbX: -1.54, pcbY: -6.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["82"], pcbX: 1.540, pcbY: -6.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["83"], pcbX: -1.54, pcbY: -6.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["84"], pcbX: 1.540, pcbY: -6.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["85"], pcbX: -1.54, pcbY: -7, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["86"], pcbX: 1.540, pcbY: -7, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["87"], pcbX: -1.54, pcbY: -7.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["88"], pcbX: 1.540, pcbY: -7.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["89"], pcbX: -1.54, pcbY: -7.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["90"], pcbX: 1.540, pcbY: -7.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["91"], pcbX: -1.54, pcbY: -8.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["92"], pcbX: 1.540, pcbY: -8.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["93"], pcbX: -1.54, pcbY: -8.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["94"], pcbX: 1.540, pcbY: -8.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["95"], pcbX: -1.54, pcbY: -9, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["96"], pcbX: 1.540, pcbY: -9, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["97"], pcbX: -1.54, pcbY: -9.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["98"], pcbX: 1.540, pcbY: -9.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["99"], pcbX: -1.54, pcbY: -9.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["100"], pcbX: 1.540, pcbY: -9.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ x: -1.89, y: 11.4 }, { x: 1.89, y: 11.4 }, { x: 1.89, y: -11.4 }, { x: -1.89, y: -11.4 }], layer: "top" })] }), ...props }));

const SocketB = (props) => (jsxRuntime.jsx("connector", { cadModel: { glbUrl: socketModel, modelUnitToMmScale: 1, modelOriginPosition: { x: 0, y: 0, z: 0 }, modelBounds: { min: { x: -1.69, y: -11.3, z: -0.05 }, max: { x: 1.69, y: 11.3, z: 1.4 } } }, manufacturerPartNumber: "DF40C-100DS-0.4V(51)", pinLabels: Object.fromEntries(Array.from({ length: 100 }, (_, i) => [`pin${i + 1}`, [`P${i + 1}`]])), pinAttributes: Object.fromEntries(Array.from({ length: 100 }, (_, i) => [`pin${i + 1}`, { isPassive: true }])), footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_above", children: [jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["1"], pcbX: -1.54, pcbY: 9.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["2"], pcbX: 1.540, pcbY: 9.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["3"], pcbX: -1.54, pcbY: 9.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["4"], pcbX: 1.540, pcbY: 9.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["5"], pcbX: -1.54, pcbY: 9.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["6"], pcbX: 1.540, pcbY: 9.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["7"], pcbX: -1.54, pcbY: 8.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["8"], pcbX: 1.540, pcbY: 8.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["9"], pcbX: -1.54, pcbY: 8.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["10"], pcbX: 1.540, pcbY: 8.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["11"], pcbX: -1.54, pcbY: 7.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["12"], pcbX: 1.540, pcbY: 7.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["13"], pcbX: -1.54, pcbY: 7.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["14"], pcbX: 1.540, pcbY: 7.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["15"], pcbX: -1.54, pcbY: 7.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["16"], pcbX: 1.540, pcbY: 7.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["17"], pcbX: -1.54, pcbY: 6.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["18"], pcbX: 1.540, pcbY: 6.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["19"], pcbX: -1.54, pcbY: 6.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["20"], pcbX: 1.540, pcbY: 6.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["21"], pcbX: -1.54, pcbY: 5.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["22"], pcbX: 1.540, pcbY: 5.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["23"], pcbX: -1.54, pcbY: 5.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["24"], pcbX: 1.540, pcbY: 5.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["25"], pcbX: -1.54, pcbY: 5.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["26"], pcbX: 1.540, pcbY: 5.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["27"], pcbX: -1.54, pcbY: 4.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["28"], pcbX: 1.540, pcbY: 4.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["29"], pcbX: -1.54, pcbY: 4.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["30"], pcbX: 1.540, pcbY: 4.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["31"], pcbX: -1.54, pcbY: 3.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["32"], pcbX: 1.540, pcbY: 3.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["33"], pcbX: -1.54, pcbY: 3.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["34"], pcbX: 1.540, pcbY: 3.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["35"], pcbX: -1.54, pcbY: 3.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["36"], pcbX: 1.540, pcbY: 3.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["37"], pcbX: -1.54, pcbY: 2.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["38"], pcbX: 1.540, pcbY: 2.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["39"], pcbX: -1.54, pcbY: 2.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["40"], pcbX: 1.540, pcbY: 2.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["41"], pcbX: -1.54, pcbY: 1.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["42"], pcbX: 1.540, pcbY: 1.800, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["43"], pcbX: -1.54, pcbY: 1.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["44"], pcbX: 1.540, pcbY: 1.400, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["45"], pcbX: -1.54, pcbY: 1.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["46"], pcbX: 1.540, pcbY: 1.000, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["47"], pcbX: -1.54, pcbY: 0.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["48"], pcbX: 1.540, pcbY: 0.600, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["49"], pcbX: -1.54, pcbY: 0.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["50"], pcbX: 1.540, pcbY: 0.200, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["51"], pcbX: -1.54, pcbY: -0.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["52"], pcbX: 1.540, pcbY: -0.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["53"], pcbX: -1.54, pcbY: -0.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["54"], pcbX: 1.540, pcbY: -0.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["55"], pcbX: -1.54, pcbY: -1, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["56"], pcbX: 1.540, pcbY: -1, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["57"], pcbX: -1.54, pcbY: -1.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["58"], pcbX: 1.540, pcbY: -1.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["59"], pcbX: -1.54, pcbY: -1.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["60"], pcbX: 1.540, pcbY: -1.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["61"], pcbX: -1.54, pcbY: -2.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["62"], pcbX: 1.540, pcbY: -2.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["63"], pcbX: -1.54, pcbY: -2.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["64"], pcbX: 1.540, pcbY: -2.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["65"], pcbX: -1.54, pcbY: -3, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["66"], pcbX: 1.540, pcbY: -3, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["67"], pcbX: -1.54, pcbY: -3.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["68"], pcbX: 1.540, pcbY: -3.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["69"], pcbX: -1.54, pcbY: -3.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["70"], pcbX: 1.540, pcbY: -3.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["71"], pcbX: -1.54, pcbY: -4.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["72"], pcbX: 1.540, pcbY: -4.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["73"], pcbX: -1.54, pcbY: -4.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["74"], pcbX: 1.540, pcbY: -4.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["75"], pcbX: -1.54, pcbY: -5, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["76"], pcbX: 1.540, pcbY: -5, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["77"], pcbX: -1.54, pcbY: -5.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["78"], pcbX: 1.540, pcbY: -5.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["79"], pcbX: -1.54, pcbY: -5.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["80"], pcbX: 1.540, pcbY: -5.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["81"], pcbX: -1.54, pcbY: -6.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["82"], pcbX: 1.540, pcbY: -6.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["83"], pcbX: -1.54, pcbY: -6.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["84"], pcbX: 1.540, pcbY: -6.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["85"], pcbX: -1.54, pcbY: -7, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["86"], pcbX: 1.540, pcbY: -7, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["87"], pcbX: -1.54, pcbY: -7.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["88"], pcbX: 1.540, pcbY: -7.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["89"], pcbX: -1.54, pcbY: -7.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["90"], pcbX: 1.540, pcbY: -7.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["91"], pcbX: -1.54, pcbY: -8.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["92"], pcbX: 1.540, pcbY: -8.2, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["93"], pcbX: -1.54, pcbY: -8.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["94"], pcbX: 1.540, pcbY: -8.6, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["95"], pcbX: -1.54, pcbY: -9, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["96"], pcbX: 1.540, pcbY: -9, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["97"], pcbX: -1.54, pcbY: -9.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["98"], pcbX: 1.540, pcbY: -9.4, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["99"], pcbX: -1.54, pcbY: -9.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { solderPasteMargin: 0, portHints: ["100"], pcbX: 1.540, pcbY: -9.8, layer: "top", width: "0.7mm", height: "0.2mm", shape: "rect" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ x: -1.89, y: 11.4 }, { x: 1.89, y: 11.4 }, { x: 1.89, y: -11.4 }, { x: -1.89, y: -11.4 }], layer: "top" })] }), ...props }));

const mm = (dimension) => typeof dimension === "number" ? dimension : Number.parseFloat(dimension ?? "0");
/** Explicit top stencil for a hybrid connector whose stakes are hand soldered. */
const HybridPad = (props) => {
    if (props.shape === "polygon") {
        // These four imported USB-C power pads are rectangles with sub-micron steps.
        // Use an inset rectangular stencil aperture to avoid those import artifacts.
        const xs = props.points.map(point => mm(point.x));
        const ys = props.points.map(point => mm(point.y));
        return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("smtpad", { ...props }), jsxRuntime.jsx("solderpaste", { shape: "rect", layer: "top", pcbX: (Math.min(...xs) + Math.max(...xs)) / 2, pcbY: (Math.min(...ys) + Math.max(...ys)) / 2, width: Math.max(...xs) - Math.min(...xs) - 0.02, height: Math.max(...ys) - Math.min(...ys) - 0.02 })] });
    }
    if (props.shape !== "rect")
        throw new Error("HybridPad requires a rectangular or USB-C polygon pad");
    return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("smtpad", { ...props }), jsxRuntime.jsx("solderpaste", { shape: "rect", layer: "top", pcbX: props.pcbX, pcbY: props.pcbY, width: props.width, height: props.height })] });
};

const Usb = (props) => (jsxRuntime.jsx("connector", { isSmt: false, cadModel: { glbUrl: usbModel, modelUnitToMmScale: 1, modelOriginPosition: { x: 0, y: 0, z: 0 }, modelBounds: { min: { x: -3.75, y: -2.22, z: 0 }, max: { x: 3.75, y: 2.78, z: 2.94 } } }, footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_y_neg", children: [jsxRuntime.jsx("platedhole", { portHints: ["SH1"], pcbX: "-2.425mm", pcbY: "3.03mm", outerHeight: "1mm", outerWidth: "1.4mm", holeHeight: "0.65mm", holeWidth: "1.05mm", shape: "pill", pcbRotation: "90deg" }), jsxRuntime.jsx("platedhole", { portHints: ["SH2"], pcbX: "2.425mm", pcbY: "3.03mm", outerHeight: "1mm", outerWidth: "1.4mm", holeHeight: "0.65mm", holeWidth: "1.05mm", shape: "pill", pcbRotation: "90deg" }), jsxRuntime.jsx("platedhole", { portHints: ["SH3"], pcbX: "-2.725mm", pcbY: "0mm", outerHeight: "1.3mm", outerWidth: "1.7mm", holeHeight: "0.7mm", holeWidth: "1.2mm", shape: "pill", pcbRotation: "90deg" }), jsxRuntime.jsx("platedhole", { portHints: ["SH4"], pcbX: "2.725mm", pcbY: "0mm", outerHeight: "1.3mm", outerWidth: "1.7mm", holeHeight: "0.7mm", holeWidth: "1.2mm", shape: "pill", pcbRotation: "90deg" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH4"], pcbX: "2.725mm", pcbY: "0.93mm", layer: "top", width: "1.3mm", height: "2mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH3"], pcbX: "-2.725mm", pcbY: "0.93mm", layer: "top", width: "1.3mm", height: "2mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH3"], pcbX: "-2.9875mm", pcbY: "1.7mm", layer: "top", width: "1.825mm", height: "0.7mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH4"], pcbX: "2.9875mm", pcbY: "1.7mm", layer: "top", width: "1.825mm", height: "0.7mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH1"], pcbX: "-2.85mm", pcbY: "3.06mm", layer: "top", width: "2mm", height: "1.4mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH2"], pcbX: "2.9mm", pcbY: "3.06mm", layer: "top", width: "2mm", height: "1.4mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["1"], pcbX: "-1.3mm", pcbY: "2.82mm", layer: "top", width: "0.4mm", height: "1.75mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["2"], pcbX: "-0.65mm", pcbY: "2.82mm", layer: "top", width: "0.4mm", height: "1.75mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["3"], pcbX: "0mm", pcbY: "2.82mm", layer: "top", width: "0.4mm", height: "1.75mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["4"], pcbX: "0.65mm", pcbY: "2.82mm", layer: "top", width: "0.4mm", height: "1.75mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["5"], pcbX: "1.3mm", pcbY: "2.82mm", layer: "top", width: "0.4mm", height: "1.75mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH5"], pcbX: "-0.9625mm", pcbY: "-0.25mm", layer: "top", width: "1.425mm", height: "2.5mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["SH6"], pcbX: "0.9625mm", pcbY: "-0.25mm", layer: "top", width: "1.425mm", height: "2.5mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.15, "y": 1.18 }, { "x": -4.15, "y": 2.73 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.15, "y": 1.18 }, { "x": -3.85, "y": 1.18 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -3.85, "y": -1.62 }, { "x": -3.85, "y": 1.18 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.15, "y": 1.18 }, { "x": 4.15, "y": 2.73 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 3.85, "y": 1.18 }, { "x": 4.15, "y": 1.18 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 3.85, "y": -1.62 }, { "x": 3.85, "y": 1.18 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9, "y": 4.43 }, { "x": -1.3, "y": 3.98 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.7, "y": 4.43 }, { "x": -0.9, "y": 4.43 }], strokeWidth: 0.12 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3, "y": 3.98 }, { "x": -1.7, "y": 4.43 }], strokeWidth: 0.12 }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": -3.75, "y": 1.98 }, { "x": -2.95, "y": 2.73 }], strokeWidth: 0.12 }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": 3.75, "y": -2.22 }, { "x": -3.75, "y": -2.22 }], strokeWidth: 0.12 }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": 3.75, "y": 2.73 }, { "x": 3.75, "y": -2.22 }], strokeWidth: 0.12 }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": -2.95, "y": 2.73 }, { "x": 3.75, "y": 2.73 }], strokeWidth: 0.12 }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": -3.75, "y": -2.22 }, { "x": -3.75, "y": 1.98 }], strokeWidth: 0.12 }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -4.105, "y": 3.995 }, { "x": 4.165, "y": 3.995 }, { "x": 4.165, "y": -2.465 }, { "x": -4.105, "y": -2.465 }], layer: "top" })] }), ...props }));

const Hdmi = (props) => (jsxRuntime.jsx("connector", { isSmt: false, cadModel: { glbUrl: hdmiModel, modelUnitToMmScale: 1, modelOriginPosition: { x: 0, y: 0, z: 0 }, modelBounds: { min: { x: -7.5, y: -10.5, z: -2.18 }, max: { x: 7.5, y: 1.7, z: 6.22 } } }, footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_y_neg", children: [jsxRuntime.jsx("courtyardoutline", { outline: [{ x: -8.35, y: 2.3 }, { x: 8.35, y: 2.3 }, { x: 8.35, y: -9.8 }, { x: -8.35, y: -9.8 }] }), jsxRuntime.jsx("platedhole", { portHints: ["SH4"], pcbX: "7.25mm", pcbY: "-5.96mm", outerHeight: "2.3mm", outerWidth: "1.5mm", holeHeight: "1.7mm", holeWidth: "0.9mm", shape: "pill", pcbRotation: "0deg" }), jsxRuntime.jsx("platedhole", { portHints: ["SH3"], pcbX: "-7.25mm", pcbY: "-5.96mm", outerHeight: "2.3mm", outerWidth: "1.5mm", holeHeight: "1.7mm", holeWidth: "0.9mm", shape: "pill", pcbRotation: "0deg" }), jsxRuntime.jsx("platedhole", { portHints: ["SH2"], pcbX: "-7.25mm", pcbY: "0mm", outerHeight: "3.3mm", outerWidth: "1.5mm", holeHeight: "2.7mm", holeWidth: "0.9mm", shape: "pill", pcbRotation: "0deg" }), jsxRuntime.jsx("platedhole", { portHints: ["SH1"], pcbX: "7.25mm", pcbY: "0mm", outerHeight: "3.3mm", outerWidth: "1.5mm", holeHeight: "2.7mm", holeWidth: "0.9mm", shape: "pill", pcbRotation: "0deg" }), jsxRuntime.jsx(HybridPad, { portHints: ["19"], pcbX: "-4.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["18"], pcbX: "-4mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["17"], pcbX: "-3.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["16"], pcbX: "-3mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["15"], pcbX: "-2.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["14"], pcbX: "-2mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["13"], pcbX: "-1.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["12"], pcbX: "-1mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["11"], pcbX: "-0.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["10"], pcbX: "0mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["9"], pcbX: "0.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["8"], pcbX: "1mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["7"], pcbX: "1.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["6"], pcbX: "2mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["5"], pcbX: "2.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["4"], pcbX: "3mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["3"], pcbX: "3.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["2"], pcbX: "4mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["1"], pcbX: "4.5mm", pcbY: "0.73mm", layer: "top", width: "0.3mm", height: "2.6mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -8.1, "y": -4.7 }, { "x": -8.1, "y": -1.8 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 5.6, "y": 2 }, { "x": 6.7, "y": 2 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.7, "y": 2 }, { "x": -5.2, "y": 2 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -8.1, "y": -9.55 }, { "x": -8.1, "y": -7.2 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 8.1, "y": -7.1 }, { "x": 8.1, "y": -9.55 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 8.1, "y": -1.9 }, { "x": 8.1, "y": -4.7 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -8.1, "y": -9.55 }, { "x": 8.1, "y": -9.55 }], strokeWidth: 0.127 }), jsxRuntime.jsx("silkscreencircle", { pcbX: 5.3, pcbY: 2.5, radius: 0.10000000000000053, layer: "top", strokeWidth: 0.2, isFilled: false })] }), ...props }));

const pinLabels$1 = {
    pin1: ["EH2"],
    pin2: ["EH1"],
    pin3: ["EH4"],
    pin4: ["EH3"],
    pin5: ["SBU2", "B8"],
    pin6: ["CC1", "A5"],
    pin7: ["DN2", "B7"],
    pin8: ["DP1", "A6"],
    pin9: ["DN1", "A7"],
    pin10: ["DP2", "B6"],
    pin11: ["SBU1", "A8"],
    pin12: ["CC2", "B5"],
    pin13: ["GND1", "A1B12"],
    pin14: ["GND2", "B1A12"],
    pin15: ["VBUS1", "B4A9"],
    pin16: ["VBUS2", "A4B9"]
};
const pinAttributes$1 = {
    pin5: { isPassive: true },
    pin6: { isPassive: true },
    pin7: { isPassive: true },
    pin8: { isPassive: true },
    pin9: { isPassive: true },
    pin10: { isPassive: true },
    pin11: { isPassive: true },
    pin12: { isPassive: true }
};
const TYPE_C_31_M_12 = (props) => {
    return (jsxRuntime.jsx("connector", { isSmt: false, pinLabels: pinLabels$1, pinAttributes: pinAttributes$1, supplierPartNumbers: {
            "jlcpcb": [
                "C165948"
            ]
        }, manufacturerPartNumber: "TYPE-C-31-M-12", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { pcbX: "-2.899918mm", pcbY: "0.9055672mm", diameter: "0.5999988mm" }), jsxRuntime.jsx("hole", { pcbX: "2.899918mm", pcbY: "0.9055672mm", diameter: "0.5999988mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin2"], pcbX: "4.325112mm", pcbY: "-2.7741308mm", holeWidth: "0.7999984mm", holeHeight: "1.1999976mm", outerWidth: "1.1999976mm", outerHeight: "1.7999964mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin1"], pcbX: "4.325112mm", pcbY: "1.4056932mm", holeWidth: "0.7999984mm", holeHeight: "1.499997mm", outerWidth: "1.1999976mm", outerHeight: "1.999996mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin4"], pcbX: "-4.325112mm", pcbY: "1.4056932mm", holeWidth: "0.7999984mm", holeHeight: "1.499997mm", outerWidth: "1.1999976mm", outerHeight: "1.999996mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin3"], pcbX: "-4.325112mm", pcbY: "-2.7741308mm", holeWidth: "0.7999984mm", holeHeight: "1.1999976mm", outerWidth: "1.1999976mm", outerHeight: "1.7999964mm", shape: "pill" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin5"], pcbX: "-1.75006mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin6"], pcbX: "-1.249934mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin7"], pcbX: "-0.750062mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin8"], pcbX: "-0.249936mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin9"], pcbX: "0.249936mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin10"], pcbX: "0.750062mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin11"], pcbX: "1.24968mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin12"], pcbX: "1.75006mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin13"], points: [{ x: "-2.8999688mm", y: "1.524108mm" }, { x: "-2.8999688mm", y: "2.8241308mm" }, { x: "-2.8999688mm", y: "2.8241308mm" }, { x: "-3.1999682mm", y: "2.8241308mm" }, { x: "-3.1999682mm", y: "2.8241308mm" }, { x: "-3.1999682mm", y: "2.8239784mm" }, { x: "-3.1999682mm", y: "2.8239784mm" }, { x: "-3.4999422mm", y: "2.8239784mm" }, { x: "-3.4999422mm", y: "2.8239784mm" }, { x: "-3.4999422mm", y: "1.5239556mm" }, { x: "-3.4999422mm", y: "1.5239556mm" }, { x: "-3.1999428mm", y: "1.5239556mm" }, { x: "-3.1999428mm", y: "1.5239556mm" }, { x: "-3.1999428mm", y: "1.524108mm" }, { x: "-3.1999428mm", y: "1.524108mm" }, { x: "-2.8999688mm", y: "1.524108mm" }], shape: "polygon" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin14"], points: [{ x: "2.8999942mm", y: "2.8241308mm" }, { x: "2.8999942mm", y: "1.5241588mm" }, { x: "2.8999942mm", y: "1.5241588mm" }, { x: "3.1999936mm", y: "1.5241588mm" }, { x: "3.1999936mm", y: "1.5241588mm" }, { x: "3.200019mm", y: "1.5241588mm" }, { x: "3.200019mm", y: "1.5241588mm" }, { x: "3.5000184mm", y: "1.5241588mm" }, { x: "3.5000184mm", y: "1.5241588mm" }, { x: "3.5000184mm", y: "2.8241308mm" }, { x: "3.5000184mm", y: "2.8241308mm" }, { x: "3.200019mm", y: "2.8241308mm" }, { x: "3.200019mm", y: "2.8241308mm" }, { x: "3.1999936mm", y: "2.8241308mm" }, { x: "3.1999936mm", y: "2.8241308mm" }, { x: "2.8999942mm", y: "2.8241308mm" }], shape: "polygon" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin15"], points: [{ x: "2.7001724mm", y: "1.5241588mm" }, { x: "2.7001724mm", y: "2.8241308mm" }, { x: "2.7001724mm", y: "2.8241308mm" }, { x: "2.400173mm", y: "2.8241308mm" }, { x: "2.400173mm", y: "2.8241308mm" }, { x: "2.4001476mm", y: "2.8241308mm" }, { x: "2.4001476mm", y: "2.8241308mm" }, { x: "2.1001482mm", y: "2.8241308mm" }, { x: "2.1001482mm", y: "2.8241308mm" }, { x: "2.1001482mm", y: "1.5241588mm" }, { x: "2.1001482mm", y: "1.5241588mm" }, { x: "2.4001476mm", y: "1.5241588mm" }, { x: "2.4001476mm", y: "1.5241588mm" }, { x: "2.400173mm", y: "1.5241588mm" }, { x: "2.400173mm", y: "1.5241588mm" }, { x: "2.7001724mm", y: "1.5241588mm" }], shape: "polygon" }), jsxRuntime.jsx(HybridPad, { portHints: ["pin16"], points: [{ x: "-2.0999704mm", y: "1.5240064mm" }, { x: "-2.0999704mm", y: "2.8239784mm" }, { x: "-2.0999704mm", y: "2.8239784mm" }, { x: "-2.3999952mm", y: "2.8239784mm" }, { x: "-2.3999952mm", y: "2.8239784mm" }, { x: "-2.3999952mm", y: "2.823953mm" }, { x: "-2.3999952mm", y: "2.823953mm" }, { x: "-2.6999438mm", y: "2.823953mm" }, { x: "-2.6999438mm", y: "2.823953mm" }, { x: "-2.6999438mm", y: "1.523981mm" }, { x: "-2.6999438mm", y: "1.523981mm" }, { x: "-2.399919mm", y: "1.523981mm" }, { x: "-2.399919mm", y: "1.523981mm" }, { x: "-2.399919mm", y: "1.5240064mm" }, { x: "-2.399919mm", y: "1.5240064mm" }, { x: "-2.0999704mm", y: "1.5240064mm" }], shape: "polygon" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.4689776000000165, "y": -1.6757585999999947 }, { "x": -4.4689776000000165, "y": 0.18715359999987413 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.471009600000116, "y": -4.7 }, { "x": -4.4689776000000165, "y": -4.7 }, { "x": -4.4689776000000165, "y": -3.91283820000001 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.471009600000116, "y": -1.676114200000029 }, { "x": 4.471009600000116, "y": 0.18750920000002225 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.471009600000116, "y": -4.7 }, { "x": 4.471009600000116, "y": -3.912482600000203 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.002794mm", pcbY: "3.8286012mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -5.17511079999997, "y": 3.074130799999921 }, { "x": 5.17511079999997, "y": 3.074130799999921 }, { "x": 5.17511079999997, "y": -5.60002099999997 }, { "x": -5.17511079999997, "y": -5.60002099999997 }, { "x": -5.17511079999997, "y": 3.074130799999921 }] })] }), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C165948.obj?uuid=617b05f9bba7410b96c001093d8189e4",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C165948.step?uuid=617b05f9bba7410b96c001093d8189e4",
            pcbRotationOffset: 180,
            modelOriginPosition: { x: 0, y: -2.7500289000000517, z: 0.000010999999999872223 },
        }, ...props }));
};

const pinLabels = {
    pin1: ["GND"],
    pin2: ["OUT"],
    pin3: ["IN"]
};
const pinAttributes = {
    pin1: { requiresGround: true },
    pin3: { requiresPower: true }
};
const AP2331W_7 = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels, pinAttributes: pinAttributes, supplierPartNumbers: {
            "jlcpcb": [
                "C460346"
            ]
        }, manufacturerPartNumber: "AP2331W-7", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.041146mm", pcbY: "-0.94996mm", width: "1.0575036mm", height: "0.532003mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.041146mm", pcbY: "0.94996mm", width: "1.0575036mm", height: "0.532003mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-1.041146mm", pcbY: "0mm", width: "1.0575036mm", height: "0.532003mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7886954000000514, "y": 1.5262098000000606 }, { "x": -0.7886954000000514, "y": 1.5262098000000606 }, { "x": -0.7886954000000514, "y": 0.49458879999997407 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7886954000000514, "y": -1.5262097999999469 }, { "x": -0.7886954000000514, "y": -1.5262097999999469 }, { "x": -0.7886954000000514, "y": -0.49458879999997407 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7886954000000514, "y": 0.45539659999997184 }, { "x": 0.7886954000000514, "y": -0.45539659999985815 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0635mm", pcbY: "2.524mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.819897800000149, "y": 1.6999844000000621 }, { "x": 1.819897800000149, "y": 1.6999844000000621 }, { "x": 1.819897800000149, "y": -1.7000097999999753 }, { "x": -1.819897800000149, "y": -1.7000097999999753 }, { "x": -1.819897800000149, "y": 1.6999844000000621 }] })] }), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C460346.obj?uuid=7bc2d5a1748b4443bf674b6e8fa83c92",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C460346.step?uuid=7bc2d5a1748b4443bf674b6e8fa83c92",
            pcbRotationOffset: 180,
            modelOriginPosition: { x: 0.000012700000070253736, y: -12699999956566899e-21, z: -0.1 },
        }, ...props }));
};

const groundPins = [1, 2, 7, 8, 13, 14, 22, 23, 32, 33, 42, 43, 52, 53, 59, 60, 65, 66, 71, 74, 98, 107, 108, 113, 114, 119, 120, 125, 126, 131, 132, 137, 138, 144, 150, 155, 156, 161, 162, 167, 168, 173, 174, 179, 180, 185, 186, 191, 192, 197, 198];

/** APT1608 land pattern: 0.8 mm square pads, 0.85 mm gap; pin 1 is cathode. */
const KingbrightLed = (props) => (jsxRuntime.jsx("led", { ...props, pinLabels: { pin1: ["cathode", "neg"], pin2: ["anode", "pos"] }, cadModel: { glbUrl: ledModel, modelUnitToMmScale: 1, modelOriginPosition: { x: 0, y: 0, z: 0 }, modelBounds: { min: { x: -0.8, y: -0.4, z: 0 }, max: { x: 0.8, y: 0.4, z: 0.75 } } }, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: 0.825, pcbY: 0, width: 0.8, height: 0.8, shape: "rect", layer: "top" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: -0.825, pcbY: 0, width: 0.8, height: 0.8, shape: "rect", layer: "top" }), jsxRuntime.jsx("silkscreenpath", { route: [{ x: 1.5, y: -0.55 }, { x: 1.5, y: 0.55 }], strokeWidth: 0.15 }), jsxRuntime.jsx("courtyardrect", { pcbX: 0, pcbY: 0, width: 3.3, height: 1.6 })] }) }));

const hdmiPairs = [
    { name: "HDMI_D2", positive: 170, negative: 172, hdmiPositive: 1, hdmiNegative: 3 },
    { name: "HDMI_D1", positive: 176, negative: 178, hdmiPositive: 4, hdmiNegative: 6 },
    { name: "HDMI_D0", positive: 182, negative: 184, hdmiPositive: 7, hdmiNegative: 9 },
    { name: "HDMI_CLK", positive: 188, negative: 190, hdmiPositive: 10, hdmiNegative: 12 },
];
const moduleConnections = {
    ...Object.fromEntries(groundPins.map(pin => [`pin${pin}`, "net.GND"])),
    ...Object.fromEntries([77, 79, 81, 83, 85, 87].map(pin => [`pin${pin}`, "net.V5"])),
    pin78: "net.V3", pin84: "net.V3", pin86: "net.V3",
    pin21: "net.ACT", pin92: "net.RUN", pin93: "net.BOOT",
    pin151: "net.CEC", pin153: "net.HPD", pin199: "net.DDC_SDA", pin200: "net.DDC_SCL",
};
const usedModulePins = new Set([
    ...Object.keys(moduleConnections).map(pin => Number(pin.slice(3))),
    ...hdmiPairs.flatMap(pair => [pair.positive, pair.negative]), 103, 105,
]);
const unusedSocketPins = (offset) => Array.from({ length: 100 }, (_, i) => i + 1)
    .filter(pin => !usedModulePins.has(pin + offset)).map(pin => `pin${pin}`);
var index = () => (jsxRuntime.jsxs("board", { pcbRelative: true, width: "70mm", height: "76mm", layers: 4, thickness: "1.6mm", title: "CM4 media carrier \u2014 engineering prototype", autorouter: "auto_local", minTraceWidth: "0.1mm", minViaHoleDiameter: "0.2mm", minViaPadDiameter: "0.45mm", schAutoLayoutEnabled: true, pcbStyle: { silkscreenFontSize: 0.8 }, schLayout: { flexDirection: "column", gap: 5 }, children: [jsxRuntime.jsx("autoroutingphase", { name: "MATCHED_HIGH_SPEED", phaseIndex: 0, connections: highSpeedTracePaths.map(path => path.connection), pcbTracePaths: highSpeedTracePaths }), jsxRuntime.jsx("autoroutingphase", { name: "POWER_AND_CONTROL", autorouter: { local: true, algorithmFn: routeOuterLayers } }), jsxRuntime.jsx("silkscreentext", { text: "J_CM4A", pcbX: -16.96, pcbY: 18, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "J_CM4B", pcbX: 16.96, pcbY: 18, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "J_USB", pcbX: 30, pcbY: 31, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "J_HDMI", pcbX: 29, pcbY: -11, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "J_PROGRAM", pcbX: -30, pcbY: 26, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "R_CC1", pcbX: 21, pcbY: 25, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "R_CC2", pcbX: 21, pcbY: 17, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "C_IN", pcbX: -20, pcbY: -22.8, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "C_BYP", pcbX: -14.5, pcbY: -23, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "U_HDMI_POWER", pcbX: 26, pcbY: -18, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "C_HDMI_IN", pcbX: 21, pcbY: -12, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "C_HDMI_OUT", pcbX: 30, pcbY: -20.5, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "R_PWR", pcbX: -7, pcbY: -24, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "R_ACT", pcbX: -2, pcbY: -24, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "D_PWR", pcbX: -7, pcbY: -34, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "D_ACT", pcbX: -2, pcbY: -34, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "J_BOOT", pcbX: -25, pcbY: -18.5, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "J_RESET", pcbX: -25, pcbY: -11.5, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "R_RESET", pcbX: -25, pcbY: -2, fontSize: "0.8mm" }), jsxRuntime.jsx("silkscreentext", { text: "5V / 3A", pcbX: 30, pcbY: 34, fontSize: "1mm" }), jsxRuntime.jsx("silkscreentext", { text: "CM4 MEDIA v0.1", pcbX: 15, pcbY: -34, fontSize: "1mm" }), jsxRuntime.jsx(PowerConnections, {}), jsxRuntime.jsx("net", { name: "GND", isGroundNet: true }), jsxRuntime.jsx("net", { name: "V5", isPowerNet: true, nominalTraceWidth: "0.3mm" }), jsxRuntime.jsx("net", { name: "V3", isPowerNet: true }), jsxRuntime.jsx("net", { name: "HDMI_5V", isPowerNet: true }), jsxRuntime.jsx("copperpour", { name: "GROUND_REFERENCE", layer: "inner1", connectsTo: "net.GND", unbroken: true, clearance: "0.2mm", boardEdgeMargin: "0.5mm", useThermalReliefs: false }), jsxRuntime.jsx("copperpour", { name: "POWER_PLANE", layer: "inner2", connectsTo: "net.V5", unbroken: true, clearance: "0.2mm", boardEdgeMargin: "0.5mm", useThermalReliefs: false }), jsxRuntime.jsx("schematicsection", { name: "COMPUTE", displayName: "Wireless CM4 with eMMC \u2014 5V input" }), jsxRuntime.jsx(SocketA, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "COMPUTE", name: "J_CM4A", noConnect: unusedSocketPins(0), pcbX: -16.96, pcbY: 5.5, connections: Object.fromEntries(Object.entries(moduleConnections).filter(([pin]) => Number(pin.slice(3)) <= 100)) }), jsxRuntime.jsx(SocketB, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "COMPUTE", name: "J_CM4B", noConnect: unusedSocketPins(100), pcbX: 16.96, pcbY: 5.5, connections: Object.fromEntries(Object.entries(moduleConnections).filter(([pin]) => Number(pin.slice(3)) > 100).map(([pin, net]) => [`pin${Number(pin.slice(3)) - 100}`, net])) }), [-16.5, 16.5].flatMap(x => [-16, 32].map(y => jsxRuntime.jsx("group", { pcbRelative: true, children: jsxRuntime.jsx("hole", { pcbX: x, pcbY: y, diameter: "2.7mm" }) }, `${x}:${y}`))), jsxRuntime.jsx("schematicsection", { name: "POWER", displayName: "USB-C 5V power; separate USB Micro-B programming" }), jsxRuntime.jsx(TYPE_C_31_M_12, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "POWER", name: "J_USB", allowOffBoard: true, noConnect: ["SBU1", "SBU2", "DP1", "DP2", "DN1", "DN2"], pcbPositionMode: "relative_to_board_anchor", pcbX: 30, pcbY: 24, pcbRotation: 90, connections: {
                VBUS1: "net.V5", VBUS2: "net.V5", GND1: "net.GND", GND2: "net.GND",
                EH1: "net.GND", EH2: "net.GND", EH3: "net.GND", EH4: "net.GND",
                CC1: ".R_CC1 > .pin1", CC2: ".R_CC2 > .pin1",
            } }), jsxRuntime.jsx("resistor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "POWER", name: "R_CC1", resistance: "5.1k", manufacturerPartNumber: "RC0402FR-075K1L", footprint: "0402", pcbPositionMode: "relative_to_board_anchor", pcbX: 21, pcbY: 23, connections: { pin2: "net.GND" } }), jsxRuntime.jsx("resistor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "POWER", name: "R_CC2", resistance: "5.1k", manufacturerPartNumber: "RC0402FR-075K1L", footprint: "0402", pcbPositionMode: "relative_to_board_anchor", pcbX: 21, pcbY: 19, connections: { pin2: "net.GND" } }), jsxRuntime.jsx("capacitor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "POWER", name: "C_IN", manufacturerPartNumber: "GRM21BR61A106KE19L", capacitance: "10uF", maxVoltageRating: "10V", footprint: "0805", pcbPositionMode: "relative_to_board_anchor", pcbX: -20, pcbY: -25, connections: { pin1: "net.V5", pin2: "net.GND" } }), jsxRuntime.jsx("capacitor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "POWER", name: "C_BYP", manufacturerPartNumber: "GRM155R71C104KA88D", capacitance: "100nF", maxVoltageRating: "16V", footprint: "0402", pcbPositionMode: "relative_to_board_anchor", pcbX: -16, pcbY: -25, connections: { pin1: "net.V5", pin2: "net.GND" } }), jsxRuntime.jsx("schematicsection", { name: "VIDEO", displayName: "HDMI0 \u2014 100 ohm pairs; AP2331: 2.7\u20135.2V input, 0.2A output" }), jsxRuntime.jsx(AP2331W_7, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "VIDEO", name: "U_HDMI_POWER", pcbX: 26, pcbY: -14, connections: { IN: "net.V5", OUT: "net.HDMI_5V", GND: "net.GND" } }), jsxRuntime.jsx("capacitor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "VIDEO", name: "C_HDMI_IN", capacitance: "100nF", maxVoltageRating: "16V", manufacturerPartNumber: "GRM155R71C104KA88D", footprint: "0402", pcbX: 22, pcbY: -14, connections: { pin1: "net.V5", pin2: "net.GND" } }), jsxRuntime.jsx("capacitor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "VIDEO", name: "C_HDMI_OUT", capacitance: "100nF", maxVoltageRating: "16V", manufacturerPartNumber: "GRM155R71C104KA88D", footprint: "0402", pcbX: 30, pcbY: -14, connections: { pin1: "net.HDMI_5V", pin2: "net.GND" } }), jsxRuntime.jsx(Hdmi, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "VIDEO", name: "J_HDMI", noConnect: ["pin14"], manufacturerPartNumber: "690-019-298-412", pcbPositionMode: "relative_to_board_anchor", pcbX: 25, pcbY: -1, pcbRotation: 90, pinLabels: Object.fromEntries([...Array.from({ length: 19 }, (_, i) => [`pin${i + 1}`, [`P${i + 1}`]]), ...[1, 2, 3, 4].map(i => [`SH${i}`, [`SH${i}`]])]), connections: { pin2: "net.GND", pin5: "net.GND", pin8: "net.GND", pin11: "net.GND", pin17: "net.GND",
                pin13: "net.CEC", pin15: "net.DDC_SCL", pin16: "net.DDC_SDA", pin18: "net.HDMI_5V", pin19: "net.HPD",
                SH1: "net.GND", SH2: "net.GND", SH3: "net.GND", SH4: "net.GND" } }), jsxRuntime.jsx("schematicsection", { name: "STATUS", displayName: "Power / activity indicators and service controls" }), jsxRuntime.jsx("resistor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "R_PWR", resistance: "1k", manufacturerPartNumber: "RC0402FR-071KL", footprint: "0402", pcbPositionMode: "relative_to_board_anchor", pcbX: -7, pcbY: -26, connections: { pin1: "net.V5", pin2: ".D_PWR > .anode" } }), jsxRuntime.jsx(KingbrightLed, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "D_PWR", manufacturerPartNumber: "APT1608SGC", color: "green", pcbPositionMode: "relative_to_board_anchor", pcbX: -7, pcbY: -32, connections: { cathode: "net.GND" } }), jsxRuntime.jsx("resistor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "R_ACT", resistance: "1k", manufacturerPartNumber: "RC0402FR-071KL", footprint: "0402", pcbPositionMode: "relative_to_board_anchor", pcbX: -2, pcbY: -26, connections: { pin1: "net.V3", pin2: ".D_ACT > .anode" } }), jsxRuntime.jsx(KingbrightLed, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "D_ACT", manufacturerPartNumber: "APT1608SYC/J3-AMT", color: "yellow", pcbPositionMode: "relative_to_board_anchor", pcbX: -2, pcbY: -32, connections: { cathode: "net.ACT" } }), jsxRuntime.jsx("connector", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "J_BOOT", schRotation: 0, schPinArrangement: { leftSide: [1, 2] }, schWidth: 4, schHeight: 2, pinLabels: { pin1: ["BOOT"], pin2: ["GND"] }, manufacturerPartNumber: "TSW-102-07-G-S", footprint: "pinrow2", pcbPositionMode: "relative_to_board_anchor", pcbX: -25, pcbY: -16, connections: { pin1: "net.BOOT", pin2: "net.GND" } }), jsxRuntime.jsx("connector", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "J_RESET", schRotation: 0, schPinArrangement: { leftSide: [1, 2] }, schWidth: 4, schHeight: 2, pinLabels: { pin1: ["RESET"], pin2: ["GND"] }, manufacturerPartNumber: "TSW-102-07-G-S", footprint: "pinrow2", pcbPositionMode: "relative_to_board_anchor", pcbX: -25, pcbY: -9, connections: { pin1: ".R_RESET > .pin1", pin2: "net.GND" } }), jsxRuntime.jsx("resistor", { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "STATUS", name: "R_RESET", resistance: "220", manufacturerPartNumber: "RC0402FR-07220RL", footprint: "0402", pcbPositionMode: "relative_to_board_anchor", pcbX: -25, pcbY: -4, connections: { pin2: "net.RUN" } }), jsxRuntime.jsx("trace", { name: "V3_MODULE_LINK", from: ".J_CM4A > .pin78", to: ".J_CM4A > .pin84", thickness: "0.1mm", pcbPath: [".J_CM4A > .pin78", { x: 2.54, y: -5.4 }, { x: 2.54, y: -6.6 }, ".J_CM4A > .pin84"] }), jsxRuntime.jsx("trace", { name: "V3_REFERENCE_LINK", from: ".J_CM4A > .pin84", to: ".J_CM4A > .pin86", thickness: "0.1mm", pcbStraightLine: true }), jsxRuntime.jsx("bus", { name: "HDMI_TOP_LAYER", connections: hdmiPairs.flatMap(pair => [`${pair.name}_P`, `${pair.name}_N`]), pcbAllowedLayers: ["top"], pcbTraceWidth: "0.1041mm" }), hdmiPairs.map((pair, pairIndex) => jsxRuntime.jsxs("group", { pcbRelative: true, pcbX: 0, pcbY: 0, children: [jsxRuntime.jsx("trace", { name: `${pair.name}_P`, from: `.J_CM4B > .pin${pair.positive - 100}`, to: `.J_HDMI > .pin${pair.hdmiPositive}`, thickness: "0.1041mm" }), jsxRuntime.jsx("trace", { name: `${pair.name}_N`, from: `.J_CM4B > .pin${pair.negative - 100}`, to: `.J_HDMI > .pin${pair.hdmiNegative}`, thickness: "0.1041mm" }), jsxRuntime.jsx("differentialpair", { name: pair.name, positiveConnection: `${pair.name}_P`, negativeConnection: `${pair.name}_N`, maxLengthSkew: "0.15mm", targetDifferentialImpedance: "100ohm", pcbTraceGap: "0.1501mm", maxUncoupledLength: "2mm" })] }, pair.name)), jsxRuntime.jsx("schematicsection", { name: "PROGRAM", displayName: "USB 2.0 eMMC programming" }), jsxRuntime.jsx(Usb, { pcbStyle: { silkscreenTextVisibility: "hidden" }, schSectionName: "PROGRAM", name: "J_PROGRAM", allowOffBoard: true, manufacturerPartNumber: "690-005-298-486", pcbX: -32.99, pcbY: 20, pcbRotation: 270, pinLabels: { pin1: ["VBUS_UNUSED"], pin2: ["USB_N"], pin3: ["USB_P"], pin4: ["ID_UNUSED"], pin5: ["GND"], SH1: ["SH1"], SH2: ["SH2"], SH3: ["SH3"], SH4: ["SH4"], SH5: ["SH5"], SH6: ["SH6"] }, noConnect: ["pin1", "pin4"], connections: { pin5: "net.GND", SH1: "net.GND", SH2: "net.GND", SH3: "net.GND", SH4: "net.GND", SH5: "net.GND", SH6: "net.GND" } }), jsxRuntime.jsx("trace", { thickness: "0.1356mm", name: "USB_DATA_P", from: ".J_CM4B > .pin5", to: ".J_PROGRAM > .pin3" }), jsxRuntime.jsx("bus", { name: "USB_TOP_LAYER", connections: ["USB_DATA_P", "USB_DATA_N"], pcbAllowedLayers: ["top"], pcbTraceWidth: "0.1356mm" }), jsxRuntime.jsx("differentialpair", { name: "USB2", positiveConnection: "USB_DATA_P", negativeConnection: "USB_DATA_N", maxLengthSkew: "0.15mm", targetDifferentialImpedance: "90ohm", pcbTraceGap: "0.1501mm", maxUncoupledLength: "2mm" }), jsxRuntime.jsx("trace", { thickness: "0.1356mm", name: "USB_DATA_N", from: ".J_CM4B > .pin3", to: ".J_PROGRAM > .pin2" })] }));

module.exports = index;