main
John Lauer 3D model from KiCad's own package generator at the datasheet's values: radiused gull-wing leads in matte tin, reviewed… 9ad862b
{
 "schema": "adom/3d-model-provenance@1",
 "mpn": "STM32G431CBT6",
 "date": "2026-10-21",
 "classification": "Generated: KiCad's own package generator at the datasheet's values, with the datasheet's real marking, produced by Claude (AI) for John Lauer; not manufacturer CAD and not a manufacturer certification",
 "datasheet": {
  "doc": "ST DS12589 Rev 2 (October 2019), STM32G431x6/x8/xB datasheet",
  "file": "docs/stm32g431cbt6-datasheet.pdf",
  "url": "https://www.st.com/resource/en/datasheet/stm32g431cb.pdf",
  "marking_pages": "p.177 (6.4 LQFP48 device marking, Figure 51 LQFP48 top view example)",
  "drawing_pages": "p.174 (Figure 49 LQFP48 outline), p.175 (Table 94 LQFP48 mechanical data)",
  "figures": [
   "docs/figures/stm32g431cbt6-ds-p174.png",
   "docs/figures/stm32g431cbt6-ds-p175.png",
   "docs/figures/stm32g431cbt6-ds-p177.png"
  ],
  "sha256": "cabefb21b47dc4c12494b3d9283e3ed1b83925036a65194580b8ebe68adeb71e"
 },
 "marking": {
  "lines": [
   "STM32G431",
   "CBT6",
   "Y WW",
   "R"
  ],
  "description": "Line 1 STM32G431 and line 2 CBT6 (product identification), date code Y WW (Y = year, WW = work week, shown as the placeholders ST prints), revision code R (placeholder, one letter), pin-1 dimple at the pin-1 corner. Not rendered: the ST logo (a trademark, not text) and the unlabelled circle ST draws beside it.",
  "layout_note": "ST's figure puts R in the bottom row beside the logo; the gate keeps all text clear of the pin-1 dimple band, so R sits one row higher at the right, under the date code.",
  "placeholders": "variable fields are drawn with the placeholder letters the datasheet itself prints",
  "surface": "top face, flat light mark 5 um above the face (coplanar), in the Adom.LaserEtch group",
  "font": "service-step2glb /laser-etch single-stroke outline font (not the manufacturer's font)",
  "etch": "STM32G431|CBT6 (planner etch) + Y WW + R (same service glyphs, same group)",
  "gate": {
   "tool": "adom-aiflow-etch check (adom/adom-aiflow 0.2.5)",
   "status": "PASS",
   "checks": {
    "axis": "PASS",
    "upright": "PASS",
    "size": "PASS",
    "band": "PASS",
    "flat": "PASS",
    "group": "PASS",
    "colour": "PASS",
    "widget": "PASS"
   }
  }
 },
 "model": {
  "file": "stm32g431cbt6.step",
  "sha256": "f12a97c4bfc43a0049488629418adc5e823ae063ee1e4f02d83d990fcbd951e5",
  "builder": "kicad-packages3D-generator (gitlab.com/kicad/libraries/kicad-packages3D-generator, commit e272fcc, GW_QFP_SOIC_SSOP_TSSOP_SOT/make_gw, CadQuery 2.8.0)",
  "generator_key": "LQFP-48_7x7mm_Pitch0.5mm",
  "params": "provenance/tools/kicad-generator/params.json",
  "how": "provenance/tools/kicad-generator/kgen.py runs KiCad's make_gw on the datasheet values; the generator's flat-foot length is tuned until the measured gauge-plane foot equals the datasheet value",
  "values": "ST DS12589 Table 94 typical values: D = E 9.00, D1 = E1 7.00, A1 0.10, A2 1.40 (A 1.50), b 0.22, e 0.50, L 0.60 to the gauge plane; c 0.145 (midpoint of 0.09 to 0.20: no typical printed); KiCad's bend radii R1 = R2 = 0.10 (JEDEC MS-026 range), body draft 12 deg and edge fillet 0.05.",
  "cad_kernel": "CadQuery 2.8.0 (OpenCascade)",
  "frame": "Z up, seated on z = 0, centred on the KiCad footprint origin, pin 1 on footprint pad 1, binds with zero offset and rotation",
  "dimensions_mm": [
   {
    "item": "D, E lead tip to tip",
    "datasheet_min_typ_max": "8.80 / 9.00 / 9.20",
    "model": "9.000"
   },
   {
    "item": "D1, E1 body",
    "datasheet_min_typ_max": "6.80 / 7.00 / 7.20",
    "model": "7.000"
   },
   {
    "item": "A overall height",
    "datasheet_min_typ_max": "max 1.60",
    "model": "1.500"
   },
   {
    "item": "A1 standoff",
    "datasheet_min_typ_max": "0.05 / - / 0.15",
    "model": "0.100"
   },
   {
    "item": "A2 body thickness",
    "datasheet_min_typ_max": "1.35 / 1.40 / 1.45",
    "model": "1.400"
   },
   {
    "item": "b lead width",
    "datasheet_min_typ_max": "0.17 / 0.22 / 0.27",
    "model": "0.220"
   },
   {
    "item": "c lead thickness",
    "datasheet_min_typ_max": "0.09 / - / 0.20",
    "model": "0.145"
   },
   {
    "item": "e pitch",
    "datasheet_min_typ_max": "0.50",
    "model": "0.500"
   },
   {
    "item": "L foot (to the 0.25 mm gauge plane)",
    "datasheet_min_typ_max": "0.45 / 0.60 / 0.75",
    "model": "0.600 (measured)"
   },
   {
    "item": "L1 lead length",
    "datasheet_min_typ_max": "1.00",
    "model": "1.000"
   },
   {
    "item": "Bend radii R1, R2 (not printed; JEDEC MS-026)",
    "datasheet_min_typ_max": "R1 >= 0.08, R2 0.08 to 0.20",
    "model": "0.10, 0.10"
   }
  ],
  "kicad_library_check": {
   "model": "KiCad packages3D LQFP-48_7x7mm_P0.5mm.step (CC-BY-SA 4.0)",
   "file": "provenance/previous/stm32g431cbt6-kicad-generic.step",
   "measured": "L foot to the 0.25 mm gauge plane",
   "datasheet": "0.45 / 0.60 / 0.75",
   "kicad_library": "0.444",
   "regenerated": "0.600",
   "method": "section through one lead's centre line (plane y = lead centre), cut at the 0.25 mm gauge plane (z = 0.25); L = distance from the lead tip to where the lead's lower outer surface crosses the gauge plane (JEDEC definition), provenance/tools/kicad-generator/measure.py",
   "verdict": "KiCad's shipped STEP is 6 um under ST's 0.45 mm minimum. KiCad's current generator, run with its own LQFP-48 parameters, already gives 0.600 mm; it was run with ST Table 94's typical values."
  },
  "pin1_mark": "KiCad's pin-1 dimple (generator default) replaces the former 0.75 mm dimple; ST's figure shows a pin-1 identification circle at that corner",
  "leads": "KiCad's radiused gull-wing leads; GLB material 'Adom.Leads (matte tin)': metallic 1.0, roughness 0.35",
  "overlay_proof": "docs/proof/stm32g431cbt6-overlay-ds12589-p174.png",
  "before_after": "docs/proof/stm32g431cbt6-leads-before-after.png",
  "previous": [
   {
    "file": "provenance/previous/stm32g431cbt6-kicad-generic.step",
    "what": "KiCad packages3D LQFP-48_7x7mm_P0.5mm.step (CC-BY-SA 4.0), the page's previous plain model",
    "why": "within tolerance on every printed size except L: the foot measured 0.444 mm to the 0.25 mm gauge plane, under ST's 0.45 mm minimum. Rebuilt from Table 94 typical values instead.",
    "sha256": "9dea352d93177c2904afd7d7b68ea8855ce1ab691f69f8b3e13655600514b6bf"
   },
   {
    "file": "provenance/previous/stm32g431cbt6-cadquery-square-fold.step",
    "sha256": "e1a453b4c6cc2df7b817392b9dbbf45b615e68c09836b819a30b35c169fa124c",
    "what": "hand-built CadQuery model (provenance/tools/build_gullwing.py), square lead folds, 2026-10-19 to 2026-10-21",
    "why": "square 90 degree lead folds and flat grey leads looked fake; it had replaced KiCad's model over a foot-length miss that KiCad's own generator fixes"
   }
  ]
 },
 "etched": {
  "file": "stm32g431cbt6-etched.step",
  "sha256": "efe173126085602def82f271f2eb537890dde0f8ee698d63199b76fefe9968f0",
  "note": "etched with `--over-vendor-mark`: the generated body has no printed marking, but its 0.05 mm top edge fillets read as glyph faces to the vendor-mark detector; the date and revision codes were added with provenance/tools/extra_marks.py exactly as before",
  "check_image": "docs/proof/stm32g431cbt6-etched.check.png",
  "plan": "docs/proof/stm32g431cbt6-etched.mark-plan.json"
 },
 "glb": {
  "stm32g431cbt6.glb": "ccc1377d3d94d43a23368c99cc1e4d0f6cc9a42fb8cdb69dbeae6fdf8ae50ea2",
  "stm32g431cbt6-etched.glb": "158a839555b2f7d40c9e15a186816a069b5cff42ed948d4a522510f8a5b168e4",
  "stm32g431cbt6-hero.glb": "e4e56d05a4fdb13b54f53596e2ce672bf0fa397e11ff964bb619f84e88ef859a"
 },
 "hero": {
  "file": "stm32g431cbt6-hero.glb",
  "generator": "adom/component-hero hero_glb.py (adom-hero 1.4)",
  "board_use": false,
  "preview": "docs/proof/stm32g431cbt6-hero-preview.png"
 },
 "outline": {
  "file": "artwork/STM32G431CBT6-3d-outline-dark-named.svg",
  "sha256": "1d63e0b37912ee9f8453cd9f439b93e634802c298c85b569188c129bd35de2fa",
  "tool": "adom-aiflow-etch outline (etched-STEP mode: the mark's own edges, so all four marking lines show)",
  "gate": "PASS",
  "note": "kept from 2026-10-19: the symbol's chip outline is a top view, and the top view is unchanged apart from the pin-1 dimple's size and place"
 },
 "page_hero_image": "docs/hero.png: the previous billboard with its chip render replaced by a render of stm32g431cbt6-etched.glb",
 "removed_superseded": [
  {
   "path": "stm32g431cbt6-mpn.step",
   "sha256": "8250f63808691f8cc8878494a1d296a890a8a4429eee743b08815ee22a9acc65"
  },
  {
   "path": "stm32g431cbt6-mpn-overlay.step",
   "sha256": "72e6354474c848ed704c42931fe71e60ea35331f5958c8ce3dd5f680088abc48"
  },
  {
   "path": "stm32g431cbt6-mpn.glb",
   "sha256": "d3c14f24b39ffaf89def6e8405e045ff13792a6eacca31f748b9cd67b8c1a6a3"
  },
  {
   "path": "stm32g431cbt6-mpn.png",
   "sha256": "634dc1d21c79556c21b48fa1b4249ad921245b4d7d20b617e7f659e765010ef8"
  },
  {
   "path": "stm32g431cbt6-hero-mpn.glb",
   "sha256": "d4594009e3c830dcd2de4ca87bc6f0ba690a2479516a36f2bd5509585344ceb2"
  },
  {
   "path": "stm32g431cbt6-hero-footprint.glb",
   "sha256": "b519c4f9d0abfbf83a974ba240e51312e8db8190e10d554c38ee1e99b2f7bc3e"
  },
  {
   "path": "stm32g431cbt6-hero-footprint.overlay.json",
   "sha256": "7cf083537f370c72c9a28f479d07a453692cab6845c9e062b2aaad6897ed5aec"
  },
  {
   "path": "stm32g431cbt6-etched.fit.json",
   "sha256": "1db908d3146b1bdd1a9a2f75790e6526c64e6395e137127d48347c52ccc8595d"
  },
  {
   "path": "MPN-MARKING.md",
   "sha256": "d49795c9395b424742f231d3096809e1fd50fc078b1b14a8fbeefca9e4d3d100"
  },
  {
   "path": "mpn-marking.json",
   "sha256": "c226ee005e6e7af9e55903c9c3ef09d8323920aba8201fefb883ed3324ddfbff"
  },
  {
   "path": "fit-mpn-surface.py",
   "sha256": "791563f83b56cbc9bb2885ca5ad7134cb8b3ecf54c1724e8338df570d5e6492f"
  },
  {
   "path": "hero-binding.json",
   "sha256": "5c79cb5993a00ba5488f351f759a831db839dc2bca39549c58435ce8c856b75d"
  },
  {
   "path": "hero-pin-map.json",
   "sha256": "12c97148bf07bb6be87914bf2c4fc201971f40349cf1ffc478f1bc9fce72cfc6"
  },
  {
   "path": "MPN-SOURCE-LICENSE.md",
   "sha256": "285b027a721577d0bc0198f36e948c6c282ddaa4b58fef8ed826749576eb0aef"
  }
 ],
 "tools": {
  "adom-aiflow-etch": "adom/adom-aiflow (installed)",
  "step2glb": "0.13.2",
  "adom-symbol": "1.2.6",
  "adom-lbr": "2.47.5",
  "cadquery": "2.8.0",
  "kicad-packages3D-generator": "e272fcc (archived repo; Adom A2_b patch)",
  "gltf-transform": "3.10.1",
  "meshoptimizer": "0.20.0"
 },
 "license": "Model generated with KiCad's package generator (GPL-2.0 scripts; KiCad 3D models CC-BY-SA 4.0 with the KiCad libraries' exception); Adom marking and artwork CC-BY-4.0."
}