seveibar/nrf52810
This code defines a PCB layout with key components including a 32.768kHz crystal oscillator, a microcontroller (nRF52810), LEDs, RF antenna, and supporting decoupling capacitors arranged on a multi-layer board.
- Version
- 0.1.3
- License
- unset
- Stars
- 0
imports/NRF52810_QFAA_R.tsx
import type { ChipProps } from "@tscircuit/props"
import { Fragment } from "react"
const pinLabels = {
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"],
} as const
export const NRF52810_QFAA_R = (props: ChipProps<typeof pinLabels>) => {
return (
<chip
pinLabels={pinLabels}
supplierPartNumbers={{
jlcpcb: ["C141828"],
}}
manufacturerPartNumber="NRF52810_QFAA_R"
footprint={
<footprint>
{Array.from({ length: 12 }, (_, index) => (
<Fragment key={`left-${index}`}>
<smtpad
portHints={[`pin${index + 1}`]}
pcbX={-3.0}
pcbY={2.2 - index * 0.4}
width="0.95mm"
height="0.2mm"
shape="rect"
/>
</Fragment>
))}
{Array.from({ length: 12 }, (_, index) => (
<Fragment key={`bottom-${index}`}>
<smtpad
portHints={[`pin${index + 13}`]}
pcbX={-2.2 + index * 0.4}
pcbY={-3.0}
width="0.2mm"
height="0.95mm"
shape="rect"
/>
</Fragment>
))}
{Array.from({ length: 12 }, (_, index) => (
<Fragment key={`right-${index}`}>
<smtpad
portHints={[`pin${index + 25}`]}
pcbX={3.0}
pcbY={-2.2 + index * 0.4}
width="0.95mm"
height="0.2mm"
shape="rect"
/>
</Fragment>
))}
{Array.from({ length: 12 }, (_, index) => (
<Fragment key={`top-${index}`}>
<smtpad
portHints={[`pin${index + 37}`]}
pcbX={2.2 - index * 0.4}
pcbY={3.0}
width="0.2mm"
height="0.95mm"
shape="rect"
/>
</Fragment>
))}
<smtpad
portHints={["pin49", "thermalpad"]}
pcbX={0}
pcbY={0}
width="4.6mm"
height="4.6mm"
shape="rect"
/>
<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 },
]}
/>
<silkscreencircle pcbX={-3.7} pcbY={3.7} radius="0.25mm" />
<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 },
]}
/>
</footprint>
}
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: -0.00005079999993995443,
y: -0.00005079999993995443,
z: 0,
},
}}
{...props}
/>
)
}