← Commit history

Add JST showcase (screenshots of the cracked email-gated flow + 5-connector bundle), ToS note (no JST file redistribution), connector symbol/footprint recipe in playbook

John Lauer ·ca4cd2a9fc ·3mo ago ·parent d0c3201
9 files changed +154−5
README.md+4
@@ -62,6 +62,10 @@ keeps chip-fetcher provider-agnostic β€” is documented in its own sub-README:  ➑️ **[docs/jst-email-gated-cad.md](docs/jst-email-gated-cad.md)** β€” Email-delivered CAD: the JST flow (and how to add any email-gated manufacturer) +πŸ† **[docs/jst-showcase.md](docs/jst-showcase.md)** β€” Showcase (with screenshots): how chip-fetcher cracked JST's Cloudflare + email gate end-to-end, and bundled the 5 most-common JST connectors with symbol + footprint + 3D.++> βš–οΈ **Note on JST files:** JST's download License Agreement (clause 2) prohibits redistributing their CAD to third parties, so we do **not** rehost JST's emailed STEP/IGES or datasheets. Connector component pages we publish use the **redistributable KiCad libraries** for symbol/footprint/3D and **link to JST** for any JST-authored model.+ Agents: the same content lives in the skill as `playbooks/jst.md` + `playbooks/jst-email-retrieval.md`. 
docs/img/jst-5connectors.pngadded
⋯ 1 unchanged line ⋯
docs/img/jst-catalog.pngadded
⋯ 1 unchanged line ⋯
docs/img/jst-confirm.pngadded
⋯ 1 unchanged line ⋯
docs/img/jst-dashboard.pngadded
⋯ 1 unchanged line ⋯
docs/img/jst-email.pngadded
⋯ 1 unchanged line ⋯
docs/img/jst-form.pngadded
⋯ 1 unchanged line ⋯
docs/jst-showcase.mdadded+112
@@ -0,0 +1,112 @@+# JST showcase β€” cracking email-gated CAD, end to end βœ…++> **What this proves:** chip-fetcher can pull manufacturer-grade CAD even from a+> vendor that **refuses to serve a download** and instead **emails the file** β€”+> a flow that defeats every "click Download" scraper. Proven end to end on real+> JST parts, with the file retrieved straight out of Gmail and imported into the+> library. This page is the receipts.++This is the success story behind the [JST email-gated CAD how-to](jst-email-gated-cad.md)+and the agent playbooks (`playbooks/jst.md`, `playbooks/jst-email-retrieval.md`).+If you just want to run it, read the how-to. This page shows **what was pulled+off and why it matters**.++---++## The problem JST poses++JST is a tier-1 connector maker whose CAD is locked behind three walls that+break normal scrapers:++1. **jst.com (USA) hard-blocks automated browsers** with a Cloudflare bot+   challenge β€” a headless/puppeteer browser never gets past "Just a moment…".+2. The real CAD lives on the **global site jst-mfg.com**, organized by+   **series**, not by part number.+3. **Clicking "Download" does not return a file.** It returns a **License+   Agreement form**, and β€” since **April 2025** β€” JST **emails** the CAD to the+   address you type in. There is no file to scrape at all.++A "download the file" tool gets nothing. You need to drive a real browser, fill+a form, **and read email**.++## How chip-fetcher beats it++### 1 Β· Drive the user's real browser to the real catalog++Instead of a bot browser, chip-fetcher drives the user's **real signed-in+Chrome** (via the Adom native-browser bridge), which carries Cloudflare's+human-trust and sails through. It lands on the jst-mfg.com series page, where+every part lists **IGES / STEP / 3D-PDF / 2D-PDF**:++![JST global catalog with STEP column](img/jst-catalog.png)++### 2 Β· Recognize the gate and fill the form++Clicking the STEP "Download" returns the **License Agreement form** β€” not a+file. chip-fetcher accepts the cookie banner (required to submit), then fills+the user's business profile + email and clicks **I agree**:++![JST License Agreement form, filled](img/jst-form.png)++### 3 Β· Confirm the email hand-off++JST responds with the tell that it's an **email** flow, not a download:++![The data has been sent to your email address](img/jst-confirm.png)++### 4 Β· Read the email, pull the attachment, import++This is the part that makes or breaks it. chip-fetcher uses **adom-google** to+find the JST mail, pull the `.zip` attachment (the real `PHR-2.STEP`), and+import it β€” no human in the loop:++![adom-google retrieves the emailed CAD](img/jst-email.png)++### 5 Β· The payoff β€” a real library card++`PHR-2` lands in the library with its **manufacturer STEP** (3D thumbnails+auto-rendered) + datasheet:++![PHR-2 library card with imported manufacturer STEP](img/jst-dashboard.png)++## …then a real, board-ready set++The CAD pull is only half a connector. `PHR-2` is the **wire-side crimp+housing**; a board needs the **mating board-side header** plus a **symbol and+footprint** (which JST never ships). chip-fetcher completes the bundle from the+KiCad standard libraries and, where KiCad has no 3D, falls back to the JST+email flow for the manufacturer STEP. Result: the **5 most-common JST+connectors**, each with **symbol + footprint + 3D + datasheet**:++![JST-common project β€” 5 board connectors fully bundled](img/jst-5connectors.png)++| Part | Series | Pitch | Symbol | Footprint | 3D | Datasheet |+|---|---|---|:--:|:--:|:--:|:--:|+| **B2B-PH-K-S** (mates `PHR-2`) | PH | 2.0 mm | βœ“ | βœ“ | βœ“ | βœ“ |+| **B2B-XH-A** | XH | 2.5 mm | βœ“ | βœ“ | βœ“ | βœ“ |+| **SM02B-SRSS-TB** | SH | 1.0 mm | βœ“ | βœ“ | βœ“ | βœ“ |+| **BM02B-GHS-TBT** | GH | 1.25 mm | βœ“ | βœ“ | βœ“ | βœ“ |+| **B2P-VH** | VH | 3.96 mm | βœ“ | βœ“ | βœ“ (via JST email) | βœ“ |++## Why this matters++- **It generalizes.** JST is the reference case for *any* manufacturer that+  email-delivers CAD. The retrieval layer is pluggable: Gmail users get it free+  via adom-google; other providers build a small fetcher and+  [breadcrumb](https://wiki.adom.inc/adom/wiki-breadcrumbs) it so chip-fetcher+  stays provider-agnostic.+- **It's fully hands-off.** Form fill, the email round-trip, attachment+  extraction, and import all run without a human click.+- **It's honest about provenance.** JST ships 3D + drawings only; symbol ++  footprint come from the matched KiCad libraries, and the library records+  where each file came from.++## Watch it++β–Ά **[60-second narrated demo](jst-email-gated-cad-demo.webm)** of the full flow.++## Reproduce it++- How-to: **[jst-email-gated-cad.md](jst-email-gated-cad.md)**+- Agent playbooks: `playbooks/jst.md`, `playbooks/jst-email-retrieval.md`+- Demo recipe: **[jst-email-gated-cad-demo-script.md](jst-email-gated-cad-demo-script.md)**
playbooks/jst.md+38−5
@@ -125,11 +125,44 @@ adom-chip-fetcher import <PART>.STEP --mpn <PART> adom-chip-fetcher import <catalog>.pdf --mpn <PART> ``` JST supplies **3D (STEP/IGES) + drawings + catalog datasheet only**. It does-**NOT** supply KiCad `.kicad_sym` / `.kicad_mod`. Those still come from the-normal ladder β€” **SnapEDA/SnapMagic β†’ Mouser β†’ DigiKey β†’ UL/CSE** β€” so after-the JST manufacturer-direct grab, keep walking the ladder for symbol +-footprint. `adom-chip-fetcher gate` will (correctly) keep the card INCOMPLETE-until sym+mod land.+**NOT** supply KiCad `.kicad_sym` / `.kicad_mod`. Those come from the ladder.++## 6a. Connectors: wire vs board, and the symbol/footprint source (proven 2026-06-27)++**Wire side vs board side.** A JST family has a wire-side crimp **housing**+(e.g. `PHR-2`) and a mating board-side **header** (e.g. `B2B-PH-K-S`). The+part that solders to the PCB β€” and the one a board design needs β€” is the+**board-side header**. If the user asks for "the connector for the board,"+they mean the header, not the housing. Housing-N mates the header-N (pin count+matches: `PHR-2` ↔ `B2B-PH-K-S`).++**Best symbol+footprint source for JST connectors = KiCad standard libraries**+(fast, no login β€” prefer over SnapMagic, which needs the user's password):++```bash+# Footprint (.kicad_mod) β€” KiCad footprints repo, Connector_JST.pretty+#   names look like JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical+curl -s "https://gitlab.com/api/v4/projects/kicad%2Flibraries%2Fkicad-footprints/repository/files/Connector_JST.pretty%2F<FPNAME>.kicad_mod/raw?ref=master" -o <MPN>.kicad_mod+# Symbol β€” connectors use the GENERIC N-pin symbol (correct + standard).+#   kicad-symbols stores libs as DIRECTORIES: Connector_Generic.kicad_symdir/+curl -s "https://gitlab.com/api/v4/projects/kicad%2Flibraries%2Fkicad-symbols/repository/files/Connector_Generic.kicad_symdir%2FConn_01x0<N>.kicad_sym/raw?ref=master" -o <MPN>.kicad_sym+# Matched 3D STEP β€” read the (model ...) path from the .kicad_mod, then:+service-kicad model fetch "Connector_JST.3dshapes/<FPNAME>.step" --out <MPN>.step+```++**Gotchas (all hit on 2026-06-27):**+- KiCad ships **ZE (not ZH)** for the 1.5 mm series. ZH proper needs SnapMagic.+- `kicad-packages3D` only carries ~159 of the 500 footprints' models β€” **many+  series (VH, etc.) have NO KiCad 3D**. For those, get the STEP via the JST+  **email flow** (Β§3–4) and pair it with the KiCad footprint.+- Import connectors with **`--no-validate`**: the `gate`/validate step is+  chip-centric β€” it flags a connector's catalog PDF as "no pin-table, ds2sf+  can't extract a symbol" and marks the card incomplete. That's a false+  negative for connectors (the symbol is the generic N-pin one). A connector+  card with step+mod+sym+pdf IS complete; ignore that specific gate complaint.++Proven set (project `JST-common`): PH `B2B-PH-K-S`, XH `B2B-XH-A`,+SH `SM02B-SRSS-TB`, GH `BM02B-GHS-TBT`, VH `B2P-VH` (VH STEP via email).  ## 7. Batch notes / hazards