← Commit history

Initial commit: app/adom-ds2sf

John Lauer ·061dce0ce3 ·3mo ago
2 files changed +636
README.mdadded+605
@@ -0,0 +1,605 @@+# adom-ds2sf++**Datasheet → symbol + footprint + provenance. Read a chip's PDF, extract its pins and pads, and emit structured JSON the rest of the Adom EDA tools build on.**++adom-ds2sf ("datasheet to symbol & footprint") reads a manufacturer datasheet PDF and extracts the part's electrical interface — pin names, numbers, types, and logical groups (POWER, GROUND, GPIO split by port, DEBUG…) — plus the land pattern when the datasheet provides one, into `<MPN>-symbol.extracted.json` and `<MPN>-footprint.extracted.json` with **per-field provenance**: every pin and every dimension records the datasheet page it came from. It's the source that lets **adom-symbol** auto-generate a clean, balanced, grouped symbol straight from the datasheet — independent of any vendor's CAD draw.++## What it does++- **`extract`** — datasheet PDF → symbol + footprint + provenance JSON.+- **`inspect`** — summarize an existing extraction in a chip directory.+- **`svg`** — regenerate the authoritative footprint SVG from cached JSON (no re-extraction).++Note: a datasheet without a land-pattern table yields a symbol but no footprint pads — adom-ds2sf reports exactly what it could and couldn't extract, with provenance on every datapoint.++# Seven worked examples++Each example below was produced by `adom-ds2sf extract` on the manufacturer's own datasheet. For every part you can see the **generated symbol + footprint**, the **full extracted pin list**, the **provenance JSON** (with the datasheet page each datapoint came from), and **the actual datasheet pages** adom-ds2sf read — plus a link to the original PDF. Seven different part types, seven different packages.++## 1. DMG2305UX-7 — P-channel MOSFET++*Diodes Incorporated · SOT-23 · [original datasheet PDF](https://www.diodes.com/assets/Datasheets/DMG2305UX.pdf)*++P-channel enhancement-mode MOSFET in SOT-23. -20V Vds, -4.2A continuous Id at Ta=25°C (Vgs=-4.5V), Rds(on) typ 40 mΩ at Vgs=-4.5V / 52 mΩ at Vgs=-2.5V. Low-Vgs(th) load-switch / power-management device.++**Symbol + footprint, generated by adom-ds2sf:**++![DMG2305UX-7 symbol and footprint generated by adom-ds2sf](docs/ex-DMG2305UX-7-symfp.png)++**Extracted pin list (3 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| 1 | G | `input` | CONTROL |+| 2 | S | `passive` | POWER |+| 3 | D | `passive` | POWER |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "DMG2305UX-7",+  "datasheet": {+    "url": "https://www.diodes.com/assets/Datasheets/DMG2305UX.pdf",+    "page_count": 6,+    "sha256": "7421a75157a2e700…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "page": 1,+      "pin_name": "G",+      "pin_number": "1",+      "table_caption": "Top View / Internal Schematic (page 1)"+    },+    {+      "confidence": "high",+      "page": 1,+      "pin_name": "S",+      "pin_number": "2",+      "table_caption": "Top View / Internal Schematic (page 1)"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "Package Outline Dimensions — SOT23 (Standard)",+      "page": 5,+      "value": 2.9+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "Package Outline Dimensions — SOT23 (Standard)",+      "page": 5,+      "value": 1.3+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.1) and the package drawing (p.5):++![DMG2305UX-7 datasheet pin-configuration page](docs/ex-DMG2305UX-7-dspin.png)++![DMG2305UX-7 datasheet package-dimensions page](docs/ex-DMG2305UX-7-dspkg.png)++[→ Open the original DMG2305UX-7 datasheet](https://www.diodes.com/assets/Datasheets/DMG2305UX.pdf)++## 2. LM358D — Dual op-amp++*Texas Instruments · SOIC-8 · [original datasheet PDF](https://www.ti.com/lit/ds/symlink/lm358.pdf)*++Industry-standard dual general-purpose operational amplifier. Operates from a single 3V to 32V supply (or split ±1.5V to ±16V), with an input common-mode range that includes ground and a typical 1.2 MHz gain-bandwidth product. SOIC-8 (D)…++**Symbol + footprint, generated by adom-ds2sf:**++![LM358D symbol and footprint generated by adom-ds2sf](docs/ex-LM358D-symfp.png)++**Extracted pin list (8 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| 1 | OUT1 | `output` | OTHER |+| 2 | IN1- | `input` | OTHER |+| 3 | IN1+ | `input` | OTHER |+| 4 | V- | `power_in` | POWER |+| 5 | IN2+ | `input` | OTHER |+| 6 | IN2- | `input` | OTHER |+| 7 | OUT2 | `output` | OTHER |+| 8 | V+ | `power_in` | POWER |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "LM358D",+  "datasheet": {+    "url": "https://www.ti.com/lit/ds/symlink/lm358.pdf",+    "page_count": 68,+    "sha256": "9c879c3a3e9291c5…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "page": 3,+      "pin_name": "OUT1",+      "pin_number": "1",+      "table_caption": "Table 4-1. Pin Functions"+    },+    {+      "confidence": "high",+      "page": 3,+      "pin_name": "IN1-",+      "pin_number": "2",+      "table_caption": "Table 4-1. Pin Functions"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "D0008A Package Outline — SOIC - 1.75 mm max height",+      "page": 59,+      "value": 4.91+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "D0008A Package Outline — SOIC - 1.75 mm max height",+      "page": 59,+      "value": 3.9+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.3) and the package drawing (p.60):++![LM358D datasheet pin-configuration page](docs/ex-LM358D-dspin.png)++![LM358D datasheet package-dimensions page](docs/ex-LM358D-dspkg.png)++[→ Open the original LM358D datasheet](https://www.ti.com/lit/ds/symlink/lm358.pdf)++## 3. TPS62840YBGR — Buck converter++*Texas Instruments · WCSP-6 (YBG, DSBGA) · [original datasheet PDF](https://www.ti.com/lit/ds/symlink/tps62840.pdf)*++1.8-V to 6.5-V input, 750-mA step-down (buck) converter with ultra-low 60-nA operating quiescent current and 100% duty-cycle mode (120-nA Iq). DCS-Control architecture with 1.8-MHz nominal switching, 16 selectable output voltages via VSET…++**Symbol + footprint, generated by adom-ds2sf:**++![TPS62840YBGR symbol and footprint generated by adom-ds2sf](docs/ex-TPS62840YBGR-symfp.png)++**Extracted pin list (6 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| A1 | GND | `power_in` | GROUND |+| A2 | VOS | `input` | POWER |+| B1 | VIN | `power_in` | POWER |+| B2 | SW | `power_out` | POWER |+| C1 | EN | `input` | CONTROL |+| C2 | VSET | `input` | CONTROL |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "TPS62840YBGR",+  "datasheet": {+    "url": "https://www.ti.com/lit/ds/symlink/tps62840.pdf",+    "page_count": 45,+    "sha256": "b715ae80beb8f08b…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "page": 5,+      "pin_name": "GND",+      "pin_number": "A1",+      "table_caption": "Pin Functions"+    },+    {+      "confidence": "high",+      "page": 5,+      "pin_name": "VOS",+      "pin_number": "A2",+      "table_caption": "Pin Functions"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "YBG0006 Package Outline — DSBGA - 0.5 mm max height (D: 1.498/1.438 mm, E: 0.998/0.938 mm)",+      "page": 39,+      "value": 0.968+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "YBG0006 Package Outline — DSBGA - 0.5 mm max height (D: 1.498/1.438 mm, E: 0.998/0.938 mm)",+      "page": 39,+      "value": 1.468+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.5) and the package drawing (p.40):++![TPS62840YBGR datasheet pin-configuration page](docs/ex-TPS62840YBGR-dspin.png)++![TPS62840YBGR datasheet package-dimensions page](docs/ex-TPS62840YBGR-dspkg.png)++[→ Open the original TPS62840YBGR datasheet](https://www.ti.com/lit/ds/symlink/tps62840.pdf)++## 4. INA226AIDGSR — Current / power monitor++*Texas Instruments · VSSOP-10 · [original datasheet PDF](https://www.ti.com/lit/ds/symlink/ina226.pdf)*++36V, 16-bit ultra-precise I²C/SMBus current, voltage, and power monitor with alert. Senses bus voltages from 0V to 36V (high- or low-side), with ±81.92 mV shunt range, 0.1% gain error, 10 µV offset, and configurable averaging. Operates…++**Symbol + footprint, generated by adom-ds2sf:**++![INA226AIDGSR symbol and footprint generated by adom-ds2sf](docs/ex-INA226AIDGSR-symfp.png)++**Extracted pin list (10 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| 1 | A1 | `input` | CONTROL |+| 2 | A0 | `input` | CONTROL |+| 3 | Alert | `output` | ALERT |+| 4 | SDA | `bidirectional` | I2C |+| 5 | SCL | `input` | I2C |+| 6 | VS | `power_in` | POWER |+| 7 | GND | `power_in` | GROUND |+| 8 | VBUS | `input` | ADC |+| 9 | IN- | `input` | ADC |+| 10 | IN+ | `input` | ADC |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "INA226AIDGSR",+  "datasheet": {+    "url": "https://www.ti.com/lit/ds/symlink/ina226.pdf",+    "page_count": 40,+    "sha256": "8652754621863692…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "page": 3,+      "pin_name": "A1",+      "pin_number": "1",+      "table_caption": "Table 4-1. Pin Functions"+    },+    {+      "confidence": "high",+      "page": 3,+      "pin_name": "A0",+      "pin_number": "2",+      "table_caption": "Table 4-1. Pin Functions"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "DGS0010A Package Outline — VSSOP - 1.1 mm max height (JEDEC MO-187 BA)",+      "page": 37,+      "value": 3.0+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "DGS0010A Package Outline — VSSOP - 1.1 mm max height (JEDEC MO-187 BA)",+      "page": 37,+      "value": 3.0+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.3) and the package drawing (p.38):++![INA226AIDGSR datasheet pin-configuration page](docs/ex-INA226AIDGSR-dspin.png)++![INA226AIDGSR datasheet package-dimensions page](docs/ex-INA226AIDGSR-dspkg.png)++[→ Open the original INA226AIDGSR datasheet](https://www.ti.com/lit/ds/symlink/ina226.pdf)++## 5. MSP430G2553IPW20 — 16-bit MCU++*Texas Instruments · TSSOP-20 · [original datasheet PDF](https://www.ti.com/lit/ds/symlink/msp430g2553.pdf)*++Ultra-low-power 16-bit RISC microcontroller with 16 KB flash, 512 B SRAM, 10-bit ADC, and integrated UART/SPI/I²C interfaces. Operates at 1.8–3.6 V with active mode consumption of 230 µA/MHz and RTC mode of 0.1 µA.++**Symbol + footprint, generated by adom-ds2sf:**++![MSP430G2553IPW20 symbol and footprint generated by adom-ds2sf](docs/ex-MSP430G2553IPW20-symfp.png)++**Extracted pin list (20 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| 1 | DVCC | `power_in` | POWER |+| 2 | P1.0/TA0CLK/ACLK/A0/CA0 | `bidirectional` | GPIO |+| 3 | P1.1/TA0.0/UCA0RXD/UCA0SOMI/A1/CA1 | `bidirectional` | GPIO |+| 4 | P1.2/TA0.1/UCA0TXD/UCA0SIMO/A2/CA2 | `bidirectional` | GPIO |+| 5 | P1.3/ADC10CLK/A3/VREF-/VREF+/CA3/CAOUT | `bidirectional` | GPIO |+| 6 | P1.4/SMCLK/UCB0STE/UCA0CLK/A4/VREF+/CA4/TCK | `bidirectional` | GPIO |+| 7 | P1.5/TA0.0/UCB0CLK/UCAOSSTE/A5/CA5/TMS | `bidirectional` | GPIO |+| 8 | P2.0/TA1.0 | `bidirectional` | GPIO |+| 9 | P2.1/TA1.1 | `bidirectional` | GPIO |+| 10 | P2.2/TA1.1 | `bidirectional` | GPIO |+| 11 | P2.3/TA1.0 | `bidirectional` | GPIO |+| 12 | P2.4/TA1.2 | `bidirectional` | GPIO |+| 13 | P2.5/TA1.2 | `bidirectional` | GPIO |+| 14 | NC | `unconnected` | NC |+| 15 | P1.6/TA0.1/A6/CA6/UCB0SOMI/UCB0SCL/TDI/TCLK | `bidirectional` | GPIO |+| 16 | P1.7/A7/CA7/CAOUT/UCB0SIMO/UCB0SDA/TDO/TDI | `bidirectional` | GPIO |+| 17 | TEST/SBWTCK | `input` | DEBUG |+| 18 | XOUT/P2.7 | `bidirectional` | TIMING |+| 19 | XIN/P2.6/TA0.1 | `bidirectional` | TIMING |+| 20 | DVSS | `power_in` | GROUND |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "MSP430G2553IPW20",+  "datasheet": {+    "url": "https://www.ti.com/lit/ds/symlink/msp430g2553.pdf",+    "page_count": 85,+    "sha256": "c94b53fef9ba6065…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "page": 3,+      "pin_name": "DVCC",+      "pin_number": "1",+      "table_caption": "Device Pinout, MSP430G2x13 and MSP430G2x53, 20-Pin Devices, TSSOP and PDIP"+    },+    {+      "confidence": "high",+      "notes": "Muxed pin with multiple peripheral functions; configure via software.",+      "page": 6,+      "pin_name": "P1.0/TA0CLK/ACLK/A0/CA0",+      "pin_number": "2",+      "table_caption": "Table 2. Terminal Functions"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "PW0020A Package Outline",+      "page": 76,+      "value": 6.6+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "PW0020A Package Outline",+      "page": 76,+      "value": 4.5+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.6) and the package drawing (p.77):++![MSP430G2553IPW20 datasheet pin-configuration page](docs/ex-MSP430G2553IPW20-dspin.png)++![MSP430G2553IPW20 datasheet package-dimensions page](docs/ex-MSP430G2553IPW20-dspkg.png)++[→ Open the original MSP430G2553IPW20 datasheet](https://www.ti.com/lit/ds/symlink/msp430g2553.pdf)++## 6. BMI270 — 6-axis IMU++*Bosch · LGA-14 · [original datasheet PDF](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi270-ds000.pdf)*++Ultra-low-power 16-bit 6-axis IMU (accelerometer + gyroscope) with integrated motion-triggered interrupts, gesture recognition, and advanced power management. Dual-protocol interface supporting I²C and SPI with optional auxiliary sensor…++**Symbol + footprint, generated by adom-ds2sf:**++![BMI270 symbol and footprint generated by adom-ds2sf](docs/ex-BMI270-symfp.png)++**Extracted pin list (14 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| 1 | SDO | `output` | I2C |+| 2 | ASDx | `bidirectional` | OTHER |+| 3 | ASCx | `input` | OTHER |+| 4 | INT1 | `output` | ALERT |+| 5 | VDDIO | `power_in` | POWER |+| 6 | GNDIO | `passive` | GROUND |+| 7 | GND | `passive` | GROUND |+| 8 | VDD | `power_in` | POWER |+| 9 | INT2 | `output` | ALERT |+| 10 | OCSB | `input` | OTHER |+| 11 | OSDO | `output` | OTHER |+| 12 | CSB | `input` | SPI |+| 13 | SCx | `input` | I2C |+| 14 | SDx | `bidirectional` | I2C |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "BMI270",+  "datasheet": {+    "url": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi270-ds000.pdf",+    "page_count": 150,+    "sha256": "51818aed4619bccc…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "notes": "SPI MISO (4-wire), I2C address bit-0 select; open-drain output",+      "page": 135,+      "pin_name": "SDO",+      "pin_number": "1",+      "table_caption": "Table 22: Pin-out and pin connections"+    },+    {+      "confidence": "high",+      "notes": "Secondary interface; muxed for Aux I2C SDA, OIS SDI, or DNC",+      "page": 135,+      "pin_name": "ASDx",+      "pin_number": "2",+      "table_caption": "Table 22: Pin-out and pin connections"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "Section 8.1, Package outline dimensions",+      "page": 143,+      "value": 3.0+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "Section 8.1, Package outline dimensions",+      "page": 143,+      "value": 2.5+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.135) and the package drawing (p.145):++![BMI270 datasheet pin-configuration page](docs/ex-BMI270-dspin.png)++![BMI270 datasheet package-dimensions page](docs/ex-BMI270-dspkg.png)++[→ Open the original BMI270 datasheet](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi270-ds000.pdf)++## 7. ESP32-S3-WROOM-1-N4 — Wi-Fi + BLE module++*Espressif Systems · SMD-41 (18 x 25.5 x 3.1 mm castellated module, PCB antenna) · [original datasheet PDF](https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf)*++ESP32-S3-WROOM-1-N4 is a Wi-Fi (802.11 b/g/n) and Bluetooth LE 5 module built around the ESP32-S3 SoC (dual-core Xtensa LX7 @ 240 MHz, vector instructions for ML). The -N4 variant integrates 4 MB SPI flash and no PSRAM. Module exposes up…++**Symbol + footprint, generated by adom-ds2sf:**++![ESP32-S3-WROOM-1-N4 symbol and footprint generated by adom-ds2sf](docs/ex-ESP32-S3-WROOM-1-N4-symfp.png)++**Extracted pin list (41 pins):**++| # | Name | Type | Group |+|---|------|------|-------|+| 1 | GND | `power_in` | GROUND |+| 2 | 3V3 | `power_in` | POWER |+| 3 | EN | `input` | CONTROL |+| 4 | IO4 | `bidirectional` | GPIO |+| 5 | IO5 | `bidirectional` | GPIO |+| 6 | IO6 | `bidirectional` | GPIO |+| 7 | IO7 | `bidirectional` | GPIO |+| 8 | IO15 | `bidirectional` | GPIO |+| 9 | IO16 | `bidirectional` | GPIO |+| 10 | IO17 | `bidirectional` | GPIO |+| 11 | IO18 | `bidirectional` | GPIO |+| 12 | IO8 | `bidirectional` | GPIO |+| 13 | IO19 | `bidirectional` | USB |+| 14 | IO20 | `bidirectional` | USB |+| 15 | IO3 | `bidirectional` | GPIO |+| 16 | IO46 | `bidirectional` | GPIO |+| 17 | IO9 | `bidirectional` | GPIO |+| 18 | IO10 | `bidirectional` | GPIO |+| 19 | IO11 | `bidirectional` | GPIO |+| 20 | IO12 | `bidirectional` | GPIO |+| 21 | IO13 | `bidirectional` | GPIO |+| 22 | IO14 | `bidirectional` | GPIO |+| 23 | IO21 | `bidirectional` | GPIO |+| 24 | IO47 | `bidirectional` | GPIO |+| 25 | IO48 | `bidirectional` | GPIO |+| 26 | IO45 | `bidirectional` | GPIO |+| 27 | IO0 | `bidirectional` | GPIO |+| 28 | IO35 | `bidirectional` | GPIO |+| 29 | IO36 | `bidirectional` | GPIO |+| 30 | IO37 | `bidirectional` | GPIO |+| 31 | IO38 | `bidirectional` | GPIO |+| 32 | IO39 | `bidirectional` | DEBUG |+| 33 | IO40 | `bidirectional` | DEBUG |+| 34 | IO41 | `bidirectional` | DEBUG |+| 35 | IO42 | `bidirectional` | DEBUG |+| 36 | RXD0 | `bidirectional` | UART |+| 37 | TXD0 | `bidirectional` | UART |+| 38 | IO2 | `bidirectional` | GPIO |+| 39 | IO1 | `bidirectional` | GPIO |+| 40 | GND | `power_in` | GROUND |+| 41 | EPAD | `power_in` | GROUND |++**Provenance** — every field traces back to a datasheet page:++```json+{+  "mpn": "ESP32-S3-WROOM-1-N4",+  "datasheet": {+    "url": "https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf",+    "page_count": 87,+    "sha256": "2d5a7cb7fd559d8d…"+  },+  "symbol.pin_provenance": [+    {+      "confidence": "high",+      "page": 11,+      "pin_name": "GND",+      "pin_number": "1",+      "table_caption": "Table 3-1. Pin Definitions"+    },+    {+      "confidence": "high",+      "page": 11,+      "pin_name": "3V3",+      "pin_number": "2",+      "table_caption": "Table 3-1. Pin Definitions"+    }+  ],+  "footprint.dimension_provenance": [+    {+      "field": "bodyDimensions.x",+      "figure_label": "Figure 10-1. ESP32-S3-WROOM-1 Physical Dimensions",+      "page": 42,+      "value": 18.0+    },+    {+      "field": "bodyDimensions.y",+      "figure_label": "Figure 10-1. ESP32-S3-WROOM-1 Physical Dimensions",+      "page": 42,+      "value": 25.5+    }+  ]+}+```++**The datasheet pages adom-ds2sf read** — the pin table (p.11) and the package drawing (p.45):++![ESP32-S3-WROOM-1-N4 datasheet pin-configuration page](docs/ex-ESP32-S3-WROOM-1-N4-dspin.png)++![ESP32-S3-WROOM-1-N4 datasheet package-dimensions page](docs/ex-ESP32-S3-WROOM-1-N4-dspkg.png)++[→ Open the original ESP32-S3-WROOM-1-N4 datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf)++# Open source — check it out, vibe-code it, send it back++adom-ds2sf is MIT and **fully open**. The complete Rust source is in this page's **Files** tab.++1. **Build it.** `cargo build --release` drops a standalone binary.+2. **Point your install at your checkout.** `adompkg link john/adom-ds2sf ./adom-ds2sf`.+3. **Vibe-code a change.** Open it in Claude Code — a new provenance field, a different grouping heuristic, another datasheet quirk to handle.+4. **Send it back.** Open a **pull request** on this page, or start a discussion thread.++## Part of the Adom EDA family++adom-ds2sf is the extractor; its results are *viewed and used* through **adom-symbol** / **adom-footprint** (it has no viewer of its own). It feeds **adom-chip-fetcher**'s source carat as the "adom-ds2sf · datasheet" source.++## Run it++```bash+adom-ds2sf extract <chip-dir>     # datasheet PDF → symbol + footprint + provenance JSON+adom-ds2sf inspect <chip-dir>     # summarize an extraction+```+MIT, contributions welcome.
page.jsonadded+31
@@ -0,0 +1,31 @@+{+  "slug": "adom-ds2sf",+  "version": "1.0.0",+  "type": "app",+  "description": "Datasheet to symbol + footprint + provenance JSON — pins and pads, extracted from the PDF.",+  "dependencies": {},+  "tags": [+    "eda",+    "datasheet",+    "extraction",+    "symbol",+    "footprint",+    "cli"+  ],+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "install": {+    "binary_name": "adom-ds2sf"+  },+  "needs_sudo": false,+  "hero": {+    "type": "image",+    "path": "adom-ds2sf.png"+  },+  "author": {+    "name": "John Lauer",+    "email": "[email protected]"+  }+}\ No newline at end of file