seveibar/nrf-smart-watch
This code defines a detailed 3D PCB layout with schematic components, connectors, passive components, and RF antenna elements for a compact nRF52810-based smartwatch, including precise placement, copper pours, keepouts, and annotations.
- Version
- 0.1.1
- License
- unset
- Stars
- 0
dist/index.cjs
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var objPath = require('././assets/SM05B_SRSS_TB_LF__SN_-5c389e70.obj');
var stepPath = require('././assets/SM05B_SRSS_TB_LF__SN_-cfb1ec3a.step');
const pinLabels$8 = {
pin1: ["NC_GND1"],
pin2: ["C2P"],
pin3: ["C2N"],
pin4: ["C1P"],
pin5: ["C1N"],
pin6: ["OLED_VBAT", "VBAT"],
pin7: ["NC"],
pin8: ["VSS"],
pin9: ["VDD"],
pin10: ["BS0"],
pin11: ["BS1"],
pin12: ["BS2"],
pin13: ["CS"],
pin14: ["RES"],
pin15: ["SA0"],
pin16: ["RW"],
pin17: ["ERD"],
pin18: ["D0", "SCL"],
pin19: ["D1", "SDA_IN"],
pin20: ["D2", "SDA_OUT"],
pin21: ["D3"],
pin22: ["D4"],
pin23: ["D5"],
pin24: ["D6"],
pin25: ["D7"],
pin26: ["IREF"],
pin27: ["VCOMH"],
pin28: ["VCC"],
pin29: ["VLSS"],
pin30: ["NC_GND2"],
};
/**
* EastRising ER-CON30HT-1, 30-position 0.5 mm-pitch top-contact FPC
* connector used by the ER-OLED0.96-1.3W.
*
* Signal lands and hold-downs follow the manufacturer's recommended PCB
* layout. The additional silk outlines show the installed display panel,
* active area, and folded flex envelope. The flex exits toward the board
* center and the panel folds back over the populated PCB.
*/
const ER_CON30HT_1 = (props) => (jsxRuntime.jsx("connector", { pinLabels: pinLabels$8, pinCount: 30, noConnect: ["NC"], manufacturerPartNumber: "ER-CON30HT-1", cadModel: {
// AFC07-S30ECA-00 is a dimensionally matched 30-pin, 0.5 mm-pitch,
// top-contact proxy. Keep the EastRising land pattern below.
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C262645.obj?uuid=89ccbfbe6c9f45d8b8a38748ae6f9994",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C262645.step?uuid=89ccbfbe6c9f45d8b8a38748ae6f9994",
modelOriginPosition: { x: 0, y: -0.82501105, z: 0 },
}, footprint: jsxRuntime.jsxs("footprint", { insertionDirection: "from_bottom", children: [Array.from({ length: 30 }, (_, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("smtpad", { portHints: [`pin${index + 1}`], pcbX: (index - 14.5) * 0.5, pcbY: 0, width: "0.30mm", height: "1.45mm", shape: "rect" }) }, `fpc-pin-${index + 1}`))), jsxRuntime.jsx("smtpad", { pcbX: -9.325, pcbY: -0.775, width: "2.0mm", height: "3.0mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { pcbX: 9.325, pcbY: -0.775, width: "2.0mm", height: "3.0mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -10.325, y: -2.25 },
{ x: 10.325, y: -2.25 },
{ x: 10.325, y: 2.25 },
{ x: -10.325, y: 2.25 },
{ x: -10.325, y: -2.25 },
] }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -9.5, y: 2.25 },
{ x: -9.5, y: 6 },
{ x: 9.5, y: 6 },
{ x: 9.5, y: 2.25 },
] }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -13.35, y: 25.26 },
{ x: 13.35, y: 25.26 },
{ x: 13.35, y: 6 },
{ x: -13.35, y: 6 },
{ x: -13.35, y: 25.26 },
] }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -10.872, y: 21.062 },
{ x: 10.872, y: 21.062 },
{ x: 10.872, y: 10.198 },
{ x: -10.872, y: 10.198 },
{ x: -10.872, y: 21.062 },
] }), jsxRuntime.jsx("silkscreentext", { text: "ER-OLED0.96-1.3W", pcbX: 0, pcbY: 8.1, fontSize: "0.55mm", anchorAlignment: "center" }), jsxRuntime.jsx("silkscreentext", { text: "1", pcbX: -8.2, pcbY: -1.55, fontSize: "0.5mm", anchorAlignment: "center" }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -10.575, y: -2.5 },
{ x: 10.575, y: -2.5 },
{ x: 10.575, y: 2.5 },
{ x: -10.575, y: 2.5 },
{ x: -10.575, y: -2.5 },
] })] }), ...props }));
const pinLabels$7 = {
pin1: ["RESET", "nRESET"],
pin2: ["SWCLK", "SWDCLK"],
pin3: ["SWDIO"],
pin4: ["VREF", "V3V3"],
pin5: ["GND"],
};
const SM05B_SRSS_TB_LF__SN_ = (props) => {
return (jsxRuntime.jsx("connector", { standard: "jst_sh", pinCount: 5, pinLabels: pinLabels$7, supplierPartNumbers: {
jlcpcb: ["C136657"],
}, manufacturerPartNumber: "SM05B-SRSS-TB(LF)(SN)", footprint: "fpc5_p1mm_pw0.6mm_pl1.55mm_mpx6.6mm_mpy3.87mm_mpw1.2mm_mpl1.8mm", cadModel: {
objUrl: objPath,
stepUrl: stepPath,
pcbRotationOffset: 0,
modelOriginPosition: { x: 2, y: 0.5124965000000032, z: -0.01 },
}, ...props }));
};
const pinLabels$6 = {
pin1: ["GND"],
pin2: ["VOUT"],
pin3: ["VIN"]
};
const MCP1700T_3302E_TT = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$6, pinAttributes: {
VIN: { requiresPower: true },
GND: { requiresGround: true },
VOUT: { providesPower: true, providesVoltage: "3.3V" },
}, supplierPartNumbers: {
"jlcpcb": [
"C39051"
]
}, manufacturerPartNumber: "MCP1700T_3302E_TT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.235075mm", pcbY: "-0.94996mm", width: "1.0700004mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.235075mm", pcbY: "0.94996mm", width: "1.0700004mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-1.235075mm", pcbY: "0mm", width: "1.0700004mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8760714000002281, "y": 1.5361919999999145 }, { "x": -0.8763253999998142, "y": 1.5361919999999145 }, { "x": -0.8763253999998142, "y": 0.49458879999997407 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8760714000002281, "y": -1.5361920000000282 }, { "x": -0.8763253999998142, "y": -1.5361920000000282 }, { "x": -0.8763253999998142, "y": -0.49458879999997407 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8760714000002281, "y": 0.45539659999997184 }, { "x": 0.8760714000002281, "y": -0.45539659999985815 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.012827mm", pcbY: "2.524mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.0281269999999267, "y": 1.774000000000001 }, { "x": 2.0024730000002364, "y": 1.774000000000001 }, { "x": 2.0024730000002364, "y": -1.7993999999999915 }, { "x": -2.0281269999999267, "y": -1.7993999999999915 }, { "x": -2.0281269999999267, "y": 1.774000000000001 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C39051.obj?uuid=cefd4596db214da394d9632b2b88f8f2",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C39051.step?uuid=cefd4596db214da394d9632b2b88f8f2",
pcbRotationOffset: 90,
modelOriginPosition: { x: 0.000012699999956566899, y: 0, z: 0 },
}, ...props }));
};
const pinLabels$5 = {
pin1: ["STAT"],
pin2: ["VSS"],
pin3: ["VBAT"],
pin4: ["VDD"],
pin5: ["PROG"]
};
const MCP73831T_2ACI_OT = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$5, pinAttributes: {
VDD: { requiresPower: true },
VSS: { requiresGround: true },
VBAT: { providesPower: true },
}, supplierPartNumbers: {
"jlcpcb": [
"C424093"
]
}, manufacturerPartNumber: "MCP73831T_2ACI_OT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.94996mm", pcbY: "-1.15817015mm", width: "0.4899914mm", height: "1.1569954mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0mm", pcbY: "-1.15817015mm", width: "0.4899914mm", height: "1.1569954mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0.94996mm", pcbY: "-1.15817015mm", width: "0.4899914mm", height: "1.1569954mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "0.94996mm", pcbY: "1.14916585mm", width: "0.4899914mm", height: "1.175004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-0.94996mm", pcbY: "1.14916585mm", width: "0.4899914mm", height: "1.175004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5262098000000606, "y": -0.8557069500000125 }, { "x": -1.5262098000000606, "y": 0.8467026499999974 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.5262097999998332, "y": -0.8557069500000125 }, { "x": 1.5262097999998332, "y": 0.8467026499999974 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.4764023999998699, "y": 0.8467026499999974 }, { "x": -0.4764023999999836, "y": 0.8467026499999974 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5008860000000368, "y": -1.1475021500000366 }, { "x": -1.5060010105125912, "y": -1.1863545121365178 }, { "x": -1.520997462536343, "y": -1.2225591500000519 }, { "x": -1.5448533726489586, "y": -1.253648777350918 }, { "x": -1.575943000000052, "y": -1.277504687463761 }, { "x": -1.6121476378634725, "y": -1.2925011394875128 }, { "x": -1.6510000000000673, "y": -1.2976161499999534 }, { "x": -1.6898523621366621, "y": -1.2925011394875128 }, { "x": -1.7260570000000826, "y": -1.277504687463761 }, { "x": -1.7571466273510623, "y": -1.253648777350918 }, { "x": -1.781002537463678, "y": -1.2225591500000519 }, { "x": -1.7959989894875434, "y": -1.1863545121365178 }, { "x": -1.8011140000000978, "y": -1.1475021500000366 }, { "x": -1.7959989894875434, "y": -1.1086497878634418 }, { "x": -1.781002537463678, "y": -1.0724451499999077 }, { "x": -1.7571466273510623, "y": -1.041355522648928 }, { "x": -1.7260570000000826, "y": -1.0174996125363123 }, { "x": -1.6898523621366621, "y": -1.0025031605124468 }, { "x": -1.6510000000000673, "y": -0.9973881500000061 }, { "x": -1.6121476378634725, "y": -1.0025031605124468 }, { "x": -1.575943000000052, "y": -1.0174996125363123 }, { "x": -1.5448533726489586, "y": -1.041355522648928 }, { "x": -1.520997462536343, "y": -1.0724451499999077 }, { "x": -1.5060010105125912, "y": -1.1086497878634418 }, { "x": -1.5008860000000368, "y": -1.1475021500000366 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.1397mm", pcbY: "2.74809785mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.0534000000000106, "y": 1.998097850000022 }, { "x": 1.7739999999998872, "y": 1.998097850000022 }, { "x": 1.7739999999998872, "y": -2.108702149999999 }, { "x": -2.0534000000000106, "y": -2.108702149999999 }, { "x": -2.0534000000000106, "y": 1.998097850000022 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C424093.obj?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C424093.step?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
pcbRotationOffset: 90,
modelOriginPosition: { x: 0.004489450000050965, y: 0.000012700000070253736, z: -0.049083 },
}, ...props }));
};
const pinLabels$4 = {
pin1: ["DEC1"],
pin2: ["P0_00", "XL1"],
pin3: ["P0_01", "XL2"],
pin4: ["P0_02", "AIN0"],
pin5: ["P0_03", "AIN1"],
pin6: ["P0_04", "AIN2"],
pin7: ["P0_05", "AIN3"],
pin8: ["P0_06"],
pin9: ["P0_07"],
pin10: ["P0_08"],
pin11: ["P0_09"],
pin12: ["P0_10"],
pin13: ["VDD1"],
pin14: ["P0_11"],
pin15: ["P0_12"],
pin16: ["P0_13"],
pin17: ["P0_14"],
pin18: ["P0_15"],
pin19: ["P0_16"],
pin20: ["P0_17"],
pin21: ["P0_18"],
pin22: ["P0_19"],
pin23: ["P0_20"],
pin24: ["P0_21", "nRESET"],
pin25: ["SWDCLK"],
pin26: ["SWDIO"],
pin27: ["P0_22"],
pin28: ["P0_23"],
pin29: ["P0_24"],
pin30: ["ANT"],
pin31: ["VSS2"],
pin32: ["DEC2"],
pin33: ["DEC3"],
pin34: ["XC1"],
pin35: ["XC2"],
pin36: ["VDD3"],
pin37: ["P0_25"],
pin38: ["P0_26"],
pin39: ["P0_27"],
pin40: ["P0_28", "AIN4"],
pin41: ["P0_29", "AIN5"],
pin42: ["P0_30", "AIN6"],
pin43: ["P0_31", "AIN7"],
pin44: ["NC"],
pin45: ["VSS1"],
pin46: ["DEC4"],
pin47: ["DCC"],
pin48: ["VDD2"],
pin49: ["EP"],
};
const NRF52810_QFAA_R = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$4, pinAttributes: {
VDD1: { requiresPower: true, requiresVoltage: "3.3V" },
VDD2: { requiresPower: true, requiresVoltage: "3.3V" },
VDD3: { requiresPower: true, requiresVoltage: "3.3V" },
VSS1: { requiresGround: true },
VSS2: { requiresGround: true },
EP: { requiresGround: true },
NC: { doNotConnect: true },
}, supplierPartNumbers: {
jlcpcb: ["C141828"],
}, manufacturerPartNumber: "NRF52810_QFAA_R", footprint: jsxRuntime.jsxs("footprint", { children: [Array.from({ length: 12 }, (_, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("smtpad", { portHints: [`pin${index + 1}`], pcbX: -3, pcbY: 2.2 - index * 0.4, width: "0.95mm", height: "0.2mm", shape: "rect" }) }, `left-${index}`))), Array.from({ length: 12 }, (_, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("smtpad", { portHints: [`pin${index + 13}`], pcbX: -2.2 + index * 0.4, pcbY: -3, width: "0.2mm", height: "0.95mm", shape: "rect" }) }, `bottom-${index}`))), Array.from({ length: 12 }, (_, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("smtpad", { portHints: [`pin${index + 25}`], pcbX: 3.0, pcbY: -2.2 + index * 0.4, width: "0.95mm", height: "0.2mm", shape: "rect" }) }, `right-${index}`))), Array.from({ length: 12 }, (_, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("smtpad", { portHints: [`pin${index + 37}`], pcbX: 2.2 - index * 0.4, pcbY: 3.0, width: "0.2mm", height: "0.95mm", shape: "rect" }) }, `top-${index}`))), jsxRuntime.jsx("smtpad", { portHints: ["pin49", "thermalpad"], pcbX: 0, pcbY: 0, width: "4.6mm", height: "4.6mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -3.35, y: -3.35 },
{ x: -3.35, y: 3.35 },
{ x: 3.35, y: 3.35 },
{ x: 3.35, y: -3.35 },
{ x: -3.35, y: -3.35 },
] }), jsxRuntime.jsx("silkscreencircle", { pcbX: -3.7, pcbY: 3.7, radius: "0.25mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -3.6, y: -3.6 },
{ x: 3.6, y: -3.6 },
{ x: 3.6, y: 3.6 },
{ x: -3.6, y: 3.6 },
{ x: -3.6, y: -3.6 },
] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C141828.obj?uuid=46b18d34784345cd8b1ca45b59e906cb",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C141828.step?uuid=46b18d34784345cd8b1ca45b59e906cb",
pcbRotationOffset: 270,
modelOriginPosition: {
x: -5079999993995443e-20,
y: -5079999993995443e-20,
z: 0,
},
}, ...props }));
};
const pinLabels$3 = {
pin1: ["FEED"],
pin2: ["NC"]
};
const RFANT3216120A5T = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$3, pinAttributes: {
FEED: { mustBeConnected: true },
NC: { doNotConnect: true },
}, noConnect: ["NC"], supplierPartNumbers: {
"jlcpcb": [
"C127629"
]
}, manufacturerPartNumber: "RFANT3216120A5T", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.57607mm", pcbY: 0, width: "0.7999984mm", height: "1.6599916mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-1.524mm", pcbY: 0, width: "0.7999984mm", height: "1.6599916mm", shape: "rect" }), jsxRuntime.jsx("silkscreenrect", { pcbX: "-0.418592mm", pcbY: 0, width: "0.127mm", height: "2.032mm", strokeWidth: "0.254mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: "-0.722884mm", pcbY: "0.0635mm", width: "0.228092mm", height: "1.905mm", strokeWidth: "0.254mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: 0, pcbY: 0, width: "4.318mm", height: "2.032mm", strokeWidth: "0.254mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -2.40773, y: 1.266 },
{ x: 2.41027, y: 1.266 },
{ x: 2.41027, y: -1.266 },
{ x: -2.40773, y: -1.266 },
{ x: -2.40773, y: 1.266 },
] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C127629.obj?uuid=ad99fc1789904603aa1325d0ded16988",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C127629.step?uuid=ad99fc1789904603aa1325d0ded16988",
pcbRotationOffset: 0,
modelOriginPosition: { x: -0.026035, y: 0, z: -0.6 },
}, ...props }));
};
const pinLabels$2 = {
pin1: ["pin1"],
pin2: ["pin2"]
};
const SM02B_GHS_TB_LF__SN_ = (props) => {
return (jsxRuntime.jsx("connector", { pinLabels: pinLabels$2, standard: "jst_gh", pinCount: 2, supplierPartNumbers: {
"jlcpcb": [
"C189893"
]
}, manufacturerPartNumber: "SM02B_GHS_TB_LF__SN_", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.625094mm", pcbY: "1.8999454mm", width: "0.5999988mm", height: "1.6999966mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.625094mm", pcbY: "1.8999454mm", width: "0.5999988mm", height: "1.6999966mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { pcbX: "2.474976mm", pcbY: "-1.2999466mm", width: "1.2999974mm", height: "2.8999942mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { pcbX: "-2.474976mm", pcbY: "-1.2999466mm", width: "1.2999974mm", height: "2.8999942mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.899968799999897, "y": 1.6499078000000509 }, { "x": -1.1561318000000256, "y": 1.6499078000000509 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.09385299999996732, "y": 1.6499078000000509 }, { "x": 0.09385299999985364, "y": 1.6499078000000509 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.156131799999912, "y": 1.6499078000000509 }, { "x": 2.8999688000000106, "y": 1.6499078000000509 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 2.8999688000000106, "y": 1.6499078000000509 }, { "x": 2.8999688000000106, "y": 0.38107620000005227 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5938500000000886, "y": -2.400071399999888 }, { "x": 1.593849999999975, "y": -2.400071399999888 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.899968799999897, "y": 1.6499078000000509 }, { "x": -2.899968799999897, "y": 0.38107620000005227 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "3.7381454mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -3.374200000000087, "y": 2.9881454000001213 }, { "x": 3.3741999999998598, "y": 2.9881454000001213 }, { "x": 3.3741999999998598, "y": -3.0236545999998725 }, { "x": -3.374200000000087, "y": -3.0236545999998725 }, { "x": -3.374200000000087, "y": 2.9881454000001213 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C189893.obj?uuid=8605112561c3434fb8d485b55a1a811f",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C189893.step?uuid=8605112561c3434fb8d485b55a1a811f",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.625, y: -0.6144900999999481, z: -0.01 },
}, ...props }));
};
const pinLabels$1 = {
pin1: ["EH2"],
pin2: ["EH1"],
pin3: ["EH4"],
pin4: ["EH3"],
pin5: ["B8"],
pin6: ["A5"],
pin7: ["B7"],
pin8: ["A6"],
pin9: ["A7"],
pin10: ["B6"],
pin11: ["A8"],
pin12: ["B5"],
pin13: ["A1B12"],
pin14: ["B1A12"],
pin15: ["B4A9"],
pin16: ["A4B9"]
};
const TYPE_C_31_M_12 = (props) => {
return (jsxRuntime.jsx("connector", { pinLabels: pinLabels$1, standard: "usb_c", pinCount: 16, noConnect: ["B8", "B7", "A6", "A7", "B6", "A8"], supplierPartNumbers: {
"jlcpcb": [
"C165948"
]
}, manufacturerPartNumber: "TYPE_C_31_M_12", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("hole", { pcbX: "-2.899918mm", pcbY: "0.9055672mm", diameter: "0.5999988mm" }), jsxRuntime.jsx("hole", { pcbX: "2.899918mm", pcbY: "0.9055672mm", diameter: "0.5999988mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin2"], pcbX: "4.325112mm", pcbY: "-2.7741308mm", holeWidth: "0.7999984mm", holeHeight: "1.3999972mm", outerWidth: "1.1999976mm", outerHeight: "1.7999964mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin1"], pcbX: "4.325112mm", pcbY: "1.4056932mm", holeWidth: "0.7999984mm", holeHeight: "1.5999968mm", outerWidth: "1.1999976mm", outerHeight: "1.999996mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin4"], pcbX: "-4.325112mm", pcbY: "1.4056932mm", holeWidth: "0.7999984mm", holeHeight: "1.5999968mm", outerWidth: "1.1999976mm", outerHeight: "1.999996mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin3"], pcbX: "-4.325112mm", pcbY: "-2.7741308mm", holeWidth: "0.7999984mm", holeHeight: "1.3999972mm", outerWidth: "1.1999976mm", outerHeight: "1.7999964mm", shape: "pill" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.75006mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "-1.249934mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "-0.750062mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "-0.249936mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "0.249936mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "0.750062mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "1.24968mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "1.75006mm", pcbY: "2.1740432mm", width: "0.2999994mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin13"], points: [{ x: "-2.8999688mm", y: "1.524108mm" }, { x: "-2.8999688mm", y: "2.8241308mm" }, { x: "-2.8999688mm", y: "2.8241308mm" }, { x: "-3.1999682mm", y: "2.8241308mm" }, { x: "-3.1999682mm", y: "2.8241308mm" }, { x: "-3.1999682mm", y: "2.8239784mm" }, { x: "-3.1999682mm", y: "2.8239784mm" }, { x: "-3.4999422mm", y: "2.8239784mm" }, { x: "-3.4999422mm", y: "2.8239784mm" }, { x: "-3.4999422mm", y: "1.5239556mm" }, { x: "-3.4999422mm", y: "1.5239556mm" }, { x: "-3.1999428mm", y: "1.5239556mm" }, { x: "-3.1999428mm", y: "1.5239556mm" }, { x: "-3.1999428mm", y: "1.524108mm" }, { x: "-3.1999428mm", y: "1.524108mm" }, { x: "-2.8999688mm", y: "1.524108mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin14"], points: [{ x: "2.8999942mm", y: "2.8241308mm" }, { x: "2.8999942mm", y: "1.5241588mm" }, { x: "2.8999942mm", y: "1.5241588mm" }, { x: "3.1999936mm", y: "1.5241588mm" }, { x: "3.1999936mm", y: "1.5241588mm" }, { x: "3.200019mm", y: "1.5241588mm" }, { x: "3.200019mm", y: "1.5241588mm" }, { x: "3.5000184mm", y: "1.5241588mm" }, { x: "3.5000184mm", y: "1.5241588mm" }, { x: "3.5000184mm", y: "2.8241308mm" }, { x: "3.5000184mm", y: "2.8241308mm" }, { x: "3.200019mm", y: "2.8241308mm" }, { x: "3.200019mm", y: "2.8241308mm" }, { x: "3.1999936mm", y: "2.8241308mm" }, { x: "3.1999936mm", y: "2.8241308mm" }, { x: "2.8999942mm", y: "2.8241308mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin15"], points: [{ x: "2.7001724mm", y: "1.5241588mm" }, { x: "2.7001724mm", y: "2.8241308mm" }, { x: "2.7001724mm", y: "2.8241308mm" }, { x: "2.400173mm", y: "2.8241308mm" }, { x: "2.400173mm", y: "2.8241308mm" }, { x: "2.4001476mm", y: "2.8241308mm" }, { x: "2.4001476mm", y: "2.8241308mm" }, { x: "2.1001482mm", y: "2.8241308mm" }, { x: "2.1001482mm", y: "2.8241308mm" }, { x: "2.1001482mm", y: "1.5241588mm" }, { x: "2.1001482mm", y: "1.5241588mm" }, { x: "2.4001476mm", y: "1.5241588mm" }, { x: "2.4001476mm", y: "1.5241588mm" }, { x: "2.400173mm", y: "1.5241588mm" }, { x: "2.400173mm", y: "1.5241588mm" }, { x: "2.7001724mm", y: "1.5241588mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin16"], points: [{ x: "-2.0999704mm", y: "1.5240064mm" }, { x: "-2.0999704mm", y: "2.8239784mm" }, { x: "-2.0999704mm", y: "2.8239784mm" }, { x: "-2.3999952mm", y: "2.8239784mm" }, { x: "-2.3999952mm", y: "2.8239784mm" }, { x: "-2.3999952mm", y: "2.823953mm" }, { x: "-2.3999952mm", y: "2.823953mm" }, { x: "-2.6999438mm", y: "2.823953mm" }, { x: "-2.6999438mm", y: "2.823953mm" }, { x: "-2.6999438mm", y: "1.523981mm" }, { x: "-2.6999438mm", y: "1.523981mm" }, { x: "-2.399919mm", y: "1.523981mm" }, { x: "-2.399919mm", y: "1.523981mm" }, { x: "-2.399919mm", y: "1.5240064mm" }, { x: "-2.399919mm", y: "1.5240064mm" }, { x: "-2.0999704mm", y: "1.5240064mm" }], shape: "polygon" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.4689776000000165, "y": -1.6757585999999947 }, { "x": -4.4689776000000165, "y": 0.18715359999987413 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.471009600000116, "y": -5.394140800000059 }, { "x": -4.4689776000000165, "y": -5.394140800000059 }, { "x": -4.4689776000000165, "y": -3.91283820000001 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.471009600000116, "y": -1.676114200000029 }, { "x": 4.471009600000116, "y": 0.18750920000002225 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.471009600000116, "y": -5.394140800000059 }, { "x": 4.471009600000116, "y": -3.912482600000203 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.002794mm", pcbY: "3.8286012mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -5.174805999999876, "y": 3.0786011999998664 }, { "x": 5.180394000000092, "y": 3.0786011999998664 }, { "x": 5.180394000000092, "y": -5.650998800000025 }, { "x": -5.174805999999876, "y": -5.650998800000025 }, { "x": -5.174805999999876, "y": 3.0786011999998664 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C165948.obj?uuid=617b05f9bba7410b96c001093d8189e4",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C165948.step?uuid=617b05f9bba7410b96c001093d8189e4",
pcbRotationOffset: 180,
modelOriginPosition: { x: 0, y: -2.7500289000000517, z: 0.000010999999999872223 },
}, ...props }));
};
const pinLabels = {
pin1: ["A"],
pin2: ["B"],
};
/** Generic two-contact, side-actuated SMD tactile switch footprint. */
const WATCH_SIDE_BUTTON = (props) => (jsxRuntime.jsx("pushbutton", { pinLabels: pinLabels, manufacturerPartNumber: "GENERIC-3.5X2.8-SIDE-TACT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: -1.9, pcbY: 0, width: "1.4mm", height: "2.2mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: 1.9, pcbY: 0, width: "1.4mm", height: "2.2mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -1.6, y: -1.4 },
{ x: 1.6, y: -1.4 },
{ x: 1.6, y: 1.4 },
{ x: -1.6, y: 1.4 },
{ x: -1.6, y: -1.4 },
] }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -2.8, y: -1.7 },
{ x: 2.8, y: -1.7 },
{ x: 2.8, y: 1.7 },
{ x: -2.8, y: 1.7 },
{ x: -2.8, y: -1.7 },
] })] }), ...props }));
const X201632MKB4SI = (props) => {
const { name = "X1", ...restProps } = props;
return (jsxRuntime.jsx("crystal", { name: name, frequency: "32MHz", loadCapacitance: "8pF", pinVariant: "four_pin", maxTraceLength: "13mm", supplierPartNumbers: { jlcpcb: ["C718072"] }, manufacturerPartNumber: "X201632MKB4SI", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.700024mm", pcbY: "-0.549783mm", width: "0.8999982mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0.700024mm", pcbY: "0.550037mm", width: "0.8999982mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-0.700024mm", pcbY: "0.550037mm", width: "0.8999982mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.700024mm", pcbY: "-0.549783mm", width: "0.8999982mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [
{ x: -1.649984, y: -0.1498854 },
{ x: -1.649984, y: -1.4498828 },
{ x: -0.2499868, y: -1.4498828 },
] }), jsxRuntime.jsx("silkscreenrect", { pcbX: 0, pcbY: 0, width: "2.70002mm", height: "2.29997mm", strokeWidth: "0.151999696mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -1.901, y: 1.393127 },
{ x: 1.5962, y: 1.393127 },
{ x: 1.5962, y: -1.697673 },
{ x: -1.901, y: -1.697673 },
{ x: -1.901, y: 1.393127 },
] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C718072.obj?uuid=51ae9b24ba7a408881f7752b57b66e45",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C718072.step?uuid=51ae9b24ba7a408881f7752b57b66e45",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -1143e-7, z: -0.01 },
}, ...restProps }));
};
const CORE_SHEET = "core-power";
const INTERFACE_SHEET = "status-led";
const CLOCK_SHEET = "clocks";
const RF_SHEET = "rf-front-end";
const CLOCK_SHEET_Y = 4;
const RF_SHEET_Y = -2;
const POWER_INPUT_SECTION = "power-input";
const MCU_POWER_SECTION = "mcu-power";
const PROGRAMMING_SECTION = "programming";
const HF_CLOCK_SECTION = "hf-clock";
const RF_MATCH_SECTION = "rf-match";
const ANTENNA_SECTION = "antenna";
const DISPLAY_SECTION = "oled-display";
const CONTROLS_SECTION = "watch-controls";
const BOARD_SIZE = 34;
const BOARD_EDGE = BOARD_SIZE / 2;
const BOARD_RADIUS = 7;
const RF_ZONE_SIZE = 6;
const RF_ZONE_X = BOARD_EDGE - RF_ZONE_SIZE / 2;
const RF_ZONE_LEFT = BOARD_EDGE - RF_ZONE_SIZE;
// The centered OLED folds over the low-profile top-side assembly. Move the
// antenna above its metal-backed panel while leaving the matching network next
// to the MCU, outside the keepout.
const OLED_CONNECTOR_X = 0;
const OLED_CONNECTOR_Y = 13;
const OLED_PANEL_TOP_Y = OLED_CONNECTOR_Y - 6;
const OLED_SUPPORT_ROW_Y = OLED_PANEL_TOP_Y - 1.3;
const OLED_TO_RF_CLEARANCE = 0.75;
const ANTENNA_FOOTPRINT_HALF_HEIGHT = 0.83;
const RF_ZONE_Y = OLED_PANEL_TOP_Y + OLED_TO_RF_CLEARANCE + ANTENNA_FOOTPRINT_HALF_HEIGHT;
const RF_MATCH_Y = 0;
const RF_MATCH_L2_X = RF_ZONE_LEFT - 0.95;
const RF_MATCH_L1_X = RF_MATCH_L2_X - 1.45;
const RF_MATCH_L1_Y = RF_MATCH_Y - 1;
const MCU_X = RF_MATCH_L2_X - 6.61;
const MCU_Y = RF_MATCH_Y + 0.2;
const HIDE_FOOTPRINT_TEXT = {
"& silkscreentext": { visibility: "hidden" },
};
const makeJlc0402CapFootprint = () => (jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: 0, width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: 0, width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("courtyardrect", { pcbX: 0, pcbY: 0, width: "1.54mm", height: "0.74mm" })] }));
const makeJlc0201CapFootprint = () => (jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.27432mm", pcbY: 0, width: "0.368427mm", height: "0.3240024mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.27432mm", pcbY: 0, width: "0.368427mm", height: "0.3240024mm", shape: "rect" }), jsxRuntime.jsx("courtyardrect", { pcbX: 0, pcbY: 0, width: "1.12mm", height: "0.54mm" })] }));
const makeJlc0402ResFootprint = () => (jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: 0, width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: 0, width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("courtyardrect", { pcbX: 0, pcbY: 0, width: "1.64mm", height: "0.74mm" })] }));
const makeC124205Footprint = () => (jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["cathode"], pcbX: "-1.172464mm", pcbY: 0, width: "0.999998mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["anode"], pcbX: "1.172464mm", pcbY: 0, width: "0.999998mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("courtyardrect", { pcbX: 0, pcbY: 0, width: "3.64mm", height: "1.6mm" })] }));
const PcbCap = ({ name, capacitance, footprint = "0402", pcbX, pcbY, pcbRotation, schX, schY, schOrientation = "vertical", schSectionName, doNotPlace = false, layer, maxDecouplingTraceLength, manufacturerPartNumber, supplierPartNumbers, }) => (jsxRuntime.jsx("capacitor", { name: name, capacitance: capacitance, footprint: footprint, pcbX: pcbX, pcbY: pcbY, pcbRotation: pcbRotation, schX: schX, schY: schY, schOrientation: schOrientation, schSectionName: schSectionName, doNotPlace: doNotPlace, layer: layer, maxDecouplingTraceLength: maxDecouplingTraceLength, manufacturerPartNumber: manufacturerPartNumber, supplierPartNumbers: supplierPartNumbers }));
var index_circuit = () => (jsxRuntime.jsxs("board", { name: "NRF52810_SMART_WATCH", title: "nRF52810 OLED Smart Watch", width: `${BOARD_SIZE}mm`, height: `${BOARD_SIZE}mm`, borderRadius: `${BOARD_RADIUS}mm`, thickness: "1.0mm", layers: 2, allowBlindAndBuriedVias: false, solderMaskColor: "black", silkscreenColor: "white", doubleSidedAssembly: false, isViaInPadAllowed: false, minViaHoleDiameter: "0.3mm", minViaPadDiameter: "0.6mm", minViaEdgeToPadEdgeClearance: "0.1mm", pcbStyle: {
viaHoleDiameter: "0.3mm",
viaPadDiameter: "0.6mm",
}, minTraceToPadEdgeClearance: "0.05mm", schLayout: { layoutMode: "relative" }, autorouterVersion: "beta_pipeline9", autorouter: {
preset: "default",
allowViaInPad: false,
traceClearance: "0.1mm",
}, children: [jsxRuntime.jsx("autoroutingphase", { name: "RF shunt", phaseIndex: 0 }), jsxRuntime.jsx("autoroutingphase", { name: "RF feed", phaseIndex: 1 }), jsxRuntime.jsx("autoroutingphase", { name: "HF clock", phaseIndex: 2 }), jsxRuntime.jsx("autoroutingphase", { name: "DEC1 decoupling", phaseIndex: 3 }), jsxRuntime.jsx("autoroutingphase", { name: "Power decoupling", phaseIndex: 4 }), jsxRuntime.jsx(NRF52810_QFAA_R, { name: "U1", pcbX: MCU_X, pcbY: MCU_Y, noSchematicRepresentation: true }), jsxRuntime.jsxs("schematicsheet", { name: CORE_SHEET, displayName: "Core, Power & Programming", sheetIndex: 0, children: [jsxRuntime.jsx("schematicsection", { name: POWER_INPUT_SECTION, displayName: "USB-C, LiPo Charging & 3.3 V Regulation" }), jsxRuntime.jsx("schematicsection", { name: MCU_POWER_SECTION, displayName: "MCU Supply & Decoupling" }), jsxRuntime.jsx("schematicsection", { name: PROGRAMMING_SECTION, displayName: "SWD Programming" }), jsxRuntime.jsx("schematicbox", { name: "U1 Power", chipRef: ".U1", width: 1.96, height: 1.2, schX: 0, schY: 1, schSectionName: MCU_POWER_SECTION, pinLabels: {
pin1: "VDD1",
pin2: "VDD2",
pin3: "VDD3",
pin4: "VSS1",
pin5: "VSS2",
pin6: "DEC1",
pin7: "DEC2",
pin8: "DEC3",
pin9: "DEC4",
pin10: "EP",
}, schPinArrangement: {
leftSide: ["pin1", "pin2", "pin3", "pin4", "pin5"],
rightSide: ["pin6", "pin7", "pin8", "pin9", "pin10"],
} }), jsxRuntime.jsx("schematicbox", { name: "U1 Debug", chipRef: ".U1", width: 2.4, height: 0.8, schX: 11, schY: 1, schSectionName: PROGRAMMING_SECTION, pinLabels: {
pin1: "SWDIO",
pin2: "SWDCLK",
pin3: "nRESET",
pin4: "P0_16",
}, schPinArrangement: {
leftSide: [],
rightSide: ["pin1", "pin2", "pin3", "pin4"],
} }), jsxRuntime.jsx(TYPE_C_31_M_12, { name: "J2", pcbX: -5.6, pcbY: -11.3, pcbSx: HIDE_FOOTPRINT_TEXT, noSchematicRepresentation: true }), jsxRuntime.jsx("schematicbox", { name: "J2 USB-C power", chipRef: ".J2", width: 2.5, height: 1.4, schX: -10, schY: 3, schSectionName: POWER_INPUT_SECTION, pinLabels: {
pin15: "B4A9",
pin16: "A4B9",
pin6: "A5",
pin12: "B5",
pin13: "A1B12",
pin14: "B1A12",
pin1: "EH2",
}, schPinArrangement: {
leftSide: ["pin15", "pin16", "pin6", "pin12"],
rightSide: ["pin13", "pin14", "pin1"],
} }), jsxRuntime.jsx(SM02B_GHS_TB_LF__SN_, { name: "J3", pcbX: 13.75, pcbY: -8, pcbRotation: 90, pcbSx: HIDE_FOOTPRINT_TEXT, noSchematicRepresentation: true }), jsxRuntime.jsx("schematicbox", { name: "J3 Protected 1S LiPo", chipRef: ".J3", width: 2.3, height: 0.7, schX: -10, schY: -1, schSectionName: POWER_INPUT_SECTION, pinLabels: { pin1: "pin1", pin2: "pin2" }, schPinArrangement: { leftSide: ["pin1"], rightSide: ["pin2"] } }), jsxRuntime.jsx(MCP73831T_2ACI_OT, { name: "U2", pcbX: -9, pcbY: -2.8, schX: -5, schY: 2.3, schSectionName: POWER_INPUT_SECTION, schPinArrangement: {
leftSide: ["VDD", "PROG", "VSS"],
rightSide: ["VBAT", "STAT"],
} }), jsxRuntime.jsx(MCP1700T_3302E_TT, { name: "U3", pcbX: 5, pcbY: -8, schX: 4, schY: 2.3, schSectionName: POWER_INPUT_SECTION, schPinArrangement: { leftSide: ["VIN", "GND"], rightSide: ["VOUT"] } }), jsxRuntime.jsx("resistor", { name: "R_CC1", resistance: "5.1k", footprint: makeJlc0402ResFootprint(), pcbX: -7.25, pcbY: -7, pcbRotation: -90, schX: -8, schY: 5, schOrientation: "vertical", schSectionName: POWER_INPUT_SECTION }), jsxRuntime.jsx("resistor", { name: "R_CC2", resistance: "5.1k", footprint: makeJlc0402ResFootprint(), pcbX: -4.45, pcbY: -7, pcbRotation: -90, schX: -6.5, schY: 5, schOrientation: "vertical", schSectionName: POWER_INPUT_SECTION }), jsxRuntime.jsx("resistor", { name: "R_CHG_PROG", resistance: "10k", footprint: makeJlc0402ResFootprint(), pcbX: -12.1, pcbY: -2.8, schX: -3, schY: 0, schOrientation: "vertical", schSectionName: POWER_INPUT_SECTION }), jsxRuntime.jsx("diode", { name: "D_USB", schottky: true, footprint: makeC124205Footprint(), supplierPartNumbers: { jlcpcb: ["C124205"] }, pcbX: -12.1, pcbY: -5.2, pcbRotation: 270, schX: 0, schY: 3.2, schSectionName: POWER_INPUT_SECTION }), jsxRuntime.jsx("diode", { name: "D_BAT", schottky: true, footprint: makeC124205Footprint(), supplierPartNumbers: { jlcpcb: ["C124205"] }, pcbX: -5.4, pcbY: -4.8, schX: 0, schY: 1.4, schSectionName: POWER_INPUT_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C21", capacitance: "4.7uF", footprint: "0603", pcbX: -6.4, pcbY: -0.5, pcbRotation: -90, schX: -6, schY: 0, schSectionName: POWER_INPUT_SECTION, maxDecouplingTraceLength: "5mm" }), jsxRuntime.jsx(PcbCap, { name: "C22", capacitance: "4.7uF", footprint: "0603", pcbX: -5.6, pcbY: -2.8, schX: -2, schY: -1.5, schSectionName: POWER_INPUT_SECTION, maxDecouplingTraceLength: "8mm" }), jsxRuntime.jsx(PcbCap, { name: "C23", capacitance: "1uF", footprint: "0603", pcbX: 1.3, pcbY: -8, schX: 2, schY: 0, schSectionName: POWER_INPUT_SECTION, maxDecouplingTraceLength: "5mm" }), jsxRuntime.jsx(PcbCap, { name: "C24", capacitance: "1uF", footprint: "0603", pcbX: 7.75, pcbY: -8, pcbRotation: -90, schX: 7, schY: 0, schSectionName: POWER_INPUT_SECTION, maxDecouplingTraceLength: "6mm" }), jsxRuntime.jsx(PcbCap, { name: "C4", capacitance: "100nF", footprint: makeJlc0402CapFootprint(), pcbX: 1.8, pcbY: -3.9, schX: -4, schY: 2, schSectionName: MCU_POWER_SECTION, maxDecouplingTraceLength: "3mm" }), jsxRuntime.jsx(PcbCap, { name: "C9", capacitance: "4.7uF", footprint: "0603", pcbX: 4.2, pcbY: -4.2, schX: -4, schY: 0, schSectionName: MCU_POWER_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C5", capacitance: "100nF", footprint: makeJlc0402CapFootprint(), pcbX: -1.1, pcbY: 2.8, pcbRotation: 180, schX: 3.5, schY: 3, schSectionName: MCU_POWER_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C7", capacitance: "100pF", footprint: makeJlc0201CapFootprint(), pcbX: MCU_X + 4.31, pcbY: MCU_Y + 0.45, pcbRotation: 270, schX: 4.5, schY: 1.5, schSectionName: MCU_POWER_SECTION, manufacturerPartNumber: "GRM0335C1H101FA01D", supplierPartNumbers: { jlcpcb: ["C384957"] } }), jsxRuntime.jsx(PcbCap, { name: "C8", capacitance: "100nF", footprint: makeJlc0201CapFootprint(), pcbX: MCU_X + 4.31, pcbY: MCU_Y + 1.3, schX: 3, schY: 0, schSectionName: MCU_POWER_SECTION, manufacturerPartNumber: "TCC0201X5R104K100ZT", supplierPartNumbers: { jlcpcb: ["C5142565"] } }), jsxRuntime.jsx(PcbCap, { name: "C10", capacitance: "1uF", footprint: makeJlc0402CapFootprint(), pcbX: 0.6, pcbY: 4.6, pcbRotation: 90, schX: 4.57, schY: -1.5, schSectionName: MCU_POWER_SECTION }), jsxRuntime.jsx(SM05B_SRSS_TB_LF__SN_, { name: "J4", pcbX: 4, pcbY: -12, schX: 13, schY: 0, schSectionName: PROGRAMMING_SECTION }), jsxRuntime.jsx("trace", { name: "USB_VBUS_PIN_BRIDGE", from: ".J2 > .A4B9", to: ".J2 > .B4A9", width: "0.3mm", schDisplayLabel: "VBUS_5V" }), jsxRuntime.jsx("trace", { name: "USB_VBUS_TO_D_USB", from: ".J2 > .B4A9", to: ".D_USB > .anode", width: "0.3mm", schDisplayLabel: "VBUS_5V" }), jsxRuntime.jsx("trace", { from: ".J2 > .A1B12", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J2 > .B1A12", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J2 > .EH1", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J2 > .EH2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J2 > .EH3", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J2 > .EH4", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "USB_CC1", from: ".J2 > .A5", to: ".R_CC1 > .pin1", width: "0.1mm" }), jsxRuntime.jsx("trace", { from: ".R_CC1 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "USB_CC2", from: ".J2 > .B5", to: ".R_CC2 > .pin1", width: "0.1mm" }), jsxRuntime.jsx("trace", { from: ".R_CC2 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "USB_TO_CHARGER_VDD", from: ".D_USB > .anode", to: ".U2 > .VDD", width: "0.3mm", schDisplayLabel: "VBUS_5V" }), jsxRuntime.jsx("trace", { from: ".U2 > .VSS", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "CHARGER_VDD_DECOUPLING", from: ".U2 > .VDD", to: ".C21 > .pin1", width: "0.3mm", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { name: "CHARGER_VDD_LOCAL_GROUND", from: ".C21 > .pin2", to: ".U2 > .VSS", width: "0.15mm", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { name: "CHARGE_CURRENT_PROGRAM", from: ".U2 > .PROG", to: ".R_CHG_PROG > .pin1", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".R_CHG_PROG > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "CHARGER_VBAT_DECOUPLING", from: ".U2 > .VBAT", to: ".C22 > .pin1", width: "0.3mm", schDisplayLabel: "BAT_RAW", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { name: "CHARGE_STATUS", from: ".U2 > .STAT", to: ".U1 > .P0_28", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J3 > .pin1", to: "net.BAT_RAW", width: "0.3mm" }), jsxRuntime.jsx("trace", { from: ".J3 > .pin2", to: "net.GND", width: "0.3mm" }), jsxRuntime.jsx("trace", { name: "CHARGER_VBAT_TO_D_BAT", from: ".U2 > .VBAT", to: ".D_BAT > .anode", width: "0.25mm", schDisplayLabel: "BAT_RAW" }), jsxRuntime.jsx("trace", { name: "CHARGER_VBAT_LOCAL_GROUND", from: ".C22 > .pin2", to: ".U2 > .VSS", width: "0.15mm", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { name: "POWER_OR_DIODE_CATHODES", from: ".D_USB > .cathode", to: ".D_BAT > .cathode", width: "0.25mm", schDisplayLabel: "SYS_RAW", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { from: ".D_BAT > .anode", to: "net.BAT_RAW", width: "0.25mm" }), jsxRuntime.jsx("trace", { name: "SYS_RAW_TO_REGULATOR", from: ".D_BAT > .cathode", to: ".U3 > .VIN", width: "0.25mm", schDisplayLabel: "SYS_RAW", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { from: ".U3 > .GND", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "REGULATOR_INPUT_DECOUPLING", from: ".U3 > .VIN", to: ".C23 > .pin1", width: "0.25mm" }), jsxRuntime.jsx("trace", { from: ".C23 > .pin2", to: "net.GND", width: "0.2mm" }), jsxRuntime.jsx("trace", { name: "REGULATOR_OUTPUT_DECOUPLING", from: ".U3 > .VOUT", to: ".C24 > .pin1", width: "0.25mm", routingPhaseIndex: 4 }), jsxRuntime.jsx("netlabel", { net: "V3V3", connectsTo: ".C24 > .pin1", schX: 7, schY: 0.35, anchorSide: "top" }), jsxRuntime.jsx("trace", { from: ".C24 > .pin2", to: "net.GND", width: "0.2mm", routingPhaseIndex: 4 }), jsxRuntime.jsx("trace", { from: ".U1 > .VDD1", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".U1 > .VDD2", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".U1 > .VDD3", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".U1 > .VSS2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".U1 > .EP", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".U1 > .VSS1", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "VDD1_DECOUPLING", from: ".C4 > .pin1", to: ".U1 > .VDD1", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".C4 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "V3V3_BULK_TO_MCU", from: ".C9 > .pin1", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".C9 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DEC1_DECOUPLING", from: ".U1 > .DEC1", to: ".C5 > .pin1", width: "0.1mm", routingPhaseIndex: 3 }), jsxRuntime.jsx("trace", { from: ".C5 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DEC2_DECOUPLING", from: ".U1 > .DEC2", to: ".C7 > .pin1", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DEC3_DECOUPLING", from: ".U1 > .DEC3", to: ".C8 > .pin1", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".C7 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".C8 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DEC4_DECOUPLING", from: ".U1 > .DEC4", to: ".C10 > .pin1", width: "0.1mm" }), jsxRuntime.jsx("trace", { from: ".C10 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "PROGRAM_SWDIO", from: ".U1 > .SWDIO", to: ".J4 > .SWDIO", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "PROGRAM_SWDCLK", from: ".U1 > .SWDCLK", to: ".J4 > .SWCLK", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "PROGRAM_RESET", from: ".U1 > .nRESET", to: ".J4 > .RESET", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J4 > .GND", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J4 > .VREF", to: "net.V3V3", width: "0.15mm" })] }), jsxRuntime.jsxs("schematicsheet", { name: INTERFACE_SHEET, displayName: "Display & User Interface", sheetIndex: 1, children: [jsxRuntime.jsx("schematicsection", { name: DISPLAY_SECTION, displayName: "128 x 64 I2C OLED" }), jsxRuntime.jsx("schematicsection", { name: CONTROLS_SECTION, displayName: "Side Buttons" }), jsxRuntime.jsx(ER_CON30HT_1, { name: "J1", pcbX: OLED_CONNECTOR_X, pcbY: OLED_CONNECTOR_Y, pcbRotation: 180, noSchematicRepresentation: true }), jsxRuntime.jsx("schematicbox", { name: "J1 OLED power", chipRef: ".J1", width: 3.4, height: 1.2, schX: 5, schY: 9, schSectionName: DISPLAY_SECTION, pinLabels: {
pin1: "NC_GND1",
pin2: "C2P",
pin3: "C2N",
pin4: "C1P",
pin5: "C1N",
pin6: "VBAT",
pin7: "NC",
pin8: "VSS",
pin9: "VDD",
pin26: "IREF",
pin27: "VCOMH",
pin28: "VCC",
pin29: "VLSS",
pin30: "NC_GND2",
}, schPinArrangement: {
leftSide: [
"pin1",
"pin2",
"pin3",
"pin4",
"pin5",
"pin6",
"pin7",
],
rightSide: [
"pin8",
"pin9",
"pin26",
"pin27",
"pin28",
"pin29",
"pin30",
],
} }), jsxRuntime.jsx("schematicbox", { name: "J1 OLED interface", chipRef: ".J1", width: 3.4, height: 1.4, schX: 11, schY: 9, schSectionName: DISPLAY_SECTION, pinLabels: {
pin10: "BS0",
pin11: "BS1",
pin12: "BS2",
pin13: "CS",
pin14: "RES",
pin15: "SA0",
pin16: "RW",
pin17: "ERD",
pin18: "SCL",
pin19: "SDA_IN",
pin20: "SDA_OUT",
pin21: "D3",
pin22: "D4",
pin23: "D5",
pin24: "D6",
pin25: "D7",
}, schPinArrangement: {
leftSide: [
"pin10",
"pin11",
"pin12",
"pin13",
"pin14",
"pin15",
"pin16",
"pin17",
],
rightSide: [
"pin18",
"pin19",
"pin20",
"pin21",
"pin22",
"pin23",
"pin24",
"pin25",
],
} }), jsxRuntime.jsx("schematicbox", { name: "U1 Display GPIO", chipRef: ".U1", width: 2.2, height: 0.8, schX: 0, schY: 9, schSectionName: DISPLAY_SECTION, pinLabels: { pin1: "P0_00", pin2: "P0_01", pin3: "P0_27" }, schPinArrangement: {
leftSide: [],
rightSide: ["pin1", "pin2", "pin3"],
} }), jsxRuntime.jsx("resistor", { name: "R_I2C_SDA", resistance: "4.7k", footprint: makeJlc0402ResFootprint(), pcbX: -4.3, pcbY: 5.7, pcbRotation: -90, schX: 2, schY: 6.5, schOrientation: "vertical", schSectionName: DISPLAY_SECTION }), jsxRuntime.jsx("resistor", { name: "R_I2C_SCL", resistance: "4.7k", footprint: makeJlc0402ResFootprint(), pcbX: -3.1, pcbY: 5.7, pcbRotation: -90, schX: 3.5, schY: 6.5, schOrientation: "vertical", schSectionName: DISPLAY_SECTION }), jsxRuntime.jsx("resistor", { name: "R_OLED_RESET", resistance: "10k", footprint: makeJlc0402ResFootprint(), pcbX: -1.9, pcbY: 5.7, pcbRotation: -90, schX: 9, schY: 5.5, schOrientation: "vertical", schSectionName: DISPLAY_SECTION }), jsxRuntime.jsx("resistor", { name: "R_OLED_IREF", resistance: "390k", footprint: makeJlc0402ResFootprint(), pcbX: -1.3, pcbY: 3.9, schX: 7, schY: 5.5, schOrientation: "vertical", schSectionName: DISPLAY_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C15", capacitance: "1uF", footprint: "0603", pcbX: OLED_CONNECTOR_X + 6.9, pcbY: OLED_SUPPORT_ROW_Y, pcbRotation: -90, schX: 3, schY: 11.5, schOrientation: "horizontal", schSectionName: DISPLAY_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C16", capacitance: "1uF", footprint: "0603", pcbX: OLED_CONNECTOR_X + 5.4, pcbY: OLED_SUPPORT_ROW_Y, pcbRotation: -90, schX: 4, schY: 11.5, schOrientation: "horizontal", schSectionName: DISPLAY_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C17", capacitance: "1uF", footprint: "0603", pcbX: OLED_CONNECTOR_X + 3.3, pcbY: OLED_SUPPORT_ROW_Y, pcbRotation: -90, schX: 5, schY: 11.5, schSectionName: DISPLAY_SECTION, maxDecouplingTraceLength: "9mm" }), jsxRuntime.jsx(PcbCap, { name: "C18", capacitance: "1uF", footprint: "0603", pcbX: OLED_CONNECTOR_X + 1.8, pcbY: OLED_SUPPORT_ROW_Y, pcbRotation: -90, schX: 6, schY: 11.5, schSectionName: DISPLAY_SECTION, maxDecouplingTraceLength: "9mm" }), jsxRuntime.jsx(PcbCap, { name: "C19", capacitance: "2.2uF", footprint: "0603", pcbX: OLED_CONNECTOR_X - 5.75, pcbY: OLED_SUPPORT_ROW_Y, pcbRotation: -90, schX: 7, schY: 11.5, schSectionName: DISPLAY_SECTION, maxDecouplingTraceLength: "9mm" }), jsxRuntime.jsx(PcbCap, { name: "C20", capacitance: "4.7uF", footprint: "0603", pcbX: OLED_CONNECTOR_X - 7.25, pcbY: OLED_SUPPORT_ROW_Y, pcbRotation: -90, schX: 8, schY: 11.5, schSectionName: DISPLAY_SECTION, maxDecouplingTraceLength: "9mm" }), jsxRuntime.jsx(WATCH_SIDE_BUTTON, { name: "SW_UP", pcbX: -14.8, pcbY: 4, pcbRotation: 90, doNotPlace: true, noSchematicRepresentation: true }), jsxRuntime.jsx(WATCH_SIDE_BUTTON, { name: "SW_SELECT", pcbX: -14.8, pcbY: -4, pcbRotation: 90, doNotPlace: true, noSchematicRepresentation: true }), jsxRuntime.jsx("schematicbox", { name: "U1 Button GPIO", chipRef: ".U1", width: 2.2, height: 0.6, schX: 0, schY: -5, schSectionName: CONTROLS_SECTION, pinLabels: { pin1: "P0_03", pin2: "P0_04" }, schPinArrangement: { leftSide: [], rightSide: ["pin1", "pin2"] } }), jsxRuntime.jsx("schematicbox", { name: "SW_UP Button", chipRef: ".SW_UP", width: 1.8, height: 0.5, schX: 4, schY: -4.5, schSectionName: CONTROLS_SECTION, pinLabels: { pin1: "A", pin2: "B" }, schPinArrangement: { leftSide: ["pin1"], rightSide: ["pin2"] } }), jsxRuntime.jsx("schematicbox", { name: "SW_SELECT Button", chipRef: ".SW_SELECT", width: 1.8, height: 0.5, schX: 4, schY: -5.8, schSectionName: CONTROLS_SECTION, pinLabels: { pin1: "A", pin2: "B" }, schPinArrangement: { leftSide: ["pin1"], rightSide: ["pin2"] } }), jsxRuntime.jsx("trace", { name: "DISPLAY_SDA_MCU", from: ".U1 > .P0_00", to: ".J1 > .SDA_IN", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DISPLAY_SDA_BRIDGE", from: ".J1 > .SDA_OUT", to: ".J1 > .SDA_IN", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".R_I2C_SDA > .pin1", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DISPLAY_SDA_PULLUP", from: ".J1 > .SDA_IN", to: ".R_I2C_SDA > .pin2", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DISPLAY_SCL_MCU", from: ".U1 > .P0_01", to: ".J1 > .SCL", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".R_I2C_SCL > .pin1", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DISPLAY_SCL_PULLUP", from: ".J1 > .SCL", to: ".R_I2C_SCL > .pin2", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DISPLAY_RESET_MCU", from: ".U1 > .P0_27", to: ".J1 > .RES", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".R_OLED_RESET > .pin1", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "DISPLAY_RESET_PULLUP", from: ".J1 > .RES", to: ".R_OLED_RESET > .pin2", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_C2P_CHARGE_PUMP", from: ".J1 > .C2P", to: ".C15 > .pin1", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_C2N_CHARGE_PUMP", from: ".J1 > .C2N", to: ".C15 > .pin2", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_C1P_CHARGE_PUMP", from: ".J1 > .C1P", to: ".C16 > .pin1", width: "0.15mm", schDisplayLabel: "C1P" }), jsxRuntime.jsx("trace", { name: "OLED_C1N_CHARGE_PUMP", from: ".J1 > .C1N", to: ".C16 > .pin2", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_VBAT_DECOUPLING", from: ".J1 > .OLED_VBAT", to: ".C17 > .pin1", width: "0.2mm" }), jsxRuntime.jsx("trace", { from: ".C17 > .pin1", to: "net.V3V3", width: "0.2mm" }), jsxRuntime.jsx("trace", { from: ".C17 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_VDD_DECOUPLING", from: ".J1 > .VDD", to: ".C18 > .pin1", width: "0.2mm" }), jsxRuntime.jsx("trace", { from: ".C18 > .pin1", to: "net.V3V3", width: "0.2mm" }), jsxRuntime.jsx("trace", { from: ".C18 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_VCOMH_DECOUPLING", from: ".J1 > .VCOMH", to: ".C19 > .pin1", width: "0.15mm", schDisplayLabel: "VCOMH" }), jsxRuntime.jsx("trace", { from: ".C19 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "OLED_VCC_DECOUPLING", from: ".J1 > .VCC", to: ".C20 > .pin1", width: "0.2mm", schDisplayLabel: "VCC" }), jsxRuntime.jsx("trace", { from: ".C20 > .pin2", to: "net.GND", width: "0.2mm" }), jsxRuntime.jsx("trace", { name: "OLED_IREF_BIAS", from: ".J1 > .IREF", to: ".R_OLED_IREF > .pin1", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".R_OLED_IREF > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .NC_GND1", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .VSS", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .BS0", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .BS1", to: "net.V3V3", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .BS2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .CS", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .SA0", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .RW", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .ERD", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .D3", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .D4", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .D5", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .D6", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .D7", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .VLSS", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".J1 > .NC_GND2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "BUTTON_UP_GPIO", from: ".U1 > .P0_03", to: ".SW_UP > .A", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".SW_UP > .B", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "BUTTON_SELECT_GPIO", from: ".U1 > .P0_04", to: ".SW_SELECT > .A", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".SW_SELECT > .B", to: "net.GND", width: "0.15mm" })] }), jsxRuntime.jsxs("schematicsheet", { name: CLOCK_SHEET, displayName: "Clock Sources", sheetIndex: 2, children: [jsxRuntime.jsx("schematicsection", { name: HF_CLOCK_SECTION, displayName: "32 MHz Crystal" }), jsxRuntime.jsx("schematicbox", { name: "U1 HF Clock", chipRef: ".U1", width: 2.4, height: 0.6, schX: -7, schY: CLOCK_SHEET_Y + 1, schSectionName: HF_CLOCK_SECTION, pinLabels: { pin1: "XC1", pin2: "XC2" }, schPinArrangement: { leftSide: [], rightSide: ["pin1", "pin2"] } }), jsxRuntime.jsx(X201632MKB4SI, { name: "X1", pcbX: 9.1, pcbY: 4.5, pcbRotation: 90, schX: -4, schY: CLOCK_SHEET_Y + 1, schSectionName: HF_CLOCK_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C1", capacitance: "12pF", footprint: makeJlc0402CapFootprint(), pcbX: 10.2, pcbY: 1.8, pcbRotation: 0, schX: -5, schY: CLOCK_SHEET_Y - 1, schSectionName: HF_CLOCK_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C2", capacitance: "12pF", footprint: makeJlc0402CapFootprint(), pcbX: 8.6, pcbY: 6.6, pcbRotation: 0, schX: -3, schY: CLOCK_SHEET_Y - 1, schSectionName: HF_CLOCK_SECTION }), jsxRuntime.jsx("trace", { name: "XC1_OSC", from: ".U1 > .XC1", to: ".X1 > .X1", width: "0.1mm", maxLength: "12mm", schDisplayLabel: "XC1", routingPhaseIndex: 2 }), jsxRuntime.jsx("trace", { name: "XC2_OSC", from: ".U1 > .XC2", to: ".X1 > .X2", width: "0.1mm", maxLength: "13mm", schDisplayLabel: "XC2", routingPhaseIndex: 2 }), jsxRuntime.jsx("trace", { from: ".X1 > .gnd1", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { from: ".X1 > .gnd2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "XC1_LOAD", from: ".C1 > .pin1", to: ".X1 > .X1", width: "0.15mm", schDisplayLabel: "XC1", routingPhaseIndex: 2 }), jsxRuntime.jsx("trace", { from: ".C1 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "XC2_LOAD", from: ".C2 > .pin1", to: ".X1 > .X2", width: "0.15mm", schDisplayLabel: "XC2", routingPhaseIndex: 2 }), jsxRuntime.jsx("trace", { from: ".C2 > .pin2", to: "net.GND", width: "0.15mm" })] }), jsxRuntime.jsxs("schematicsheet", { name: RF_SHEET, displayName: "RF Front End & Antenna", sheetIndex: 3, children: [jsxRuntime.jsx("schematicsection", { name: RF_MATCH_SECTION, displayName: "Matching Network" }), jsxRuntime.jsx("schematicsection", { name: ANTENNA_SECTION, displayName: "Chip Antenna" }), jsxRuntime.jsx("schematicbox", { name: "U1 RF", chipRef: ".U1", width: 2.2, height: 0.4, schX: -6, schY: RF_SHEET_Y + 1, schSectionName: RF_MATCH_SECTION, pinLabels: { pin1: "ANT" }, schPinArrangement: { leftSide: [], rightSide: ["pin1"] } }), jsxRuntime.jsx("inductor", { name: "L1", inductance: "3.9nH", footprint: "0402", pcbX: RF_MATCH_L1_X, pcbY: RF_MATCH_L1_Y, schX: -3, schY: RF_SHEET_Y + 1, schSectionName: RF_MATCH_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C3", capacitance: "0.8pF", footprint: makeJlc0402CapFootprint(), pcbX: RF_MATCH_L1_X - 0.51, pcbY: RF_MATCH_L1_Y - 1.5, pcbRotation: -90, schX: -3, schY: RF_SHEET_Y - 1, schSectionName: RF_MATCH_SECTION }), jsxRuntime.jsx("inductor", { name: "L2", inductance: "6.8nH", footprint: "0402", pcbX: RF_MATCH_L2_X, pcbY: RF_MATCH_Y, schX: 0, schY: RF_SHEET_Y + 1, schSectionName: RF_MATCH_SECTION }), jsxRuntime.jsx(PcbCap, { name: "C14", capacitance: "0.5pF", pcbX: RF_MATCH_L2_X + 0.51, pcbY: RF_MATCH_Y - 1.5, pcbRotation: -90, schX: 2, schY: RF_SHEET_Y - 1, schSectionName: RF_MATCH_SECTION, doNotPlace: true }), jsxRuntime.jsx(RFANT3216120A5T, { name: "ANT1", pcbX: RF_ZONE_X, pcbY: RF_ZONE_Y, schX: 6.82, schY: RF_SHEET_Y + 1, schSectionName: ANTENNA_SECTION }), jsxRuntime.jsx("trace", { name: "RF_MCU_TO_L1", from: ".U1 > .ANT", to: ".L1 > .pin1", width: "0.1mm", maxLength: "4mm", routingPhaseIndex: 1 }), jsxRuntime.jsx("trace", { name: "RF_INPUT_SHUNT", from: ".L1 > .pin1", to: ".C3 > .pin1", width: "0.18mm", maxLength: "4mm", routingPhaseIndex: 1 }), jsxRuntime.jsx("trace", { from: ".C3 > .pin2", to: "net.GND", width: "0.15mm" }), jsxRuntime.jsx("trace", { name: "RF_L1_TO_L2", from: ".L1 > .pin2", to: ".L2 > .pin1", width: "0.5mm", maxLength: "5mm", routingPhaseIndex: 1 }), jsxRuntime.jsx("trace", { name: "RF_FEED", from: ".L2 > .pin2", to: ".ANT1 > .FEED", width: "0.5mm", maxLength: "12mm", routingPhaseIndex: 1 }), jsxRuntime.jsx("trace", { name: "RF_SHUNT_C14", from: ".L2 > .pin2", to: ".C14 > .pin1", width: "0.18mm", maxLength: "2mm", routingPhaseIndex: 0 }), jsxRuntime.jsx("trace", { from: ".C14 > .pin2", to: "net.GND", width: "0.15mm" })] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: RF_ZONE_X, pcbY: RF_ZONE_Y, width: `${RF_ZONE_SIZE}mm`, height: `${RF_ZONE_SIZE}mm`, layers: ["bottom"] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: RF_ZONE_X, pcbY: RF_ZONE_Y + 2.015, width: `${RF_ZONE_SIZE}mm`, height: "1.97mm", layers: ["top"], excludeRefs: [".ANT1"] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: RF_ZONE_X, pcbY: RF_ZONE_Y - 2.015, width: `${RF_ZONE_SIZE}mm`, height: "1.97mm", layers: ["top"], excludeRefs: [".ANT1"] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: RF_ZONE_X, pcbY: RF_ZONE_Y, width: "1.8mm", height: "2.06mm", layers: ["top"], excludeRefs: [".ANT1"] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: (RF_ZONE_X + 2.15 + BOARD_EDGE) / 2, pcbY: RF_ZONE_Y, width: `${BOARD_EDGE - (RF_ZONE_X + 2.15)}mm`, height: "2.06mm", layers: ["top"], excludeRefs: [".ANT1"] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: (RF_ZONE_LEFT + (RF_ZONE_X - 1.95)) / 2, pcbY: RF_ZONE_Y + 0.765, width: `${RF_ZONE_X - 1.95 - RF_ZONE_LEFT}mm`, height: "0.53mm", layers: ["top"], excludeRefs: [".ANT1"] }), jsxRuntime.jsx("keepout", { shape: "rect", pcbX: (RF_ZONE_LEFT + (RF_ZONE_X - 1.95)) / 2, pcbY: RF_ZONE_Y - 0.765, width: `${RF_ZONE_X - 1.95 - RF_ZONE_LEFT}mm`, height: "0.53mm", layers: ["top"], excludeRefs: [".ANT1"] }), jsxRuntime.jsx("copperpour", { name: "TOP_GND", layer: "top", connectsTo: "net.GND", clearance: "0.6mm", boardEdgeMargin: "0.25mm" }), jsxRuntime.jsx("copperpour", { name: "BOTTOM_GND", layer: "bottom", connectsTo: "net.GND", clearance: "0.2mm", boardEdgeMargin: "0.25mm" }), jsxRuntime.jsx("silkscreentext", { text: "RF KEEP CLEAR", pcbX: 13.4, pcbY: 4.2, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "V D G C R", pcbX: -5.6, pcbY: 5.2, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "UP", pcbX: -12.8, pcbY: 4, fontSize: "0.55mm" }), jsxRuntime.jsx("silkscreentext", { text: "SELECT", pcbX: -12.2, pcbY: -4, fontSize: "0.55mm" })] }));
module.exports = index_circuit;