MCP23Sxx I/O Expander

The Microchip MCP23Sxx series of general purpose, parallel I/O expansion for SPI bus applications. This is exactly the same API as the MCP23SXX I/O Expander except talks on the SPI bus

Supported Variants :

MCP23S08

The MCP23S08 component (datasheet, Digi-Key) has 8 GPIOs that can be configured independently.

# Example configuration entry
mcp23s08:
  - id: 'mcp23s08_hub'
    cs_pin: D8
    deviceaddress: 0

# Individual outputs
switch:
  - platform: gpio
    name: "MCP23S08 Pin #0"
    pin:
      mcp23s08: mcp23s08_hub
      # Use pin number 0
      number: 0
      # One of INPUT, INPUT_PULLUP or OUTPUT
      mode: OUTPUT
      inverted: False

# Individual inputs
binary_sensor:
  - platform: gpio
    name: "MCP23S08 Pin #1"
    pin:
      mcp23s08: mcp23s08_hub
      # Use pin number 1
      number: 1
      # One of INPUT or INPUT_PULLUP
      mode: INPUT
      inverted: False

Configuration variables:

  • id (Required, ID): The id to use for this MCP23S08 component.

  • cs_pin (Required, int): The SPI chip select pin to use

  • deviceaddress (Optional, int): The address of the chip. Defaults to 0.

MCP23S17

The MCP23S17 component allows you to use MCP23S17 I/O expanders (datasheet, Digi-Key) in ESPHome. It uses the SPI Bus for communication.

Once configured, you can use any of the 16 pins as pins for your projects. Within ESPHome they emulate a real internal GPIO pin and can therefore be used with many of ESPHome’s components such as the GPIO binary sensor or GPIO switch.

# Example configuration entry
mcp23s17:
  - id: 'mcp23s17_hub'
    cs_pin: D8
    deviceaddress: 0

# Individual outputs
switch:
  - platform: gpio
    name: "MCP23S17 Pin #0"
    pin:
      mcp23s17: mcp23s17_hub
      # Use pin number 0
      number: 0
      mode: OUTPUT
      inverted: False

# Individual inputs
binary_sensor:
  - platform: gpio
    name: "MCP23S17 Pin #1"
    pin:
      mcp23s17: mcp23s17_hub
      # Use pin number 1
      number: 1
      # One of INPUT or INPUT_PULLUP
      mode: INPUT_PULLUP
      inverted: False

Configuration variables:

  • id (Required, ID): The id to use for this MCP23S17 component.

  • cs_pin (Required, int): The SPI chip select pin to use.

  • deviceaddress (Optional, int): The address of the chip. Defaults to 0.