PI4IOE5V6408 8-Bit I2C I/O Expander

The PI4IOE5V6408 component allows you to use the Diodes Incorporated PI4IOE5V6408 8-bit I2C I/O expander in ESPHome using the I²C Bus for communication.

The PI4IOE5V6408 is a low-voltage 8-bit I/O port expander that operates at 1.65V to 5.5V. It provides general-purpose remote I/O expansion for most microcontroller families via the I2C interface. The device supports both pull-up and pull-down resistors on all I/O pins, and includes interrupt capability for input changes.

Once configured, you can use any of the 8 pins (0-7) within 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
pi4ioe5v6408:
  - id: 'pi4ioe_hub'

# Individual outputs
switch:
  - platform: gpio
    name: "PI4IOE5V6408 Pin 0"
    pin:
      pi4ioe5v6408: pi4ioe_hub
      number: 0

# Individual inputs
binary_sensor:
  - platform: gpio
    name: "PI4IOE5V6408 Pin 1"
    pin:
      pi4ioe5v6408: pi4ioe_hub
      number: 1

Configuration variables

  • id (Required, ID): The id to use for this pi4ioe5v6408 component.
  • address (Optional, int): The I²C address of the device. Defaults to 0x43 .
  • reset (Optional, boolean): Whether to reset the device state during setup. When true (default), all pins are configured as inputs with high impedance during setup. When false , the component will read the current state from the device registers. Defaults to true .

Pin configuration variables

  • pi4ioe5v6408 (Required, ID): The id of the pi4ioe5v6408 component of the pin.

  • number (Required, int): The pin number. Valid range is 0-7.

  • inverted (Optional, boolean): If all read and written values should be treated as inverted. Defaults to false .

  • mode (Optional, Pin Mode): A pin mode to set for the pin. One of:

    • INPUT - Configure the pin as an input.
    • OUTPUT - Configure the pin as an output.
    • PULLUP - Enable internal pull-up resistor (input mode only).
    • PULLDOWN - Enable internal pull-down resistor (input mode only).

Examples:

GPIO Switch Example

switch:
  - platform: gpio
    name: "Relay 1"
    pin:
      pi4ioe5v6408: pi4ioe_hub
      number: 0
      mode:
        output: true

GPIO Binary Sensor Example

binary_sensor:
  - platform: gpio
    name: "Button 1"
    pin:
      pi4ioe5v6408: pi4ioe_hub
      number: 1
      mode:
        input: true
        pullup: true

GPIO Output with Inverted Logic

switch:
  - platform: gpio
    name: "LED Strip"
    pin:
      pi4ioe5v6408: pi4ioe_hub
      number: 2
      mode:
        output: true
      inverted: true

See Also