seveibar/rp2040-zero

This code defines a hardware schematic with discrete components and modules including voltage regulators, microcontroller (RP2040), flash memory, LEDs, crystal oscillator, and buttons, interconnected through specific pins and footprints for PCB layout.

Usage: To use the RP2040 component from the "@tsci/seveibar.rp2040-zero" package: 1. Import the component: ```tsx import { RP2040 } from "@tsci/seveibar.rp2040-zero/imports/RP2040" ``` 2. Use in a circuit: ```tsx <RP2040 name="U3" connections={{ // Connect pins to nets or other components GPIO0: "net.GPIO0", IOVDD1: "net.V3_3", GND: "net.GND" }} /> ``` Key details: - Supports 57 pins - Pins include GPIO, power, USB, crystal, and debug interfaces - Can be configured with various connections and pin mappings

Version
0.0.18-pr6-2229c6f4
License
unset
Stars
1

dist/index.js

PCBPCB preview for dist/index.js
SchematicSchematic preview for dist/index.js
import { XiaoBoard } from '@tscircuit/common';

const pinLabels$5 = {
    pin1: ["VIN"],
    pin2: ["GND"],
    pin3: ["EN"],
    pin4: ["NC"],
    pin5: ["VOUT"],
};
const RT9013_33GB = (props) => {
    return (React.createElement("chip", { pinLabels: pinLabels$5, supplierPartNumbers: {
            jlcpcb: ["C47773"],
        }, manufacturerPartNumber: "RT9013_33GB", footprint: React.createElement("footprint", null,
            React.createElement("smtpad", { portHints: ["pin1"], pcbX: "-0.9499599999999191mm", pcbY: "-1.1581701499999326mm", width: "0.48999139999999997mm", height: "1.1569954mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin2"], pcbX: "0mm", pcbY: "-1.1581701499999326mm", width: "0.48999139999999997mm", height: "1.1569954mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin3"], pcbX: "0.9499599999998054mm", pcbY: "-1.1581701499999326mm", width: "0.48999139999999997mm", height: "1.1569954mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin4"], pcbX: "0.9499599999998054mm", pcbY: "1.1491658500000312mm", width: "0.48999139999999997mm", height: "1.1750040000000002mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin5"], pcbX: "-0.9499599999999191mm", pcbY: "1.1491658500000312mm", width: "0.48999139999999997mm", height: "1.1750040000000002mm", shape: "rect" }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.5262098000000606, y: -0.8557069500000125 },
                    { x: -1.5262098000000606, y: 0.8467026499999974 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 1.5262097999998332, y: -0.8557069500000125 },
                    { x: 1.5262097999998332, y: 0.8467026499999974 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 0.4764023999998699, y: 0.8467026499999974 },
                    { x: -0.4764023999999836, y: 0.8467026499999974 },
                ] })), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=460193f9bf2d42e58cf3c2f675b07dc6&pn=C47773",
            rotationOffset: { x: 0, y: 0, z: 90 },
            positionOffset: { x: 0, y: 0, z: 0 },
        }, ...props }));
};

const VoltageRegulator = (groupProps) => (React.createElement("group", { ...groupProps, pcbX: -5, pcbY: -5 },
    React.createElement("capacitor", { name: "C6", schOrientation: "vertical", footprint: "0402", capacitance: "2.2uF" }),
    React.createElement("capacitor", { name: "C1", schOrientation: "vertical", footprint: "0402", capacitance: "2.2uF" }),
    React.createElement("capacitor", { name: "C2", schOrientation: "vertical", footprint: "0402", capacitance: "2.2uF" }),
    React.createElement("capacitor", { name: "C5", schOrientation: "vertical", footprint: "0402", capacitance: "1uF" }),
    React.createElement(RT9013_33GB, { name: "U1", connections: {
            VIN: ["C6.1", "C1.1", "C2.1", "net.VSYS"],
            GND: ["C6.2", "C1.2", "C2.2", "net.GND"],
            EN: "U1.1",
            VOUT: ["net.V3_3", "C5.1"],
        } }),
    React.createElement("trace", { from: "C5.2", to: "net.GND" })));

const pinLabels$4 = {
    pin1: ["DO"],
    pin2: ["GND"],
    pin3: ["DI"],
    pin4: ["VDD"],
};
const WS2812B_2020 = (props) => {
    return (React.createElement("chip", { pinLabels: pinLabels$4, supplierPartNumbers: {
            jlcpcb: ["C965555"],
        }, manufacturerPartNumber: "WS2812B_2020", footprint: React.createElement("footprint", null,
            React.createElement("smtpad", { portHints: ["pin1"], pcbX: "-0.9150349999999889mm", pcbY: "0.5500369999999748mm", width: "0.8999982mm", height: "0.6999986mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin2"], pcbX: "-0.9150349999999889mm", pcbY: "-0.5500369999999748mm", width: "0.8999982mm", height: "0.6999986mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin3"], pcbX: "0.9150349999999889mm", pcbY: "-0.5500369999999748mm", width: "0.8999982mm", height: "0.6999986mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin4"], pcbX: "0.9150349999999889mm", pcbY: "0.5500369999999748mm", width: "0.8999982mm", height: "0.6999986mm", shape: "rect" }),
            React.createElement("silkscreenpath", { route: [
                    { x: -0.24998679999998785, y: 0.7499603999999636 },
                    { x: -0.09999980000009145, y: 0.7499603999999636 },
                    { x: -0.09999980000009145, y: -0.6500114000000394 },
                    { x: -0.09999980000009145, y: -0.6999986000000717 },
                    { x: -0.24998679999998785, y: -0.6999986000000717 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -0.24998679999998785, y: 0.7499603999999636 },
                    { x: -0.24998679999998785, y: -0.7000239999999849 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.299997400000052, y: 1.1499850000000151 },
                    { x: -1.299997400000052, y: 1.1381486000000223 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 0.9999979999998914, y: 1.0999977999999828 },
                    { x: -0.999998000000005, y: 1.0999977999999828 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -0.999998000000005, y: -1.0999977999999828 },
                    { x: 0.9999979999998914, y: -1.0999977999999828 },
                ] })), schPinArrangement: {
            leftSide: {
                direction: "top-to-bottom",
                pins: ["DI", "GND"],
            },
            rightSide: {
                direction: "top-to-bottom",
                pins: ["VDD", "DO"],
            },
        }, cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=caa88715b11f4aa189b02e52bbb84e4f&pn=C965555",
            rotationOffset: { x: 0, y: 0, z: 0 },
            positionOffset: { x: 0, y: 0, z: 0 },
        }, ...props }));
};

const LedCircuit = () => (React.createElement("group", { pcbX: -5, pcbY: 0 },
    React.createElement(WS2812B_2020, { name: "L1", connections: {
            VDD: "net.V3_3",
            GND: "net.GND",
            DI: "net.GPIO16",
        } })));

const pinLabels$3 = {
    pin1: ["CS_N"],
    pin2: ["DO"],
    pin3: ["WP_N"],
    pin4: ["GND"],
    pin5: ["DI"],
    pin6: ["CLK"],
    pin7: ["HOLD_N"],
    pin8: ["VCC"],
    pin9: ["EP"],
};
const W25Q16JVUXIQ = (props) => {
    return (React.createElement("chip", { pinLabels: pinLabels$3, supplierPartNumbers: {
            jlcpcb: ["C2843335"],
        }, schPinArrangement: {
            leftSide: {
                direction: "top-to-bottom",
                pins: ["CS_N", "DO", "WP_N", "GND"],
            },
            rightSide: {
                direction: "top-to-bottom",
                pins: ["VCC", "HOLD_N", "CLK", "DI"],
            },
        }, manufacturerPartNumber: "W25Q16JVUXIQ", footprint: React.createElement("footprint", null,
            React.createElement("smtpad", { portHints: ["pin1"], pcbX: "-0.7500619999999572mm", pcbY: "-1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin2"], pcbX: "-0.2499359999999342mm", pcbY: "-1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin3"], pcbX: "0.24993599999982052mm", pcbY: "-1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin4"], pcbX: "0.7500619999999572mm", pcbY: "-1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin8"], pcbX: "-0.7500619999999572mm", pcbY: "1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin7"], pcbX: "-0.2499359999999342mm", pcbY: "1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin6"], pcbX: "0.24993599999982052mm", pcbY: "1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin5"], pcbX: "0.7500619999999572mm", pcbY: "1.5074899999999616mm", width: "0.2800096mm", height: "0.5999987999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin9"], pcbX: "0mm", pcbY: "0mm", width: "1.6999966mm", height: "0.29999939999999997mm", shape: "rect" }),
            React.createElement("silkscreenpath", { route: [
                    { x: 1.0763249999998834, y: -1.5760446000000456 },
                    { x: 1.0763249999998834, y: 1.5763240000001133 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.0761472000000367, y: 1.5763240000001133 },
                    { x: -1.0761472000000367, y: -1.5760446000000456 },
                ] })), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=2b35e1c3dcc44b77887d4f445b51370a&pn=C2843335",
            rotationOffset: { x: 0, y: 0, z: 0 },
            positionOffset: { x: 0, y: 0, z: 0 },
        }, ...props }));
};

const FlashCircuit = () => (React.createElement("group", { pcbX: 0, pcbY: -5 },
    React.createElement("capacitor", { name: "C3", capacitance: "1uF", footprint: "0603", schOrientation: "vertical", connections: {
            pin2: "net.GND",
        } }),
    React.createElement(W25Q16JVUXIQ, { name: "U2", connections: {
            CS_N: "net.QSPI_SS_N",
            DO: "net.QSPI_SD1",
            WP_N: "net.QSPI_SD2",
            GND: "net.GND",
            VCC: "C3.1",
            HOLD_N: "net.QSPI_SD3",
            CLK: "net.QSPI_CLK",
            DI: "net.QSPI_SD0",
        } })));

const pinLabels$2 = {
    pin1: ["XTAL1"],
    pin2: ["GND1"],
    pin3: ["XTAL2"],
    pin4: ["GND2"],
};
const ABM8_272_T3 = (props) => {
    return (React.createElement("chip", { pinLabels: pinLabels$2, supplierPartNumbers: {
            jlcpcb: ["C20625731"],
        }, manufacturerPartNumber: "ABM8_272_T3", footprint: React.createElement("footprint", null,
            React.createElement("smtpad", { portHints: ["pin1"], pcbX: "-1.1000739999999496mm", pcbY: "-0.850010999999995mm", width: "1.3999972mm", height: "1.1999975999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin2"], pcbX: "1.1000739999999496mm", pcbY: "-0.850010999999995mm", width: "1.3999972mm", height: "1.1999975999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin3"], pcbX: "1.1000739999999496mm", pcbY: "0.850010999999995mm", width: "1.3999972mm", height: "1.1999975999999999mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin4"], pcbX: "-1.1000739999999496mm", pcbY: "0.850010999999995mm", width: "1.3999972mm", height: "1.1999975999999999mm", shape: "rect" }),
            React.createElement("silkscreenpath", { route: [
                    { x: -2.028596400000083, y: -1.6784827999999834 },
                    { x: -2.028596400000083, y: 1.678736800000138 },
                    { x: 2.0285963999999694, y: 1.678736800000138 },
                    { x: 2.0285963999999694, y: -1.6784827999999834 },
                    { x: -2.028596400000083, y: -1.6784827999999834 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -2.257196399999998, y: -0.24988519999988057 },
                    { x: -2.257196399999998, y: -1.9070827999998983 },
                    { x: -0.39999920000002476, y: -1.9070827999998983 },
                ] })), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=02485e56ba8d4732a26526d2983fc729&pn=C20625731",
            rotationOffset: { x: 0, y: 0, z: 0 },
            positionOffset: { x: 0, y: 0, z: 0 },
        }, ...props }));
};

const CrystalCircuit = () => (React.createElement("group", { pcbX: 5, pcbY: 0 },
    React.createElement("resistor", { name: "R8", resistance: "1k", footprint: "0402", schOrientation: "vertical", connections: {
            pin1: "net.XOUT",
        } }),
    React.createElement("capacitor", { schOrientation: "vertical", name: "C17", capacitance: "15pF", footprint: "0402", connections: {
            pin2: "net.GND",
        } }),
    React.createElement("capacitor", { schOrientation: "vertical", name: "C16", capacitance: "15pF", footprint: "0402", connections: {
            pin2: "net.GND",
        } }),
    React.createElement(ABM8_272_T3, { name: "X1", connections: {
            XTAL1: ["C16.1", "net.XIN"],
            GND1: "net.GND",
            GND2: "net.GND",
            XTAL2: ["C17.1", "R8.2"],
        } })));

const pinLabels$1 = {
    pin1: ["IOVDD1"],
    pin2: ["GPIO0"],
    pin3: ["GPIO1"],
    pin4: ["GPIO2"],
    pin5: ["GPIO3"],
    pin6: ["GPIO4"],
    pin7: ["GPIO5"],
    pin8: ["GPIO6"],
    pin9: ["GPIO7"],
    pin10: ["IOVDD2"],
    pin11: ["GPIO8"],
    pin12: ["GPIO9"],
    pin13: ["GPIO10"],
    pin14: ["GPIO11"],
    pin15: ["GPIO12"],
    pin16: ["GPIO13"],
    pin17: ["GPIO14"],
    pin18: ["GPIO15"],
    pin19: ["TESTEN"],
    pin20: ["XIN"],
    pin21: ["XOUT"],
    pin22: ["IOVDD3"],
    pin23: ["DVDD1"],
    pin24: ["SWCLK"],
    pin25: ["SWD"],
    pin26: ["RUN"],
    pin27: ["GPIO16"],
    pin28: ["GPIO17"],
    pin29: ["GPIO18"],
    pin30: ["GPIO19"],
    pin31: ["GPIO20"],
    pin32: ["GPIO21"],
    pin33: ["IOVDD4"],
    pin34: ["GPIO22"],
    pin35: ["GPIO23"],
    pin36: ["GPIO24"],
    pin37: ["GPIO25"],
    pin38: ["GPIO26_ADC0"],
    pin39: ["GPIO27_ADC1"],
    pin40: ["GPIO28_ADC2"],
    pin41: ["GPIO29_ADC3"],
    pin42: ["IOVDD5"],
    pin43: ["ADC_AVDD"],
    pin44: ["VREG_VIN"],
    pin45: ["VREG_VOUT"],
    pin46: ["USB_DM"],
    pin47: ["USB_DP"],
    pin48: ["USB_VDD"],
    pin49: ["IOVDD6"],
    pin50: ["DVDD2"],
    pin51: ["QSPI_SD3"],
    pin52: ["QSPI_SCLK"],
    pin53: ["QSPI_SD0"],
    pin54: ["QSPI_SD2"],
    pin55: ["QSPI_SD1"],
    pin56: ["QSPI_SS_N"],
    pin57: ["GND"],
};
const RP2040 = (props) => {
    return (React.createElement("chip", { pinLabels: pinLabels$1, supplierPartNumbers: {
            jlcpcb: ["C2040"],
        }, schPinArrangement: {
            leftSide: {
                direction: "top-to-bottom",
                pins: [
                    // Top on ref
                    "QSPI_SS_N",
                    "QSPI_SD1",
                    "QSPI_SD2",
                    "QSPI_SD0",
                    "QSPI_SCLK",
                    "QSPI_SD3",
                    "DVDD1",
                    "DVDD2",
                    "VREG_VIN",
                    "VREG_VOUT",
                    "IOVDD1",
                    "IOVDD2",
                    "IOVDD3",
                    "IOVDD4",
                    "IOVDD5",
                    "IOVDD6",
                    "GND",
                    "USB_VDD",
                    "USB_DP",
                    "USB_DM",
                    "ADC_AVDD",
                    "GPIO0",
                    "GPIO1",
                    "GPIO2",
                    "GPIO3",
                    "GPIO4",
                    "GPIO5",
                    "GPIO6",
                    "GPIO7",
                    "GPIO8",
                    "GPIO9",
                    "GPIO10",
                    "GPIO11",
                ],
            },
            rightSide: {
                direction: "top-to-bottom",
                pins: [
                    "GPIO29_ADC3",
                    "GPIO28_ADC2",
                    "GPIO27_ADC1",
                    "GPIO26_ADC0",
                    "GPIO25",
                    "GPIO24",
                    "GPIO23",
                    "GPIO22",
                    "GPIO21",
                    "GPIO20",
                    "GPIO19",
                    "GPIO18",
                    "GPIO17",
                    "GPIO16",
                    "GPIO12",
                    "GPIO13",
                    "GPIO14",
                    "GPIO15",
                    "TESTEN",
                    "XIN",
                    "XOUT",
                    "SWCLK",
                    "SWD",
                    "RUN",
                ],
            },
        }, schWidth: 3, schPinStyle: {
            IOVDD1: {
                marginTop: 0.4,
            },
            GND: {
                marginTop: 0.4,
                marginBottom: 0.4,
            },
            GPIO25: {
                marginTop: 0.4,
            },
            GPIO12: {
                marginTop: 0.4,
            },
            XIN: {
                marginTop: 0.4,
            },
            XOUT: {
                marginBottom: 0.4,
            },
            VREG_VIN: {
                marginTop: 0.4,
            },
        }, manufacturerPartNumber: "RP2040", footprint: React.createElement("footprint", null,
            React.createElement("smtpad", { portHints: ["pin1"], pcbX: "-3.5501580000000104mm", pcbY: "2.6000710000001845mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin2"], pcbX: "-3.5501580000000104mm", pcbY: "2.200021000000106mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin3"], pcbX: "-3.5501580000000104mm", pcbY: "1.7999710000001414mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin4"], pcbX: "-3.5501580000000104mm", pcbY: "1.399921000000063mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin5"], pcbX: "-3.5501580000000104mm", pcbY: "1.0001250000001392mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin6"], pcbX: "-3.5501580000000104mm", pcbY: "0.6000750000000608mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin7"], pcbX: "-3.5501580000000104mm", pcbY: "0.20002500000009604mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin8"], pcbX: "-3.5501580000000104mm", pcbY: "-0.20002499999998236mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin9"], pcbX: "-3.5501580000000104mm", pcbY: "-0.6000749999999471mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin10"], pcbX: "-3.5501580000000104mm", pcbY: "-0.9998709999999846mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin11"], pcbX: "-3.5501580000000104mm", pcbY: "-1.3999209999999493mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin12"], pcbX: "-3.5501580000000104mm", pcbY: "-1.799970999999914mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin13"], pcbX: "-3.5501580000000104mm", pcbY: "-2.2000209999998788mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin14"], pcbX: "-3.5501580000000104mm", pcbY: "-2.6000709999998435mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin15"], pcbX: "-2.5999439999999368mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin16"], pcbX: "-2.200148000000013mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin17"], pcbX: "-1.8000979999999345mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin18"], pcbX: "-1.4000480000001971mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin19"], pcbX: "-0.999998000000005mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin20"], pcbX: "-0.5999480000000403mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin21"], pcbX: "-0.20015200000000277mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin22"], pcbX: "0.19989799999996194mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin23"], pcbX: "0.5999479999999267mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin24"], pcbX: "0.999998000000005mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin25"], pcbX: "1.4000479999999698mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin26"], pcbX: "1.799844000000121mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin27"], pcbX: "2.1998939999998584mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin28"], pcbX: "2.5999439999999368mm", pcbY: "-3.55003099999999mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin29"], pcbX: "3.5501580000000104mm", pcbY: "-2.6000709999998435mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin30"], pcbX: "3.5501580000000104mm", pcbY: "-2.2000209999998788mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin31"], pcbX: "3.5501580000000104mm", pcbY: "-1.799970999999914mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin32"], pcbX: "3.5501580000000104mm", pcbY: "-1.3999209999999493mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin33"], pcbX: "3.5501580000000104mm", pcbY: "-0.9998709999999846mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin34"], pcbX: "3.5501580000000104mm", pcbY: "-0.6000749999999471mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin35"], pcbX: "3.5501580000000104mm", pcbY: "-0.20002499999998236mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin36"], pcbX: "3.5501580000000104mm", pcbY: "0.20002500000009604mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin37"], pcbX: "3.5501580000000104mm", pcbY: "0.6000750000000608mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin38"], pcbX: "3.5501580000000104mm", pcbY: "1.0001250000001392mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin39"], pcbX: "3.5501580000000104mm", pcbY: "1.399921000000063mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin40"], pcbX: "3.5501580000000104mm", pcbY: "1.7999710000001414mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin41"], pcbX: "3.5501580000000104mm", pcbY: "2.200021000000106mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin42"], pcbX: "3.5501580000000104mm", pcbY: "2.6000710000001845mm", width: "1.0999978mm", height: "0.19999959999999997mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin43"], pcbX: "2.5999439999999368mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin44"], pcbX: "2.1998939999998584mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin45"], pcbX: "1.799844000000121mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin46"], pcbX: "1.4000479999999698mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin47"], pcbX: "0.999998000000005mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin48"], pcbX: "0.5999479999999267mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin49"], pcbX: "0.19989799999996194mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin50"], pcbX: "-0.20015200000000277mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin51"], pcbX: "-0.5999480000000403mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin52"], pcbX: "-0.999998000000005mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin53"], pcbX: "-1.4000480000001971mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin54"], pcbX: "-1.8000979999999345mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin55"], pcbX: "-2.200148000000013mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin56"], pcbX: "-2.5999439999999368mm", pcbY: "3.5500310000001036mm", width: "0.19999959999999997mm", height: "1.0999978mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin57"], pcbX: "-1.1368683772161603e-13mm", pcbY: "0.00012700000002041634mm", width: "3.0999938mm", height: "3.0999938mm", shape: "rect" }),
            React.createElement("silkscreenpath", { route: [
                    { x: -3.2409891999999445, y: 3.5000184000000445 },
                    { x: -3.2409891999999445, y: 3.4031682000000956 },
                    { x: -3.5000691999999844, y: 3.1440882000001693 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -3.5000691999999844, y: 2.9311854000001176 },
                    { x: -2.9311854000001176, y: 3.5000184000000445 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -3.5000691999999844, y: 2.9311854000001176 },
                    { x: -3.5000691999999844, y: 3.5000184000000445 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -2.9311854000001176, y: -3.499916799999937 },
                    { x: -3.40004399999998, y: -3.499916799999937 },
                    { x: -3.5000691999999844, y: -3.499916799999937 },
                    { x: -3.5000691999999844, y: -2.9310837999998967 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 3.499916800000051, y: -2.9310837999998967 },
                    { x: 3.499916800000051, y: -3.499916799999937 },
                    { x: 2.931083800000124, y: -3.499916799999937 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 2.931083800000124, y: 3.5000184000000445 },
                    { x: 3.499916800000051, y: 3.5000184000000445 },
                    { x: 3.499916800000051, y: 2.9311854000001176 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -3.5000691999999844, y: 3.5000184000000445 },
                    { x: -2.9311854000001176, y: 3.5000184000000445 },
                ] })), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=76b360a9d4c54384a4e47d7e5af156df&pn=C2040",
            rotationOffset: { x: 0, y: 0, z: 0 },
            positionOffset: { x: 0, y: 0, z: 0 },
        }, ...props }));
};

const RP2040Circuit = () => (React.createElement("group", null,
    React.createElement(RP2040, { name: "U3", pcbX: 0, pcbY: 0, connections: {
            // Power rails - IOVDD
            IOVDD1: ["C12.pin1", "net.V3_3"],
            IOVDD2: ["C14.pin1", "net.V3_3"],
            IOVDD3: ["C8.pin1", "net.V3_3"],
            IOVDD4: ["C13.pin1", "net.V3_3"],
            IOVDD5: ["C15.pin1", "net.V3_3"],
            IOVDD6: ["C19.pin1", "net.V3_3"],
            // Core voltage - DVDD
            DVDD1: ["C18.1", "net.V1_1"],
            DVDD2: ["C7.1", "net.V1_1"],
            // USB
            USB_VDD: "net.USB_VDD",
            USB_DM: "net.USB_N",
            USB_DP: "net.USB_P",
            // Ground
            GND: "net.GND",
            // GPIO pins 0-15
            GPIO0: "net.GPIO0",
            GPIO1: "net.GPIO1",
            GPIO2: "net.GPIO2",
            GPIO3: "net.GPIO3",
            GPIO4: "net.GPIO4",
            GPIO5: "net.GPIO5",
            GPIO6: "net.GPIO6",
            GPIO7: "net.GPIO7",
            GPIO8: "net.GPIO8",
            GPIO9: "net.GPIO9",
            GPIO10: "net.GPIO10",
            GPIO11: "net.GPIO11",
            GPIO12: "net.GPIO12",
            GPIO13: "net.GPIO13",
            GPIO14: "net.GPIO14",
            GPIO15: "net.GPIO15",
            // GPIO16 is connected to LED
            GPIO16: "net.GPIO16",
            // ADC GPIO pins 26-29
            GPIO26_ADC0: "net.GPIO26",
            GPIO27_ADC1: "net.GPIO27",
            GPIO28_ADC2: "net.GPIO28",
            GPIO29_ADC3: "net.GPIO29",
            // Crystal oscillator
            XIN: "net.XIN",
            XOUT: "net.XOUT",
            // QSPI Flash
            QSPI_SS_N: "net.QSPI_SS_N",
            QSPI_SCLK: "net.QSPI_CLK",
            QSPI_SD0: "net.QSPI_SD0",
            QSPI_SD1: "net.QSPI_SD1",
            QSPI_SD2: "net.QSPI_SD2",
            QSPI_SD3: "net.QSPI_SD3",
            // System control
            RUN: "net.RUN",
            // Voltage regulator
            VREG_VIN: "net.V3_3",
            VREG_VOUT: "net.V1_1",
            // ADC voltage
            ADC_AVDD: "net.V3_3",
            // Debug (SWDIO = SWD)
            SWD: "net.SWDIO",
            SWCLK: "net.SWCLK",
        } }),
    ["C12", "C14", "C8", "C13", "C15", "C19"].map((cName) => (React.createElement("capacitor", { key: cName, name: cName, capacitance: "100nF", schOrientation: "vertical", footprint: "0603", connections: {
            pin2: "net.GND",
        } }))),
    React.createElement("capacitor", { name: "C18", capacitance: "100nF", footprint: "0603", schOrientation: "vertical", connections: {
            pin2: "net.GND",
        } }),
    React.createElement("capacitor", { name: "C7", capacitance: "22nF", footprint: "0603", schOrientation: "vertical", connections: {
            pin2: "net.GND",
        } }),
    React.createElement("capacitor", { name: "C9", capacitance: "2.2uF", footprint: "0603", schOrientation: "vertical", connections: { pin1: "net.V1_1", pin2: "net.GND" } }),
    React.createElement("capacitor", { name: "C10", capacitance: "2.2uF", footprint: "0603", schOrientation: "vertical", connections: { pin1: "U3.VREG_VIN", pin2: "net.GND" } }),
    React.createElement("capacitor", { name: "C11", capacitance: "2.2uF", footprint: "0603", schOrientation: "vertical", connections: { pin1: "U3.ADC_AVDD", pin2: "net.GND" } })));

const pinLabels = {
    pin1: ["A"],
    pin2: ["B"],
    pin3: ["C"],
    pin4: ["D"],
};
const TS_1187A_B_A_B = (props) => {
    return (React.createElement("pushbutton", { pinLabels: pinLabels, supplierPartNumbers: {
            jlcpcb: ["C318884"],
        }, internallyConnectedPins: [
            ["A", "B"],
            ["C", "D"],
        ], manufacturerPartNumber: "TS_1187A_B_A_B", footprint: React.createElement("footprint", null,
            React.createElement("smtpad", { portHints: ["pin1"], pcbX: "-2.999994000000015mm", pcbY: "1.8498819999999796mm", width: "0.9999979999999999mm", height: "0.7500112mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin2"], pcbX: "2.999994000000015mm", pcbY: "1.8498819999999796mm", width: "0.9999979999999999mm", height: "0.7500112mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin3"], pcbX: "-2.999994000000015mm", pcbY: "-1.849881999999866mm", width: "0.9999979999999999mm", height: "0.7500112mm", shape: "rect" }),
            React.createElement("smtpad", { portHints: ["pin4"], pcbX: "2.999994000000015mm", pcbY: "-1.849881999999866mm", width: "0.9999979999999999mm", height: "0.7500112mm", shape: "rect" }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.0007600000001275, y: 1.800860000000057 },
                    { x: 0.899159999999938, y: 1.800860000000057 },
                    { x: 1.8008599999999433, y: 0.899159999999938 },
                    { x: 1.8008599999999433, y: -0.899159999999938 },
                    { x: 0.8000999999999294, y: -1.8999199999999519 },
                    { x: -0.8991600000000517, y: -1.8999199999999519 },
                    { x: -1.800860000000057, y: -0.9982199999999466 },
                    { x: -1.800860000000057, y: 1.0007600000000139 },
                    { x: -1.0007600000001275, y: 1.800860000000057 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 1.2750800000000027, y: 2.550160000000119 },
                    { x: 2.1701506000000563, y: 1.6550893999999516 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 2.5501599999998916, y: 1.1684000000000196 },
                    { x: 2.5501599999998916, y: -1.1684000000000196 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: 2.1701506000000563, y: -1.6550893999999516 },
                    { x: 1.2750800000000027, y: -2.5501600000000053 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -2.5501600000000053, y: 1.1684000000000196 },
                    { x: -2.5501600000000053, y: -1.1684000000000196 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -2.17015060000017, y: -1.6550893999999516 },
                    { x: -1.2750800000000027, y: -2.5501600000000053 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.2750800000000027, y: 2.550160000000119 },
                    { x: -2.17015060000017, y: 1.6550893999999516 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.2750800000000027, y: -2.5501600000000053 },
                    { x: 1.2750800000000027, y: -2.5501600000000053 },
                ] }),
            React.createElement("silkscreenpath", { route: [
                    { x: -1.2750800000000027, y: 2.550160000000119 },
                    { x: 1.2750800000000027, y: 2.550160000000119 },
                ] })), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=91b67c1735f643ffb2e7226c23dd3492&pn=C318884",
            rotationOffset: { x: 0, y: 0, z: 0 },
            positionOffset: { x: 0, y: 0, z: 0 },
        }, ...props }));
};

const KeyCircuit = () => (React.createElement("group", { pcbX: 0, pcbY: 5 },
    React.createElement("resistor", { name: "R2", resistance: "1k", footprint: "0402", connections: {
            pin1: "net.QSPI_SS_N",
        } }),
    React.createElement(TS_1187A_B_A_B, { name: "SW1", connections: {
            pin1: "R2.2",
            pin2: "net.GND",
        } }),
    React.createElement(TS_1187A_B_A_B, { name: "SW2", connections: {
            pin1: "net.RUN",
            pin2: "net.GND",
        } })));

var index = () => (React.createElement(XiaoBoard, { variant: "RP2040", name: "J1", width: "21mm", height: "17.5mm", routingDisabled: true },
    React.createElement("group", { subcircuit: true, routingDisabled: true },
        React.createElement(VoltageRegulator, null),
        React.createElement(LedCircuit, null),
        React.createElement(FlashCircuit, null),
        React.createElement(CrystalCircuit, null),
        React.createElement(KeyCircuit, null),
        React.createElement(RP2040Circuit, null))));

export { index as default };