ShiboSoftwareDev/i-wan
This code defines a PCB and schematic for a microcontroller development board, incorporating various surface-mount components (resistors, capacitors, headers, connectors, crystals, and an IC), with detailed footprints, electrical nets, and routing instructions.
- Version
- 1.0.10
- License
- unset
- Stars
- 0
dist/index.js
import { jsx, jsxs } from 'react/jsx-runtime';
import { AutoroutingPipelineSolver } from '@tscircuit/capacity-autorouter';
import { FanoutSolver } from '@tscircuit/fanout-solver';
const CSTCR4M00G53_R0 = (props) => {
return (jsx("resonator", { frequency: "4MHz", loadCapacitance: "15pF", pinVariant: "ground_pin", supplierPartNumbers: {
"jlcpcb": [
"C22122"
]
}, manufacturerPartNumber: "CSTCR4M00G53_R0", footprint: jsxs("footprint", { children: [jsx("smtpad", { portHints: ["pin1"], pcbX: "-1.499997mm", pcbY: "0mm", width: "0.8001mm", height: "2.99974mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.000127mm", pcbY: "0mm", width: "0.8001mm", height: "2.99974mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin3"], pcbX: "1.499997mm", pcbY: "0mm", width: "0.8001mm", height: "2.99974mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": -2.300096999999937, "y": 1.1000232000000096 }, { "x": -2.300096999999937, "y": -1.0999978000000965 }] }), jsx("silkscreenpath", { route: [{ "x": 2.2998684000001504, "y": 1.1000232000000096 }, { "x": 2.2998684000001504, "y": -1.0999978000000965 }] }), jsx("silkscreenpath", { route: [{ "x": -2.300096999999937, "y": 1.1000232000000096 }, { "x": -2.131313999999861, "y": 1.1000232000000096 }] }), jsx("silkscreenpath", { route: [{ "x": -0.8689339999998538, "y": 1.1000232000000096 }, { "x": -0.6313169999999673, "y": 1.1000232000000096 }] }), jsx("silkscreenpath", { route: [{ "x": 0.6310630000001538, "y": 1.1000232000000096 }, { "x": 0.8686800000000403, "y": 1.1000232000000096 }] }), jsx("silkscreenpath", { route: [{ "x": 2.1310600000001614, "y": 1.1000232000000096 }, { "x": 2.2998684000001504, "y": 1.1000232000000096 }] }), jsx("silkscreenpath", { route: [{ "x": -2.300096999999937, "y": -1.0999978000000965 }, { "x": -2.131313999999861, "y": -1.0999978000000965 }] }), jsx("silkscreenpath", { route: [{ "x": -0.8689339999998538, "y": -1.0999978000000965 }, { "x": -0.6313169999999673, "y": -1.0999978000000965 }] }), jsx("silkscreenpath", { route: [{ "x": 0.6310630000001538, "y": -1.0999978000000965 }, { "x": 0.8686800000000403, "y": -1.0999978000000965 }] }), jsx("silkscreenpath", { route: [{ "x": 2.1310600000001614, "y": -1.0999978000000965 }, { "x": 2.2998684000001504, "y": -1.0999978000000965 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.012827mm", pcbY: "2.4986mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -2.5615269999999555, "y": 1.7486000000000104 }, { "x": 2.535873000000038, "y": 1.7486000000000104 }, { "x": 2.535873000000038, "y": -1.7486000000000104 }, { "x": -2.5615269999999555, "y": -1.7486000000000104 }, { "x": -2.5615269999999555, "y": 1.7486000000000104 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C22122.obj?uuid=cf7e6f23fe2b4e8ba9b6e877647e77c5",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C22122.step?uuid=cf7e6f23fe2b4e8ba9b6e877647e77c5",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.00011430000006384944, y: 0, z: -1.15 },
}, ...props }));
};
const pinLabels$4 = {
pin1: ["VBUS"],
pin2: ["D_NEG"],
pin3: ["D_POS"],
pin4: ["ID"],
pin5: ["GND"],
pin6: ["SH1"],
pin7: ["SH2"],
pin8: ["SH3"],
pin9: ["SH4"]
};
const MicroXNJ = (props) => {
return (jsx("connector", { pinLabels: pinLabels$4, supplierPartNumbers: {
"jlcpcb": [
"C404969"
]
}, manufacturerPartNumber: "MicroXNJ", footprint: jsxs("footprint", { children: [jsx("platedhole", { portHints: ["pin6"], pcbX: "-0.869042mm", pcbY: "2.424938mm", outerDiameter: "1.2999974mm", holeDiameter: "0.700024mm", shape: "circle" }), jsx("platedhole", { portHints: ["pin9"], pcbX: "-0.869042mm", pcbY: "-2.424938mm", outerDiameter: "1.2999974mm", holeDiameter: "0.700024mm", shape: "circle" }), jsx("platedhole", { portHints: ["pin8"], pcbX: "1.811166mm", pcbY: "-3.624834mm", holeWidth: "0.700024mm", holeHeight: "1.200023mm", outerWidth: "1.2999974mm", outerHeight: "1.7999964mm", pcbRotation: "90deg", shape: "pill" }), jsx("platedhole", { portHints: ["pin7"], pcbX: "1.811166mm", pcbY: "3.624834mm", holeWidth: "0.700024mm", holeHeight: "1.200023mm", outerWidth: "1.2999974mm", outerHeight: "1.7999964mm", pcbRotation: "90deg", shape: "pill" }), jsx("smtpad", { portHints: ["pin5"], pcbX: "-0.861168mm", pcbY: "1.299972mm", width: "1.999996mm", height: "0.3999992mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin4"], pcbX: "-0.861168mm", pcbY: "0.649986mm", width: "1.999996mm", height: "0.3999992mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.861168mm", pcbY: "0mm", width: "1.999996mm", height: "0.3999992mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.861168mm", pcbY: "-0.649986mm", width: "1.999996mm", height: "0.3999992mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.861168mm", pcbY: "-1.299972mm", width: "1.999996mm", height: "0.3999992mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": 0.5294565999998895, "y": -3.7454586000000063 }, { "x": -1.254004400000099, "y": -3.7454586000000063 }, { "x": -1.254004400000099, "y": -3.2736028000001625 }] }), jsx("silkscreenpath", { route: [{ "x": -1.254004400000099, "y": 3.273780600000009 }, { "x": -1.254004400000099, "y": 3.7900863999998364 }, { "x": 0.536974999999984, "y": 3.7900863999998364 }] }), jsx("silkscreenpath", { route: [{ "x": 3.9225409999997964, "y": -2.9998924000001352 }, { "x": 4.422540000000026, "y": -2.9998924000001352 }, { "x": 4.452435799999876, "y": 3.0900369999999384 }, { "x": 3.9225409999997964, "y": 3.1000192000000197 }] }), jsx("silkscreenpath", { route: [{ "x": 2.919317200000023, "y": 3.7900863999998364 }, { "x": 3.511772199999882, "y": 3.7900863999998364 }] }), jsx("silkscreenpath", { route: [{ "x": 3.5226941999999326, "y": -3.7454586000000063 }, { "x": 2.926632399999903, "y": -3.7454586000000063 }] }), jsx("silkscreenpath", { route: [{ "x": 3.9225409999997964, "y": -2.9998924000001352 }, { "x": 3.942454600000019, "y": -3.4499042000001054 }, { "x": 4.437627599999928, "y": -3.869969400000059 }, { "x": 3.5226941999999326, "y": -3.7454586000000063 }] }), jsx("silkscreenpath", { route: [{ "x": 3.9225409999997964, "y": -2.9998924000001352 }, { "x": 3.9225409999997964, "y": 3.1000192000000197 }, { "x": 3.9225409999997964, "y": 3.4000948000000335 }, { "x": 4.3974955999999565, "y": 3.9300404000000526 }, { "x": 3.511772199999882, "y": 3.8000686000000314 }] }), jsx("silkscreenpath", { route: [{ "x": 0.4826443999999128, "y": -3.7326824000000443 }, { "x": 0.30807019999997465, "y": -3.731869599999982 }] }), jsx("silkscreenpath", { route: [{ "x": 0.48299999999994725, "y": -3.734917600000017 }, { "x": 0.27520259999994323, "y": -3.73131079999996 }] }), jsx("silkscreenpath", { route: [{ "x": -1.8845340000000306, "y": -2.0490180000000464 }, { "x": -1.8888614200612892, "y": -2.081888018728023 }, { "x": -1.901548773719469, "y": -2.1125180000000228 }, { "x": -1.9217314387893794, "y": -2.1388205612106503 }, { "x": -1.948034000000007, "y": -2.1590032262806744 }, { "x": -1.9786639812721205, "y": -2.1716905799387405 }, { "x": -2.0115339999999833, "y": -2.176017999999999 }, { "x": -2.0444040187280734, "y": -2.1716905799387405 }, { "x": -2.0750339999999596, "y": -2.1590032262806744 }, { "x": -2.1013365612108146, "y": -2.1388205612106503 }, { "x": -2.1215192262806113, "y": -2.1125180000000228 }, { "x": -2.1342065799386774, "y": -2.081888018728023 }, { "x": -2.1385340000001634, "y": -2.0490180000000464 }, { "x": -2.1342065799386774, "y": -2.01614798127207 }, { "x": -2.1215192262806113, "y": -1.9855179999999564 }, { "x": -2.1013365612108146, "y": -1.9592154387893288 }, { "x": -2.0750339999999596, "y": -1.939032773719532 }, { "x": -2.0444040187280734, "y": -1.9263454200612387 }, { "x": -2.0115339999999833, "y": -1.92201799999998 }, { "x": -1.9786639812721205, "y": -1.9263454200612387 }, { "x": -1.948034000000007, "y": -1.939032773719532 }, { "x": -1.9217314387893794, "y": -1.9592154387893288 }, { "x": -1.901548773719469, "y": -1.9855179999999564 }, { "x": -1.8888614200612892, "y": -2.01614798127207 }, { "x": -1.8845340000000306, "y": -2.0490180000000464 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "1.2033948mm", pcbY: "5.0577262mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -2.3994052000000465, "y": 4.307726200000047 }, { "x": 4.8061947999999575, "y": 4.307726200000047 }, { "x": 4.8061947999999575, "y": -4.269473800000014 }, { "x": -2.3994052000000465, "y": -4.269473800000014 }, { "x": -2.3994052000000465, "y": 4.307726200000047 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C404969.obj?uuid=a2b1a9114fe84000a47b1a073321bc87",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C404969.step?uuid=a2b1a9114fe84000a47b1a073321bc87",
pcbRotationOffset: 90,
modelOriginPosition: { x: 0.015163800000095762, y: -1.2809149000001319, z: -1.8298538000000002 },
}, ...props }));
};
const pinLabels$3 = {
pin1: ["pin1"],
pin2: ["pin2"],
pin3: ["pin3"],
pin4: ["pin4"],
pin5: ["pin5"],
pin6: ["pin6"],
pin7: ["pin7"],
pin8: ["pin8"],
pin9: ["pin9"],
pin10: ["pin10"],
pin11: ["AVCC1"],
pin12: ["XIN"],
pin13: ["XOUT"],
pin14: ["AVSS1"],
pin15: ["DVCC1"],
pin16: ["DVSS1"],
pin17: ["VCORE"],
pin18: ["pin18"],
pin19: ["pin19"],
pin20: ["LED0"],
pin21: ["LED1"],
pin22: ["pin22"],
pin23: ["pin23"],
pin24: ["pin24"],
pin25: ["pin25"],
pin26: ["pin26"],
pin27: ["pin27"],
pin28: ["pin28"],
pin29: ["pin29"],
pin30: ["pin30"],
pin31: ["pin31"],
pin32: ["pin32"],
pin33: ["pin33"],
pin34: ["HOST_SDA"],
pin35: ["HOST_SCL"],
pin36: ["pin36"],
pin37: ["UART_TXD"],
pin38: ["UART_RXD"],
pin39: ["DVSS2"],
pin40: ["DVCC2"],
pin41: ["pin41"],
pin42: ["pin42"],
pin43: ["TARGET_SBWTDIO"],
pin44: ["TARGET_SBWTCK"],
pin45: ["pin45"],
pin46: ["pin46"],
pin47: ["pin47"],
pin48: ["pin48"],
pin49: ["VSSU"],
pin50: ["USB_DP"],
pin51: ["PUR"],
pin52: ["USB_DM"],
pin53: ["VBUS"],
pin54: ["VUSB"],
pin55: ["V18"],
pin56: ["AVSS2"],
pin57: ["XT2IN"],
pin58: ["XT2OUT"],
pin59: ["TEST", "SBWTCK"],
pin60: ["TDO"],
pin61: ["TDI"],
pin62: ["TMS"],
pin63: ["TCK"],
pin64: ["RST", "SBWTDIO"],
pin65: ["EP", "GND_EP"]
};
const MSP430F5528IRGCR = (props) => {
return (jsx("chip", { pinLabels: pinLabels$3, supplierPartNumbers: {
"jlcpcb": [
"C179685"
]
}, manufacturerPartNumber: "MSP430F5528IRGCR", footprint: jsxs("footprint", { children: [jsx("smtpad", { portHints: ["pin65"], pcbX: "0.000127mm", pcbY: "0.000127mm", width: "4.2999914mm", height: "4.2999914mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin64"], pcbX: "-4.499991mm", pcbY: "-3.749929mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin63"], pcbX: "-4.499991mm", pcbY: "-3.249803mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin62"], pcbX: "-4.499991mm", pcbY: "-2.749931mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin61"], pcbX: "-4.499991mm", pcbY: "-2.249805mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin60"], pcbX: "-4.499991mm", pcbY: "-1.749933mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin59"], pcbX: "-4.499991mm", pcbY: "-1.249807mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin58"], pcbX: "-4.499991mm", pcbY: "-0.749935mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin57"], pcbX: "-4.499991mm", pcbY: "-0.249809mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin56"], pcbX: "-4.499991mm", pcbY: "0.250063mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin55"], pcbX: "-4.499991mm", pcbY: "0.750189mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin54"], pcbX: "-4.499991mm", pcbY: "1.250061mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin53"], pcbX: "-4.499991mm", pcbY: "1.750187mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin52"], pcbX: "-4.499991mm", pcbY: "2.250059mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin51"], pcbX: "-4.499991mm", pcbY: "2.750185mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin50"], pcbX: "-4.499991mm", pcbY: "3.250057mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin49"], pcbX: "-4.499991mm", pcbY: "3.750183mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin48"], pcbX: "-3.750183mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin47"], pcbX: "-3.250057mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin46"], pcbX: "-2.750185mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin45"], pcbX: "-2.250059mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin44"], pcbX: "-1.750187mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin43"], pcbX: "-1.250061mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin42"], pcbX: "-0.750189mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin41"], pcbX: "-0.250063mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin40"], pcbX: "0.249809mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin39"], pcbX: "0.749935mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin38"], pcbX: "1.249807mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin37"], pcbX: "1.749933mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin36"], pcbX: "2.249805mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin35"], pcbX: "2.749931mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin34"], pcbX: "3.249803mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin33"], pcbX: "3.749929mm", pcbY: "4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin32"], pcbX: "4.499991mm", pcbY: "3.750183mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin31"], pcbX: "4.499991mm", pcbY: "3.250057mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin30"], pcbX: "4.499991mm", pcbY: "2.750185mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin29"], pcbX: "4.499991mm", pcbY: "2.250059mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin28"], pcbX: "4.499991mm", pcbY: "1.750187mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin27"], pcbX: "4.499991mm", pcbY: "1.250061mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin26"], pcbX: "4.499991mm", pcbY: "0.750189mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin25"], pcbX: "4.499991mm", pcbY: "0.250063mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin24"], pcbX: "4.499991mm", pcbY: "-0.249809mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin23"], pcbX: "4.499991mm", pcbY: "-0.749935mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin22"], pcbX: "4.499991mm", pcbY: "-1.249807mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin21"], pcbX: "4.499991mm", pcbY: "-1.749933mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin20"], pcbX: "4.499991mm", pcbY: "-2.249805mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin19"], pcbX: "4.499991mm", pcbY: "-2.749931mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin18"], pcbX: "4.499991mm", pcbY: "-3.249803mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin17"], pcbX: "4.499991mm", pcbY: "-3.749929mm", width: "0.7999984mm", height: "0.249936mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin16"], pcbX: "3.749929mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin15"], pcbX: "3.249803mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin14"], pcbX: "2.749931mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin13"], pcbX: "2.249805mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin12"], pcbX: "1.749933mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin11"], pcbX: "1.249807mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin10"], pcbX: "0.749935mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin9"], pcbX: "0.249809mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin8"], pcbX: "-0.250063mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin7"], pcbX: "-0.750189mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin6"], pcbX: "-1.250061mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.750187mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin4"], pcbX: "-2.250059mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin3"], pcbX: "-2.750185mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "-3.250057mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin1"], pcbX: "-3.750183mm", pcbY: "-4.499991mm", width: "0.249936mm", height: "0.7999984mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": -4.5001179999999295, "y": 4.106291000000056 }, { "x": -4.5001179999999295, "y": 4.500118000000043 }] }), jsx("silkscreenpath", { route: [{ "x": -4.106290999999828, "y": -4.499863999999889 }, { "x": -4.5001179999999295, "y": -4.499863999999889 }, { "x": -4.5001179999999295, "y": -4.106037000000015 }] }), jsx("silkscreenpath", { route: [{ "x": 4.499864000000116, "y": -4.106037000000015 }, { "x": 4.499864000000116, "y": -4.499863999999889 }, { "x": 4.106037000000015, "y": -4.499863999999889 }] }), jsx("silkscreenpath", { route: [{ "x": 4.106037000000015, "y": 4.500118000000043 }, { "x": 4.499864000000116, "y": 4.500118000000043 }, { "x": 4.499864000000116, "y": 4.106291000000056 }] }), jsx("silkscreenpath", { route: [{ "x": -4.5001179999999295, "y": 4.500118000000043 }, { "x": -4.106290999999828, "y": 4.500118000000043 }] }), jsx("silkscreenpath", { route: [{ "x": -4.444999999999936, "y": -4.952999999999861 }, { "x": -4.568188380049264, "y": -4.827911471495327 }, { "x": -4.4437299999999595, "y": -4.704086479760576 }, { "x": -4.319271619950541, "y": -4.827911471495327 }, { "x": -4.442459999999869, "y": -4.952999999999861 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "0.000127mm", pcbY: "5.902327mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -5.152072999999973, "y": 5.1523270000001276 }, { "x": 5.152327000000014, "y": 5.1523270000001276 }, { "x": 5.152327000000014, "y": -5.456872999999973 }, { "x": -5.152072999999973, "y": -5.456872999999973 }, { "x": -5.152072999999973, "y": 5.1523270000001276 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C179685.obj?uuid=0ffb808492284182bfb30691efcc53fa",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C179685.step?uuid=0ffb808492284182bfb30691efcc53fa",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: -0.05 },
}, ...props }));
};
const pinLabels$2 = {
pin1: ["RST", "SBWTDIO"],
pin2: ["TEST", "SBWTCK"],
pin3: ["P1_4", "UCA0TXD", "A4"],
pin4: ["P1_5", "UCA0RXD", "A5"],
pin5: ["P1_6", "A6"],
pin6: ["P1_7", "A7"],
pin7: ["P1_0", "A0"],
pin8: ["P1_1", "A1"],
pin9: ["P1_2", "UCB0SDA", "A2"],
pin10: ["P1_3", "UCB0SCL", "A3"],
pin11: ["P2_2", "ACLK"],
pin12: ["P3_0"],
pin13: ["P2_3"],
pin14: ["P3_1", "UCA1STE"],
pin15: ["P2_4", "UCA1CLK"],
pin16: ["P2_5", "UCA1RXD"],
pin17: ["P2_6", "UCA1TXD"],
pin18: ["DVSS2", "GND2"],
pin19: ["P2_7"],
pin20: ["P3_2"],
pin21: ["P2_0", "XOUT"],
pin22: ["P2_1", "XIN"],
pin23: ["DVSS1", "GND1"],
pin24: ["DVCC"],
pin25: ["EP", "GND_EP"]
};
const MSP430FR2433IRGER = (props) => {
return (jsx("chip", { pinLabels: pinLabels$2, supplierPartNumbers: {
"jlcpcb": [
"C191026"
]
}, manufacturerPartNumber: "MSP430FR2433IRGER", footprint: jsxs("footprint", { children: [jsx("smtpad", { portHints: ["pin25"], pcbX: "-0.001016mm", pcbY: "-0.000889mm", width: "2.7999944mm", height: "2.7999944mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin24"], pcbX: "-1.250188mm", pcbY: "2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin23"], pcbX: "-0.750316mm", pcbY: "2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin22"], pcbX: "-0.25019mm", pcbY: "2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin21"], pcbX: "0.249682mm", pcbY: "2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin20"], pcbX: "0.749808mm", pcbY: "2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin19"], pcbX: "1.24968mm", pcbY: "2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin18"], pcbX: "2.041652mm", pcbY: "1.250061mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin17"], pcbX: "2.041652mm", pcbY: "0.749935mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin16"], pcbX: "2.041652mm", pcbY: "0.250063mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin15"], pcbX: "2.041652mm", pcbY: "-0.250063mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin14"], pcbX: "2.041652mm", pcbY: "-0.749935mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin13"], pcbX: "2.041652mm", pcbY: "-1.250061mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin12"], pcbX: "1.24968mm", pcbY: "-2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin11"], pcbX: "0.749808mm", pcbY: "-2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin10"], pcbX: "0.249682mm", pcbY: "-2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin9"], pcbX: "-0.25019mm", pcbY: "-2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin8"], pcbX: "-0.750316mm", pcbY: "-2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin7"], pcbX: "-1.250188mm", pcbY: "-2.048129mm", width: "0.299974mm", height: "0.7999984mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin6"], pcbX: "-2.041652mm", pcbY: "-1.249807mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin5"], pcbX: "-2.041652mm", pcbY: "-0.749935mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin4"], pcbX: "-2.041652mm", pcbY: "-0.249809mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin3"], pcbX: "-2.041652mm", pcbY: "0.250063mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "-2.041652mm", pcbY: "0.750189mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin1"], pcbX: "-2.041652mm", pcbY: "1.250061mm", width: "0.7999984mm", height: "0.2999994mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": -2.104491600000074, "y": 1.7001743999999235 }, { "x": -2.104491600000074, "y": 2.1001481999999214 }, { "x": -1.7001743999999235, "y": 2.1000212000000147 }] }), jsx("silkscreenpath", { route: [{ "x": -2.1001990000000887, "y": -1.6998696000000564 }, { "x": -2.1001990000000887, "y": -2.099970399999961 }, { "x": -1.7001743999999235, "y": -2.099970399999961 }] }), jsx("silkscreenpath", { route: [{ "x": 2.0997926000000007, "y": -1.5999460000000454 }, { "x": 2.0997926000000007, "y": -2.099970399999961 }, { "x": 1.699818799999889, "y": -2.099970399999961 }] }), jsx("silkscreenpath", { route: [{ "x": 1.6954753999999639, "y": 2.1001481999999214 }, { "x": 2.095449199999962, "y": 2.1001481999999214 }, { "x": 2.095449199999962, "y": 1.7001743999999235 }] }), jsx("silkscreenpath", { route: [{ "x": -2.4132540000000517, "y": 1.9051269999999931 }, { "x": -2.417581420061424, "y": 1.872256981271903 }, { "x": -2.43026877371949, "y": 1.8416270000000168 }, { "x": -2.4504514387894005, "y": 1.8153244387893892 }, { "x": -2.476754000000028, "y": 1.7951417737193651 }, { "x": -2.507383981272028, "y": 1.782454420061299 }, { "x": -2.5402540000000045, "y": 1.7781270000000404 }, { "x": -2.5731240187280946, "y": 1.782454420061299 }, { "x": -2.603753999999981, "y": 1.7951417737193651 }, { "x": -2.6300565612108358, "y": 1.8153244387893892 }, { "x": -2.6502392262806325, "y": 1.8416270000000168 }, { "x": -2.662926579938812, "y": 1.872256981271903 }, { "x": -2.667253999999957, "y": 1.9051269999999931 }, { "x": -2.662926579938812, "y": 1.9379970187279696 }, { "x": -2.6502392262806325, "y": 1.9686269999999695 }, { "x": -2.6300565612108358, "y": 1.9949295612107107 }, { "x": -2.603753999999981, "y": 2.0151122262805075 }, { "x": -2.5731240187280946, "y": 2.027799579938687 }, { "x": -2.5402540000000045, "y": 2.032126999999946 }, { "x": -2.507383981272028, "y": 2.027799579938687 }, { "x": -2.476754000000028, "y": 2.0151122262805075 }, { "x": -2.4504514387894005, "y": 1.9949295612107107 }, { "x": -2.43026877371949, "y": 1.9686269999999695 }, { "x": -2.417581420061424, "y": 1.9379970187279696 }, { "x": -2.4132540000000517, "y": 1.9051269999999931 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.126238mm", pcbY: "3.448687mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -2.9289380000000165, "y": 2.69868699999995 }, { "x": 2.6764619999999013, "y": 2.69868699999995 }, { "x": 2.6764619999999013, "y": -2.7035130000001573 }, { "x": -2.9289380000000165, "y": -2.7035130000001573 }, { "x": -2.9289380000000165, "y": 2.69868699999995 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C191026.obj?uuid=f9f49049b1e946aebac8a4ca9e490364",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C191026.step?uuid=f9f49049b1e946aebac8a4ca9e490364",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.00013970000009067007, y: -5079999993995443e-20, z: -0.02 },
}, ...props }));
};
const SC_32S32_768kHz20PPM12_5pF = (props) => {
return (jsx("crystal", { frequency: "32.768kHz", loadCapacitance: "12.5pF", pinVariant: "two_pin", supplierPartNumbers: {
"jlcpcb": [
"C97606"
]
}, manufacturerPartNumber: "SC_32S32_768kHz20PPM12_5pF", footprint: jsxs("footprint", { children: [jsx("smtpad", { portHints: ["pin1"], pcbX: "-1.1549888mm", pcbY: "0mm", width: "0.850011mm", height: "1.6999966mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "1.1549888mm", pcbY: "0mm", width: "0.850011mm", height: "1.6999966mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": -2.028596400000083, "y": -1.0786109999999098 }, { "x": -2.028596400000083, "y": 1.0786110000000235 }, { "x": 2.0285963999999694, "y": 1.0786110000000235 }, { "x": 2.0285963999999694, "y": -1.0786109999999098 }, { "x": -2.028596400000083, "y": -1.0786109999999098 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "2.0668mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -2.282000000000039, "y": 1.3167999999999438 }, { "x": 2.2819999999999254, "y": 1.3167999999999438 }, { "x": 2.2819999999999254, "y": -1.3421999999999343 }, { "x": -2.282000000000039, "y": -1.3421999999999343 }, { "x": -2.282000000000039, "y": 1.3167999999999438 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C97606.obj?uuid=b374b09d4a6d4557b2ff8af51e7e333f",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C97606.step?uuid=b374b09d4a6d4557b2ff8af51e7e333f",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const pinLabels$1 = {
pin1: ["pin1"],
pin2: ["pin2"]
};
const TS342A2P_WZ = (props) => {
return (jsx("pushbutton", { pinLabels: pinLabels$1, supplierPartNumbers: {
"jlcpcb": [
"C557591"
]
}, manufacturerPartNumber: "TS342A2P_WZ", footprint: jsxs("footprint", { children: [jsx("smtpad", { portHints: ["pin1"], pcbX: "-2.035048mm", pcbY: "0mm", width: "1.5299944mm", height: "1.3599922mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "2.035048mm", pcbY: "0mm", width: "1.5299944mm", height: "1.3599922mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": 2.0761959999999817, "y": 1.5761970000000929 }, { "x": -2.0761960000000954, "y": 1.5761970000000929 }] }), jsx("silkscreenpath", { route: [{ "x": 2.0761959999999817, "y": -1.5761969999999792 }, { "x": 2.0761959999999817, "y": -0.8832087999999203 }] }), jsx("silkscreenpath", { route: [{ "x": 2.0761959999999817, "y": 1.5761970000000929 }, { "x": 2.0761959999999817, "y": 0.8832087999999203 }] }), jsx("silkscreenpath", { route: [{ "x": -2.0761960000000954, "y": 1.5761970000000929 }, { "x": -2.0761960000000954, "y": 0.8832087999999203 }] }), jsx("silkscreenpath", { route: [{ "x": 2.0761959999999817, "y": -1.5761969999999792 }, { "x": -2.0761960000000954, "y": -1.5761969999999792 }] }), jsx("silkscreenpath", { route: [{ "x": -2.0761960000000954, "y": -1.5761969999999792 }, { "x": -2.0761960000000954, "y": -0.8832087999999203 }] }), jsx("silkscreenpath", { route: [{ "x": 0.8133080000000064, "y": 0 }, { "x": 0.7855952019274355, "y": -0.21049959993422362 }, { "x": 0.7043453891010358, "y": -0.4066540000000032 }, { "x": 0.5750956019933255, "y": -0.5750956019932119 }, { "x": 0.4066540000000032, "y": -0.7043453891010358 }, { "x": 0.21049959993410994, "y": -0.7855952019275492 }, { "x": 0, "y": -0.8133080000000064 }, { "x": -0.21049959993422362, "y": -0.7855952019275492 }, { "x": -0.4066540000000032, "y": -0.7043453891010358 }, { "x": -0.5750956019934392, "y": -0.5750956019932119 }, { "x": -0.7043453891011495, "y": -0.4066540000000032 }, { "x": -0.7855952019276629, "y": -0.21049959993422362 }, { "x": -0.81330800000012, "y": 0 }, { "x": -0.7855952019276629, "y": 0.2104995999343373 }, { "x": -0.7043453891011495, "y": 0.40665400000011687 }, { "x": -0.5750956019934392, "y": 0.5750956019933255 }, { "x": -0.4066540000000032, "y": 0.7043453891011495 }, { "x": -0.21049959993422362, "y": 0.7855952019275492 }, { "x": 0, "y": 0.81330800000012 }, { "x": 0.21049959993410994, "y": 0.7855952019275492 }, { "x": 0.4066540000000032, "y": 0.7043453891011495 }, { "x": 0.5750956019933255, "y": 0.5750956019933255 }, { "x": 0.7043453891010358, "y": 0.40665400000011687 }, { "x": 0.7855952019274355, "y": 0.2104995999343373 }, { "x": 0.8133080000000064, "y": 0 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "2.5748mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -3.0439999999999827, "y": 1.8248000000000957 }, { "x": 3.043999999999869, "y": 1.8248000000000957 }, { "x": 3.043999999999869, "y": -1.8248000000000957 }, { "x": -3.0439999999999827, "y": -1.8248000000000957 }, { "x": -3.0439999999999827, "y": 1.8248000000000957 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C557591.obj?uuid=01b89f2829364ee897a7f8e9b91bc152",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C557591.step?uuid=01b89f2829364ee897a7f8e9b91bc152",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -1.51 },
}, ...props }));
};
const pinLabels = {
pin1: ["DM_CONNECTOR"],
pin2: ["GND"],
pin3: ["DP_CONNECTOR"],
pin4: ["DP_MCU"],
pin5: ["VBUS"],
pin6: ["DM_MCU"]
};
const USBLC6_2SC6 = (props) => {
return (jsx("chip", { pinLabels: pinLabels, supplierPartNumbers: {
"jlcpcb": [
"C7519"
]
}, manufacturerPartNumber: "USBLC6_2SC6", footprint: jsxs("footprint", { children: [jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.94996mm", pcbY: "-1.149096mm", width: "0.532003mm", height: "1.072007mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin2"], pcbX: "0mm", pcbY: "-1.149096mm", width: "0.532003mm", height: "1.072007mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin3"], pcbX: "0.94996mm", pcbY: "-1.149096mm", width: "0.532003mm", height: "1.072007mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin4"], pcbX: "0.94996mm", pcbY: "1.149096mm", width: "0.532003mm", height: "1.072007mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin5"], pcbX: "0mm", pcbY: "1.149096mm", width: "0.532003mm", height: "1.072007mm", shape: "rect" }), jsx("smtpad", { portHints: ["pin6"], pcbX: "-0.94996mm", pcbY: "1.149096mm", width: "0.532003mm", height: "1.072007mm", shape: "rect" }), jsx("silkscreenpath", { route: [{ "x": 1.5391891999998961, "y": -0.8892031999998835 }, { "x": 1.5391891999998961, "y": 0.8892031999999972 }] }), jsx("silkscreenpath", { route: [{ "x": -1.5391892000000098, "y": -0.8892031999998835 }, { "x": -1.5391892000000098, "y": 0.8892031999999972 }] }), jsx("silkscreenpath", { route: [{ "x": -1.518158000000085, "y": -1.3014960000000428 }, { "x": -1.5232730105126393, "y": -1.3403483621364103 }, { "x": -1.538269462536391, "y": -1.3765529999999444 }, { "x": -1.5621253726490067, "y": -1.4076426273509242 }, { "x": -1.5932150000001002, "y": -1.4314985374635398 }, { "x": -1.6294196378635206, "y": -1.4464949894874053 }, { "x": -1.6682720000001154, "y": -1.451609999999846 }, { "x": -1.7071243621367103, "y": -1.4464949894874053 }, { "x": -1.7433290000001307, "y": -1.4314985374635398 }, { "x": -1.7744186273511104, "y": -1.4076426273509242 }, { "x": -1.7982745374637261, "y": -1.3765529999999444 }, { "x": -1.8132709894875916, "y": -1.3403483621364103 }, { "x": -1.818386000000146, "y": -1.3014960000000428 }, { "x": -1.8132709894875916, "y": -1.2626436378633343 }, { "x": -1.7982745374637261, "y": -1.226438999999914 }, { "x": -1.7744186273511104, "y": -1.1953493726489341 }, { "x": -1.7433290000001307, "y": -1.1714934625363185 }, { "x": -1.7071243621367103, "y": -1.156497010512453 }, { "x": -1.6682720000001154, "y": -1.1513819999998987 }, { "x": -1.6294196378635206, "y": -1.156497010512453 }, { "x": -1.5932150000001002, "y": -1.1714934625363185 }, { "x": -1.5621253726490067, "y": -1.1953493726489341 }, { "x": -1.538269462536391, "y": -1.226438999999914 }, { "x": -1.5232730105126393, "y": -1.2626436378633343 }, { "x": -1.518158000000085, "y": -1.3014960000000428 }] }), jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.1524mm", pcbY: "2.6764mm", anchorAlignment: "center", fontSize: "1mm" }), jsx("courtyardoutline", { outline: [{ "x": -2.078800000000001, "y": 1.9264000000000578 }, { "x": 1.7739999999998872, "y": 1.9264000000000578 }, { "x": 1.7739999999998872, "y": -2.0279999999999063 }, { "x": -2.078800000000001, "y": -2.0279999999999063 }, { "x": -2.078800000000001, "y": 1.9264000000000578 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C7519.obj?uuid=229b69761e2c45dba6a83d8866dec72d",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C7519.step?uuid=229b69761e2c45dba6a83d8866dec72d",
pcbRotationOffset: 90,
modelOriginPosition: { x: -12700000070253736e-21, y: 0.000012700000070253736, z: -0.048939 },
}, ...props }));
};
const OUTER_LAYERS = ["top", "bottom"];
const FANOUT_PADDING_MM = 1;
const LOCAL_FANOUT_PADDING_MM = 0.5;
const ROUTING_CLEARANCE_MM = 0.15;
const VIA_TO_PAD_ROUTING_CLEARANCE_MM = 0.155;
const getOuterLayerRoutingProblem = (input) => ({
...input,
// Route with guard-band above the board's 0.10 mm DRC rule.
// This compensates for the autorouter/core geometry-grid mismatch without
// changing the physical board constraint or biasing any path/via location.
defaultObstacleMargin: Math.max(input.defaultObstacleMargin ?? 0, ROUTING_CLEARANCE_MM),
minTraceToPadEdgeClearance: Math.max(input.minTraceToPadEdgeClearance ?? 0, ROUTING_CLEARANCE_MM),
minViaEdgeToPadEdgeClearance: Math.max(input.minViaEdgeToPadEdgeClearance ?? 0, VIA_TO_PAD_ROUTING_CLEARANCE_MM),
// The physical board remains four-layer. Presenting only the two outer
// copper layers to the routing solvers means every emitted top/bottom
// transition is interpreted by tscircuit as a full-stack L1-L4 via.
layerCount: 2,
buses: input.buses?.map((bus) => ({
...bus,
allowedLayers: bus.allowedLayers?.filter((layer) => OUTER_LAYERS.includes(layer)),
})),
obstacles: input.obstacles.flatMap((obstacle) => {
const layers = OUTER_LAYERS.filter((layer) => obstacle.layers.includes(layer));
if (layers.length === 0)
return [];
const zLayers = layers.map((layer) => (layer === "top" ? 0 : 1));
return [{ ...obstacle, layers: [...layers], zLayers, __zLayers: zLayers }];
}),
});
const getObstacleGroups = (obstacles) => {
const groups = new Map();
for (const obstacle of obstacles) {
if (!obstacle.componentId)
continue;
const group = groups.get(obstacle.componentId) ?? [];
group.push(obstacle);
groups.set(obstacle.componentId, group);
}
return groups;
};
const getBounds = (obstacles) => ({
minX: Math.min(...obstacles.map((obstacle) => obstacle.center.x - obstacle.width / 2)),
maxX: Math.max(...obstacles.map((obstacle) => obstacle.center.x + obstacle.width / 2)),
minY: Math.min(...obstacles.map((obstacle) => obstacle.center.y - obstacle.height / 2)),
maxY: Math.max(...obstacles.map((obstacle) => obstacle.center.y + obstacle.height / 2)),
});
const expandBounds = (bounds, padding) => ({
minX: bounds.minX - padding,
maxX: bounds.maxX + padding,
minY: bounds.minY - padding,
maxY: bounds.maxY + padding,
});
const pointIsInBounds = (point, bounds) => point.x >= bounds.minX &&
point.x <= bounds.maxX &&
point.y >= bounds.minY &&
point.y <= bounds.maxY;
const getOutwardDirection = (point, center) => {
const dx = point.x - center.x;
const dy = point.y - center.y;
if (Math.abs(dx) >= Math.abs(dy))
return dx < 0 ? "left" : "right";
return dy < 0 ? "down" : "up";
};
const getQfnSupplyRailTokens = (input) => {
const qfnBounds = [...getObstacleGroups(input.obstacles).values()]
.filter((componentObstacles) => componentObstacles.length >= 20)
.map(getBounds);
const supplyRailTokens = new Set();
for (const connection of input.connections) {
if (connection.pointsToConnect.length < 2)
continue;
const qfnPadCounts = qfnBounds.map((bounds) => {
const padLocations = new Set(connection.pointsToConnect
.filter((point) => pointIsInBounds(point, bounds))
.map((point) => `${point.x.toFixed(6)}:${point.y.toFixed(6)}`));
return padLocations.size;
});
// Supply rails usually feed a small group of QFN supply pads. The ground
// return has many more package pads and is already handled by the board's
// inner ground plane, so keep it in the global same-net tree.
const totalQfnPadCount = qfnPadCounts.reduce((total, padCount) => total + padCount, 0);
if (totalQfnPadCount >= 2 && totalQfnPadCount <= 4) {
supplyRailTokens.add(connection.name);
}
}
return supplyRailTokens;
};
const connectionMatchesNetToken = (connection, netTokens) => [
connection.name,
connection.rootConnectionName,
connection.netConnectionName,
connection.__netConnectionName,
...(connection.mergedConnectionNames ?? []),
...(connection.__rootConnectionNames ?? []),
].some((token) => token !== undefined && netTokens.has(token));
/**
* Apply one coordinated fanout-solver operation to each QFN-like device. The
* buses and their directions come entirely from package geometry and
* connectivity; there are no authored via coordinates, route points, or
* per-pin direction overrides.
*/
const addQfnFanout = (input, supplyRailTokens) => {
let output = input;
const fanoutPrefixes = new Map();
const obstacleGroups = getObstacleGroups(input.obstacles);
const applyFanout = ({ componentId, candidates, sharedBoundary, escapeLayers, busLabel, termination = { type: "boundary" }, }) => {
if (candidates.length === 0)
return;
const fanoutConnections = candidates.map(({ connection }) => connection);
const buses = ["left", "right", "up", "down"]
.map((direction) => ({
busId: `${componentId}-${busLabel}-${direction}`,
connectionNames: candidates
.filter((candidate) => candidate.direction === direction)
.map(({ connection }) => connection.name),
direction,
termination,
}))
.filter((bus) => bus.connectionNames.length > 0);
const fanoutSolver = new FanoutSolver({
...output,
connections: fanoutConnections,
buses: buses,
}, {
buses,
sourceComponentId: componentId,
escapeLayers,
sharedBoundary,
allowSameNetMerges: true,
compactBusTracks: true,
singleLayerPushAndShove: true,
singleLayerAdaptiveExits: true,
borderDistribution: "preserve",
});
fanoutSolver.solve();
if (fanoutSolver.failed) {
throw new Error(`Coordinated QFN ${busLabel} fanout failed for ${componentId}: ${fanoutSolver.error}`);
}
const fanoutOutput = fanoutSolver.getOutputSimpleRouteJson();
const priorTraceIds = new Set((output.traces ?? []).map((trace) => trace.pcb_trace_id));
for (const connection of fanoutConnections) {
const prefix = fanoutOutput.traces?.find((trace) => trace.connection_name === connection.name &&
!priorTraceIds.has(trace.pcb_trace_id));
if (!prefix) {
throw new Error(`Coordinated QFN ${busLabel} fanout did not emit a prefix for ${connection.name}`);
}
fanoutPrefixes.set(connection.name, prefix);
}
const routedNames = new Set(fanoutConnections.map(({ name }) => name));
const untouchedConnections = output.connections.filter(({ name }) => !routedNames.has(name));
output = {
...fanoutOutput,
connections: [...fanoutOutput.connections, ...untouchedConnections],
buses: output.buses,
};
};
for (const [componentId, componentObstacles] of obstacleGroups) {
// On this board the two QFNs are the only top-side packages with at least
// twenty component-tagged copper obstacles. Escape every connected pad on
// each QFN in one coordinated, geometry-derived operation.
if (componentObstacles.length < 20)
continue;
const componentBounds = getBounds(componentObstacles);
const fanoutBounds = expandBounds(componentBounds, FANOUT_PADDING_MM);
const componentCenter = {
x: (componentBounds.minX + componentBounds.maxX) / 2,
y: (componentBounds.minY + componentBounds.maxY) / 2,
};
const allCandidates = [];
const candidatePadLocations = new Set();
for (const connection of output.connections) {
// Multi-point nets are collected separately below; this pass handles
// ordinary point-to-point package connections only.
if (connection.pointsToConnect.length !== 2)
continue;
const sourcePointIndex = connection.pointsToConnect.findIndex((point) => pointIsInBounds(point, componentBounds));
if (sourcePointIndex < 0)
continue;
const sourcePoint = connection.pointsToConnect[sourcePointIndex];
const destinationPoint = connection.pointsToConnect[1 - sourcePointIndex];
if (!sourcePoint || !destinationPoint)
continue;
const padLocationKey = `${sourcePoint.x.toFixed(6)}:${sourcePoint.y.toFixed(6)}`;
// A single physical pad may appear in several logical two-point traces.
// Escape that copper location once; Pipeline 9 keeps the other same-net
// branches connected to the preloaded trace.
if (candidatePadLocations.has(padLocationKey))
continue;
candidatePadLocations.add(padLocationKey);
const direction = getOutwardDirection(sourcePoint, componentCenter);
const destinationLayer = "layer" in destinationPoint
? destinationPoint.layer
: (destinationPoint.layers.find((layer) => OUTER_LAYERS.includes(layer)) ?? "top");
allCandidates.push({
direction,
connection,
destinationLayer,
// A compact secondary escape is useful for the cluster of adjacent
// bypass parts beside the package's left edge. Other directions
// retain the wider coordinated boundary, which gives their global
// continuations more room to meet the preloaded prefix.
isLocal: direction === "left" &&
destinationLayer === "bottom" &&
Math.hypot(destinationPoint.x - sourcePoint.x, destinationPoint.y - sourcePoint.y) <= 3,
});
}
const localFanoutBounds = expandBounds(componentBounds, LOCAL_FANOUT_PADDING_MM);
for (const layer of OUTER_LAYERS) {
applyFanout({
componentId,
candidates: allCandidates.filter((candidate) => candidate.isLocal && candidate.destinationLayer === layer),
sharedBoundary: localFanoutBounds,
escapeLayers: [layer],
busLabel: `local-${layer}`,
});
}
// Split a merged QFN supply tree into one solver-owned branch per supply
// pad. Each branch is escaped to the shared top-layer boundary before the
// global same-net solver runs, keeping its vias outside the fine-pitch pad
// field without authoring any route point or via coordinate.
const supplyCandidates = [];
const rewrittenConnections = [];
for (const connection of output.connections) {
if (!connectionMatchesNetToken(connection, supplyRailTokens)) {
rewrittenConnections.push(connection);
continue;
}
const componentPoints = connection.pointsToConnect.filter((point) => pointIsInBounds(point, componentBounds));
if (componentPoints.length === 0) {
rewrittenConnections.push(connection);
continue;
}
const componentPointSet = new Set(componentPoints);
const remainingPoints = connection.pointsToConnect.filter((point) => !componentPointSet.has(point));
const anchorPoint = remainingPoints[0];
if (!anchorPoint) {
rewrittenConnections.push(connection);
continue;
}
if (remainingPoints.length >= 2) {
rewrittenConnections.push({
...connection,
pointsToConnect: remainingPoints,
});
}
for (const [pointIndex, point] of componentPoints.entries()) {
const supplyConnection = {
...connection,
name: `${connection.name}__supply_${componentId}_${pointIndex}`,
rootConnectionName: connection.rootConnectionName ?? connection.name,
netConnectionName: connection.netConnectionName ??
connection.rootConnectionName ??
connection.name,
pointsToConnect: [point, anchorPoint],
};
rewrittenConnections.push(supplyConnection);
supplyCandidates.push({
direction: getOutwardDirection(point, componentCenter),
connection: supplyConnection,
});
}
}
output = { ...output, connections: rewrittenConnections };
applyFanout({
componentId,
candidates: supplyCandidates,
sharedBoundary: fanoutBounds,
escapeLayers: ["top"],
busLabel: "supply",
});
applyFanout({
componentId,
candidates: allCandidates.filter((candidate) => !candidate.isLocal),
sharedBoundary: fanoutBounds,
escapeLayers: ["top"],
busLabel: "external",
});
}
return { routingProblem: output, fanoutPrefixes };
};
const reverseRoute = (route) => route.toReversed().map((point) => {
if (point.route_type === "via") {
return {
...point,
from_layer: point.to_layer,
to_layer: point.from_layer,
};
}
if (point.route_type !== "wire")
return point;
const { start_pcb_port_id, end_pcb_port_id, ...rest } = point;
return {
...rest,
...(end_pcb_port_id ? { start_pcb_port_id: end_pcb_port_id } : {}),
...(start_pcb_port_id ? { end_pcb_port_id: start_pcb_port_id } : {}),
};
});
const routeEndsTouch = (first, second) => {
// The downstream DRC improver snaps fanout exits to its 1 µm geometry grid.
const endpointToleranceMm = 0.01;
if ((first.route_type !== "wire" && first.route_type !== "via") ||
(second.route_type !== "wire" && second.route_type !== "via")) {
return false;
}
return (Math.abs(first.x - second.x) <= endpointToleranceMm &&
Math.abs(first.y - second.y) <= endpointToleranceMm &&
(first.route_type === "via" ||
second.route_type === "via" ||
first.layer === second.layer));
};
const joinFanoutPrefix = (completion, prefix) => {
const completionStart = completion.route[0];
const completionEnd = completion.route.at(-1);
const prefixStart = prefix.route[0];
const prefixEnd = prefix.route.at(-1);
if (!completionStart || !completionEnd || !prefixStart || !prefixEnd) {
throw new Error(`Cannot join empty fanout route ${completion.connection_name}`);
}
if (routeEndsTouch(prefixEnd, completionStart)) {
return {
...completion,
route: [...prefix.route, ...completion.route.slice(1)],
};
}
if (routeEndsTouch(prefixEnd, completionEnd)) {
return {
...completion,
route: [...completion.route, ...reverseRoute(prefix.route).slice(1)],
};
}
// Pipeline 9 can absorb a short preloaded local fanout into its final route
// and return a complete source-to-destination trace instead of a route that
// begins at the fanout exit. In that case the original pad endpoint proves
// that the prefix is already represented and must not be concatenated again.
if (routeEndsTouch(prefixStart, completionStart) ||
routeEndsTouch(prefixStart, completionEnd)) {
return completion;
}
throw new Error(`Global route for ${completion.connection_name} does not meet its fanout prefix`);
};
const fanoutPrefixTouchesTrace = (completion, prefix) => {
const prefixEnd = prefix.route.at(-1);
const completionStart = completion.route[0];
const completionEnd = completion.route.at(-1);
return Boolean(prefixEnd &&
((completionStart && routeEndsTouch(prefixEnd, completionStart)) ||
(completionEnd && routeEndsTouch(prefixEnd, completionEnd))));
};
class ThroughViaFanoutAutorouter {
input;
isRouting = false;
solver;
fanoutPrefixes;
eventHandlers = { complete: [], error: [], progress: [] };
timeoutId;
cycleCount = 0;
constructor(input) {
this.input = input;
const supplyRailTokens = getQfnSupplyRailTokens(input);
const outerLayerProblem = getOuterLayerRoutingProblem(input);
const { routingProblem, fanoutPrefixes } = addQfnFanout(outerLayerProblem, supplyRailTokens);
this.fanoutPrefixes = fanoutPrefixes;
this.solver = new AutoroutingPipelineSolver(routingProblem, {
// The optional expander only widens already-routed power nets. It can
// exhaust its fixed iteration budget on this board; the trace-width
// solver has already applied the requested per-net widths.
powerTraceExpansion: { onlyConnectionNames: [] },
});
}
on(eventName, callback) {
this.eventHandlers[eventName].push(callback);
}
start() {
if (this.isRouting)
return;
this.isRouting = true;
this.cycleCount = 0;
this.timeoutId = setTimeout(() => this.runCycle(), 0);
}
stop() {
this.isRouting = false;
if (this.timeoutId !== undefined)
clearTimeout(this.timeoutId);
this.timeoutId = undefined;
}
solveSync() {
this.solver.solve();
if (this.solver.failed) {
throw new Error(this.solver.error ?? "Outer-layer autorouting failed");
}
return this.getFinalTraces();
}
getFinalTraces() {
const completions = this.solver.getOutputSimplifiedPcbTraces();
const unmatchedPrefixes = new Map(this.fanoutPrefixes);
const traces = completions.map((completion) => {
const directPrefix = unmatchedPrefixes.get(completion.connection_name);
const matchingPrefix = directPrefix
? [completion.connection_name, directPrefix]
: [...unmatchedPrefixes].find(([, prefix]) => fanoutPrefixTouchesTrace(completion, prefix));
if (!matchingPrefix)
return completion;
unmatchedPrefixes.delete(matchingPrefix[0]);
return joinFanoutPrefix(completion, matchingPrefix[1]);
});
if (unmatchedPrefixes.size > 0) {
throw new Error(`Global routes did not meet ${unmatchedPrefixes.size} fanout prefix(es): ${[
...unmatchedPrefixes.keys(),
].join(", ")}`);
}
return traces;
}
emit(eventName, event) {
for (const callback of this.eventHandlers[eventName])
callback(event);
}
runCycle() {
if (!this.isRouting)
return;
try {
if (this.solver.failed) {
this.isRouting = false;
this.emit("error", {
type: "error",
error: new Error(this.solver.error ?? "Outer-layer autorouting failed"),
});
return;
}
if (this.solver.solved) {
this.isRouting = false;
this.emit("complete", {
type: "complete",
traces: this.getFinalTraces(),
});
return;
}
const startedAt = Date.now();
const startingIterations = this.solver.iterations;
while (Date.now() - startedAt < 200 &&
!this.solver.solved &&
!this.solver.failed) {
this.solver.step();
}
const elapsedMs = Math.max(1, Date.now() - startedAt);
this.cycleCount++;
this.emit("progress", {
type: "progress",
steps: this.cycleCount,
progress: this.solver.progress,
phase: this.solver.getCurrentPhase(),
iterationsPerSecond: ((this.solver.iterations - startingIterations) / elapsedMs) * 1000,
});
this.timeoutId = setTimeout(() => this.runCycle(), 0);
}
catch (error) {
this.isRouting = false;
this.emit("error", {
type: "error",
error: error instanceof Error ? error : new Error(String(error)),
});
}
}
}
const throughViaFanoutAutorouter = {
local: true,
groupMode: "subcircuit",
algorithmFn: async (simpleRouteJson) => new ThroughViaFanoutAutorouter(simpleRouteJson),
};
// The schematic follows the two-sheet organization used by TI's
// MSP-EXP430FR2433 LaunchPad reference: eZ-FET/USB first, target second.
// These coordinates affect only the schematic; PCB placement and routing stay fixed.
const onEzFetSheet = (placement) => ({
schSheetName: "EZ_FET",
...placement,
});
const onTargetSheet = (placement) => ({
schSheetName: "TARGET",
...placement,
});
const SCH = {
// Sheet 1: USB interface and power supply (upper-left in the TI reference)
J_USB: onEzFetSheet({ schX: -13, schY: 5.2 }),
U_ESD: onEzFetSheet({ schX: -9.5, schY: 4.5, schRotation: 180 }),
R_USB_DM: onEzFetSheet({ schX: -6.5, schY: 4, schOrientation: "horizontal" }),
R_USB_DP: onEzFetSheet({ schX: -6.5, schY: 5, schOrientation: "horizontal" }),
R_USB_PUR: onEzFetSheet({ schX: -6.5, schY: 2.5, schOrientation: "horizontal" }),
R_DBG_VBUS_LINK: onEzFetSheet({ schX: -7.5, schY: 7, schOrientation: "horizontal" }),
R_SHIELD: onEzFetSheet({ schX: -11.5, schY: 1, schOrientation: "vertical" }),
C_SHIELD: onEzFetSheet({ schX: -11.5, schY: -1, schOrientation: "vertical" }),
// Sheet 1: conventional LDO replacing the reference EnergyTrace converter
U_LDO: onEzFetSheet({ schX: -8, schY: -4 }),
C_LDO_IN: onEzFetSheet({ schX: -11.5, schY: -5.5, schOrientation: "vertical" }),
C_LDO_OUT: onEzFetSheet({ schX: -5, schY: -5.5, schOrientation: "vertical" }),
R_LDO_EN: onEzFetSheet({ schX: -11.5, schY: -3, schOrientation: "horizontal" }),
R_LED_PWR: onEzFetSheet({ schX: -2.5, schY: -3.5, schOrientation: "vertical" }),
LED_PWR: onEzFetSheet({ schX: -2.5, schY: -5.5, schOrientation: "vertical" }),
// Sheet 1: host MCU for emulation and local support circuitry
U_DBG: onEzFetSheet({ schX: 3.5, schY: 1.5 }),
Y_DBG: onEzFetSheet({ schX: -0.5, schY: 5.5, schOrientation: "right" }),
C_DBG_VCORE: onEzFetSheet({ schX: 10, schY: 6.7, schOrientation: "vertical" }),
C_DBG_VUSB: onEzFetSheet({ schX: 0, schY: -3, schOrientation: "vertical" }),
C_DBG_V18: onEzFetSheet({ schX: 0, schY: -5, schOrientation: "vertical" }),
C_DBG_AVCC: onEzFetSheet({ schX: 3, schY: -5.5, schOrientation: "vertical" }),
C_DBG_DVCC1: onEzFetSheet({ schX: 5, schY: -5.5, schOrientation: "vertical" }),
C_DBG_DVCC2: onEzFetSheet({ schX: 7, schY: -5.5, schOrientation: "vertical" }),
C_DBG_BULK: onEzFetSheet({ schX: 11, schY: -5.5, schOrientation: "vertical" }),
R_DBG_RST: onEzFetSheet({ schX: 8, schY: 8, schOrientation: "horizontal" }),
C_DBG_RST: onEzFetSheet({ schX: 11, schY: 8, schOrientation: "vertical" }),
R_DBG_RED: onEzFetSheet({ schX: 0, schY: 8, schOrientation: "horizontal" }),
LED_DBG_RED: onEzFetSheet({ schX: -2, schY: 8, schOrientation: "horizontal" }),
R_DBG_GREEN: onEzFetSheet({ schX: 0, schY: 6.8, schOrientation: "horizontal" }),
LED_DBG_GREEN: onEzFetSheet({ schX: -2, schY: 6.8, schOrientation: "horizontal" }),
J_DBG_PROG: onEzFetSheet({ schX: 5, schY: 8, schRotation: 180 }),
// Sheet 1: eZ-FET target isolation block at the lower-right
J_ISO_SBW_TST: onEzFetSheet({ schX: 8.5, schY: 3 }),
J_ISO_SBW_RST: onEzFetSheet({ schX: 8.5, schY: 1.6 }),
J_ISO_UART_RX: onEzFetSheet({ schX: 8.5, schY: 0.2 }),
J_ISO_UART_TX: onEzFetSheet({ schX: 8.5, schY: -1.2 }),
J_ISO_3V3: onEzFetSheet({ schX: 8.5, schY: -2.6 }),
J_ISO_5V: onEzFetSheet({ schX: 8.5, schY: -4 }),
J_ISO_GND: onEzFetSheet({ schX: 8.5, schY: -5.4 }),
// Sheet 2: target MCU and support circuitry
U_TARGET: onTargetSheet({ schX: 0, schY: 2 }),
C_TARGET_DEC: onTargetSheet({ schX: -11.5, schY: 1.5, schOrientation: "vertical" }),
C_TARGET_BULK: onTargetSheet({ schX: -8.5, schY: 1.5, schOrientation: "vertical" }),
R_TARGET_RST: onTargetSheet({ schX: -8, schY: 7.2, schOrientation: "horizontal" }),
C_TARGET_RST: onTargetSheet({ schX: -6, schY: 5.3, schOrientation: "vertical" }),
SW_RESET: onTargetSheet({ schX: -5.5, schY: 7.2, schOrientation: "down" }),
SW1: onTargetSheet({ schX: -12.5, schY: 7, schOrientation: "down" }),
SW2: onTargetSheet({ schX: -12.5, schY: 4.5, schOrientation: "down" }),
// Sheet 2: 32-kHz clock at lower-left of the MCU
Y_TARGET: onTargetSheet({ schX: -9, schY: -1.3, schOrientation: "horizontal" }),
R_XIN: onTargetSheet({ schX: -5.5, schY: -0.5, schOrientation: "horizontal" }),
R_XOUT: onTargetSheet({ schX: -5.5, schY: -2.2, schOrientation: "horizontal" }),
C_XIN: onTargetSheet({ schX: -10.5, schY: -3.5, schOrientation: "vertical" }),
C_XOUT: onTargetSheet({ schX: -7.5, schY: -3.5, schOrientation: "vertical" }),
// Sheet 2: BoosterPack headers across the lower middle
J1: onTargetSheet({ schX: -3, schY: -3.2 }),
J2: onTargetSheet({ schX: 5, schY: -3.2 }),
// Sheet 2: user LEDs at lower-right
R_LED1_EN: onTargetSheet({ schX: 8, schY: -4.5, schOrientation: "horizontal" }),
R_LED1: onTargetSheet({ schX: 10.5, schY: -4.5, schOrientation: "horizontal" }),
LED1: onTargetSheet({ schX: 13, schY: -4.5, schOrientation: "horizontal" }),
R_LED2_EN: onTargetSheet({ schX: 8, schY: -7, schOrientation: "horizontal" }),
R_LED2: onTargetSheet({ schX: 10.5, schY: -7, schOrientation: "horizontal" }),
LED2: onTargetSheet({ schX: 13, schY: -7, schOrientation: "horizontal" }),
// Sheet 2: external power, supercapacitor, and bring-up points
J_EXT_PWR: onTargetSheet({ schX: -12, schY: -7 }),
J_SUPERCAP: onTargetSheet({ schX: 10.5, schY: 5.5 }),
R_SUPERCAP: onTargetSheet({ schX: 13, schY: 5.5, schOrientation: "horizontal" }),
C_SUPERCAP: onTargetSheet({ schX: 10.5, schY: 2.5, schOrientation: "vertical" }),
TP_5V: onTargetSheet({ schX: -12, schY: -9.2 }),
TP_3V3: onTargetSheet({ schX: -8, schY: -9.2 }),
TP_GND: onTargetSheet({ schX: -4, schY: -9.2 }),
TP_RST: onTargetSheet({ schX: 0, schY: -9.2 }),
};
const jlcpcbPart = (manufacturerPartNumber, lcscPartNumber) => ({
manufacturerPartNumber,
supplierPartNumbers: { jlcpcb: [lcscPartNumber] },
});
// One reviewed, in-stock JLCPCB/LCSC choice for every fitted generic part.
// The imported ICs/connectors/oscillators already carry their exact C-numbers.
const JLC_PARTS = {
CAP_100NF_0402: jlcpcbPart("CL05B104KO5NNNC", "C1525"),
CAP_10UF_0805: jlcpcbPart("CL21A106KAYNNNE", "C15850"),
CAP_1NF_0402: jlcpcbPart("0402B102K500NT", "C1523"),
CAP_470NF_0402: jlcpcbPart("CL05A474KP5NNNC", "C47339"),
CAP_220NF_0402: jlcpcbPart("CL05B224KO5NNNC", "C16772"),
CAP_1UF_0603: jlcpcbPart("CL10A105KB8NNNC", "C15849"),
CAP_1NF_0603: jlcpcbPart("CL10B102KB8NNNC", "C1588"),
CAP_12PF_0402: jlcpcbPart("0402CG120J500NT", "C1547"),
RES_390R_0603: jlcpcbPart("0603WAF3900T5E", "C23151"),
RES_470R_0603: jlcpcbPart("0603WAF4700T5E", "C23179"),
RES_47K_0402: jlcpcbPart("0402WGF4702TCE", "C25792"),
RES_0R_0402: jlcpcbPart("0402WGF0000TCE", "C17168"),
RES_10K_0402: jlcpcbPart("0402WGF1002TCE", "C25744"),
RES_1K_0603: jlcpcbPart("0603WAF1001T5E", "C21190"),
RES_0R_0603: jlcpcbPart("0603WAF0000T5E", "C21189"),
RES_1M_0603: jlcpcbPart("0603WAF1004T5E", "C22935"),
RES_22R_0603: jlcpcbPart("0603WAF220JT5E", "C23345"),
RES_27R_0402: jlcpcbPart("0402WGF270JTCE", "C25100"),
RES_1K4_0402: jlcpcbPart("FRC0402F1401TS", "C2974008"),
LED_RED_0603: jlcpcbPart("KT-0603R", "C2286"),
LED_GREEN_0603: jlcpcbPart("XL-1608SYGC-06", "C965805"),
HEADER_1X2_MALE: jlcpcbPart("PZ254V-11-02P", "C492401"),
HEADER_1X3_MALE: jlcpcbPart("PZ254V-11-03P", "C2937625"),
HEADER_1X7_MALE: jlcpcbPart("PZ254V-11-07P", "C492406"),
HEADER_1X10_FEMALE: jlcpcbPart("PM254-1-10-Z-8.5", "C2897373"),
};
const Ldo3V3 = (props) => (jsx("chip", { ...props, manufacturerPartNumber: "TLV70033DDCR", supplierPartNumbers: { jlcpcb: ["C11337"] }, footprint: "sot23_5", pinLabels: {
pin1: "IN",
pin2: "GND",
pin3: "EN",
pin4: "NC",
pin5: "OUT",
}, pinAttributes: {
IN: { requiresPower: true },
GND: { requiresGround: true },
EN: { mustBeConnected: true },
OUT: { providesPower: true },
} }));
const TwoPinHeaderJumper = ({ name, pcbX, schX, schY, schSheetName, }) => (jsx("jumper", { name: name, ...JLC_PARTS.HEADER_1X2_MALE, footprint: jsxs("footprint", { children: [jsx("platedhole", { shape: "circle", portHints: ["pin1"], pcbX: "0mm", pcbY: "1.27mm", holeDiameter: "0.9mm", outerDiameter: "1.7mm" }), jsx("platedhole", { shape: "circle", portHints: ["pin2"], pcbX: "0mm", pcbY: "-1.27mm", holeDiameter: "0.9mm", outerDiameter: "1.7mm" }), jsx("silkscreenrect", { width: "2mm", height: "3.4mm" })] }), pinLabels: { pin1: "HOST", pin2: "TARGET" }, schPinArrangement: { leftSide: ["HOST"], rightSide: ["TARGET"] }, schX: schX, schY: schY, schSheetName: schSheetName, pcbX: pcbX, pcbY: 6.5 }));
var index_circuit = () => (jsxs("board", { title: "MSP-EXP430FR2433 compatible LaunchPad - tscircuit edition", width: "54mm", height: "86mm", layers: 4, borderRadius: "2mm", minTraceWidth: "0.1mm", minViaHoleDiameter: "0.3mm", minViaPadDiameter: "0.45mm", pcbStyle: { viaHoleDiameter: "0.3mm", viaPadDiameter: "0.45mm" }, autorouter: throughViaFanoutAutorouter, children: [jsxs("schematicsheet", { name: "EZ_FET", displayName: "eZ-FET, USB, and Power", sheetIndex: 0, children: [jsx("schematictext", { text: "USB Interface and Power Supply", schX: -14.5, schY: 9.5, fontSize: 0.65, anchor: "left" }), jsx("schematictext", { text: "Host MCU for emulation", schX: 1, schY: 9.5, fontSize: 0.65, anchor: "left" }), jsx("schematictext", { text: "eZ-FET Target", schX: 8, schY: 4.8, fontSize: 0.65, anchor: "left" }), jsx("schematictext", { text: "This edition uses a conventional 3.3 V LDO; the TI EnergyTrace converter is not fitted.", schX: -14.5, schY: -8.5, fontSize: 0.35, anchor: "left", color: "#555555" })] }), jsxs("schematicsheet", { name: "TARGET", displayName: "MSP430FR2433 Target", sheetIndex: 1, children: [jsx("schematictext", { text: "MSP430FR2433 Target Device", schX: -2.5, schY: 9.5, fontSize: 0.65, anchor: "left" }), jsx("schematictext", { text: "Super Capacitor", schX: 9, schY: 8.5, fontSize: 0.55, anchor: "left" }), jsx("schematictext", { text: "LEDs", schX: 10, schY: -3, fontSize: 0.55, anchor: "left" }), jsx("netlabel", { net: "GND", connection: "SW_RESET.pin2", schX: -4.7, schY: 6.1, anchorSide: "top" }), jsx("netlabel", { net: "GND", connection: "C_TARGET_RST.pin2", schX: -6, schY: 4.1, anchorSide: "top" }), jsx("netlabel", { net: "TARGET_RST", connection: "R_TARGET_RST.pin1", schX: -8.6, schY: 7.2, anchorSide: "right" }), jsx("netlabel", { net: "TARGET_RST", connection: "U_TARGET.RST", schX: 4.2, schY: 1.9, anchorSide: "left" })] }), jsx("hole", { name: "H_MOUNT_1", diameter: "3.2mm", pcbX: -23, pcbY: 38 }), jsx("hole", { name: "H_MOUNT_2", diameter: "3.2mm", pcbX: 23, pcbY: 38 }), jsx("hole", { name: "H_MOUNT_3", diameter: "3.2mm", pcbX: -23, pcbY: -38 }), jsx("hole", { name: "H_MOUNT_4", diameter: "3.2mm", pcbX: 23, pcbY: -38 }), jsx("fiducial", { name: "FID1", padDiameter: "1mm", soldermaskPullback: "1mm", pcbX: -20, pcbY: 34 }), jsx("fiducial", { name: "FID2", padDiameter: "1mm", soldermaskPullback: "1mm", pcbX: 20, pcbY: -34 }), jsx("silkscreentext", { text: "MSP-EXP430FR2433 compatible", fontSize: "1.2mm", pcbX: 0, pcbY: -40.5 }), jsx("silkscreentext", { text: "eZ-FET / USB", fontSize: "1mm", pcbX: 0, pcbY: 10.5 }), jsx("silkscreentext", { text: "TARGET", fontSize: "1mm", pcbX: 0, pcbY: 1.8 }), jsx(MicroXNJ, { name: "J_USB", ...SCH.J_USB, pcbX: 0, pcbY: 39.2, pcbRotation: 90, noConnect: ["ID"] }), jsx(USBLC6_2SC6, { name: "U_ESD", ...SCH.U_ESD, pcbX: 0, pcbY: 32.5, pcbRotation: 90, pinAttributes: {
VBUS: { requiresPower: true },
GND: { requiresGround: true },
} }), jsx("resistor", { name: "R_USB_DM", ...SCH.R_USB_DM, ...JLC_PARTS.RES_27R_0402, resistance: "27ohm", footprint: "0402", pcbX: -7, pcbY: 21.75 }), jsx("resistor", { name: "R_USB_DP", ...SCH.R_USB_DP, ...JLC_PARTS.RES_27R_0402, resistance: "27ohm", footprint: "0402", pcbX: -7, pcbY: 22.75 }), jsx("resistor", { name: "R_USB_PUR", ...SCH.R_USB_PUR, ...JLC_PARTS.RES_1K4_0402, resistance: "1.4kohm", footprint: "0402", layer: "bottom", pcbX: -11, pcbY: 23.5 }), jsx("resistor", { name: "R_DBG_VBUS_LINK", ...SCH.R_DBG_VBUS_LINK, ...JLC_PARTS.RES_0R_0402, resistance: "0ohm", footprint: "0402", layer: "bottom", pcbX: -8, pcbY: 18 }), jsx("resistor", { name: "R_SHIELD", ...SCH.R_SHIELD, ...JLC_PARTS.RES_1M_0603, resistance: "1Mohm", footprint: "0603", pcbX: 7.2, pcbY: 36.7 }), jsx("capacitor", { name: "C_SHIELD", ...SCH.C_SHIELD, ...JLC_PARTS.CAP_1NF_0603, capacitance: "1nF", footprint: "0603", pcbX: 7.2, pcbY: 34.7 }), jsx(Ldo3V3, { name: "U_LDO", ...SCH.U_LDO, pcbX: -14.5, pcbY: 32, pcbRotation: 180 }), jsx("capacitor", { name: "C_LDO_IN", ...SCH.C_LDO_IN, ...JLC_PARTS.CAP_1UF_0603, capacitance: "1uF", footprint: "0603", pcbX: -18.5, pcbY: 32 }), jsx("capacitor", { name: "C_LDO_OUT", ...SCH.C_LDO_OUT, ...JLC_PARTS.CAP_1UF_0603, capacitance: "1uF", footprint: "0603", pcbX: -10.5, pcbY: 32 }), jsx("resistor", { name: "R_LDO_EN", ...SCH.R_LDO_EN, ...JLC_PARTS.RES_10K_0402, resistance: "10kohm", footprint: "0402", pcbX: -10.5, pcbY: 35 }), jsx("led", { name: "LED_PWR", ...SCH.LED_PWR, ...JLC_PARTS.LED_GREEN_0603, color: "green", footprint: "0603", pcbX: -17, pcbY: 27.5 }), jsx("resistor", { name: "R_LED_PWR", ...SCH.R_LED_PWR, ...JLC_PARTS.RES_1K_0603, resistance: "1kohm", footprint: "0603", pcbX: -13.5, pcbY: 27.5 }), jsx(MSP430F5528IRGCR, { name: "U_DBG", ...SCH.U_DBG, schWidth: "5.5mm", schHeight: "8mm", pcbX: 0, pcbY: 19.5, pcbRotation: 0, pinAttributes: {
AVCC1: { requiresPower: true },
AVSS1: { requiresGround: true },
DVCC1: { requiresPower: true },
DVSS1: { requiresGround: true },
DVCC2: { requiresPower: true },
DVSS2: { requiresGround: true },
AVSS2: { requiresGround: true },
VSSU: { requiresGround: true },
GND_EP: { requiresGround: true },
VBUS: { requiresPower: true },
} }), jsx(CSTCR4M00G53_R0, { name: "Y_DBG", ...SCH.Y_DBG, pcbX: -10, pcbY: 19.5, pcbRotation: 90, pinAttributes: { GND: { requiresGround: true } } }), jsx("capacitor", { name: "C_DBG_VCORE", ...SCH.C_DBG_VCORE, ...JLC_PARTS.CAP_470NF_0402, capacitance: "470nF", maxDecouplingTraceLength: "10mm", footprint: "0402", layer: "bottom", pcbX: 5.7, pcbY: 16.26, pcbRotation: 270 }), jsx("capacitor", { name: "C_DBG_VUSB", ...SCH.C_DBG_VUSB, ...JLC_PARTS.CAP_220NF_0402, capacitance: "220nF", maxDecouplingTraceLength: "10mm", footprint: "0402", pcbX: -7, pcbY: 20.75, pcbRotation: 180 }), jsx("capacitor", { name: "C_DBG_V18", ...SCH.C_DBG_V18, ...JLC_PARTS.CAP_220NF_0402, capacitance: "220nF", maxDecouplingTraceLength: "10mm", footprint: "0402", pcbX: -7, pcbY: 19.5, pcbRotation: 180 }), jsx("capacitor", { name: "C_DBG_AVCC", ...SCH.C_DBG_AVCC, ...JLC_PARTS.CAP_100NF_0402, capacitance: "100nF", footprint: "0402", pcbX: 0, pcbY: 13.2 }), jsx("capacitor", { name: "C_DBG_DVCC1", ...SCH.C_DBG_DVCC1, ...JLC_PARTS.CAP_100NF_0402, capacitance: "100nF", footprint: "0402", pcbX: 2.2, pcbY: 13.2 }), jsx("capacitor", { name: "C_DBG_DVCC2", ...SCH.C_DBG_DVCC2, ...JLC_PARTS.CAP_100NF_0402, capacitance: "100nF", footprint: "0402", pcbX: 4.4, pcbY: 13.2 }), jsx("capacitor", { name: "C_DBG_BULK", ...SCH.C_DBG_BULK, ...JLC_PARTS.CAP_10UF_0805, capacitance: "10uF", footprint: "0805", pcbX: -4, pcbY: 12.4 }), jsx("resistor", { name: "R_DBG_RST", ...SCH.R_DBG_RST, ...JLC_PARTS.RES_47K_0402, resistance: "47kohm", footprint: "0402", pcbX: -7.5, pcbY: 14 }), jsx("capacitor", { name: "C_DBG_RST", ...SCH.C_DBG_RST, ...JLC_PARTS.CAP_1NF_0402, capacitance: "1nF", footprint: "0402", pcbX: -9.5, pcbY: 14 }), jsx("led", { name: "LED_DBG_RED", ...SCH.LED_DBG_RED, ...JLC_PARTS.LED_RED_0603, color: "red", footprint: "0603", pcbX: 8.5, pcbY: 29 }), jsx("resistor", { name: "R_DBG_RED", ...SCH.R_DBG_RED, ...JLC_PARTS.RES_470R_0603, resistance: "470ohm", footprint: "0603", pcbX: 12.5, pcbY: 29 }), jsx("led", { name: "LED_DBG_GREEN", ...SCH.LED_DBG_GREEN, ...JLC_PARTS.LED_GREEN_0603, color: "green", footprint: "0603", pcbX: 8.5, pcbY: 26 }), jsx("resistor", { name: "R_DBG_GREEN", ...SCH.R_DBG_GREEN, ...JLC_PARTS.RES_390R_0603, resistance: "390ohm", footprint: "0603", pcbX: 12.5, pcbY: 25.5 }), jsx("pinheader", { name: "J_DBG_PROG", ...SCH.J_DBG_PROG, ...JLC_PARTS.HEADER_1X7_MALE, pinCount: 7, gender: "male", pitch: "2.54mm", footprint: "pinrow7_p2.54mm", pinLabels: ["TEST", "TDO", "TDI", "TMS", "TCK", "RST", "GND"], showSilkscreenPinLabels: true, pcbX: -21.5, pcbY: 20, pcbRotation: 270 }), jsx(TwoPinHeaderJumper, { name: "J_ISO_SBW_TST", pcbX: -10.5, ...SCH.J_ISO_SBW_TST }), jsx(TwoPinHeaderJumper, { name: "J_ISO_SBW_RST", pcbX: -7, ...SCH.J_ISO_SBW_RST }), jsx(TwoPinHeaderJumper, { name: "J_ISO_UART_RX", pcbX: -3.5, ...SCH.J_ISO_UART_RX }), jsx(TwoPinHeaderJumper, { name: "J_ISO_UART_TX", pcbX: 0, ...SCH.J_ISO_UART_TX }), jsx(TwoPinHeaderJumper, { name: "J_ISO_3V3", pcbX: 3.5, ...SCH.J_ISO_3V3 }), jsx(TwoPinHeaderJumper, { name: "J_ISO_5V", pcbX: 7, ...SCH.J_ISO_5V }), jsx(TwoPinHeaderJumper, { name: "J_ISO_GND", pcbX: 10.5, ...SCH.J_ISO_GND }), jsx("silkscreentext", { text: "TST RST RX TX 3V3 5V GND", fontSize: "0.65mm", pcbX: 0, pcbY: 9.3 }), jsx(MSP430FR2433IRGER, { name: "U_TARGET", ...SCH.U_TARGET, schWidth: "6.5mm", schPinArrangement: {
leftSide: [24, 7, 8, 9, 10, 3, 4, 5, 6, 21, 22, 11, 13, 15, 16, 17, 19],
rightSide: [2, 12, 14, 20, 1, 18, 23, 25],
}, pcbX: 0, pcbY: -13, pcbRotation: 0, pinAttributes: {
DVCC: { requiresPower: true },
GND1: { requiresGround: true },
GND2: { requiresGround: true },
GND_EP: { requiresGround: true },
} }), jsx("capacitor", { name: "C_TARGET_DEC", ...SCH.C_TARGET_DEC, ...JLC_PARTS.CAP_100NF_0402, capacitance: "100nF", maxDecouplingTraceLength: "15mm", footprint: "0402", pcbX: 4.5, pcbY: -9.2 }), jsx("capacitor", { name: "C_TARGET_BULK", ...SCH.C_TARGET_BULK, ...JLC_PARTS.CAP_10UF_0805, capacitance: "10uF", maxDecouplingTraceLength: "15mm", footprint: "0805", pcbX: 7.5, pcbY: -9.2 }), jsx("resistor", { name: "R_TARGET_RST", ...SCH.R_TARGET_RST, ...JLC_PARTS.RES_47K_0402, resistance: "47kohm", footprint: "0402", pcbX: -6, pcbY: -8.5 }), jsx("capacitor", { name: "C_TARGET_RST", ...SCH.C_TARGET_RST, ...JLC_PARTS.CAP_1NF_0402, capacitance: "1nF", footprint: "0402", pcbX: -8, pcbY: -8.5 }), jsx(TS342A2P_WZ, { name: "SW_RESET", ...SCH.SW_RESET, pcbX: -14, pcbY: -5 }), jsx(TS342A2P_WZ, { name: "SW1", ...SCH.SW1, pcbX: -13, pcbY: -20 }), jsx(TS342A2P_WZ, { name: "SW2", ...SCH.SW2, pcbX: 13, pcbY: -20 }), jsx(SC_32S32_768kHz20PPM12_5pF, { name: "Y_TARGET", ...SCH.Y_TARGET, pcbX: -9, pcbY: -13, pcbRotation: 90 }), jsx("resistor", { name: "R_XIN", ...SCH.R_XIN, ...JLC_PARTS.RES_0R_0402, resistance: "0ohm", footprint: "0402", pcbX: -6, pcbY: -11.5 }), jsx("resistor", { name: "R_XOUT", ...SCH.R_XOUT, ...JLC_PARTS.RES_0R_0402, resistance: "0ohm", footprint: "0402", pcbX: -6, pcbY: -14.5 }), jsx("capacitor", { name: "C_XIN", ...SCH.C_XIN, ...JLC_PARTS.CAP_12PF_0402, capacitance: "12pF", footprint: "0402", pcbX: -8.5, pcbY: -9.5 }), jsx("capacitor", { name: "C_XOUT", ...SCH.C_XOUT, ...JLC_PARTS.CAP_12PF_0402, capacitance: "12pF", footprint: "0402", pcbX: -8.5, pcbY: -16.5 }), jsx("resistor", { name: "R_LED1_EN", ...SCH.R_LED1_EN, ...JLC_PARTS.RES_0R_0603, resistance: "0ohm", footprint: "0603", pcbX: -10, pcbY: -25 }), jsx("resistor", { name: "R_LED1", ...SCH.R_LED1, ...JLC_PARTS.RES_470R_0603, resistance: "470ohm", footprint: "0603", pcbX: -6, pcbY: -25 }), jsx("led", { name: "LED1", ...SCH.LED1, ...JLC_PARTS.LED_RED_0603, color: "red", footprint: "0603", pcbX: -2, pcbY: -25 }), jsx("resistor", { name: "R_LED2_EN", ...SCH.R_LED2_EN, ...JLC_PARTS.RES_0R_0603, resistance: "0ohm", footprint: "0603", pcbX: 2, pcbY: -25 }), jsx("resistor", { name: "R_LED2", ...SCH.R_LED2, ...JLC_PARTS.RES_390R_0603, resistance: "390ohm", footprint: "0603", pcbX: 6, pcbY: -25 }), jsx("led", { name: "LED2", ...SCH.LED2, ...JLC_PARTS.LED_GREEN_0603, color: "green", footprint: "0603", pcbX: 10, pcbY: -25 }), jsx("pinheader", { name: "J1", ...SCH.J1, ...JLC_PARTS.HEADER_1X10_FEMALE, pinCount: 10, gender: "female", pitch: "2.54mm", footprint: "pinrow10_p2.54mm", pinLabels: ["V3_3", "A0", "UART_RX", "UART_TX", "GPIO_A6", "GPIO_A7", "SPI_CLK", "GPIO_8", "I2C_SCL", "I2C_SDA"], schPinArrangement: { leftSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }, showSilkscreenPinLabels: true, pcbX: -23, pcbY: -20, pcbRotation: 90 }), jsx("pinheader", { name: "J2", ...SCH.J2, ...JLC_PARTS.HEADER_1X10_FEMALE, pinCount: 10, gender: "female", pitch: "2.54mm", footprint: "pinrow10_p2.54mm", pinLabels: ["GPIO_11", "SPI_CS0", "SPI_CS1", "SPI_MISO", "SPI_MOSI", "RST", "GPIO_17", "GPIO_18", "PWM", "GND"], schPinArrangement: { rightSide: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }, showSilkscreenPinLabels: true, pcbX: 23, pcbY: -20, pcbRotation: 90 }), jsx("pinheader", { name: "J_EXT_PWR", ...SCH.J_EXT_PWR, ...JLC_PARTS.HEADER_1X3_MALE, pinCount: 3, gender: "male", pitch: "2.54mm", footprint: "pinrow3_p2.54mm", pinLabels: ["V5", "V3_3", "GND"], showSilkscreenPinLabels: true, pcbX: -8, pcbY: -34 }), jsx("pinheader", { name: "J_SUPERCAP", ...SCH.J_SUPERCAP, ...JLC_PARTS.HEADER_1X3_MALE, pinCount: 3, gender: "male", pitch: "2.54mm", footprint: "pinrow3_p2.54mm", pinLabels: ["USE", "CAP", "CHARGE"], showSilkscreenPinLabels: true, pcbX: 7, pcbY: -34 }), jsx("resistor", { name: "R_SUPERCAP", ...SCH.R_SUPERCAP, ...JLC_PARTS.RES_22R_0603, resistance: "22ohm", footprint: "0603", pcbX: 3, pcbY: -30.5 }), jsx("capacitor", { name: "C_SUPERCAP", ...SCH.C_SUPERCAP, capacitance: "0.22F", manufacturerPartNumber: "EEC-S0HD224H", doNotPlace: true, footprint: jsxs("footprint", { children: [jsx("platedhole", { shape: "circle", portHints: ["pin1"], pcbX: "-1mm", pcbY: "0mm", holeDiameter: "0.8mm", outerDiameter: "1.6mm" }), jsx("platedhole", { shape: "circle", portHints: ["pin2"], pcbX: "1mm", pcbY: "0mm", holeDiameter: "0.8mm", outerDiameter: "1.6mm" }), jsx("silkscreencircle", { pcbX: "0mm", pcbY: "0mm", radius: "3.5mm" })] }), pcbX: 14, pcbY: -31.5 }), jsx("testpoint", { name: "TP_5V", ...SCH.TP_5V, footprintVariant: "pad", padShape: "circle", padDiameter: "1.2mm", pcbX: -15, pcbY: -30 }), jsx("testpoint", { name: "TP_3V3", ...SCH.TP_3V3, footprintVariant: "pad", padShape: "circle", padDiameter: "1.2mm", pcbX: -12, pcbY: -30 }), jsx("testpoint", { name: "TP_GND", ...SCH.TP_GND, footprintVariant: "pad", padShape: "circle", padDiameter: "1.2mm", pcbX: -9, pcbY: -30 }), jsx("testpoint", { name: "TP_RST", ...SCH.TP_RST, footprintVariant: "pad", padShape: "circle", padDiameter: "1.2mm", pcbX: -6, pcbY: -30 }), jsx("trace", { from: "J_USB.VBUS", to: "net.VBUS_USB", thickness: "0.3mm" }), jsx("trace", { from: "J_USB.GND", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "J_USB.SH1", to: "net.USB_SHIELD", thickness: "0.3mm" }), jsx("trace", { from: "J_USB.SH2", to: "net.USB_SHIELD", thickness: "0.3mm" }), jsx("trace", { from: "J_USB.SH3", to: "net.USB_SHIELD", thickness: "0.3mm" }), jsx("trace", { from: "J_USB.SH4", to: "net.USB_SHIELD", thickness: "0.3mm" }), jsx("trace", { from: "R_SHIELD.pin1", to: "net.USB_SHIELD" }), jsx("trace", { from: "R_SHIELD.pin2", to: "net.GND" }), jsx("trace", { from: "C_SHIELD.pin1", to: "net.USB_SHIELD" }), jsx("trace", { from: "C_SHIELD.pin2", to: "net.GND" }), jsx("trace", { from: "J_USB.D_NEG", to: "U_ESD.DM_CONNECTOR", thickness: "0.22mm" }), jsx("trace", { from: "J_USB.D_POS", to: "U_ESD.DP_CONNECTOR", thickness: "0.22mm" }), jsx("trace", { from: "U_ESD.DM_MCU", to: "R_USB_DM.pin1", thickness: "0.22mm" }), jsx("trace", { from: "U_ESD.DP_MCU", to: "R_USB_DP.pin1", thickness: "0.22mm" }), jsx("trace", { from: "U_ESD.VBUS", to: "U_LDO.IN", thickness: "0.3mm" }), jsx("trace", { from: "U_ESD.GND", to: "net.GND" }), jsx("trace", { from: "R_USB_DM.pin2", to: "U_DBG.USB_DM", thickness: "0.22mm" }), jsx("trace", { from: "R_USB_DP.pin2", to: "U_DBG.USB_DP", thickness: "0.22mm" }), jsx("trace", { from: "U_DBG.PUR", to: "R_USB_PUR.pin1" }), jsx("trace", { from: "R_USB_PUR.pin2", to: "net.EZ_3V3" }), jsx("trace", { from: "U_DBG.VBUS", to: "R_DBG_VBUS_LINK.pin1", thickness: "0.3mm" }), jsx("trace", { from: "R_DBG_VBUS_LINK.pin2", to: "net.VBUS_USB", thickness: "0.3mm" }), jsx("trace", { from: "U_DBG.VUSB", to: "C_DBG_VUSB.pin1", maxLength: "3mm" }), jsx("trace", { from: "C_DBG_VUSB.pin2", to: "net.GND" }), jsx("trace", { from: "U_DBG.V18", to: "C_DBG_V18.pin1", maxLength: "3mm" }), jsx("trace", { from: "C_DBG_V18.pin2", to: "net.GND" }), jsx("trace", { from: "U_LDO.IN", to: "net.VBUS_USB", thickness: "0.3mm" }), jsx("trace", { from: "U_LDO.EN", to: "R_LDO_EN.pin1" }), jsx("trace", { from: "R_LDO_EN.pin2", to: "net.VBUS_USB" }), jsx("trace", { from: "U_LDO.GND", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "U_LDO.OUT", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "C_LDO_IN.pin1", to: "net.VBUS_USB", thickness: "0.3mm" }), jsx("trace", { from: "C_LDO_IN.pin2", to: "net.GND" }), jsx("trace", { from: "C_LDO_OUT.pin1", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "C_LDO_OUT.pin2", to: "net.GND" }), jsx("trace", { from: "R_LED_PWR.pin1", to: "net.EZ_3V3" }), jsx("trace", { from: "R_LED_PWR.pin2", to: "LED_PWR.anode" }), jsx("trace", { from: "LED_PWR.cathode", to: "net.GND" }), jsx("trace", { from: "U_DBG.AVCC1", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "U_DBG.DVCC1", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "U_DBG.DVCC2", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "U_DBG.AVSS1", to: "net.GND" }), jsx("trace", { from: "U_DBG.DVSS1", to: "net.GND" }), jsx("trace", { from: "U_DBG.DVSS2", to: "net.GND" }), jsx("trace", { from: "U_DBG.AVSS2", to: "net.GND" }), jsx("trace", { from: "U_DBG.VSSU", to: "net.GND" }), jsx("trace", { from: "U_DBG.GND_EP", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "U_DBG.VCORE", to: "C_DBG_VCORE.pin1", maxLength: "3mm" }), jsx("trace", { from: "C_DBG_VCORE.pin2", to: "net.GND" }), jsx("trace", { from: "C_DBG_AVCC.pin1", to: "net.EZ_3V3" }), jsx("trace", { from: "C_DBG_AVCC.pin2", to: "net.GND" }), jsx("trace", { from: "C_DBG_DVCC1.pin1", to: "net.EZ_3V3" }), jsx("trace", { from: "C_DBG_DVCC1.pin2", to: "net.GND" }), jsx("trace", { from: "C_DBG_DVCC2.pin1", to: "net.EZ_3V3" }), jsx("trace", { from: "C_DBG_DVCC2.pin2", to: "net.GND" }), jsx("trace", { from: "C_DBG_BULK.pin1", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "C_DBG_BULK.pin2", to: "net.GND" }), jsx("trace", { from: "U_DBG.RST", to: "net.DBG_RST" }), jsx("trace", { from: "R_DBG_RST.pin1", to: "net.DBG_RST" }), jsx("trace", { from: "R_DBG_RST.pin2", to: "net.EZ_3V3" }), jsx("trace", { from: "C_DBG_RST.pin1", to: "net.DBG_RST" }), jsx("trace", { from: "C_DBG_RST.pin2", to: "net.GND" }), jsx("trace", { from: "Y_DBG.pin1", to: "U_DBG.XT2OUT" }), jsx("trace", { from: "Y_DBG.pin3", to: "U_DBG.XT2IN" }), jsx("trace", { from: "Y_DBG.pin2", to: "net.GND" }), jsx("trace", { from: "U_DBG.LED0", to: "R_DBG_RED.pin1" }), jsx("trace", { from: "R_DBG_RED.pin2", to: "LED_DBG_RED.anode" }), jsx("trace", { from: "LED_DBG_RED.cathode", to: "net.GND" }), jsx("trace", { from: "U_DBG.LED1", to: "R_DBG_GREEN.pin1" }), jsx("trace", { from: "R_DBG_GREEN.pin2", to: "LED_DBG_GREEN.anode" }), jsx("trace", { from: "LED_DBG_GREEN.cathode", to: "net.GND" }), jsx("trace", { from: "J_DBG_PROG.pin1", to: "U_DBG.TEST" }), jsx("trace", { from: "J_DBG_PROG.pin2", to: "U_DBG.TDO" }), jsx("trace", { from: "J_DBG_PROG.pin3", to: "U_DBG.TDI" }), jsx("trace", { from: "J_DBG_PROG.pin4", to: "U_DBG.TMS" }), jsx("trace", { from: "J_DBG_PROG.pin5", to: "U_DBG.TCK" }), jsx("trace", { from: "J_DBG_PROG.pin6", to: "net.DBG_RST" }), jsx("trace", { from: "J_DBG_PROG.pin7", to: "net.GND" }), jsx("trace", { from: "U_DBG.TARGET_SBWTCK", to: "J_ISO_SBW_TST.HOST" }), jsx("trace", { from: "J_ISO_SBW_TST.TARGET", to: "U_TARGET.TEST" }), jsx("trace", { from: "U_DBG.TARGET_SBWTDIO", to: "J_ISO_SBW_RST.HOST" }), jsx("trace", { from: "J_ISO_SBW_RST.TARGET", to: "net.TARGET_RST" }), jsx("trace", { from: "U_DBG.UART_TXD", to: "J_ISO_UART_RX.HOST" }), jsx("trace", { from: "J_ISO_UART_RX.TARGET", to: "U_TARGET.UCA0RXD" }), jsx("trace", { from: "U_DBG.UART_RXD", to: "J_ISO_UART_TX.HOST" }), jsx("trace", { from: "J_ISO_UART_TX.TARGET", to: "U_TARGET.UCA0TXD" }), jsx("trace", { from: "J_ISO_3V3.HOST", to: "net.EZ_3V3", thickness: "0.3mm" }), jsx("trace", { from: "J_ISO_3V3.TARGET", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "J_ISO_5V.HOST", to: "net.VBUS_USB", thickness: "0.3mm" }), jsx("trace", { from: "J_ISO_5V.TARGET", to: "net.TARGET_5V", thickness: "0.3mm" }), jsx("trace", { from: "J_ISO_GND.HOST", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "J_ISO_GND.TARGET", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "U_TARGET.DVCC", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "U_TARGET.GND1", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "U_TARGET.GND2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.GND_EP", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "C_TARGET_DEC.pin1", to: "net.TARGET_3V3" }), jsx("trace", { from: "C_TARGET_DEC.pin2", to: "net.GND" }), jsx("trace", { from: "C_TARGET_BULK.pin1", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "C_TARGET_BULK.pin2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.RST", to: "net.TARGET_RST" }), jsx("trace", { from: "R_TARGET_RST.pin1", to: "net.TARGET_RST" }), jsx("trace", { from: "R_TARGET_RST.pin2", to: "net.TARGET_3V3" }), jsx("trace", { from: "C_TARGET_RST.pin1", to: "net.TARGET_RST" }), jsx("trace", { from: "C_TARGET_RST.pin2", to: "net.GND" }), jsx("trace", { from: "SW_RESET.pin1", to: "net.TARGET_RST" }), jsx("trace", { from: "SW_RESET.pin2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.P2_3", to: "SW1.pin1", schDisplayLabel: "SW1 / GPIO18" }), jsx("trace", { from: "SW1.pin2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.P2_7", to: "SW2.pin1", schDisplayLabel: "SW2 / SPI_CS0" }), jsx("trace", { from: "SW2.pin2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.XIN", to: "R_XIN.pin1" }), jsx("trace", { from: "R_XIN.pin2", to: "Y_TARGET.pin1" }), jsx("trace", { from: "Y_TARGET.pin1", to: "C_XIN.pin1" }), jsx("trace", { from: "C_XIN.pin2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.XOUT", to: "R_XOUT.pin1" }), jsx("trace", { from: "R_XOUT.pin2", to: "Y_TARGET.pin2" }), jsx("trace", { from: "Y_TARGET.pin2", to: "C_XOUT.pin1" }), jsx("trace", { from: "C_XOUT.pin2", to: "net.GND" }), jsx("trace", { from: "U_TARGET.P1_0", to: "R_LED1_EN.pin1", schDisplayLabel: "A0 / LED1" }), jsx("trace", { from: "R_LED1_EN.pin2", to: "R_LED1.pin1" }), jsx("trace", { from: "R_LED1.pin2", to: "LED1.anode" }), jsx("trace", { from: "LED1.cathode", to: "net.GND" }), jsx("trace", { from: "U_TARGET.P1_1", to: "R_LED2_EN.pin1", schDisplayLabel: "A1 / LED2" }), jsx("trace", { from: "R_LED2_EN.pin2", to: "R_LED2.pin1" }), jsx("trace", { from: "R_LED2.pin2", to: "LED2.anode" }), jsx("trace", { from: "LED2.cathode", to: "net.GND" }), jsx("trace", { from: "J1.pin1", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "J1.pin2", to: "U_TARGET.P1_0", schDisplayLabel: "A0 / LED1" }), jsx("trace", { from: "J1.pin3", to: "U_TARGET.UCA0RXD" }), jsx("trace", { from: "J1.pin4", to: "U_TARGET.UCA0TXD" }), jsx("trace", { from: "J1.pin5", to: "U_TARGET.P1_6" }), jsx("trace", { from: "J1.pin6", to: "U_TARGET.P1_7" }), jsx("trace", { from: "J1.pin7", to: "U_TARGET.P2_4" }), jsx("trace", { from: "J1.pin8", to: "U_TARGET.P3_1" }), jsx("trace", { from: "J1.pin9", to: "U_TARGET.P1_3" }), jsx("trace", { from: "J1.pin10", to: "U_TARGET.P1_2" }), jsx("trace", { from: "J2.pin1", to: "U_TARGET.P3_2" }), jsx("trace", { from: "J2.pin2", to: "U_TARGET.P2_7", schDisplayLabel: "SW2 / SPI_CS0" }), jsx("trace", { from: "J2.pin3", to: "U_TARGET.P3_0" }), jsx("trace", { from: "J2.pin4", to: "U_TARGET.P2_5" }), jsx("trace", { from: "J2.pin5", to: "U_TARGET.P2_6" }), jsx("trace", { from: "J2.pin6", to: "net.TARGET_RST" }), jsx("trace", { from: "J2.pin7", to: "U_TARGET.P2_2" }), jsx("trace", { from: "J2.pin8", to: "U_TARGET.P2_3", schDisplayLabel: "SW1 / GPIO18" }), jsx("trace", { from: "J2.pin9", to: "U_TARGET.P1_1", schDisplayLabel: "A1 / LED2" }), jsx("trace", { from: "J2.pin10", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "J_EXT_PWR.pin1", to: "net.TARGET_5V", thickness: "0.3mm" }), jsx("trace", { from: "J_EXT_PWR.pin2", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "J_EXT_PWR.pin3", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "J_SUPERCAP.pin1", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "J_SUPERCAP.pin2", to: "C_SUPERCAP.pin1", thickness: "0.3mm" }), jsx("trace", { from: "J_SUPERCAP.pin3", to: "R_SUPERCAP.pin1", thickness: "0.3mm" }), jsx("trace", { from: "R_SUPERCAP.pin2", to: "net.TARGET_3V3", thickness: "0.3mm" }), jsx("trace", { from: "C_SUPERCAP.pin2", to: "net.GND", thickness: "0.3mm" }), jsx("trace", { from: "TP_5V.pin1", to: "net.TARGET_5V" }), jsx("trace", { from: "TP_3V3.pin1", to: "net.TARGET_3V3" }), jsx("trace", { from: "TP_GND.pin1", to: "net.GND" }), jsx("trace", { from: "TP_RST.pin1", to: "net.TARGET_RST" }), jsx("copperpour", { name: "GND_INNER1", connectsTo: "net.GND", layer: "inner1", clearance: "0.18mm", boardEdgeMargin: "0.25mm" }), jsx("copperpour", { name: "EZ3V3_INNER2", connectsTo: "net.EZ_3V3", layer: "inner2", clearance: "0.18mm", boardEdgeMargin: "0.25mm" })] }));
export { index_circuit as default };