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