main
John Lauer Component record for grm155r71h472ka01d: files batch 2 f21ba0c 2d ago
"""Catalog data for five Murata GRM MLCC component pages (all values from the cited sources).

Every figure below was read from the Murata reference sheet for the exact part
(search.murata.co.jp/Ceramy/.../<part>-01A.pdf, 33 pages) or from the Adom parts
search on TODAY. Page numbers refer to that PDF.
"""

TODAY = "2026-10-21"
ROOT = "/tmp/claude-1001/mlcc5"

LAND_15 = {
    "source": "Murata reference sheet, p.27 '2. Land Dimensions', Table 2 Reflow Soldering Method, GRM 15, 1.0x0.5 (within +/-0.10)",
    "kind": "range",
    "gap_a": [0.30, 0.50], "len_b": [0.35, 0.45], "wid_c": [0.40, 0.60],
    "letters": "a = gap between lands, b = land length, c = land width",
}
LAND_18 = {
    "source": "Murata reference sheet, p.27 '2. Land Dimensions', Table 2 Reflow Soldering Method, GRM 18, 1.6x0.8 (within +/-0.10)",
    "kind": "range",
    "gap_a": [0.60, 0.80], "len_b": [0.60, 0.70], "wid_c": [0.60, 0.80],
    "letters": "a = gap between lands, b = land length, c = land width",
}
DIM_15 = "p.2 'Type & Dimension', size code 1005M(0402): L 1.0 +/-0.05, W 0.5 +/-0.05, T 0.5 +/-0.05, e 0.15 to 0.35, g 0.3 min (mm)"
DIM_18 = "p.2 'Type & Dimension', size code 1608M(0603): L 1.6 +/-0.1, W 0.8 +/-0.1, T 0.8 +/-0.1, e 0.2 to 0.5, g 0.5 min (mm)"
OV_15 = {"L": [1.0, 0.05], "W": [0.5, 0.05], "T": [0.5, 0.05], "band_top": [0.15, 0.35], "band_bot": [0.15, 0.35],
         "band_top_name": "e (terminal band), top", "band_bot_name": "e (terminal band), bottom"}
OV_18 = {"L": [1.6, 0.1], "W": [0.8, 0.1], "T": [0.8, 0.1], "band_top": [0.2, 0.5], "band_bot": [0.2, 0.5],
         "band_top_name": "e (terminal band), top", "band_bot_name": "e (terminal band), bottom", "ppmm": 220}
PKG_15 = ("Packaging (suffix D)", "180 mm reel, paper tape W8P2, 10000 pcs per reel", "p.2 Package")
PKG_18 = ("Packaging (suffix D)", "180 mm reel, paper tape W8P4, 4000 pcs per reel", "p.2 Package")
X7R_NOTE = "X7R capacitance falls with applied DC voltage and with age; check Murata's DC-bias data (SimSurfing or the product page's characteristics data) at your working voltage."
C0G_NOTE = "C0G (class 1) capacitance does not change with DC bias or age to any practical degree; Murata gives 0 +/-30 ppm/C from 25 to 125 C."


def base(slug, mpn, size):
    s15 = size == "15"
    return {
        "slug": slug, "mpn": mpn, "mfr": "Murata", "mfr_full": "Murata Manufacturing", "source_slug": "murata",
        "kind": "C", "category": "Capacitor",
        "package": "0402 (1005 metric)" if s15 else "0603 (1608 metric)",
        "fp": "C_0402_1005Metric" if s15 else "C_0603_1608Metric", "fp_lib": "Capacitor_SMD",
        "body_mm": {"x_mm": 1.0, "y_mm": 0.5, "z_mm": 0.5} if s15 else {"x_mm": 1.6, "y_mm": 0.8, "z_mm": 0.8},
        "product_url": f"https://pim.murata.com/en-us/pim/details/?partNum={mpn[:-1]}%23",
        "pim_spec_url": None,
        "land": LAND_15 if s15 else LAND_18, "land_doc": None,
        "dims_text": DIM_15 if s15 else DIM_18,
        "marking": "The Murata reference sheet specifies no part marking: none of its 33 pages has a marking section, and the p.2 dimension sketch shows a plain body",
        "marking_src": f"{mpn[:-1]}-01A, all 33 pages searched; p.2",
        "extra_docs": [],
        "_s15": s15,
    }


def mk(slug, mpn, size, value_sym, value, tol, volt, diel, rating_row, brief, subcat, asof, spec_extra, dist, notes, pim_spec):
    p = base(slug, mpn, size)
    s15 = p.pop("_s15")
    stem = mpn[:-1]
    p.update({
        "subcategory": subcat, "value_sym": value_sym, "value": value, "tol": tol, "voltage": volt,
        "dielectric": diel, "rating_row": rating_row, "op_temp": "-55 to 125 C", "brief": brief,
        "ds": {"file": f"docs/{slug}-datasheet.pdf", "local": f"ds-{stem}/{stem}-01A.pdf",
               "url": f"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/{stem}-01A.pdf",
               "title": f"Murata reference sheet {stem}-01A, specifications as of {asof}", "pages": 33},
        "overlay": dict(OV_15 if s15 else OV_18, source=f"Murata {stem}-01A reference sheet p.2 'Type & Dimension' ({'1005M/0402' if s15 else '1608M/0603'})",
                        crop=[f"{stem}-02.png", [60, 225, 760, 540]]),
        "spec_rows": spec_extra + [
            ("Operating temperature", "-55 to 125 C", "p.2 Rated Value"),
            ("Insulation resistance", "more than 10000 MOhm at rated voltage (room temperature, 2 min)", "p.3 item 5"),
            ("Mounting", "flow or reflow", "p.2 Rated Value"),
            ("Size", (DIM_15 if s15 else DIM_18).split(": ", 1)[1], "p.2 Type & Dimension"),
            PKG_15 if s15 else PKG_18,
        ],
        "dist": dist, "notes": notes, "pim_spec_url": pim_spec,
    })
    return p


def x7r(cap_pf, v_code, v):
    return [("Capacitance", cap_pf, "p.2 Rated Value"), ("Tolerance", "+/-10 % (code K)", "p.2 Rated Value"),
            ("Rated voltage", f"{v} V DC (code {v_code})", "p.2 Rated Value"),
            ("Temperature characteristic", "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C (ref. 25 C)", "p.2 Rated Value"),
            ("Dissipation factor", "0.025 max (1 kHz, 1 Vrms)", "p.3 item 7")]


def c0g(cap_pf, q):
    return [("Capacitance", cap_pf, "p.2 Rated Value"), ("Tolerance", "+/-5 % (code J)", "p.2 Rated Value"),
            ("Rated voltage", "50 V DC (code 1H)", "p.2 Rated Value"),
            ("Temperature characteristic", "C0G (EIA), Murata code 5C: 0 +/-30 ppm/C (25 to 125 C, ref. 25 C)", "p.2 Rated Value"),
            ("Q", q, "p.3 item 7")]


PIM = "https://pim.murata.com/asset/pim4/ceramicCapacitorSMD/{}-01A-EN_PDF_CERAMICCAPACITORSMD"
MO = "https://www.mouser.com/ProductDetail/Murata-Electronics/"
DK = "https://www.digikey.com/en/products/detail/murata-electronics/"
LC = "https://www.lcsc.com/product-detail/"

PARTS = [
    mk("grm155r71h102ka01d", "GRM155R71H102KA01D", "15", "1nF", "1 nF (1000 pF)", "+/-10 % (K)", "50 V DC (1H)",
       "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C", ("Dielectric", "X7R (EIA) / R7, -15 to +15 %"),
       "MLCC 1 nF +/-10 %, 50 V, X7R, 0402 (1005 metric)", "MLCC, Class 2 (X7R)", "Jun. 18, 2026",
       x7r("1000 pF (1 nF)", "1H", 50),
       {"mouser": ("81-GRM36X102K50", MO + "GRM155R71H102KA01D?qs=%252B5p24MMGZE%2FUF%252ByMyO6GBQ%3D%3D", 1142387),
        "digikey": ("490-1303-2-ND", DK + "GRM155R71H102KA01D/587225", 4154852),
        "lcsc": ("C77018", LC + "C77018.html", 639377)},
       [X7R_NOTE, "Mouser lists this part under its older catalog number 81-GRM36X102K50; the Mouser listing's manufacturer part number is GRM155R71H102KA01D."],
       PIM.format("GRM155R71H102KA01")),
    mk("grm155r71h472ka01d", "GRM155R71H472KA01D", "15", "4.7nF", "4.7 nF (4700 pF)", "+/-10 % (K)", "50 V DC (1H)",
       "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C", ("Dielectric", "X7R (EIA) / R7, -15 to +15 %"),
       "MLCC 4.7 nF +/-10 %, 50 V, X7R, 0402 (1005 metric)", "MLCC, Class 2 (X7R)", "Jun. 19, 2026",
       x7r("4700 pF (4.7 nF)", "1H", 50),
       {"mouser": ("81-GRM155R71H472KA01", MO + "GRM155R71H472KA01D?qs=%252BoxYCnKeKt%252BSDNhyRTpZXw%3D%3D", 679556),
        "digikey": ("490-1308-2-ND", DK + "GRM155R71H472KA01D/587235", 0),
        "lcsc": ("C77024", LC + "C77024.html", 77039)},
       [X7R_NOTE], PIM.format("GRM155R71H472KA01")),
    mk("grm188r72a103ka01d", "GRM188R72A103KA01D", "18", "10nF", "10 nF (10000 pF)", "+/-10 % (K)", "100 V DC (2A)",
       "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C", ("Dielectric", "X7R (EIA) / R7, -15 to +15 %"),
       "MLCC 10 nF +/-10 %, 100 V, X7R, 0603 (1608 metric)", "MLCC, Class 2 (X7R)", "Jun. 17, 2026",
       x7r("10000 pF (10 nF)", "2A", 100),
       {"mouser": ("81-GRM188R72A103KA1D", MO + "GRM188R72A103KA01D?qs=krk%2F6UQjCzAtl9phuocbug%3D%3D", 425489),
        "digikey": ("490-GRM188R72A103KA01DTR-ND", DK + "GRM188R72A103KA01D/2612560", 232366),
        "lcsc": ("C162275", LC + "C162275.html", 6055)},
       [X7R_NOTE], PIM.format("GRM188R72A103KA01")),
    mk("grm1555c1h101ja01d", "GRM1555C1H101JA01D", "15", "100pF", "100 pF", "+/-5 % (J)", "50 V DC (1H)",
       "C0G (EIA), temperature code 5C: 0 +/-30 ppm/C over 25 to 125 C", ("Dielectric", "C0G (EIA) / 5C, 0 +/-30 ppm/C"),
       "MLCC 100 pF +/-5 %, 50 V, C0G, 0402 (1005 metric)", "MLCC, Class 1 (C0G)", "Jun. 13, 2026",
       c0g("100 pF", "Q >= 1000 at 1 MHz (0.5 to 5 Vrms)"),
       {"mouser": ("81-GRM1555C1H101JA1D", MO + "GRM1555C1H101JA01D?qs=to8XolpOzrOREPd%2Fx%2FLxrw%3D%3D", 1150562),
        "digikey": ("490-5922-2-ND", DK + "GRM1555C1H101JA01D/3693829", 653533),
        "lcsc": ("C77177", LC + "C77177.html", 909438)},
       [C0G_NOTE], PIM.format("GRM1555C1H101JA01")),
    mk("grm1555c1h220ja01d", "GRM1555C1H220JA01D", "15", "22pF", "22 pF", "+/-5 % (J)", "50 V DC (1H)",
       "C0G (EIA), temperature code 5C: 0 +/-30 ppm/C over 25 to 125 C", ("Dielectric", "C0G (EIA) / 5C, 0 +/-30 ppm/C"),
       "MLCC 22 pF +/-5 %, 50 V, C0G, 0402 (1005 metric)", "MLCC, Class 1 (C0G)", "Jun. 13, 2026",
       c0g("22 pF", "Q >= 400 + 20C, C in pF (840 or more for 22 pF) at 1 MHz (0.5 to 5 Vrms)"),
       {"mouser": ("81-GRM1555C1H220JA1D", MO + "GRM1555C1H220JA01D?qs=4k9rjS6ZRl6sPwaL%252BE1uDQ%3D%3D", 336981),
        "digikey": ("490-5868-2-ND", DK + "GRM1555C1H220JA01D/3175187", 334755),
        "lcsc": ("C76960", LC + "C76960.html", 218107)},
       [C0G_NOTE], PIM.format("GRM1555C1H220JA01")),
]