mohan-bee/fitness-band

A 4-layer BLE wearable mainboard with Li-ion charging/protection, 3.3/1.8 V power regulation, motion and battery sensing, plus a folded 2-layer flex sensor board carrying MAX30102 optical and TMP117 temperature sensors.

Version
0.0.2
License
unset
Stars
0

parts.tsx

import type { CapacitorProps, ResistorProps, ChipProps } from "@tscircuit/props"

const capacitors = {
  "100nF": { footprint: "0402", mpn: "GRM155R71C104KA88D" },
  "1uF": { footprint: "0603", mpn: "GRM188R71C105KA12D" },
  "4.7uF": { footprint: "0603", mpn: "GRM188R61A475KE15D" },
  "10uF": { footprint: "0805", mpn: "GRM21BR61E106KA73L" },
} as const

export function Cap(props: CapacitorProps & { capacitance: keyof typeof capacitors }) {
  const part = capacitors[props.capacitance]
  return <capacitor schRotation={-90} {...props} footprint={part.footprint} manufacturerPartNumber={part.mpn} />
}
export function Pullup(props: ResistorProps) {
  const mpn = props.resistance === "4.7k" ? "RC0402FR-074K7L" : "RC0402FR-0710KL"
  return <resistor schRotation={-90} {...props} footprint="0402" manufacturerPartNumber={mpn} />
}

// Land patterns: KiCad 10 Nexperia_CFP3_SOD-123W and D_SOD-323, manufacturer package drawings.
export function InputSchottky(props: ChipProps) {
  return <chip schPinArrangement={{topSide:["pin1"],bottomSide:["pin2"]}} schHeight={1.2} {...props} manufacturerPartNumber="PMEG2010ER-QX" pinLabels={{pin1:["K"],pin2:["A"]}}
    footprint={<footprint>
      <smtpad portHints={["pin1"]} pcbX={-1.4} pcbY={0} width={1.2} height={1.2} shape="rect" />
      <smtpad portHints={["pin2"]} pcbX={1.4} pcbY={0} width={1.2} height={1.2} shape="rect" />
      <silkscreenpath route={[{x:-2.26,y:-0.95},{x:-2.26,y:0.95},{x:1.4,y:0.95}]} strokeWidth={0.12} />
      <courtyardrect width={4.5} height={2.2} />
    </footprint>} />
}
export function InputTvs(props: ChipProps) {
  return <chip schPinArrangement={{topSide:["pin1"],bottomSide:["pin2"]}} schHeight={1.2} {...props} manufacturerPartNumber="PESD5V0S1BA-Q,115" pinLabels={{pin1:["LINE"],pin2:["GND"]}}
    footprint={<footprint>
      <smtpad portHints={["pin1"]} pcbX={-1.05} pcbY={0} width={0.6} height={0.45} shape="rect" />
      <smtpad portHints={["pin2"]} pcbX={1.05} pcbY={0} width={0.6} height={0.45} shape="rect" />
      <silkscreenpath route={[{x:-1.61,y:-0.85},{x:-1.61,y:0.85},{x:1.05,y:0.85}]} strokeWidth={0.12} />
      <courtyardrect width={3.3} height={1.8} />
    </footprint>} />
}