gokul/fieldkit-usb

USB-C-powered ESP32-S3 Wi-Fi/Bluetooth handheld with an SMD 128x32 OLED, six navigation buttons, USB-C power/data, complete checked routing, and four native schematic sheets.

Version
0.4.2
License
UNLICENSED
Stars
0

lib/passives.tsx

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

type JlcPart = {
  manufacturerPartNumber: string
  supplierPartNumber: string
}

const resistorParts: Record<string, JlcPart> = {
  "22": { manufacturerPartNumber: "0603WAF220JT5E", supplierPartNumber: "C23345" },
  "1k": { manufacturerPartNumber: "0603WAF1001T5E", supplierPartNumber: "C21190" },
  "2.2k": { manufacturerPartNumber: "0603WAF2201T5E", supplierPartNumber: "C4190" },
  "4.7k": { manufacturerPartNumber: "0603WAF4701T5E", supplierPartNumber: "C23162" },
  "5.1k": { manufacturerPartNumber: "0603WAF5101T5E", supplierPartNumber: "C23186" },
  "10k": { manufacturerPartNumber: "0603WAF1002T5E", supplierPartNumber: "C25804" },
  "47k": { manufacturerPartNumber: "0603WAF4702T5E", supplierPartNumber: "C25819" },
  "62k": { manufacturerPartNumber: "0603WAF6202T5E", supplierPartNumber: "C23221" },
  "91k": { manufacturerPartNumber: "0603WAF9102T5E", supplierPartNumber: "C23265" },
  "100k": { manufacturerPartNumber: "0603WAF1003T5E", supplierPartNumber: "C25803" },
  "560k": { manufacturerPartNumber: "0402WGF5603TCE", supplierPartNumber: "C132339" },
  "910k": { manufacturerPartNumber: "SCR0603J910K", supplierPartNumber: "C3017672" },
}

const capacitorParts: Record<string, JlcPart> = {
  "100nF": { manufacturerPartNumber: "CC0603KRX7R9BB104", supplierPartNumber: "C14663" },
  "1uF": { manufacturerPartNumber: "CL10A105KB8NNNC", supplierPartNumber: "C15849" },
  "2.2uF": { manufacturerPartNumber: "GRM21BR71C225KA12L", supplierPartNumber: "C108378" },
  "4.7uF": { manufacturerPartNumber: "CL21A475KAQNNNE", supplierPartNumber: "C1779" },
  "10uF": { manufacturerPartNumber: "CL21A106KAYNNNE", supplierPartNumber: "C15850" },
  "22uF": { manufacturerPartNumber: "CL21A226MAQNNNE", supplierPartNumber: "C45783" },
}

export const Res = (props: ResistorProps) => {
  const resistance = String(props.resistance)
  const part = resistorParts[resistance]
  if (!part) throw new Error(`Unspecified resistor: ${resistance}`)
  const footprint = resistance === "560k" ? "0402" : "0603"
  return <resistor
    footprint={footprint}
    schMarginX={0.5}
    schMarginY={0.5}
    manufacturerPartNumber={part.manufacturerPartNumber}
    supplierPartNumbers={{ jlcpcb: [part.supplierPartNumber] }}
    {...props}
  />
}

export const Cap = (props: CapacitorProps) => {
  const capacitance = String(props.capacitance)
  const part = capacitorParts[capacitance]
  if (!part) throw new Error(`Unspecified capacitor: ${capacitance}`)
  const footprint = ["2.2uF", "4.7uF", "10uF", "22uF"].includes(capacitance) ? "0805" : "0603"
  return <capacitor
    footprint={footprint}
    schOrientation="vertical"
    schMarginX={0.5}
    schMarginY={0.5}
    manufacturerPartNumber={part.manufacturerPartNumber}
    supplierPartNumbers={{ jlcpcb: [part.supplierPartNumber] }}
    {...props}
  />
}