AnasSarkiz/ble-pedometer
This code defines and configures various electronic hardware components such as surface-mount resistors, crystals, diodes, transistors, connectors, and switches with their physical footprints, schematic symbols, and 3D CAD models for PCB assembly.
- Version
- 1.0.7
- License
- unset
- Stars
- 0
board-silkscreen.tsx
import type { schematicLayout } from "./schematic-layout"
import { Fragment } from "react"
// Board-space label positions are independent of electrical component names.
// Compact reference designators retain the one-to-one schematic/BOM mapping.
export const silkscreenLayout = {
J1_USB: { pcbX: -21.5, pcbY: -8 },
J2_BATTERY: { pcbX: -24, pcbY: 17.25 },
J3_DISPLAY: { pcbX: -3.25, pcbY: 17 },
SW1_WAKE: { pcbX: -16, pcbY: -15.75 },
R1_CC1: { pcbX: -21.3, pcbY: -4.5 },
R2_CC2: { pcbX: -20, pcbY: -8 },
D1_VBUS_TVS: { pcbX: -20, pcbY: -11.5 },
C1_VBUS: { pcbX: -18.2, pcbY: -0.35 },
U2_CHARGER: { pcbX: -12.75, pcbY: -2 },
C2_VSYS: { pcbX: -18.4, pcbY: -1.75 },
C3_BAT: { pcbX: -14.4, pcbY: -7.35 },
U6_SYS_LDO: { pcbX: -6.75, pcbY: 0 },
C5_LDO_IN: { pcbX: -9.25, pcbY: -5.3 },
C6_SYS_VDD: { pcbX: -12.25, pcbY: 3 },
R6_CE_PU: { pcbX: -10.75, pcbY: -6.8 },
R7_PG_PU: { pcbX: -16.5, pcbY: -9.6 },
R8_CHG_INT_PU: { pcbX: -14, pcbY: 3.5 },
TP6_CHG_PG: { pcbX: -12, pcbY: -9.75 },
U3_GAUGE: { pcbX: -20, pcbY: 6 },
C7_GAUGE_BAT: { pcbX: -22.5, pcbY: 9 },
C8_GAUGE_VDD: { pcbX: -15.75, pcbY: 7.85 },
R9_BIN_PD: { pcbX: -15.75, pcbY: 6.5 },
R10_GAUGE_INT_PU: { pcbX: -17, pcbY: 12.25 },
U1_MCU: { pcbX: 19, pcbY: 9.5 },
L1_DCDC: { pcbX: 10.5, pcbY: 5.25 },
C9_VDDR_10U: { pcbX: 8, pcbY: 1.75 },
C10_VDDR_100N_A: { pcbX: 22, pcbY: 11.55 },
C11_VDDR_100N_B: { pcbX: 12, pcbY: -2.5 },
C12_VDDD: { pcbX: 11, pcbY: 6.8 },
C13_VDDS1: { pcbX: 16, pcbY: 11.5 },
C14_VDDS2: { pcbX: 11.75, pcbY: 1.3 },
C15_VDDS3: { pcbX: 16.95, pcbY: -4.25 },
C16_VDDS_BULK: { pcbX: 19, pcbY: 13.75 },
Y1_48MHZ: { pcbX: 15.7, pcbY: -1.75 },
R11_RESET_PU: { pcbX: 13.25, pcbY: 10.25 },
C17_RESET: { pcbX: 11, pcbY: 10 },
U4_ACCEL: { pcbX: 20, pcbY: -8.5 },
C18_ACCEL_VDD: { pcbX: 22.7, pcbY: -3.05 },
C19_ACCEL_VDDIO: { pcbX: 22.7, pcbY: -9.05 },
R12_I2C_SCL: { pcbX: 7, pcbY: 10.5 },
R13_I2C_SDA: { pcbX: 5, pcbY: 4 },
Q1_DISPLAY_SWITCH: { pcbX: -7, pcbY: 7 },
R14_DISPLAY_GATE_PU: { pcbX: -10, pcbY: 11.5 },
U5_DISPLAY_BUS_SWITCH: { pcbX: -2.25, pcbY: 6.5 },
R15_DISPLAY_BUS_EN_PD: { pcbX: 2.5, pcbY: 6.5 },
C20_DISPLAY_BULK: { pcbX: -9.5, pcbY: 15.75 },
C21_RF_FILTER_IN: { pcbX: 21.55, pcbY: -0.8 },
L2_RF_FILTER: { pcbX: 21.95, pcbY: 3 },
C22_RF_FILTER_OUT: { pcbX: 22.15, pcbY: 10.35 },
C23_RF_TUNE_IN: { pcbX: 23.6, pcbY: 0.8 },
R16_RF_TUNE_SERIES: { pcbX: 24.8, pcbY: 2.25 },
C24_RF_TUNE_OUT: { pcbX: 25.5, pcbY: 7.45 },
ANT1: { pcbX: 27.7, pcbY: 6.25 },
TP1_SWDIO: { pcbX: 14.4, pcbY: 17 },
TP2_SWDCK: { pcbX: 16.6, pcbY: 17 },
TP3_RESET: { pcbX: 18.8, pcbY: 17 },
TP4_GND: { pcbX: 21, pcbY: 17 },
TP5_SYS_VDD: { pcbX: 23.2, pcbY: 17 },
} satisfies Record<keyof typeof schematicLayout, { pcbX: number; pcbY: number }>
export const BoardSilkscreen = () => <>
{Object.entries(silkscreenLayout).map(([name, placement]) => <Fragment key={name}>
<silkscreentext text={name.split("_")[0]} {...placement}
anchorAlignment="center" fontSize="0.9mm" layer="top" />
</Fragment>
)}
<silkscreentext text="BLE PEDOMETER REV A" pcbX={0} pcbY={-16.5} fontSize="1mm" />
<silkscreentext text={"ANTENNA\nKEEP OUT"} pcbX={26.5} pcbY={10.5} fontSize="0.9mm" />
{[
{ text: "IO", pcbX: 14.4 }, { text: "CK", pcbX: 16.6 },
{ text: "RST", pcbX: 18.8 }, { text: "GND", pcbX: 21 },
{ text: "3V3", pcbX: 23.2 },
].map((label) => <Fragment key={label.text}><silkscreentext {...label} pcbY={18.2} fontSize="0.8mm" /></Fragment>)}
</>