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>)}
</>