main
Ray Publish 0.1.0 2d8768e
{
  "slug": "b-2102s50p-b120",
  "version": "0.1.0",
  "type": "component",
  "description": "Ckmtw Shenzhen Cankemeng Pin Headers, 插件,P=2mm. Unpolarised two-terminal part: the datasheet prints no pin numbers, so pins 1 and 2 follow the library convention, KiCad symbol/footprint/3D.",
  "tags": [
    "component",
    "connectors",
    "b-2102s50p-b120",
    "factory-2.0.0",
    "extractor-text"
  ],
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "b-2102s50p-b120.kicad_sym",
    "b-2102s50p-b120.kicad_mod",
    "b-2102s50p-b120.glb",
    "b-2102s50p-b120.step",
    "b-2102s50p-b120.lbr",
    "docs/hero.png",
    "docs/b-2102s50p-b120-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "b-2102s50p-b120-hero.glb",
    "b-2102s50p-b120-hero.overlay.json"
  ],
  "component": {
    "mpn": "B-2102S50P-B120",
    "manufacturer": "Ckmtw Shenzhen Cankemeng",
    "package": "PinHeader_2x25_P2.00mm_Vertical",
    "pin_count": 50,
    "category": "Connectors",
    "subcategory": "Pin Headers",
    "datasheet": "https://jlcpcb.com/api/file/downloadByFileSystemAccessId/8588892459171008512",
    "parts": {
      "symbol": "b-2102s50p-b120.kicad_sym",
      "footprint": "b-2102s50p-b120.kicad_mod",
      "model_3d": "b-2102s50p-b120-hero.glb",
      "model_3d_step": "b-2102s50p-b120.step",
      "lbr": "b-2102s50p-b120.lbr",
      "model_3d_plain": "b-2102s50p-b120.glb"
    },
    "distributor_links": {
      "lcsc": "C124361"
    },
    "distributor_check": {
      "checked_at": "2026-11-06T13:48:04Z",
      "source": "Component Ocean /api/assign-pns",
      "digikey": {
        "pn": null,
        "status": "quota"
      },
      "mouser": {
        "pn": null,
        "status": "quota"
      }
    },
    "pins": [
      {
        "number": "1",
        "name": "1",
        "type": "passive",
        "description": "Contact 1; numbering follows the footprint."
      },
      {
        "number": "2",
        "name": "2",
        "type": "passive",
        "description": "Contact 2; numbering follows the footprint."
      },
      {
        "number": "3",
        "name": "3",
        "type": "passive",
        "description": "Contact 3; numbering follows the footprint."
      },
      {
        "number": "4",
        "name": "4",
        "type": "passive",
        "description": "Contact 4; numbering follows the footprint."
      },
      {
        "number": "5",
        "name": "5",
        "type": "passive",
        "description": "Contact 5; numbering follows the footprint."
      },
      {
        "number": "6",
        "name": "6",
        "type": "passive",
        "description": "Contact 6; numbering follows the footprint."
      },
      {
        "number": "7",
        "name": "7",
        "type": "passive",
        "description": "Contact 7; numbering follows the footprint."
      },
      {
        "number": "8",
        "name": "8",
        "type": "passive",
        "description": "Contact 8; numbering follows the footprint."
      },
      {
        "number": "9",
        "name": "9",
        "type": "passive",
        "description": "Contact 9; numbering follows the footprint."
      },
      {
        "number": "10",
        "name": "10",
        "type": "passive",
        "description": "Contact 10; numbering follows the footprint."
      },
      {
        "number": "11",
        "name": "11",
        "type": "passive",
        "description": "Contact 11; numbering follows the footprint."
      },
      {
        "number": "12",
        "name": "12",
        "type": "passive",
        "description": "Contact 12; numbering follows the footprint."
      },
      {
        "number": "13",
        "name": "13",
        "type": "passive",
        "description": "Contact 13; numbering follows the footprint."
      },
      {
        "number": "14",
        "name": "14",
        "type": "passive",
        "description": "Contact 14; numbering follows the footprint."
      },
      {
        "number": "15",
        "name": "15",
        "type": "passive",
        "description": "Contact 15; numbering follows the footprint."
      },
      {
        "number": "16",
        "name": "16",
        "type": "passive",
        "description": "Contact 16; numbering follows the footprint."
      },
      {
        "number": "17",
        "name": "17",
        "type": "passive",
        "description": "Contact 17; numbering follows the footprint."
      },
      {
        "number": "18",
        "name": "18",
        "type": "passive",
        "description": "Contact 18; numbering follows the footprint."
      },
      {
        "number": "19",
        "name": "19",
        "type": "passive",
        "description": "Contact 19; numbering follows the footprint."
      },
      {
        "number": "20",
        "name": "20",
        "type": "passive",
        "description": "Contact 20; numbering follows the footprint."
      },
      {
        "number": "21",
        "name": "21",
        "type": "passive",
        "description": "Contact 21; numbering follows the footprint."
      },
      {
        "number": "22",
        "name": "22",
        "type": "passive",
        "description": "Contact 22; numbering follows the footprint."
      },
      {
        "number": "23",
        "name": "23",
        "type": "passive",
        "description": "Contact 23; numbering follows the footprint."
      },
      {
        "number": "24",
        "name": "24",
        "type": "passive",
        "description": "Contact 24; numbering follows the footprint."
      },
      {
        "number": "25",
        "name": "25",
        "type": "passive",
        "description": "Contact 25; numbering follows the footprint."
      },
      {
        "number": "26",
        "name": "26",
        "type": "passive",
        "description": "Contact 26; numbering follows the footprint."
      },
      {
        "number": "27",
        "name": "27",
        "type": "passive",
        "description": "Contact 27; numbering follows the footprint."
      },
      {
        "number": "28",
        "name": "28",
        "type": "passive",
        "description": "Contact 28; numbering follows the footprint."
      },
      {
        "number": "29",
        "name": "29",
        "type": "passive",
        "description": "Contact 29; numbering follows the footprint."
      },
      {
        "number": "30",
        "name": "30",
        "type": "passive",
        "description": "Contact 30; numbering follows the footprint."
      },
      {
        "number": "31",
        "name": "31",
        "type": "passive",
        "description": "Contact 31; numbering follows the footprint."
      },
      {
        "number": "32",
        "name": "32",
        "type": "passive",
        "description": "Contact 32; numbering follows the footprint."
      },
      {
        "number": "33",
        "name": "33",
        "type": "passive",
        "description": "Contact 33; numbering follows the footprint."
      },
      {
        "number": "34",
        "name": "34",
        "type": "passive",
        "description": "Contact 34; numbering follows the footprint."
      },
      {
        "number": "35",
        "name": "35",
        "type": "passive",
        "description": "Contact 35; numbering follows the footprint."
      },
      {
        "number": "36",
        "name": "36",
        "type": "passive",
        "description": "Contact 36; numbering follows the footprint."
      },
      {
        "number": "37",
        "name": "37",
        "type": "passive",
        "description": "Contact 37; numbering follows the footprint."
      },
      {
        "number": "38",
        "name": "38",
        "type": "passive",
        "description": "Contact 38; numbering follows the footprint."
      },
      {
        "number": "39",
        "name": "39",
        "type": "passive",
        "description": "Contact 39; numbering follows the footprint."
      },
      {
        "number": "40",
        "name": "40",
        "type": "passive",
        "description": "Contact 40; numbering follows the footprint."
      },
      {
        "number": "41",
        "name": "41",
        "type": "passive",
        "description": "Contact 41; numbering follows the footprint."
      },
      {
        "number": "42",
        "name": "42",
        "type": "passive",
        "description": "Contact 42; numbering follows the footprint."
      },
      {
        "number": "43",
        "name": "43",
        "type": "passive",
        "description": "Contact 43; numbering follows the footprint."
      },
      {
        "number": "44",
        "name": "44",
        "type": "passive",
        "description": "Contact 44; numbering follows the footprint."
      },
      {
        "number": "45",
        "name": "45",
        "type": "passive",
        "description": "Contact 45; numbering follows the footprint."
      },
      {
        "number": "46",
        "name": "46",
        "type": "passive",
        "description": "Contact 46; numbering follows the footprint."
      },
      {
        "number": "47",
        "name": "47",
        "type": "passive",
        "description": "Contact 47; numbering follows the footprint."
      },
      {
        "number": "48",
        "name": "48",
        "type": "passive",
        "description": "Contact 48; numbering follows the footprint."
      },
      {
        "number": "49",
        "name": "49",
        "type": "passive",
        "description": "Contact 49; numbering follows the footprint."
      },
      {
        "number": "50",
        "name": "50",
        "type": "passive",
        "description": "Contact 50; numbering follows the footprint."
      }
    ],
    "provenance": {
      "extractor": "extract_pins",
      "factory_chain": {
        "factory": "2.0.0",
        "extractor": "extract_pins",
        "primary_model": "connector numbering",
        "primary_mode": "convention",
        "consensus_model": null,
        "consensus": "agreed",
        "guards": "pin_guards 0.1: passed",
        "guard_notes": [
          "vision extraction: provenance cannot be text-verified; needs consensus"
        ],
        "pages_sent": null,
        "cost_usd": 0,
        "at": "2026-11-06T13:47:55"
      },
      "datasheet": {
        "url": "https://jlcpcb.com/api/file/downloadByFileSystemAccessId/8588892459171008512",
        "pages": 1,
        "sha256": "",
        "source_tier": "lcsc"
      },
      "cad": "KiCad official (CC-BY-SA 4.0)",
      "pins": {
        "total": 50,
        "described": 50,
        "cites_pages": true,
        "refuses_to_fabricate": true
      }
    },
    "viewers": {
      "symbol": "viewers/symbol.html",
      "footprint": "viewers/footprint.html"
    },
    "models_3d": [
      {
        "file": "b-2102s50p-b120.step",
        "role": "plain",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "body on z = 0, through-hole leads below",
        "extents_mm": [
          4.0,
          50.0,
          8.8
        ],
        "zmin_mm": -2.8,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "b3c103d5150ad2933e30c1c8e3455023319a2cfddc5f21e2c320e9df215f5288",
        "checked": "2026-11-06",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      }
    ]
  }
}