esphome / esphome/feature-requests

Support for AWINIC AW9523 GPIO Expander and LED Driver

Open
#2,263 5 comments 1 reaction 0 assignees View on GitHub
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem you have/What new integration you would like**

No support for AWINIC [AW9523 GPIO Expander and LED Driver](https://pdf1.alldatasheet.com/datasheet-pdf/view/1148542/AWINIC/AW9523B.html) in the main branch.

**Please describe your use case for this integration and alternatives you've tried:**

- AW9523 GPIO Expander is used in the [M5Stack CoreS3 ESP32-S3 ](https://docs.m5stack.com/en/core/CoreS3) IoT controller.

I tried this componant:
- Tested with [Adafruit AW9523 GPIO Expander and LED Driver Breakout](https://www.adafruit.com/product/4886)

**Additional context**

Expand your project possibilities, with the Adafruit AW9523 GPIO Expander and LED Driver Breakout - a cute and powerful I2C expander with a lot of tricks up its sleeve.

GPIO expanders work like this: you have a board with some number of GPIO but not enough for your project - maybe you need more buttons or LEDs. [You could upgrade to a board with massive number of GPIO like the Grand Central](https://www.adafruit.com/?q=grand+central&sort=BestMatch), or you could pop on one of these boards. Connect it over I2C and then you can send/receive I2C commands to control the GPIO pins to write and read them. It's going to be slower than direct GPIO access, but maybe that doesn't matter if it takes a millisecond instead of a microsecond. You only need the two I2C pins, and you can even share the I2C port with other sensors and devices. Heck, you can even add more expanders for massive I/O control!

The AW9523 is a twist on the common I2C expander:

- First up, its very affordable - who doesn't love that?
- It has 16 I/O pins, that'll double most boards' pin count
- Four I2C address options, so you can connect 4 expanders to one bus
- Each pin can be an input or an output
- IRQ output can alert you when input pins change value
- This chip does not support internal pull-ups or pull-downs, you will need to add an external resistor if you need one
- However, it does have 8-bit linear constant-current LED dimming support so you can connect LEDs without resistors and have great looking dimming without PWM
- The first 8 pins can be configured as open drain (as a group)

**Doc**

- [Adafruit AW9523 GPIO Expander and LED Driver for Arduino](https://github.com/adafruit/Adafruit_AW9523)
- [IO Expander APIs](https://esp-cpp.github.io/espp/io_expander/index.html) » AW9523 I/O Expander
- [AW9523B datasheet](https://cdn-shop.adafruit.com/product-files/4886/AW9523+English+Datasheet.pdf)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.