main
Ray Publish 0.1.0 72bbecf 8d ago
{
  "slug": "mcp4331-103e",
  "version": "0.1.0",
  "type": "component",
  "description": "Microchip Tech Digital Potentiometers, TSSOP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",
  "tags": [
    "component",
    "adc-dac-data conversion",
    "mcp4331-103e",
    "factory-2.0.0",
    "extractor-text"
  ],
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "mcp4331-103e.kicad_sym",
    "mcp4331-103e.kicad_mod",
    "mcp4331-103e.glb",
    "mcp4331-103e.step",
    "mcp4331-103e.lbr",
    "docs/hero.png",
    "docs/mcp4331-103e-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "mcp4331-103e-hero.glb",
    "mcp4331-103e-hero.overlay.json",
    "mcp4331-103e-etched.glb"
  ],
  "component": {
    "mpn": "MCP4331-103E",
    "manufacturer": "Microchip Tech",
    "package": "TSSOP-20",
    "pin_count": 20,
    "category": "ADC/DAC/Data Conversion",
    "subcategory": "Digital Potentiometers",
    "datasheet": "https://datasheet.lcsc.com/datasheet/pdf/95cf5d94dceb1b2a3b0688e3d6471ed2.pdf",
    "parts": {
      "symbol": "mcp4331-103e.kicad_sym",
      "footprint": "mcp4331-103e.kicad_mod",
      "model_3d": "mcp4331-103e-hero.glb",
      "model_3d_plain": "mcp4331-103e-etched.glb",
      "model_3d_step": "mcp4331-103e-etched.step",
      "model_3d_step_plain": "mcp4331-103e.step",
      "lbr": "mcp4331-103e.lbr"
    },
    "distributor_links": {
      "lcsc": "C638681"
    },
    "distributor_check": {
      "checked_at": "2026-10-30T21:08:04Z",
      "source": "Component Ocean /api/assign-pns",
      "digikey": {
        "pn": null,
        "status": "no match"
      },
      "mouser": {
        "pn": null,
        "status": "no match"
      }
    },
    "pins": [
      {
        "number": "1",
        "name": "P3A",
        "type": "passive",
        "description": "Potentiometer 3 Terminal A, the full-scale end of the resistor network, which must be held between VSS and VDD."
      },
      {
        "number": "2",
        "name": "P3W",
        "type": "passive",
        "description": "Potentiometer 3 wiper terminal, the adjustable terminal, which must be held between VSS and VDD."
      },
      {
        "number": "3",
        "name": "P3B",
        "type": "passive",
        "description": "Potentiometer 3 Terminal B, the zero-scale end (wiper value 0x00), which must be held between VSS and VDD."
      },
      {
        "number": "4",
        "name": "CS",
        "type": "input",
        "description": "SPI chip select input (high-voltage tolerant, Schmitt trigger, smart weak pull-up); VIL enables serial commands and VIHH enables high-voltage serial commands."
      },
      {
        "number": "5",
        "name": "SCK",
        "type": "input",
        "description": "SPI serial clock input (high-voltage tolerant, Schmitt trigger); the device is an SPI slave so this pin is input only."
      },
      {
        "number": "6",
        "name": "SDI",
        "type": "input",
        "description": "SPI serial data input (high-voltage tolerant, Schmitt trigger), connected to the host controller's SDO pin."
      },
      {
        "number": "7",
        "name": "VSS",
        "type": "power_in",
        "description": "Device ground reference."
      },
      {
        "number": "8",
        "name": "P1B",
        "type": "passive",
        "description": "Potentiometer 1 Terminal B, the zero-scale end, which must be held between VSS and VDD."
      },
      {
        "number": "9",
        "name": "P1W",
        "type": "passive",
        "description": "Potentiometer 1 wiper terminal, which must be held between VSS and VDD."
      },
      {
        "number": "10",
        "name": "P1A",
        "type": "passive",
        "description": "Potentiometer 1 Terminal A, the full-scale end, which must be held between VSS and VDD."
      },
      {
        "number": "11",
        "name": "P0A",
        "type": "passive",
        "description": "Potentiometer 0 Terminal A, the full-scale end, which must be held between VSS and VDD."
      },
      {
        "number": "12",
        "name": "P0W",
        "type": "passive",
        "description": "Potentiometer 0 wiper terminal, which must be held between VSS and VDD."
      },
      {
        "number": "13",
        "name": "P0B",
        "type": "passive",
        "description": "Potentiometer 0 Terminal B, the zero-scale end, which must be held between VSS and VDD."
      },
      {
        "number": "14",
        "name": "NC",
        "type": "unconnected",
        "description": "No connect; the pin is not used."
      },
      {
        "number": "15",
        "name": "RESET",
        "type": "input",
        "description": "Hardware reset input (high-voltage tolerant, Schmitt trigger, weak pull-up) that forces the device into the POR/BOR state."
      },
      {
        "number": "16",
        "name": "SDO",
        "type": "output",
        "description": "SPI serial data output, connected to the host controller's SDI pin, used to read registers or monitor the command error bit."
      },
      {
        "number": "17",
        "name": "VDD",
        "type": "power_in",
        "description": "Positive power supply input relative to VSS; device operates from 1.8V to 5.5V, with specifications guaranteed from 2.7V to 5.5V."
      },
      {
        "number": "18",
        "name": "P2B",
        "type": "passive",
        "description": "Potentiometer 2 Terminal B, the zero-scale end, which must be held between VSS and VDD."
      },
      {
        "number": "19",
        "name": "P2W",
        "type": "passive",
        "description": "Potentiometer 2 wiper terminal, which must be held between VSS and VDD."
      },
      {
        "number": "20",
        "name": "P2A",
        "type": "passive",
        "description": "Potentiometer 2 Terminal A, the full-scale end, which must be held between VSS and VDD."
      }
    ],
    "provenance": {
      "extractor": "extract_pins 0.3",
      "factory_chain": {
        "factory": "2.0.0",
        "extractor": "extract_pins 0.3",
        "primary_model": "claude-sonnet-5-5",
        "primary_mode": "text",
        "consensus_model": "claude-sonnet-5-5",
        "consensus": "agreed",
        "guards": "pin_guards 0.1: passed",
        "guard_notes": [
          "extractor flagged: Table 3-1 lists three columns (14L TSSOP, 20L TSSOP, 20L QFN) and the extracted text runs the number; Table 3-1 gives NC a digital-input (I) buffer type, but the text says the pin is not used. I typed i; Sold as MCP4331-103E, which is a quad potentiometer with a 10k RAB. The 20-lead TSSOP pinout applies"
        ],
        "pages_sent": 20,
        "cost_usd": 0.1418,
        "at": "2026-10-30T21:07:56"
      },
      "datasheet": {
        "url": "https://datasheet.lcsc.com/datasheet/pdf/95cf5d94dceb1b2a3b0688e3d6471ed2.pdf",
        "pages": 88,
        "sha256": "5666a7337dced900",
        "source_tier": "mfr"
      },
      "cad": "KiCad official (CC-BY-SA 4.0)",
      "pins": {
        "total": 20,
        "described": 20,
        "cites_pages": true,
        "refuses_to_fabricate": true
      }
    },
    "viewers": {
      "symbol": "viewers/symbol.html",
      "footprint": "viewers/footprint.html"
    },
    "models_3d": [
      {
        "file": "mcp4331-103e.step",
        "role": "plain",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          6.4,
          6.5,
          1.2
        ],
        "zmin_mm": -0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "97339947f3a7196470ec2f1d9f9b92bb2fc2ab66ad53be0cf105192585ef3c9a",
        "checked": "2026-10-30",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      },
      {
        "file": "mcp4331-103e-etched.step",
        "role": "eda",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          6.4,
          6.5,
          1.2
        ],
        "zmin_mm": -0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "14e8e91c8d1a1a36fdfa2b42ff6924e95dd1dbbc2fdf4a5706e7787a43747024",
        "checked": "2026-10-30",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      }
    ]
  }
}