mohan-bee/pcb
This circuit integrates an ESP32 microcontroller with an IMU sensor and power management components, using multiple capacitors, resistors, and MOSFETs for motor control, while managing power supply and battery connections.
- Version
- 1.0.0
- License
- unset
- Stars
- 0
dist/index.cjs
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var objPath = require('././assets/ESP32_S3_MINI_1_N8-4431b527.obj');
var stepPath = require('././assets/ESP32_S3_MINI_1_N8-9f509e77.step');
var objPath$1 = require('././assets/ICM_20602-e0e84da8.obj');
var stepPath$1 = require('././assets/ICM_20602-d2648780.step');
var objPath$2 = require('././assets/TPS63031DSKR-fd2b3ab7.obj');
var stepPath$2 = require('././assets/TPS63031DSKR-c1f5aaeb.step');
var objPath$3 = require('././assets/AO3400A-6a7dfdab.obj');
var stepPath$3 = require('././assets/AO3400A-2df42f05.step');
var objPath$4 = require('././assets/SS34-508f4dc9.obj');
var stepPath$4 = require('././assets/SS34-35326569.step');
var objPath$5 = require('././assets/SRN3015_1R5Y-70bb5047.obj');
var stepPath$5 = require('././assets/SRN3015_1R5Y-e22efd44.step');
const pinLabels$4 = {
pin1: ["GND1"],
pin2: ["GND2"],
pin3: ["3V3"],
pin4: ["IO0"],
pin5: ["IO1"],
pin6: ["IO2"],
pin7: ["IO3"],
pin8: ["IO4"],
pin9: ["IO5"],
pin10: ["IO6"],
pin11: ["IO7"],
pin12: ["IO8"],
pin13: ["IO9"],
pin14: ["IO10"],
pin15: ["IO11"],
pin16: ["IO12"],
pin17: ["IO13"],
pin18: ["IO14"],
pin19: ["IO15"],
pin20: ["IO16"],
pin21: ["IO17"],
pin22: ["IO18"],
pin23: ["IO19"],
pin24: ["IO20"],
pin25: ["IO21"],
pin26: ["IO26"],
pin27: ["IO47"],
pin28: ["IO33"],
pin29: ["IO34"],
pin30: ["IO48"],
pin31: ["IO35"],
pin32: ["IO36"],
pin33: ["IO37"],
pin34: ["IO38"],
pin35: ["IO39"],
pin36: ["IO40"],
pin37: ["IO41"],
pin38: ["IO42"],
pin39: ["TXD0"],
pin40: ["RXD0"],
pin41: ["IO45"],
pin42: ["GND3"],
pin43: ["GND4"],
pin44: ["IO46"],
pin45: ["EN"],
pin46: ["GND5"],
pin47: ["GND6"],
pin48: ["GND7"],
pin49: ["GND8"],
pin50: ["GND9"],
pin51: ["GND10"],
pin52: ["GND11"],
pin53: ["GND12"],
pin54: ["GND13"],
pin55: ["GND14"],
pin56: ["GND15"],
pin57: ["GND16"],
pin58: ["GND17"],
pin59: ["GND18"],
pin60: ["GND19"],
pin61: ["GND20"]
};
const pinAttributes$2 = {
pin1: { requiresGround: true },
pin2: { requiresGround: true },
pin42: { requiresGround: true },
pin43: { requiresGround: true },
pin46: { requiresGround: true },
pin47: { requiresGround: true },
pin48: { requiresGround: true },
pin49: { requiresGround: true },
pin50: { requiresGround: true },
pin51: { requiresGround: true },
pin52: { requiresGround: true },
pin53: { requiresGround: true },
pin54: { requiresGround: true },
pin55: { requiresGround: true },
pin56: { requiresGround: true },
pin57: { requiresGround: true },
pin58: { requiresGround: true },
pin59: { requiresGround: true },
pin60: { requiresGround: true },
pin61: { requiresGround: true }
};
const ESP32_S3_MINI_1_N8 = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$4, pinAttributes: pinAttributes$2, supplierPartNumbers: {
"jlcpcb": [
"C2913206"
]
}, manufacturerPartNumber: "ESP32-S3-MINI-1-N8", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-6.975094mm", pcbY: "5.950077mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-6.975094mm", pcbY: "5.100193mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-6.975094mm", pcbY: "4.250055mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-6.975094mm", pcbY: "3.400171mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-6.975094mm", pcbY: "2.550033mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "-6.975094mm", pcbY: "1.700149mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "-6.975094mm", pcbY: "0.850011mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "-6.975094mm", pcbY: "0.000127mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "-6.975094mm", pcbY: "-0.849757mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "-6.975094mm", pcbY: "-1.699895mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "-6.975094mm", pcbY: "-2.549779mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "-6.975094mm", pcbY: "-3.399917mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin13"], pcbX: "-6.975094mm", pcbY: "-4.249801mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin14"], pcbX: "-6.975094mm", pcbY: "-5.099939mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin15"], pcbX: "-6.975094mm", pcbY: "-5.949823mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin16"], pcbX: "-5.94995mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin17"], pcbX: "-5.100066mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin18"], pcbX: "-4.249928mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin19"], pcbX: "-3.400044mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin20"], pcbX: "-2.549906mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin21"], pcbX: "-1.700022mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin22"], pcbX: "-0.849884mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin23"], pcbX: "0mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin24"], pcbX: "0.849884mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin25"], pcbX: "1.700022mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin26"], pcbX: "2.549906mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin27"], pcbX: "3.400044mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin28"], pcbX: "4.249928mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin29"], pcbX: "5.100066mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin30"], pcbX: "5.94995mm", pcbY: "-7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin31"], pcbX: "6.975094mm", pcbY: "-5.949823mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin32"], pcbX: "6.975094mm", pcbY: "-5.099939mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin33"], pcbX: "6.975094mm", pcbY: "-4.249801mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin34"], pcbX: "6.975094mm", pcbY: "-3.399917mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin35"], pcbX: "6.975094mm", pcbY: "-2.549779mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin36"], pcbX: "6.975094mm", pcbY: "-1.699895mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin37"], pcbX: "6.975094mm", pcbY: "-0.849757mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin38"], pcbX: "6.975094mm", pcbY: "0.000127mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin39"], pcbX: "6.975094mm", pcbY: "0.850011mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin40"], pcbX: "6.975094mm", pcbY: "1.700149mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin41"], pcbX: "6.975094mm", pcbY: "2.550033mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin42"], pcbX: "6.975094mm", pcbY: "3.400171mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin43"], pcbX: "6.975094mm", pcbY: "4.250055mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin44"], pcbX: "6.975094mm", pcbY: "5.100193mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin45"], pcbX: "6.975094mm", pcbY: "5.950077mm", width: "0.7999984mm", height: "0.3999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin46"], pcbX: "5.94995mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin47"], pcbX: "5.100066mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin48"], pcbX: "4.249928mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin49"], pcbX: "3.400044mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin50"], pcbX: "2.549906mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin51"], pcbX: "1.700022mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin52"], pcbX: "0.849884mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin53"], pcbX: "0mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin54"], pcbX: "-0.849884mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin55"], pcbX: "-1.700022mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin56"], pcbX: "-2.549906mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin57"], pcbX: "-3.400044mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin58"], pcbX: "-4.249928mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin59"], pcbX: "-5.100066mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin60"], pcbX: "-5.94995mm", pcbY: "7.025005mm", width: "0.3999992mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "-6.999986mm", pcbY: "7.000113mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "6.999986mm", pcbY: "7.000113mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "-6.999986mm", pcbY: "-6.999859mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "6.999986mm", pcbY: "-6.999859mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "-1.649984mm", pcbY: "1.650111mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "0mm", pcbY: "1.650111mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "1.649984mm", pcbY: "1.650111mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "-1.649984mm", pcbY: "0.000127mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "0mm", pcbY: "0.000127mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "1.649984mm", pcbY: "0.000127mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "-1.649984mm", pcbY: "-1.649857mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "0mm", pcbY: "-1.649857mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin61"], pcbX: "1.649984mm", pcbY: "-1.649857mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.8999902000000475, "y": 12.100128199999858 }, { "x": -3.3999932000001536, "y": 12.100128199999858 }, { "x": -3.3999932000001536, "y": 10.500131399999987 }, { "x": -1.1999976000000743, "y": 10.500131399999987 }, { "x": -1.1999976000000743, "y": 12.100128199999858 }, { "x": 0.9999979999998914, "y": 12.100128199999858 }, { "x": 0.9999979999998914, "y": 10.500131399999987 }, { "x": 3.1999935999999707, "y": 10.500131399999987 }, { "x": 3.1999935999999707, "y": 12.100128199999858 }, { "x": 5.300014799999872, "y": 12.100128199999858 }, { "x": 5.300014799999872, "y": 9.400133600000004 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.50001240000006, "y": 9.400133600000004 }, { "x": -6.50001240000006, "y": 12.100128199999858 }, { "x": -4.8999902000000475, "y": 12.100128199999858 }, { "x": -4.8999902000000475, "y": 9.400133600000004 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -7.70001000000002, "y": 7.749743199999898 }, { "x": 7.800009799999998, "y": 7.749743199999898 }, { "x": 7.800009799999998, "y": 7.786014399999885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -7.70001000000002, "y": 12.800126800000044 }, { "x": 7.800009799999998, "y": 12.800126800000044 }, { "x": 7.800009799999998, "y": -7.6998830000001135 }, { "x": -7.70001000000002, "y": -7.6998830000001135 }, { "x": -7.70001000000002, "y": 12.800126800000044 }] }), jsxRuntime.jsx("silkscreencircle", { pcbX: "-8.199882mm", pcbY: "6.300089mm", radius: "0.141478mm" }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.2667mm", pcbY: "13.801727mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -8.58120000000008, "y": 13.051726999999914 }, { "x": 8.047799999999825, "y": 13.051726999999914 }, { "x": 8.047799999999825, "y": -7.971473000000174 }, { "x": -8.58120000000008, "y": -7.971473000000174 }, { "x": -8.58120000000008, "y": 13.051726999999914 }] })] }), cadModel: {
objUrl: objPath,
stepUrl: stepPath,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -2.5401143000000275, z: -0.02 },
}, ...props }));
};
const pinLabels$3 = {
pin1: ["VDDIO"],
pin2: ["pin2"],
pin3: ["pin3"],
pin4: ["pin4"],
pin5: ["CS"],
pin6: ["INT"],
pin7: ["RESV1"],
pin8: ["FSYNC"],
pin9: ["RESV2"],
pin10: ["RESV3"],
pin11: ["RESV4"],
pin12: ["RESV5"],
pin13: ["GND"],
pin14: ["REGOUT"],
pin15: ["RESV6"],
pin16: ["VDD"]
};
const pinAttributes$1 = {
pin13: { requiresGround: true },
pin16: { requiresPower: true }
};
const ICM_20602 = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$3, pinAttributes: pinAttributes$1, supplierPartNumbers: {
"jlcpcb": [
"C97633"
]
}, manufacturerPartNumber: "ICM-20602", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.999998mm", pcbY: "-1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.499872mm", pcbY: "-1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0mm", pcbY: "-1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "0.500126mm", pcbY: "-1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "0.999998mm", pcbY: "-1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "1.342644mm", pcbY: "-0.500126mm", width: "0.5999988mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "1.342644mm", pcbY: "0mm", width: "0.5999988mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "1.342644mm", pcbY: "0.499872mm", width: "0.5999988mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "0.999998mm", pcbY: "1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "0.500126mm", pcbY: "1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "0mm", pcbY: "1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "-0.499872mm", pcbY: "1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin13"], pcbX: "-0.999998mm", pcbY: "1.342644mm", width: "0.2800096mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin14"], pcbX: "-1.342644mm", pcbY: "0.499872mm", width: "0.5999988mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin15"], pcbX: "-1.342644mm", pcbY: "0mm", width: "0.5999988mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin16"], pcbX: "-1.342644mm", pcbY: "-0.500126mm", width: "0.5999988mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5761970000000929, "y": 0.830503799999974 }, { "x": -1.5761970000000929, "y": 1.5761970000000929 }, { "x": -1.3305027999999766, "y": 1.5761970000000929 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.5761969999998655, "y": 0.830503799999974 }, { "x": 1.5761969999998655, "y": 1.5761970000000929 }, { "x": 1.3305027999998629, "y": 1.5761970000000929 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5761970000000929, "y": -0.8305037999998603 }, { "x": -1.5761970000000929, "y": -1.5761969999999792 }, { "x": -1.3305027999999766, "y": -1.5761969999999792 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.5761969999998655, "y": -0.8305037999998603 }, { "x": 1.5761969999998655, "y": -1.5761969999999792 }, { "x": 1.3305027999998629, "y": -1.5761969999999792 }] }), jsxRuntime.jsx("silkscreencircle", { pcbX: "-0.999998mm", pcbY: "-2.009902mm", radius: "0.07493mm" }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.0127mm", pcbY: "2.651mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.9010000000000673, "y": 1.9010000000000673 }, { "x": 1.875599999999963, "y": 1.9010000000000673 }, { "x": 1.875599999999963, "y": -2.3327999999999065 }, { "x": -1.9010000000000673, "y": -2.3327999999999065 }, { "x": -1.9010000000000673, "y": 1.9010000000000673 }] })] }), cadModel: {
objUrl: objPath$1,
stepUrl: stepPath$1,
pcbRotationOffset: 90,
modelOriginPosition: { x: 0, y: 0, z: 0 },
}, ...props }));
};
const pinLabels$2 = {
pin1: ["VOUT"],
pin2: ["L2"],
pin3: ["PGND"],
pin4: ["L1"],
pin5: ["VIN"],
pin6: ["EN"],
pin7: ["pin7"],
pin8: ["VINA"],
pin9: ["GND"],
pin10: ["FB"],
pin11: ["EP"]
};
const pinAttributes = {
pin3: { requiresGround: true },
pin5: { requiresPower: true },
pin9: { requiresGround: true }
};
const TPS63031DSKR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$2, pinAttributes: pinAttributes, supplierPartNumbers: {
"jlcpcb": [
"C15516"
]
}, manufacturerPartNumber: "TPS63031DSKR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-1.157478mm", pcbY: "0.999998mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-1.157478mm", pcbY: "0.499872mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-1.157478mm", pcbY: "0mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-1.157478mm", pcbY: "-0.500126mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.157478mm", pcbY: "-0.999998mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "1.157478mm", pcbY: "0.999998mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "1.157478mm", pcbY: "0.499872mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "1.157478mm", pcbY: "0mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "1.157478mm", pcbY: "-0.500126mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "1.157478mm", pcbY: "-0.999998mm", width: "0.6649974mm", height: "0.2800096mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "0mm", pcbY: "0mm", width: "1.1999976mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.326210200000105, "y": 1.326210200000105 }, { "x": 1.3262101999999913, "y": 1.326210200000105 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3262101999999913, "y": -1.326210200000105 }, { "x": -1.326210200000105, "y": -1.326210200000105 }] }), jsxRuntime.jsx("silkscreencircle", { pcbX: "-1.789938mm", pcbY: "0.999998mm", radius: "0.100076mm" }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.1905mm", pcbY: "2.3208mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.129600000000096, "y": 1.570799999999963 }, { "x": 1.7486000000000104, "y": 1.570799999999963 }, { "x": 1.7486000000000104, "y": -1.5708000000000766 }, { "x": -2.129600000000096, "y": -1.5708000000000766 }, { "x": -2.129600000000096, "y": 1.570799999999963 }] })] }), cadModel: {
objUrl: objPath$2,
stepUrl: stepPath$2,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0.000012699999842880061, z: 0 },
}, ...props }));
};
const pinLabels$1 = {
pin1: ["G"],
pin2: ["S"],
pin3: ["D"]
};
const AO3400A = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$1, symbol: jsxRuntime.jsxs("symbol", { children: [jsxRuntime.jsx("schematicpath", { points: [{ "x": 0, "y": 0 }, { "x": 0.12, "y": -0.04 }, { "x": 0.12, "y": 0.04 }, { "x": 0, "y": 0 }], strokeColor: "#880000", isFilled: true, fillColor: "#FEFEFE" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0.4, "y": 0.04 }, { "x": 0.34, "y": -0.06 }, { "x": 0.46, "y": -0.06 }, { "x": 0.4, "y": 0.04 }], strokeColor: "#880000", isFilled: true, fillColor: "#FEFEFE" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0, "y": 0.14 }, { "x": 0.2, "y": 0.14 }, { "x": 0.2, "y": 0.2 }, { "x": 0.4, "y": 0.2 }, { "x": 0.4, "y": 0.04 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0, "y": 0 }, { "x": 0.2, "y": 0 }, { "x": 0.2, "y": -0.2 }, { "x": 0.4, "y": -0.2 }, { "x": 0.4, "y": -0.06 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0.2, "y": -0.14 }, { "x": 0, "y": -0.14 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": -0.04, "y": 0.18 }, { "x": -0.04, "y": -0.18 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0, "y": 0.18 }, { "x": 0, "y": 0.1 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0, "y": -0.04 }, { "x": 0, "y": 0.04 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0, "y": -0.18 }, { "x": 0, "y": -0.1 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": -0.2, "y": 0 }, { "x": -0.04, "y": 0 }], strokeColor: "#880000" }), jsxRuntime.jsx("schematicpath", { points: [{ "x": 0.48, "y": 0.04 }, { "x": 0.44, "y": 0.04 }, { "x": 0.36, "y": 0.04 }, { "x": 0.32, "y": 0.04 }], strokeColor: "#880000" }), jsxRuntime.jsx("port", { name: "pin3", pinNumber: 3, aliases: ["D"], direction: "up", schX: 0.2, schY: 0.4, schStemLength: 0.2 }), jsxRuntime.jsx("port", { name: "pin1", pinNumber: 1, aliases: ["G"], direction: "left", schX: -0.4, schY: 0, schStemLength: 0.2 }), jsxRuntime.jsx("port", { name: "pin2", pinNumber: 2, aliases: ["S"], direction: "down", schX: 0.2, schY: -0.4, schStemLength: 0.2 })] }), supplierPartNumbers: {
"jlcpcb": [
"C20917"
]
}, manufacturerPartNumber: "AO3400A", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "0.999998mm", pcbY: "-0.94996mm", width: "0.999998mm", height: "0.6500114mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.999998mm", pcbY: "0.94996mm", width: "0.999998mm", height: "0.6500114mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.999998mm", pcbY: "0mm", width: "0.999998mm", height: "0.6500114mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.726211400000011, "y": 1.5262098000000606 }, { "x": -0.726211400000011, "y": 1.5262098000000606 }, { "x": -0.726211400000011, "y": 0.49458879999997407 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.726211400000011, "y": -1.5262097999999469 }, { "x": -0.726211400000011, "y": -1.5262097999999469 }, { "x": -0.726211400000011, "y": -0.49458879999997407 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.726211400000011, "y": 0.45539659999997184 }, { "x": 0.726211400000011, "y": -0.45539659999985815 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0254mm", pcbY: "2.524mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.748600000000124, "y": 1.774000000000001 }, { "x": 1.7993999999998778, "y": 1.774000000000001 }, { "x": 1.7993999999998778, "y": -1.774000000000001 }, { "x": -1.748600000000124, "y": -1.774000000000001 }, { "x": -1.748600000000124, "y": 1.774000000000001 }] })] }), cadModel: {
objUrl: objPath$3,
stepUrl: stepPath$3,
pcbRotationOffset: 180,
modelOriginPosition: { x: 0.000012700000070253736, y: -12699999956566899e-21, z: 0.050795 },
}, ...props }));
};
const pinLabels = {
pin1: ["cathode", "neg"],
pin2: ["anode", "pos"]
};
const SS34 = (props) => {
const { name = "D1", ...restProps } = props;
return (jsxRuntime.jsx("diode", { name: name, pinLabels: pinLabels, supplierPartNumbers: {
"jlcpcb": [
"C8678"
]
}, manufacturerPartNumber: "SS34", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2", "anode", "pos"], pcbX: "2.199894mm", pcbY: "0mm", width: "1.999996mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1", "cathode", "neg"], pcbX: "-2.199894mm", pcbY: "0mm", width: "1.999996mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8839199999999892, "y": 1.4262100000000828 }, { "x": -0.8839199999999892, "y": -1.4262099999999691 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.59618480000006, "y": 1.4262100000000828 }, { "x": 2.5961847999999463, "y": 1.4262100000000828 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 2.5932891999999583, "y": -1.1756136000000197 }, { "x": 2.5999693999999636, "y": -1.4148308000000043 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 2.5961847999999463, "y": 1.4262100000000828 }, { "x": 2.6028650000000653, "y": 1.1869928000000982 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.59618480000006, "y": -1.4262099999999691 }, { "x": 2.5961847999999463, "y": -1.4262099999999691 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "2.4986mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": -2.3174960000000056, "y": -0.10124440000004142 }, { "x": -2.3174960000000056, "y": 0.10124440000004142 }, { "x": -1.5074899999999616, "y": 0.10124440000004142 }, { "x": -1.5074899999999616, "y": -0.10124440000004142 }, { "x": -2.3174960000000056, "y": -0.10124440000004142 }], strokeWidth: "0.254mm" }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": 2.289987799999949, "y": -0.08999219999986963 }, { "x": 2.289987799999949, "y": 0.11249659999998585 }, { "x": 1.479981799999905, "y": 0.11249659999998585 }, { "x": 1.479981799999905, "y": -0.08999219999986963 }, { "x": 2.289987799999949, "y": -0.08999219999986963 }], strokeWidth: "0.254mm" }), jsxRuntime.jsx("fabricationnotepath", { route: [{ "x": 2.013737400000082, "y": -0.6750049999999419 }, { "x": 2.013737400000082, "y": 0.6750049999999419 }, { "x": 1.811248599999999, "y": 0.6750049999999419 }, { "x": 1.811248599999999, "y": -0.6750049999999419 }, { "x": 2.013737400000082, "y": -0.6750049999999419 }], strokeWidth: "0.254mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -3.450399999999945, "y": 1.7486000000000104 }, { "x": 3.450399999999945, "y": 1.7486000000000104 }, { "x": 3.450399999999945, "y": -1.7485999999998967 }, { "x": -3.450399999999945, "y": -1.7485999999998967 }, { "x": -3.450399999999945, "y": 1.7486000000000104 }] })] }), cadModel: {
objUrl: objPath$4,
stepUrl: stepPath$4,
pcbRotationOffset: 0,
modelOriginPosition: { x: -12699999842880061e-21, y: 0, z: -0.1 },
}, ...restProps }));
};
const SRN3015_1R5Y = (props) => {
return (jsxRuntime.jsx("inductor", { inductance: "1.5uH", supplierPartNumbers: {
"jlcpcb": [
"C2041714"
]
}, manufacturerPartNumber: "SRN3015-1R5Y", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.327912mm", pcbY: "0mm", width: "1.499997mm", height: "3.3200086mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-1.327912mm", pcbY: "0mm", width: "1.499997mm", height: "3.3200086mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5240000000001146, "y": 1.9049999999999727 }, { "x": 1.5239999999998872, "y": 1.9049999999999727 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5240000000001146, "y": 1.8911315999999943 }, { "x": -1.5240000000001146, "y": 1.9049999999999727 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5240000000001146, "y": -1.9049999999999727 }, { "x": -1.5240000000001146, "y": -1.8911569999999074 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.5239999999998872, "y": -1.8911569999999074 }, { "x": 1.5239999999998872, "y": -1.9049999999999727 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.5239999999998872, "y": 1.9049999999999727 }, { "x": 1.5239999999998872, "y": 1.8911315999999943 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5240000000001146, "y": -1.9049999999999727 }, { "x": 1.5239999999998872, "y": -1.9049999999999727 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "2.905mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.3327999999999065, "y": 2.1549999999999727 }, { "x": 2.3327999999999065, "y": 2.1549999999999727 }, { "x": 2.3327999999999065, "y": -2.1549999999999727 }, { "x": -2.3327999999999065, "y": -2.1549999999999727 }, { "x": -2.3327999999999065, "y": 2.1549999999999727 }] })] }), cadModel: {
objUrl: objPath$5,
stepUrl: stepPath$5,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0.00004999999999999449, z: 0 },
}, ...props }));
};
var outline = [
[
-12,
18
],
[
12,
18
],
[
22,
32
],
[
28,
34
],
[
34,
28
],
[
32,
22
],
[
18,
12
],
[
18,
-12
],
[
32,
-22
],
[
34,
-28
],
[
28,
-34
],
[
22,
-32
],
[
12,
-18
],
[
-12,
-18
],
[
-22,
-32
],
[
-28,
-34
],
[
-34,
-28
],
[
-32,
-22
],
[
-18,
-12
],
[
-18,
12
],
[
-32,
22
],
[
-34,
28
],
[
-28,
34
],
[
-22,
32
]
];
var motors = [
{
name: "M1",
x: 28.284271,
y: 28.284271,
gpio: 39,
rotation: "CW"
},
{
name: "M2",
x: 28.284271,
y: -28.284271,
gpio: 40,
rotation: "CCW"
},
{
name: "M3",
x: -28.284271,
y: -28.284271,
gpio: 41,
rotation: "CW"
},
{
name: "M4",
x: -28.284271,
y: 28.284271,
gpio: 42,
rotation: "CCW"
}
];
var batteryRetention = {
slotWidth: 1.8,
slotHeight: 3.2,
y: -5,
slotX: [
-13.5,
13.5
]
};
var geometry = {
outline: outline,
motors: motors,
batteryRetention: batteryRetention
};
// Coordinates are millimetres, +Y is the nose. All electronic parts on top.
// Antenna intentionally overhangs the front edge; every solder pad remains supported.
const capParts = {
"100nF": ["C14663", "CC0603KRX7R9BB104"],
"10uF": ["C15850", "CL21A106KAYNNNE"],
"22uF": ["C45783", "CL21A226MAQNNNE"],
"1uF": ["C15849", "CL10A105KB8NNNC"],
"10nF": ["C57112", "0603B103K500NT"],
"2.2uF": ["C23630", "CL10A225KO8NNNC"],
"47uF": ["C5440143", "CS3225X7R476K160NRL"],
};
const caps = [
["CIN", "10uF", "0805", -10, -12, "VBAT", "GND", "Power"],
["COUT1", "10uF", "0805", -14, -2, "V3V3", "GND", "Power"],
["COUT2", "10uF", "0805", -10, -2.5, "V3V3", "GND", "Power"],
["CVINA", "100nF", "0603", -3.5, -8, "VBAT", "GND", "Power"],
["CBULK", "47uF", "1210", -3, -14, "VBAT", "GND", "Power"],
["CESP", "22uF", "0805", -11.5, 13, "V3V3", "GND", "Controller"],
["CESPHF", "100nF", "0603", -11.5, 10.5, "V3V3", "GND", "Controller"],
["CEN", "1uF", "0603", 10, 13, "EN", "GND", "Controller"],
["CIMU", "100nF", "0603", 3.5, -1, "V3V3", "GND", "Sensor"],
["CIMUB", "2.2uF", "0603", 3.5, -2.9, "V3V3", "GND", "Sensor"],
["CIO", "10nF", "0603", 3.5, 1.2, "V3V3", "GND", "Sensor"],
["CREG", "100nF", "0603", -3.5, -1.5, "REGOUT", "GND", "Sensor"],
["CADC", "100nF", "0603", 10, -8, "VBAT_ADC", "GND", "Battery_sense"],
];
const resistors = [
["REN", "10k", 10, 10.5, "V3V3", "EN", "Controller"],
["RBOOT", "10k", 10, 8, "V3V3", "BOOT", "Controller"],
["RCS", "10k", -3.5, -3, "V3V3", "IMU_CS", "Sensor"],
["RADCH", "100k", 10, -1, "VBAT", "VBAT_ADC", "Battery_sense"],
["RADCL", "100k", 10, -3, "VBAT_ADC", "GND", "Battery_sense"],
];
const origins = {
Power: [32, 8],
Controller: [0, 8],
Sensor: [32, -12],
Battery_sense: [50, -12],
Programming: [-20, -20],
};
const counts = {};
function schematic(section) {
const i = counts[section] ?? 0;
counts[section] = i + 1;
const [x, y] = origins[section];
return {
schSectionName: section,
schX: x + (i % 3) * 3,
schY: y - Math.floor(i / 3) * 3,
};
}
const connection = (from, to) => (jsxRuntime.jsx("trace", { from: from, to: `net.${to}` }, `${from}-${to}`));
function Drone() {
Object.keys(counts).forEach((k) => delete counts[k]);
return (jsxRuntime.jsxs("board", { outline: geometry.outline.map(([x, y]) => ({ x, y })), thickness: 1, layers: 2, routingDisabled: true, children: [jsxRuntime.jsx("net", { name: "GND", isGroundNet: true }), jsxRuntime.jsx("net", { name: "VBAT", isPowerNet: true }), jsxRuntime.jsx("net", { name: "V3V3", isPowerNet: true }), Object.keys(origins).map((name) => (jsxRuntime.jsx("schematicsection", { name: name }))), jsxRuntime.jsx(ESP32_S3_MINI_1_N8, { schHeight: 6.2, name: "U1", pcbX: 0, pcbY: 10.5, allowOffBoard: true, schX: 0, schY: 16, schSectionName: "Controller" }), jsxRuntime.jsx(ICM_20602, { name: "U2", pcbX: 0, pcbY: -1.5, pcbRotation: 180, schX: 32, schY: -5, schSectionName: "Sensor" }), jsxRuntime.jsx(TPS63031DSKR, { schHeight: 1.2, name: "U3", pcbX: -7, pcbY: -8.5, schX: 32, schY: 15, schSectionName: "Power" }), jsxRuntime.jsx(SRN3015_1R5Y, { name: "L1", pcbX: -12, pcbY: -8.5, schX: 38, schY: 15, schSectionName: "Power" }), caps.map(([name, value, footprint, x, y, a, b, section]) => (jsxRuntime.jsx("capacitor", { name: name, pcbRotation: name === "CEN" ? 180 : 0, capacitance: value, supplierPartNumbers: { jlcpcb: [capParts[value][0]] }, manufacturerPartNumber: capParts[value][1], schRotation: -90, footprint: footprint, pcbX: x, pcbY: y, ...schematic(section), connections: { pin1: `net.${a}`, pin2: `net.${b}` } }, name))), resistors.map(([name, value, x, y, a, b, section]) => (jsxRuntime.jsx("resistor", { name: name, resistance: value, schRotation: -90, footprint: "0603", pcbX: x, pcbY: y, ...schematic(section), supplierPartNumbers: {
jlcpcb: [value === "10k" ? "C25804" : "C25803"],
}, connections: { pin1: `net.${a}`, pin2: `net.${b}` } }, name))), [
[1, "GND"],
[2, "GND"],
[3, "V3V3"],
[4, "BOOT"],
[5, "VBAT_ADC"],
[12, "IMU_CS"],
[15, "IMU_MOSI"],
[16, "IMU_SCK"],
[17, "IMU_MISO"],
[18, "IMU_INT"],
[35, "M1_PWM"],
[36, "M2_PWM"],
[37, "M3_PWM"],
[38, "M4_PWM"],
[39, "UART_TX"],
[40, "UART_RX"],
[42, "GND"],
[43, "GND"],
[45, "EN"],
...Array.from({ length: 16 }, (_, i) => [46 + i, "GND"]),
].map(([pin, net]) => connection(`.U1 > .pin${pin}`, String(net))), [
[1, "V3V3"],
[2, "IMU_SCK"],
[3, "IMU_MOSI"],
[4, "IMU_MISO"],
[5, "IMU_CS"],
[6, "IMU_INT"],
[8, "GND"],
[9, "GND"],
[10, "GND"],
[11, "GND"],
[12, "GND"],
[13, "GND"],
[14, "REGOUT"],
[15, "GND"],
[16, "V3V3"],
].map(([pin, net]) => connection(`.U2 > .pin${pin}`, String(net))), [
[1, "V3V3"],
[2, "L2"],
[3, "GND"],
[4, "L1"],
[5, "VBAT"],
[6, "VBAT"],
[7, "VBAT"],
[8, "VBAT"],
[9, "GND"],
[10, "V3V3"],
[11, "GND"],
].map(([pin, net]) => connection(`.U3 > .pin${pin}`, String(net))), connection(".L1 > .pin1", "L1"), connection(".L1 > .pin2", "L2"), ["GND", "V3V3", "UART_TX", "UART_RX", "EN", "BOOT"].map((net, i) => (jsxRuntime.jsx("testpoint", { name: `TP${i + 1}`, footprintVariant: "pad", padDiameter: 1.4, pcbX: 15.5, pcbY: 6 - i * 2.54, schX: -20 + i * 3, schY: -20, schSectionName: "Programming", connections: { pin1: `net.${net}` } }, net))), ["VBAT", "GND"].map((net, i) => (jsxRuntime.jsx("testpoint", { name: `BAT${i + 1}`, footprintVariant: "pad", padDiameter: 3, pcbX: -13 + i * 5, pcbY: -16, schX: 45 + i * 4, schY: 15, schSectionName: "Power", connections: { pin1: `net.${net}` } }, net))), geometry.motors.map((m, i) => {
const sx = Math.sign(m.x), sy = Math.sign(m.y), n = i + 1, sec = `Motor_${n}`, ox = -20 + i * 20;
return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx("schematicsection", { name: sec }), jsxRuntime.jsx("hole", { name: `H${n}`, diameter: 7.6, pcbX: m.x, pcbY: m.y }), jsxRuntime.jsx(AO3400A, { pcbRotation: sx > 0 ? 180 : 0, symbol: undefined, schWidth: 1.2, schHeight: 0.4, name: `Q${n}`, pcbX: sx * 21.5, pcbY: sy * 18, schX: ox, schY: -35, schSectionName: sec, connections: {
G: `net.M${n}_GATE`,
S: "net.GND",
D: `net.M${n}_NEG`,
} }), jsxRuntime.jsx(SS34, { schRotation: -90, name: `D${n}`, pcbX: sx * 21, pcbY: sy * 22, pcbRotation: 0, schX: ox + 4, schY: -32, schSectionName: sec, connections: { cathode: "net.VBAT", anode: `net.M${n}_NEG` } }), jsxRuntime.jsx("resistor", { name: `RG${n}`, pcbRotation: sx < 0 ? 180 : 0, resistance: "100", footprint: "0603", pcbX: sx * 17.5, pcbY: sy * 16.5, schX: ox - 4, schY: -35, schSectionName: sec, supplierPartNumbers: { jlcpcb: ["C22775"] }, connections: { pin1: `net.M${n}_PWM`, pin2: `net.M${n}_GATE` } }), jsxRuntime.jsx("resistor", { name: `RPD${n}`, pcbRotation: n === 4 ? 180 : 0, resistance: "100k", schRotation: -90, footprint: "0603", pcbX: sx * 17.5, pcbY: sy * 18.5, schX: ox, schY: -39, schSectionName: sec, supplierPartNumbers: { jlcpcb: ["C25803"] }, connections: { pin1: `net.M${n}_GATE`, pin2: "net.GND" } }), jsxRuntime.jsx("capacitor", { name: `CM${n}`, capacitance: "100nF", supplierPartNumbers: { jlcpcb: ["C14663"] }, manufacturerPartNumber: "CC0603KRX7R9BB104", schRotation: -90, footprint: "0603", pcbX: sx * 21, pcbY: sy * 25.5, schX: ox + 7, schY: -35, schSectionName: sec, connections: { pin1: "net.VBAT", pin2: `net.M${n}_NEG` } }), ["VBAT", `M${n}_NEG`].map((net, j) => (jsxRuntime.jsx("testpoint", { name: `M${n}_${j === 0 ? "POS" : "NEG"}`, footprintVariant: "pad", padDiameter: 2, pcbX: sx * (26 + j * 2.5), pcbY: sy * 21.5, schX: ox + 4 + j * 3, schY: -39, schSectionName: sec, connections: { pin1: `net.${net}` } }, net)))] }, m.name));
}), geometry.batteryRetention.slotX.map((x, i) => (jsxRuntime.jsx("hole", { name: `H${i + 5}`, shape: "pill", width: geometry.batteryRetention.slotWidth, height: geometry.batteryRetention.slotHeight, pcbX: x, pcbY: geometry.batteryRetention.y }))), jsxRuntime.jsx("silkscreentext", { text: "DRONE V2", pcbX: 5, pcbY: -14, fontSize: 1.4 }), jsxRuntime.jsx("silkscreentext", { text: "1S + -", pcbX: -10.5, pcbY: -18, fontSize: 0.8 })] }));
}
module.exports = Drone;