esphome / esphome/feature-requests
Support for AWINIC AW9523 GPIO Expander and LED Driver
- 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.