component
MCP23017
Public Unreviewedby adom
Microchip 16-bit I2C I/O expander, SOIC-28. Two 8-bit ports, interrupts, configurable pull-ups, 3 address pins. Datasheet-verified.
← Commit history
Publish 0.1.0
8 files changed
+1159−9
README.md+69−2@@ -1,5 +1,72 @@ # MCP23017 -16-bit I2C I/O expander, DIP-28+**Microchip Technology** · I2C 16-bit I/O expander · SOIC-28 -The MCP23017 is a 16-bit I/O expander with I2C interface from Microchip. Provides 16 additional GPIO pins configurable as input or output with interrupt capability. Up to 8 devices on one bus (128 extra GPIOs).+Adds sixteen general-purpose I/O to a microcontroller over I2C, in a SOIC-28, the 16-bit big brother of the PCF8574. The pins are split into two 8-bit ports (GPA and GPB), each with per-pin direction, optional internal pull-ups, input polarity inversion, and interrupt-on-change that drives the INTA and INTB pins so the host need not poll. Three address pins (A0-A2) put up to eight of them on one bus for 128 I/O total. It speaks I2C up to 1.7 MHz (a sibling, the MCP23S17, uses SPI). Runs 1.8-5.5 V.++## Pinout++| Pin | Name | Type | Function |+|---|---|---|---|+| 1 | GPB0 | bidirectional | PORTB bit 0 bidirectional I/O. Configurable per-pin as input or output; supports interrupt-on-change and internal ~75 µA weak pull-up to VDD. IOL up to 8.0 mA @ VDD=4.5V. |+| 2 | GPB1 | bidirectional | PORTB bit 1 bidirectional I/O. Same characteristics as GPB0 - configurable direction, interrupt-on-change, optional weak pull-up. |+| 3 | GPB2 | bidirectional | PORTB bit 2 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 4 | GPB3 | bidirectional | PORTB bit 3 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 5 | GPB4 | bidirectional | PORTB bit 4 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 6 | GPB5 | bidirectional | PORTB bit 5 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 7 | GPB6 | bidirectional | PORTB bit 6 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 8 | GPB7 | bidirectional | PORTB bit 7 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 9 | VDD | power_in | Positive supply. Operating range 1.8V-5.5V (industrial), 2.7V-5.5V and 4.5V-5.5V for wider temperature grades. Bypass with a 0.1 µF ceramic close to the pin. |+| 10 | VSS | power_in | Ground reference for supply and all I/O. |+| 11 | NC | unconnected | No connect on MCP23017 (this pin is Chip Select /CS on the SPI-variant MCP23S17). Leave floating or tie to ground. |+| 12 | SCL | input | I2C serial clock input (Schmitt-trigger). Standard 100 kHz, Fast 400 kHz, and Fast-mode Plus 1.7 MHz supported. Requires an external pull-up resistor to VDD. |+| 13 | SDA | bidirectional | I2C serial data (open-drain, Schmitt-trigger input). Requires an external pull-up resistor to VDD. VOL ≤ 0.6V @ 3 mA sink (VDD=1.8V), ≤ 0.8V @ 3 mA sink (VDD=4.5V). |+| 14 | NC | unconnected | No connect on MCP23017 (this pin is SPI Serial Out on MCP23S17). Leave floating or tie to ground. |+| 15 | A0 | input | Hardware slave address bit 0 (TTL buffer). Must be externally biased to VDD or VSS - do not leave floating. Sets bit A0 of the 7-bit I2C address 0100 A2 A1 A0. |+| 16 | A1 | input | Hardware slave address bit 1 (TTL buffer). Must be externally biased to VDD or VSS. |+| 17 | A2 | input | Hardware slave address bit 2 (TTL buffer). Must be externally biased to VDD or VSS. Combined with A1/A0 allows up to eight MCP23017 devices on one I2C bus. |+| 18 | RESET | input | Active-low hardware reset (Schmitt-trigger). Must be externally biased (tie to VDD directly or via a pull-up if unused). Minimum low pulse 1 µs; device is active 0 ns after RESET returns high; outputs go Hi-Z within 1 µs of RESET going low. |+| 19 | INTB | output | Interrupt output for PORTB. Configurable via IOCON as active-high, active-low, or open-drain. Can be mirrored with INTA when IOCON.MIRROR=1. VOL ≤ 0.6V @ 1.6 mA sink (VDD=4.5V). |+| 20 | INTA | output | Interrupt output for PORTA. Configurable via IOCON as active-high, active-low, or open-drain. Can be mirrored with INTB when IOCON.MIRROR=1. |+| 21 | GPA0 | bidirectional | PORTA bit 0 bidirectional I/O. Configurable per-pin as input or output; supports interrupt-on-change and internal ~75 µA weak pull-up to VDD. IOL up to 8.0 mA @ VDD=4.5V. |+| 22 | GPA1 | bidirectional | PORTA bit 1 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 23 | GPA2 | bidirectional | PORTA bit 2 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 24 | GPA3 | bidirectional | PORTA bit 3 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 25 | GPA4 | bidirectional | PORTA bit 4 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 26 | GPA5 | bidirectional | PORTA bit 5 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 27 | GPA6 | bidirectional | PORTA bit 6 bidirectional I/O with optional interrupt-on-change and weak pull-up. |+| 28 | GPA7 | bidirectional | PORTA bit 7 bidirectional I/O with optional interrupt-on-change and weak pull-up. |++## Key specifications++| Parameter | Value |+|---|---|+| Type | I2C 16-bit I/O expander |+| I/O lines | 16 (ports GPA0-7, GPB0-7) |+| Bus | I2C up to 1.7 MHz |+| Address pins | A0-A2 (8 per bus) |+| Per-pin features | direction, pull-up, polarity, interrupt |+| Interrupts | INTA + INTB (configurable) |+| Supply voltage | 1.8-5.5 V |+| Package | SOIC-28 |++## Ordering variants++- `MCP23017-E/SO (SOIC-28)`+- `MCP23017-E/SP (SPDIP-28)`++## CAD (KiCad official)++- Symbol: `Interface_Expansion:MCP23017x-x-SO`+- Footprint: `Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm`+- 3D model: SOIC-28W (KiCad packages3D)++## Provenance++Data extracted from the manufacturer datasheet, not a distributor listing:++- **Datasheet:** [Microchip Technology datasheet](https://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf) (42 pp, sha256 `14159c6f5655e943`, retrieved 2026-08-17, tier: manufacturer)+- **Extractor:** `ds2sf` (Claude). Every pin and dimension is cited to a datasheet page; it refuses to fabricate.+- **CAD:** KiCad official libraries (CC-BY-SA 4.0).++[Datasheet PDF](docs/mcp23017-datasheet.pdf)
docs/hero.pngadded⋯ 1 unchanged line ⋯
docs/mcp23017-datasheet.pdfadded⋯ 1 unchanged line ⋯
mcp23017.glbadded⋯ 1 unchanged line ⋯
mcp23017.kicad_modadded+420@@ -0,0 +1,420 @@+(footprint "SOIC-28W_7.5x17.9mm_P1.27mm"+ (version 20260206)+ (generator "kicad-footprint-generator")+ (layer "F.Cu")+ (descr "SOIC, 28 Pin (JEDEC MS-013AE, https://www.analog.com/media/en/package-pcb-resources/package/35833120341221rw_28.pdf)")+ (tags "SOIC SO")+ (property "Reference" "REF**"+ (at 0 -9.9 0)+ (layer "F.SilkS")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "Value" "SOIC-28W_7.5x17.9mm_P1.27mm"+ (at 0 9.9 0)+ (layer "F.Fab")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "KiLib_Generator" "package/gullwing"+ (at 0 0 0)+ (layer "F.SilkS")+ (hide yes)+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (attr smd)+ (duplicate_pad_numbers_are_jumpers no)+ (fp_line+ (start -3.86 -9.06)+ (end 3.86 -9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start -3.86 -8.815)+ (end -3.86 -9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start -3.86 9.06)+ (end -3.86 8.815)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 -9.06)+ (end 3.86 -8.815)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 8.815)+ (end 3.86 9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 9.06)+ (end -3.86 9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_poly+ (pts+ (xy -4.65 -8.82)+ (xy -4.99 -9.29)+ (xy -4.31 -9.29)+ )+ (stroke+ (width 0.12)+ (type solid)+ )+ (fill yes)+ (layer "F.SilkS")+ )+ (fp_line+ (start -5.93 -8.81)+ (end -4 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -5.93 8.81)+ (end -5.93 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 -9.2)+ (end 4 -9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 -8.81)+ (end -4 -9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 8.81)+ (end -5.93 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 9.2)+ (end -4 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 -9.2)+ (end 4 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 -8.81)+ (end 5.93 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 8.81)+ (end 4 9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 9.2)+ (end -4 9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 5.93 -8.81)+ (end 5.93 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 5.93 8.81)+ (end 4 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_poly+ (pts+ (xy -2.75 -8.95)+ (xy 3.75 -8.95)+ (xy 3.75 8.95)+ (xy -3.75 8.95)+ (xy -3.75 -7.95)+ )+ (stroke+ (width 0.1)+ (type solid)+ )+ (fill no)+ (layer "F.Fab")+ )+ (fp_text user "${REFERENCE}"+ (at 0 0 0)+ (layer "F.Fab")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (pad "1" smd roundrect+ (at -4.65 -8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "2" smd roundrect+ (at -4.65 -6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "3" smd roundrect+ (at -4.65 -5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "4" smd roundrect+ (at -4.65 -4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "5" smd roundrect+ (at -4.65 -3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "6" smd roundrect+ (at -4.65 -1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "7" smd roundrect+ (at -4.65 -0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "8" smd roundrect+ (at -4.65 0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "9" smd roundrect+ (at -4.65 1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "10" smd roundrect+ (at -4.65 3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "11" smd roundrect+ (at -4.65 4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "12" smd roundrect+ (at -4.65 5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "13" smd roundrect+ (at -4.65 6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "14" smd roundrect+ (at -4.65 8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "15" smd roundrect+ (at 4.65 8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "16" smd roundrect+ (at 4.65 6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "17" smd roundrect+ (at 4.65 5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "18" smd roundrect+ (at 4.65 4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "19" smd roundrect+ (at 4.65 3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "20" smd roundrect+ (at 4.65 1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "21" smd roundrect+ (at 4.65 0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "22" smd roundrect+ (at 4.65 -0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "23" smd roundrect+ (at 4.65 -1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "24" smd roundrect+ (at 4.65 -3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "25" smd roundrect+ (at 4.65 -4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "26" smd roundrect+ (at 4.65 -5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "27" smd roundrect+ (at 4.65 -6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "28" smd roundrect+ (at 4.65 -8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (embedded_fonts no)+ (model "${KICAD10_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-28W_7.5x17.9mm_P1.27mm.step"+ (offset+ (xyz 0 0 0)+ )+ (scale+ (xyz 1 1 1)+ )+ (rotate+ (xyz 0 0 0)+ )+ )+)
mcp23017.kicad_symadded+611@@ -0,0 +1,611 @@+(kicad_symbol_lib+ (version 20251024)+ (generator "kicad_symbol_editor")+ (generator_version "10.0")+(symbol "MCP23017x-x-SO"+ (exclude_from_sim no)+ (in_bom yes)+ (on_board yes)+ (in_pos_files yes)+ (duplicate_pin_numbers_are_jumpers no)+ (property "Reference" "U"+ (at -9.398 24.638 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Value" "MCP23017x-x-SO"+ (at 11.176 24.638 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Footprint" "Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm"+ (at 5.08 -25.4 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ (justify left)+ )+ )+ (property "Datasheet" "https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23017-Data-Sheet-DS20001952.pdf"+ (at 5.08 -27.94 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ (justify left)+ )+ )+ (property "Description" "16-bit I/O expander, I2C, interrupts, w pull-ups, GPA7/GPB7 output only (https://microchip.my.site.com/s/article/GPA7---GPB7-Cannot-Be-Used-as-Inputs-In-MCP23017), SOIC-28"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_keywords" "Microchip port-expander GPIO"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_fp_filters" "SOIC*7.5x17.9mm*P1.27mm*"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (symbol "MCP23017x-x-SO_0_1"+ (rectangle+ (start -10.16 22.86)+ (end 10.16 -22.86)+ (stroke+ (width 0.254)+ (type default)+ )+ (fill+ (type background)+ )+ )+ )+ (symbol "MCP23017x-x-SO_1_1"+ (pin bidirectional line+ (at 12.7 -2.54 180)+ (length 2.54)+ (name "GPB0"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -5.08 180)+ (length 2.54)+ (name "GPB1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -7.62 180)+ (length 2.54)+ (name "GPB2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -10.16 180)+ (length 2.54)+ (name "GPB3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -12.7 180)+ (length 2.54)+ (name "GPB4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -15.24 180)+ (length 2.54)+ (name "GPB5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -17.78 180)+ (length 2.54)+ (name "GPB6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at 12.7 -20.32 180)+ (length 2.54)+ (name "GPB7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "8"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 25.4 270)+ (length 2.54)+ (name "V_{DD}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "9"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 -25.4 90)+ (length 2.54)+ (name "V_{SS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "10"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin no_connect line+ (at -10.16 15.24 0)+ (length 2.54)+ (hide yes)+ (name "NC"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "11"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 20.32 0)+ (length 2.54)+ (name "SCK"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "12"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at -12.7 17.78 0)+ (length 2.54)+ (name "SDA"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "13"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin no_connect line+ (at -10.16 12.7 0)+ (length 2.54)+ (hide yes)+ (name "NC"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "14"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -15.24 0)+ (length 2.54)+ (name "A0"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "15"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -17.78 0)+ (length 2.54)+ (name "A1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "16"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -20.32 0)+ (length 2.54)+ (name "A2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "17"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -2.54 0)+ (length 2.54)+ (name "~{RESET}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "18"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin tri_state line+ (at -12.7 2.54 0)+ (length 2.54)+ (name "INTB"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "19"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin tri_state line+ (at -12.7 5.08 0)+ (length 2.54)+ (name "INTA"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "20"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 20.32 180)+ (length 2.54)+ (name "GPA0"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "21"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 17.78 180)+ (length 2.54)+ (name "GPA1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "22"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 15.24 180)+ (length 2.54)+ (name "GPA2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "23"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 12.7 180)+ (length 2.54)+ (name "GPA3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "24"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 10.16 180)+ (length 2.54)+ (name "GPA4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "25"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 7.62 180)+ (length 2.54)+ (name "GPA5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "26"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 5.08 180)+ (length 2.54)+ (name "GPA6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "27"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at 12.7 2.54 180)+ (length 2.54)+ (name "GPA7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "28"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ )+ (embedded_fonts no)+ )+)
package.jsonadded+31@@ -0,0 +1,31 @@+{+ "slug": "mcp23017",+ "version": "0.1.0",+ "type": "component",+ "description": "Microchip 16-bit I2C I/O expander, SOIC-28. Two 8-bit ports, interrupts, configurable pull-ups, 3 address pins. Datasheet-verified.",+ "tags": [+ "component",+ "interface",+ "io-expander",+ "i2c",+ "gpio",+ "soic-28",+ "microchip"+ ],+ "dependencies": {},+ "hero": {+ "type": "image",+ "path": "docs/hero.png"+ },+ "files": [+ "page.json",+ "README.md",+ "mcp23017.kicad_sym",+ "mcp23017.kicad_mod",+ "mcp23017.glb",+ "docs/hero.png",+ "docs/mcp23017-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ]+}
page.json+28−7@@ -4,8 +4,16 @@ "slug": "mcp23017", "title": "MCP23017", "brief": "16-bit I2C I/O expander, DIP-28",- "version": "1.0.0",- "tags": [],+ "version": "0.1.0",+ "tags": [+ "component",+ "interface",+ "io-expander",+ "i2c",+ "gpio",+ "soic-28",+ "microchip"+ ], "license": "MIT", "component": { "mpn": "MCP23017",@@ -20,18 +28,31 @@ }, "readme": "# MCP23017\n\n16-bit I2C I/O expander, DIP-28\n\nThe MCP23017 is a 16-bit I/O expander with I2C interface from Microchip. Provides 16 additional GPIO pins configurable as input or output with interrupt capability. Up to 8 devices on one bus (128 extra GPIOs).", "author": {- "id": "695820315b5f1e4db2fcf602", "name": "Kyle Bergstedt", "email": "[email protected]" },- "visibility": {- "public": true+ "visibility": "public",+ "hero": {+ "type": "image",+ "path": "docs/hero.png" },- "hero": null, "sample_prompts": [], "discovery_triggers": [], "discovery_pitch": null, "metadata": {}, "created_at": "2026-05-28T05:33:57.303Z",- "updated_at": "2026-05-28T05:33:57.303Z"+ "updated_at": "2026-05-28T05:33:57.303Z",+ "description": "Microchip 16-bit I2C I/O expander, SOIC-28. Two 8-bit ports, interrupts, configurable pull-ups, 3 address pins. Datasheet-verified.",+ "dependencies": {},+ "files": [+ "page.json",+ "README.md",+ "mcp23017.kicad_sym",+ "mcp23017.kicad_mod",+ "mcp23017.glb",+ "docs/hero.png",+ "docs/mcp23017-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ] }