main
Ray pca9555: component.models_3d pose record per STEP (Z-up, seated z=0, pad-centre origin, identity binding) c6d6700 1mo ago
{
  "schema_version": 1,
  "type": "component",
  "slug": "pca9555",
  "title": "PCA9555",
  "brief": "NXP 16-bit I2C I/O expander, SO-24. Two 8-bit ports, interrupt output, polarity inversion, 3 address pins. Datasheet-verified.",
  "version": "0.1.0",
  "license": "CC-BY-SA-4.0",
  "tags": [
    "component",
    "interface",
    "io-expander",
    "i2c",
    "gpio",
    "so-24",
    "nxp"
  ],
  "component": {
    "mpn": "PCA9555",
    "manufacturer": "NXP Semiconductors",
    "package": "SO-24",
    "pin_count": 24,
    "category": "Interface IC",
    "subcategory": "I2C 16-bit I/O expander",
    "datasheet": "https://www.nxp.com/docs/en/data-sheet/PCA9555.pdf",
    "parts": {
      "symbol": "pca9555.kicad_sym",
      "footprint": "pca9555.kicad_mod",
      "model_3d": "pca9555-etched.glb",
      "model_3d_plain": "pca9555.glb",
      "lbr": "pca9555.lbr",
      "model_3d_step": "pca9555-etched.step",
      "model_3d_step_plain": "pca9555.step"
    },
    "distributor_links": {},
    "pins": [
      {
        "number": "1",
        "name": "INT",
        "type": "output",
        "description": "Active-LOW open-drain interrupt output. Asserts when any input port pin state differs from its input port register value; requires an external pull-up to VDD."
      },
      {
        "number": "2",
        "name": "A1",
        "type": "input",
        "description": "I2C-bus slave address input bit 1. Tie to VDD or VSS to set the programmable portion of the 7-bit slave address (0100 A2 A1 A0)."
      },
      {
        "number": "3",
        "name": "A2",
        "type": "input",
        "description": "I2C-bus slave address input bit 2. Tie to VDD or VSS to set the programmable portion of the 7-bit slave address."
      },
      {
        "number": "4",
        "name": "IO0_0",
        "type": "bidirectional",
        "description": "Port 0 bit 0 general-purpose I/O. Configurable per bit as input (default, high-Z with weak 100 kΩ pull-up to VDD) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "5",
        "name": "IO0_1",
        "type": "bidirectional",
        "description": "Port 0 bit 1 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "6",
        "name": "IO0_2",
        "type": "bidirectional",
        "description": "Port 0 bit 2 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "7",
        "name": "IO0_3",
        "type": "bidirectional",
        "description": "Port 0 bit 3 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "8",
        "name": "IO0_4",
        "type": "bidirectional",
        "description": "Port 0 bit 4 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "9",
        "name": "IO0_5",
        "type": "bidirectional",
        "description": "Port 0 bit 5 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "10",
        "name": "IO0_6",
        "type": "bidirectional",
        "description": "Port 0 bit 6 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "11",
        "name": "IO0_7",
        "type": "bidirectional",
        "description": "Port 0 bit 7 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "12",
        "name": "VSS",
        "type": "power_in",
        "description": "Supply ground (0 V) reference for the device."
      },
      {
        "number": "13",
        "name": "IO1_0",
        "type": "bidirectional",
        "description": "Port 1 bit 0 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "14",
        "name": "IO1_1",
        "type": "bidirectional",
        "description": "Port 1 bit 1 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "15",
        "name": "IO1_2",
        "type": "bidirectional",
        "description": "Port 1 bit 2 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "16",
        "name": "IO1_3",
        "type": "bidirectional",
        "description": "Port 1 bit 3 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "17",
        "name": "IO1_4",
        "type": "bidirectional",
        "description": "Port 1 bit 4 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "18",
        "name": "IO1_5",
        "type": "bidirectional",
        "description": "Port 1 bit 5 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "19",
        "name": "IO1_6",
        "type": "bidirectional",
        "description": "Port 1 bit 6 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "20",
        "name": "IO1_7",
        "type": "bidirectional",
        "description": "Port 1 bit 7 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input."
      },
      {
        "number": "21",
        "name": "A0",
        "type": "input",
        "description": "I2C-bus slave address input bit 0. Tie to VDD or VSS to set the programmable portion of the 7-bit slave address (0100 A2 A1 A0)."
      },
      {
        "number": "22",
        "name": "SCL",
        "type": "input",
        "description": "I2C-bus serial clock input line. 0 Hz to 400 kHz clock frequency; requires external pull-up to VDD."
      },
      {
        "number": "23",
        "name": "SDA",
        "type": "bidirectional",
        "description": "I2C-bus serial data line (open-drain). Requires external pull-up to VDD."
      },
      {
        "number": "24",
        "name": "VDD",
        "type": "power_in",
        "description": "Positive supply voltage input. Operating range 2.3 V to 5.5 V; bypass locally with a 100 nF ceramic capacitor to VSS."
      }
    ],
    "provenance": {
      "extractor": "ds2sf",
      "datasheet": {
        "url": "https://www.nxp.com/docs/en/data-sheet/PCA9555.pdf",
        "pages": 34,
        "sha256": "9f4f9c0ce4c461d7",
        "source_tier": "mfr"
      },
      "cad": "KiCad official (CC-BY-SA 4.0)",
      "pins": {
        "total": 24,
        "described": 24,
        "cites_pages": true,
        "refuses_to_fabricate": true
      }
    },
    "viewers": {
      "symbol": "viewers/symbol.html",
      "footprint": "viewers/footprint.html"
    },
    "models_3d": [
      {
        "file": "pca9555.step",
        "role": "plain",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          10.3,
          15.4,
          2.75
        ],
        "zmin_mm": -0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "4b0d20f82f5b0124fecfe11c941274a3c865a30f7baee8b8fadd7df55972d4cd",
        "checked": "2026-10-07",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      },
      {
        "file": "pca9555-etched.step",
        "role": "eda",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          10.3,
          15.4,
          2.75
        ],
        "zmin_mm": -0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "367a6a6cb13e02a89dc98c47bd0b5c53efcbc406e22e03fd5f49d0e3af67323b",
        "checked": "2026-10-07",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      }
    ]
  },
  "metadata": {
    "specs": {
      "Type": "I2C 16-bit I/O expander",
      "I/O lines": "16 (ports IO0, IO1)",
      "Bus": "I2C up to 400 kHz",
      "Per-pin": "direction + polarity inversion",
      "Interrupt": "open-drain INT on change",
      "Address pins": "A0-A2 (8 per bus)",
      "Supply voltage": "1.65-5.5 V",
      "Package": "SO-24"
    }
  },
  "sections": [
    "hero",
    "viewers",
    "readme",
    "breadcrumbs",
    "info"
  ],
  "discovery_triggers": [
    "pca9555",
    "i2c io expander 16",
    "gpio expander nxp",
    "port expander interrupt"
  ],
  "discovery_pitch": "PCA9555 16-bit I2C I/O expander (SO-24) with datasheet-verified pinout, KiCad symbol/footprint/3D, and full provenance.",
  "author": {
    "name": "Ray",
    "email": "[email protected]"
  },
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "pca9555.kicad_sym",
    "pca9555.kicad_mod",
    "pca9555.glb",
    "pca9555.lbr",
    "docs/hero.png",
    "docs/pca9555-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "pca9555-etched.step"
  ],
  "variants": [
    {
      "mpn": "PCA9555D (SO-24)",
      "kind": "packaging"
    },
    {
      "mpn": "PCA9555PW (TSSOP-24)",
      "kind": "packaging"
    }
  ]
}