aklofas/kicad-happy

element14

Search Newark, Farnell, and element14 for electronic components — find parts by MPN or distributor part number, check pricing/stock, download datasheets, analyze specifications.

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

element14 / Newark / Farnell — Component Search, Datasheets & Ordering

Related Skills

SkillPurpose
kicadSchematic analysis — extracts MPNs for part lookup
bomBOM management — orchestrates sourcing across distributors
spiceUses element14 parametric data for behavioral SPICE models

One API covers three regional storefronts — same catalog, same datasheets, only pricing/stock vary by region:

StorefrontRegionStore ID
NewarkNorth Americawww.newark.com
FarnellUK / Europeuk.farnell.com
element14Asia-Pacificau.element14.com

For BOM management and export workflows, see bom.

Key Differences from DigiKey/Mouser

  • Simple auth — API key as a query parameter, no OAuth flow
  • Free API key — register at partner.element14.com, courtesy usage allowance
  • Global coverage — same API covers US (Newark), EU (Farnell), APAC (element14)
  • Unprotected PDFs — datasheets hosted on farnell.com CDN, download freely with no bot protection
  • Datasheet URL in API responseresponseGroup=medium includes datasheets[].url

API Credential Setup

  1. Register at partner.element14.com/member/register
  • Free account — just username, email, password. No credit card needed.
  • Provides a "courtesy usage allowance" (2 calls/sec, 1,000 calls/day — sufficient for normal use)
  1. Register an application — after logging in, go to My API Keys and click "Get API Keys"
  • App name: anything (e.g., "kicad-happy")
  • Type: "Desktop application"
  • Users: "1-10"
  • Commercial: No
  • Advertising: No
  • Check "Issue a new key for Product Search API" → select "Basic" tier
  • Agree to Terms of Service and click "Register Application"
  1. Copy your API key — a 24-character alphanumeric string shown on the My API Keys page
  2. Set the environment variable ELEMENT14_API_KEY before running the scripts:
bash
   export ELEMENT14_API_KEY=your_api_key_here

If credentials are stored in a central secrets file (e.g., ~/.config/secrets.env), load them first:

bash
   export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)

Product Search API

Base URL: https://api.element14.com/catalog/products

All requests use GET with query parameters. Authentication is via callInfo.apiKey.

Search Modes

The term parameter supports three search types:

ModeFormatExample
Keywordany:<keywords>term=any:100nF 0402 X7R
MPNmanuPartNum:<mpn>term=manuPartNum:GRM155R71C104KA88D
Distributor PNid:<sku>term=id:94AK6874

Full Example

GET https://api.element14.com/catalog/products
  ?term=manuPartNum:GRM155R71C104KA88D
  &storeInfo.id=www.newark.com
  &resultsSettings.offset=0
  &resultsSettings.numberOfResults=10
  &resultsSettings.responseGroup=medium
  &callInfo.responseDataFormat=JSON
  &callInfo.apiKey=YOUR_KEY

Response Groups

GroupFields
smallSKU, displayName, brandName, MPN, attributes
medium+ datasheets[], prices[], stock
large+ images, related products, country of origin
pricesTiered pricing only
inventoryStock levels by warehouse/region

Response Format

With responseGroup=medium, the response looks like:

json
{
  "manufacturerPartNumberSearchReturn": {
    "numberOfResults": 5,
    "products": [
      {
        "sku": "94AK6874",
        "displayName": "Murata GRM155R71C104KA88D",
        "translatedManufacturerPartNumber": "GRM155R71C104KA88D",
        "brandName": "Murata Electronics",
        "datasheets": [
          {
            "type": "TechnicalDataSheet",
            "description": "Datasheet",
            "url": "https://www.farnell.com/datasheets/74273.pdf"
          }
        ],
        "prices": [
          {
            "from": 1,
            "to": 9,
            "cost": 0.156
          }
        ],
        "stock": {
          "level": 45000,
          "leastLeadTime": 0,
          "status": 4,
          "statusMessage": "In Stock"
        },
        "attributes": [
          {"attributeLabel": "Capacitance", "attributeUnit": "", "attributeValue": "100nF"},
          {"attributeLabel": "Voltage Rating", "attributeUnit": "V", "attributeValue": "16"}
        ],
        "rohsStatusCode": "YES"
      }
    ]
  }
}

Key fields:

  • sku — Newark/Farnell/element14 part number
  • translatedManufacturerPartNumber — MPN
  • brandName — manufacturer
  • datasheets[].urldirect PDF URL (farnell.com CDN, no bot protection)
  • datasheets[].type — usually TechnicalDataSheet
  • prices[] — tiered pricing with from, to, cost
  • stock.level — quantity in stock
  • stock.statusMessage — human-readable availability
  • attributes[] — parametric specs (label, unit, value)
  • rohsStatusCode — RoHS compliance (YES/NO)

Store IDs

Common store IDs for the storeInfo.id parameter:

Store IDRegion
www.newark.comUS (default)
uk.farnell.comUK
www.farnell.comEU
au.element14.comAustralia
sg.element14.comSingapore
in.element14.comIndia

Rate Limits

No documented rate limits beyond the courtesy usage allowance. Be respectful — use 0.5s delays between calls.

Filters

Add to query parameters:

  • resultsSettings.refinements.filter=rohsCompliant — RoHS parts only
  • resultsSettings.refinements.filter=inStock — in-stock only

Pagination

  • resultsSettings.offset — starting index (0-based)
  • resultsSettings.numberOfResults — max 50 per page
  • Only the first 100 results are reliably pageable

Datasheet Download & Sync

element14's farnell.com CDN serves datasheet PDFs directly — no bot protection, no special headers needed. Datasheet URLs come from the API response (datasheets[].url).

Datasheet Directory Sync

Use sync_datasheets_element14.py to maintain a datasheets/ directory alongside a KiCad project. Same workflow and manifest.json format as the DigiKey, Mouser, and LCSC skills.

bash
# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch>

# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --dry-run

# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --force

# Use a specific store (default: www.newark.com)
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --store uk.farnell.com

# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> -o ./my-datasheets

# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --parallel 3

# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_element14.py --mpn-list mpns.txt --output ./datasheets

MPN-list batch mode (KH-312) — when you have a list of MPNs but no KiCad project to point at. One MPN per line; blank lines and # comments (full-line and inline) are skipped; generic values are filtered via is_real_mpn() and de-duplicated. Output defaults to ./datasheets/ in the current working directory when --output is omitted. Note: ELEMENT14_API_KEY is checked unconditionally at startup, so --dry-run still requires the env var to be set even though no network calls are made.

The script:

  • Runs the kicad schematic analyzer to extract components, MPNs, and distributor PNs
  • Accepts any identifier — MPN, Newark/Farnell PN, or other distributor PNs from KiCad symbol properties
  • Prefers MPN search (manuPartNum:) for exact match — falls back to keyword search
  • Downloads from farnell.com CDN — direct PDF URLs, no bot protection
  • Writes `manifest.json` manifest — same format as DigiKey/Mouser/LCSC skills
  • Verifies PDF content — checks MPN, manufacturer, and description keywords
  • Rate-limited — 0.5s between API calls (configurable with --delay)
  • Saves progress incrementally — safe to interrupt

Single Datasheet Download

Use fetch_datasheet_element14.py for one-off downloads.

bash
# Search by MPN
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "GRM155R71C104KA88D" -o datasheet.pdf

# Search by Newark/Farnell part number
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "94AK6874" -o datasheet.pdf

# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_element14.py "https://www.farnell.com/datasheets/74273.pdf" -o datasheet.pdf

# JSON output
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "GRM155R71C104KA88D" --json

The script:

  • OS-agnostic — uses requestsurllibplaywright fallback chain
  • Validates PDF headers — rejects HTML error pages
  • Falls back to alternative manufacturer sources when element14 URL fails
  • Exit codes: 0 = success, 1 = download failed, 2 = search/API error
  • Dependencies:
  • pip install requests (recommended; urllib fallback works fine for element14)
  • pip install playwright && playwright install chromium (optional; rarely needed)

Web Search Fallback

If the API is unavailable, search by fetching product pages directly:

https://www.newark.com/search?st=<query>
https://uk.farnell.com/search?st=<query>

Tips

  • Use responseGroup=medium — includes datasheets and pricing without the overhead of large
  • Use manuPartNum: prefix for exact MPN matches; any: for keyword search
  • Cross-reference using translatedManufacturerPartNumber (MPN) across DigiKey/Mouser/LCSC
  • Useful for international users where DigiKey/Mouser shipping is expensive
z tego samego repozytorium

Więcej Skills

Wszystkie Skills
aklofas
Społeczność

datasheets

Extract structured specifications from electronic component datasheet PDFs — pinouts, electrical characteristics, peripherals, topology, and features. Cache extractions per project for consumption by schematic and PCB analyzers. Primary consumer infrastructure for kicad, emc, spice, and thermal analyzers. Use this skill whenever the user asks to extract, verify, or read specs from a component datasheet; when analyzers need verified IC knowledge (EN pin thresholds, PG presence, USB peripheral speed); or when a review mentions datasheet coverage, extraction quality, or per-MPN specifications. Also triggers on "extract this datasheet", "what are the specs for MPN X", "verify datasheet extraction", or "check pin functions for part Y".

instalacje
2
GitHub Stars
1,3 tys.
Aktualizacja
13 wrz
aklofas
Społeczność

emc

- EMC pre-compliance risk analysis for KiCad PCB designs — 18 check categories, 44 rule IDs covering ground planes, decoupling, I/O filtering, switching harmonics, clock routing, differential pair skew, board edge radiation, PDN impedance, return paths, crosstalk, ESD protection, shielding, and magnetic leakage from switching inductors. Produces severity-ranked risk report with pre-compliance test plan. Supports FCC Part 15, CISPR 32, CISPR 25 (automotive), MIL-STD-461G. SPICE-enhanced when available. Use when the user asks about EMC, EMI, radiated/conducted emissions, FCC compliance, CE marking, CISPR, ground plane issues, decoupling strategy, clock routing EMC, switching noise, differential pair skew, or whether their board will pass EMC testing. Also for "will this pass FCC?", "check my EMC", "is my ground plane okay?", "check my decoupling", or "generate an EMC test plan".

instalacje
2
GitHub Stars
1,3 tys.
Aktualizacja
13 wrz
aklofas
Społeczność

bom

BOM (Bill of Materials) management for electronics projects — the workflow skill that coordinates DigiKey, Mouser, LCSC, element14, JLCPCB, PCBWay, and KiCad skills around a unified BOM lifecycle. Create, update, and maintain BOMs with part numbers, costs, quantities stored as KiCad symbol properties. ALWAYS trigger this skill for any task involving component sourcing, pricing, ordering, distributor searches, BOM export, or fabrication preparation — even if the user names a specific distributor or fab house (e.g. "search DigiKey for...", "generate JLCPCB BOM", "order from Mouser"). This skill analyzes the schematic for sourcing gaps, recommends which distributor/fab skills to call for each gap, and writes results back as symbol properties — the agent (or user) performs the actual searches via the called skills. Also trigger on phrases like "what parts do I need", "order components", "how much will this cost", "export for JLCPCB", "find parts for this board", "compare pricing", or "check stock".

instalacje
2
GitHub Stars
1,2 tys.
Aktualizacja
13 wrz
aklofas
Społeczność

kicad

- Analyze KiCad projects and PDF schematics: schematics, PCB layouts, Gerbers, footprints, symbols, netlists, and design rules. Reviews designs for bugs, traces nets, cross-references schematic to PCB, extracts BOM data, checks DRC/ERC, DFM, power trees, and regulator circuits. Every finding carries a confidence label and evidence source with trustsummary rollup. Analyzes PDF schematics from dev boards, reference designs, eval kits, and datasheets. Supports KiCad 5–10. Use whenever the user mentions .kicadsch, .kicadpcb, .kicadpro, PCB design review, schematic analysis, PDF schematics, reference designs, Gerber files, DRC/ERC, netlist issues, BOM extraction, signal tracing, power budget, DFM, or wants to understand, debug, compare, or review any hardware design. Also for "check my board", "review before fab", "what's wrong with my schematic", "is this ready to order", "check my power supply", "verify this circuit", OSHWA certification readiness, or any electronics/PCB design question.

instalacje
2
GitHub Stars
1,2 tys.
Aktualizacja
13 wrz