Pinscope open-source core

Agentic schematic validation: datasheet extraction via Claude Console
Skills, netlist/BOM design graph, per-IC direct datasheet review with
page citations, capacitor derating, Next.js report UI.

Extracted from the Pinscope cloud codebase. Auth and billing live in the
private gateway repo behind stable seams (billing_hook.py, adapter files
listed in CLAUDE.md).
This commit is contained in:
Siddharth Kothari
2026-07-16 21:29:45 -07:00
commit 6672d2be57
254 changed files with 56662 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
{
"type": "connector",
"specs": [
{"name": "pin_count", "description": "Number of pins/contacts", "required": true},
{"name": "voltage_rating_v", "description": "Maximum rated voltage", "unit": "V"},
{"name": "current_rating_a", "description": "Maximum current per contact", "unit": "A"}
],
"subtypes": {
"connector.header": {
"description": "Pin header connector",
"extra_specs": [
{"name": "pitch_mm", "description": "Pin pitch (center-to-center spacing)", "unit": "mm"},
{"name": "rows", "description": "Number of rows"},
{"name": "positions_per_row", "description": "Number of positions per row"}
]
},
"connector.usb": {
"description": "USB connector",
"extra_specs": [
{"name": "usb_standard", "description": "USB standard version (2.0, 3.0, 3.1, Type-C)"}
]
},
"connector.fpc": {
"description": "FPC/FFC connector",
"extra_specs": [
{"name": "pitch_mm", "description": "Contact pitch (center-to-center spacing)", "unit": "mm"}
]
}
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"type": "crystal",
"specs": [
{"name": "frequency_hz", "description": "Nominal frequency", "unit": "Hz", "required": true},
{"name": "load_capacitance_f", "description": "Specified load capacitance (CL)", "unit": "F"},
{"name": "esr_ohm", "description": "Equivalent series resistance (ESR)", "unit": "ohm"}
],
"subtypes": {
"crystal": {
"description": "Crystal / crystal oscillator",
"extra_specs": [
{"name": "frequency_stability_ppm", "description": "Frequency stability/tolerance", "unit": "ppm"},
{"name": "drive_level_w", "description": "Maximum drive level", "unit": "W"},
{"name": "shunt_capacitance_f", "description": "Shunt capacitance (C0)", "unit": "F"}
]
}
}
}
+93
View File
@@ -0,0 +1,93 @@
{
"type": "discrete",
"specs": [
{"name": "package", "description": "Package type (e.g. SOD-123, SOT-23, TO-220)"},
{"name": "power_dissipation_w", "description": "Maximum power dissipation", "unit": "W"}
],
"subtypes": {
"discrete.diode.rectifier": {
"description": "Standard rectifier diode",
"extra_specs": [
{"name": "reverse_voltage_v", "description": "Maximum reverse voltage (Vr/Vrrm)", "unit": "V", "required": true},
{"name": "forward_voltage_v", "description": "Typical forward voltage drop (Vf)", "unit": "V"},
{"name": "forward_current_a", "description": "Maximum continuous forward current (If)", "unit": "A"}
]
},
"discrete.diode.schottky": {
"description": "Schottky barrier diode",
"extra_specs": [
{"name": "reverse_voltage_v", "description": "Maximum reverse voltage (Vr)", "unit": "V", "required": true},
{"name": "forward_voltage_v", "description": "Typical forward voltage drop (Vf)", "unit": "V"},
{"name": "forward_current_a", "description": "Maximum continuous forward current (If)", "unit": "A"}
]
},
"discrete.diode.zener": {
"description": "Zener voltage regulator diode",
"extra_specs": [
{"name": "zener_voltage_v", "description": "Nominal Zener voltage (Vz)", "unit": "V", "required": true},
{"name": "zener_impedance_ohm", "description": "Zener impedance (Zzt)", "unit": "ohm"}
]
},
"discrete.diode.tvs": {
"description": "TVS transient voltage suppressor diode",
"extra_specs": [
{"name": "standoff_voltage_v", "description": "Working standoff voltage (Vrwm)", "unit": "V", "required": true},
{"name": "clamping_voltage_v", "description": "Clamping voltage at Ipp", "unit": "V"},
{"name": "peak_pulse_current_a", "description": "Peak pulse current (Ipp)", "unit": "A"}
]
},
"discrete.diode.esd": {
"description": "ESD protection diode / array for data lines",
"example_mpn": "USBLC6-2SC6",
"extra_specs": [
{"name": "standoff_voltage_v", "description": "Working standoff voltage (Vrwm)", "unit": "V", "required": true},
{"name": "clamping_voltage_v", "description": "Clamping voltage at specified current", "unit": "V"},
{"name": "io_capacitance_f", "description": "I/O line capacitance (Cio) — critical for signal integrity on data lines", "unit": "F"},
{"name": "leakage_current_a", "description": "Reverse leakage current (IR)", "unit": "A"}
]
},
"discrete.transistor.mosfet.n_channel": {
"description": "N-channel MOSFET",
"extra_specs": [
{"name": "vds_max_v", "description": "Maximum drain-source voltage (Vds)", "unit": "V", "required": true},
{"name": "id_max_a", "description": "Maximum continuous drain current (Id)", "unit": "A"},
{"name": "rds_on_ohm", "description": "On-resistance (Rds_on)", "unit": "ohm"},
{"name": "vgs_th_v", "description": "Gate threshold voltage (Vgs_th)", "unit": "V"},
{"name": "qg_c", "description": "Total gate charge (Qg)", "unit": "C"}
]
},
"discrete.transistor.mosfet.p_channel": {
"description": "P-channel MOSFET",
"extra_specs": [
{"name": "vds_max_v", "description": "Maximum drain-source voltage (Vds)", "unit": "V", "required": true},
{"name": "id_max_a", "description": "Maximum continuous drain current (Id)", "unit": "A"},
{"name": "rds_on_ohm", "description": "On-resistance (Rds_on)", "unit": "ohm"},
{"name": "vgs_th_v", "description": "Gate threshold voltage (Vgs_th)", "unit": "V"}
]
},
"discrete.transistor.bjt.npn": {
"description": "NPN bipolar junction transistor",
"extra_specs": [
{"name": "vce_max_v", "description": "Maximum collector-emitter voltage (Vce)", "unit": "V", "required": true},
{"name": "ic_max_a", "description": "Maximum collector current (Ic)", "unit": "A"},
{"name": "hfe", "description": "DC current gain (hFE)"}
]
},
"discrete.transistor.bjt.pnp": {
"description": "PNP bipolar junction transistor",
"extra_specs": [
{"name": "vce_max_v", "description": "Maximum collector-emitter voltage (Vce)", "unit": "V", "required": true},
{"name": "ic_max_a", "description": "Maximum collector current (Ic)", "unit": "A"},
{"name": "hfe", "description": "DC current gain (hFE)"}
]
},
"discrete.led": {
"description": "Light-emitting diode",
"extra_specs": [
{"name": "forward_voltage_v", "description": "Typical forward voltage (Vf)", "unit": "V"},
{"name": "forward_current_a", "description": "Typical/max forward current (If)", "unit": "A"},
{"name": "color", "description": "LED color or wavelength"}
]
}
}
}
+24
View File
@@ -0,0 +1,24 @@
{
"type": "fuse",
"specs": [
{"name": "current_rating_a", "description": "Rated current", "unit": "A", "required": true},
{"name": "voltage_rating_v", "description": "Maximum rated voltage", "unit": "V"},
{"name": "breaking_capacity_a", "description": "Maximum breaking/interrupting capacity", "unit": "A"}
],
"subtypes": {
"fuse": {
"description": "Fuse (generic)"
},
"fuse.standard": {
"description": "Standard fuse (one-time blow)"
},
"fuse.ptc_resettable": {
"description": "PTC resettable fuse (polyfuse)",
"extra_specs": [
{"name": "hold_current_a", "description": "Maximum current without tripping (Ihold)", "unit": "A"},
{"name": "trip_current_a", "description": "Minimum current that triggers trip (Itrip)", "unit": "A"},
{"name": "resistance_ohm", "description": "Typical resistance at 25C (Rtyp)", "unit": "ohm"}
]
}
}
}
+57
View File
@@ -0,0 +1,57 @@
{
"type": "ic",
"subtypes": {
"ic.mcu": {
"description": "Microcontroller",
"example_mpn": "MSPM0G3507SPTR"
},
"ic.power.ldo": {
"description": "Low-dropout voltage regulator",
"example_mpn": "SPX3819M5-L-3-3"
},
"ic.power.switching_regulator": {
"description": "Switching voltage regulator (buck, boost, buck-boost)"
},
"ic.power.pmic": {
"description": "Power management IC (multi-rail, sequencing)"
},
"ic.interface.usb_uart_bridge": {
"description": "USB to UART bridge IC",
"example_mpn": "CH340E"
},
"ic.interface.level_shifter": {
"description": "Voltage level translator/shifter"
},
"ic.interface.can_transceiver": {
"description": "CAN bus transceiver"
},
"ic.interface.rs485_transceiver": {
"description": "RS-485/RS-422 transceiver"
},
"ic.protection.esd": {
"description": "ESD/TVS protection IC",
"example_mpn": "USBLC6-2SC6"
},
"ic.sensor.accelerometer": {
"description": "Accelerometer / IMU"
},
"ic.sensor.temperature": {
"description": "Temperature sensor IC"
},
"ic.memory.flash": {
"description": "NOR/NAND flash memory"
},
"ic.memory.eeprom": {
"description": "EEPROM"
},
"ic.logic.buffer": {
"description": "Buffer / line driver"
},
"ic.logic.gate": {
"description": "Logic gate IC"
},
"ic.amplifier.opamp": {
"description": "Operational amplifier"
}
}
}
+71
View File
@@ -0,0 +1,71 @@
{
"type": "passive",
"specs": [
{"name": "value_formatted", "description": "Human-readable value with SI prefix (e.g. 4.7 kohm, 100 nF)"},
{"name": "tolerance", "description": "Tolerance specification (e.g. ±1%, ±10%)"},
{"name": "package", "description": "Package type (e.g. 0603, 0805, 1206)"}
],
"subtypes": {
"passive.resistor": {
"description": "Chip resistor",
"example_mpn": "0603WAF5101T5E",
"extra_specs": [
{"name": "value_ohms", "description": "Resistance value", "unit": "ohm", "required": true},
{"name": "power_rating_w", "description": "Power rating", "unit": "W"}
]
},
"passive.resistor.thick_film": {
"description": "Thick film chip resistor",
"extra_specs": [
{"name": "value_ohms", "description": "Resistance value", "unit": "ohm", "required": true},
{"name": "power_rating_w", "description": "Power rating", "unit": "W"}
]
},
"passive.resistor.thin_film": {
"description": "Thin film chip resistor",
"extra_specs": [
{"name": "value_ohms", "description": "Resistance value", "unit": "ohm", "required": true},
{"name": "power_rating_w", "description": "Power rating", "unit": "W"}
]
},
"passive.capacitor.ceramic": {
"description": "Multi-layer ceramic capacitor (MLCC)",
"example_mpn": "CL10B474KA8NNNC",
"extra_specs": [
{"name": "value_farads", "description": "Capacitance value", "unit": "F", "required": true},
{"name": "voltage_rating_v", "description": "Rated voltage", "unit": "V"},
{"name": "dielectric", "description": "Dielectric type (e.g. X7R, C0G, X5R)"}
]
},
"passive.capacitor.tantalum": {
"description": "Tantalum capacitor",
"extra_specs": [
{"name": "value_farads", "description": "Capacitance value", "unit": "F", "required": true},
{"name": "voltage_rating_v", "description": "Rated voltage", "unit": "V"}
]
},
"passive.capacitor.electrolytic": {
"description": "Aluminum electrolytic capacitor",
"extra_specs": [
{"name": "value_farads", "description": "Capacitance value", "unit": "F", "required": true},
{"name": "voltage_rating_v", "description": "Rated voltage", "unit": "V"}
]
},
"passive.inductor": {
"description": "Inductor / choke",
"extra_specs": [
{"name": "value_henries", "description": "Inductance value", "unit": "H", "required": true},
{"name": "current_rating_a", "description": "Saturation / rated current", "unit": "A"},
{"name": "dcr_ohms", "description": "DC resistance", "unit": "ohm"}
]
},
"passive.ferrite_bead": {
"description": "Ferrite bead",
"extra_specs": [
{"name": "value_henries", "description": "Impedance at test frequency (stored as inductance proxy)", "unit": "H"},
{"name": "current_rating_a", "description": "Rated current", "unit": "A"},
{"name": "dcr_ohms", "description": "DC resistance", "unit": "ohm"}
]
}
}
}
+28
View File
@@ -0,0 +1,28 @@
{
"type": "switch",
"specs": [
{"name": "voltage_rating_v", "description": "Maximum rated voltage", "unit": "V"},
{"name": "current_rating_a", "description": "Maximum rated current", "unit": "A"}
],
"subtypes": {
"switch.tactile": {
"description": "Tactile push-button switch",
"extra_specs": [
{"name": "contact_configuration", "description": "Contact arrangement (e.g. SPST-NO, SPST-NC)"}
]
},
"switch.dip": {
"description": "DIP switch",
"extra_specs": [
{"name": "positions", "description": "Number of independent switch positions"},
{"name": "contact_configuration", "description": "Contact arrangement per position (e.g. SPST)"}
]
},
"switch.slide": {
"description": "Slide switch",
"extra_specs": [
{"name": "contact_configuration", "description": "Contact arrangement (e.g. SPDT, DPDT)"}
]
}
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"type": "test_point",
"subtypes": {
"test_point": {
"description": "Test point"
}
}
}
+26
View File
@@ -0,0 +1,26 @@
{
"type": "transformer",
"specs": [
{"name": "turns_ratio", "description": "Primary to secondary turns ratio"},
{"name": "voltage_primary_v", "description": "Primary voltage rating", "unit": "V"},
{"name": "voltage_secondary_v", "description": "Secondary voltage rating", "unit": "V"},
{"name": "current_rating_a", "description": "Maximum current rating", "unit": "A"}
],
"subtypes": {
"transformer.power": {
"description": "Power transformer",
"extra_specs": [
{"name": "power_rating_w", "description": "Maximum power rating", "unit": "W"},
{"name": "isolation_voltage_v", "description": "Isolation/withstand voltage between windings", "unit": "V"}
]
},
"transformer.signal": {
"description": "Signal / isolation transformer",
"extra_specs": [
{"name": "isolation_voltage_v", "description": "Isolation/withstand voltage between windings", "unit": "V"},
{"name": "insertion_loss_db", "description": "Insertion loss", "unit": "dB"},
{"name": "bandwidth_hz", "description": "Operating bandwidth (-3dB)", "unit": "Hz"}
]
}
}
}