PCA9554 I/O Expander¶
The PCA9554 component allows you to use PCA9554, PCA9554A or PCA9536 I/O expanders in ESPHome. It uses I²C Bus for communication.
Once configured, you can use any of the 8 pins (PCA9554, PCA9554A) or 4 pins (PCA9536) 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.
The 7 bit I²C device address ranges are:
For the PCA9554 and PCA9554A, the actual choice of the I²C device address depends on state of the 3 address pins. Please refer to the individual datasheets linked at the bottom of the page for further details to set the address.
Up to eight PCA9554 and an additional eight PCA9554A devices can reside on the same I²C bus. Please note that only one PCA9536 device is allowed per I²C bus due to its fixed address.
The PCA9554 and PCA9554A provide 8 bits of GPIO’s (pin numbers 0-7).
The PCA9536 provides 4 bits of GPIO’s (pin numbers 0-3).
Any option accepting a Pin Schema can theoretically be used, but some more complicated components that do communication through this I/O expander will not work.
# Example configuration entry pca9554: - id: 'pca9554a_device' address: 0x38 # Individual outputs switch: - platform: gpio name: "PCF9554A Pin #0" pin: pca9554: pcf9554a_device # Use pin number 0 number: 0 # One of INPUT or OUTPUT mode: output: true inverted: false
id (Required, ID): The id to use for this
address (Optional, int): The I²C address of the driver. Defaults to
Pin configuration variables:¶
pca9554 (Required, ID): The id of the
pca9554component of the pin.
number (Required, int): The pin number.
inverted (Optional, boolean): If all read and written values should be treated as inverted. Defaults to
mode (Optional, string): A pin mode to set for the pin at. One of