Feature Request - PME
Posted: 20 May 2023, 01:01
Hi, not sure where I should start this topic. Here or github.
I've being looking for ways to extend my IOs and found that PME is by far the best solution. However, there are some flaws.
I need almost 48 IOs distributed in 4 different boards. The I2C is a perfect solution since I can wire those boards using I2C bus. Even better, I can use an isolation I2C device. No short propagation or ESD.
I can also get the freedom to set PWM and make analog reads if needed in the future.
Here are a list of restrictions marked by priority:
1_[High] PME doesn't allow me to adjust the I2C address. It is fixed in 0x7f. I can only use one PME.
2_[High] PME add only one device. For a 48 IOs, would be better to add only 4 devices, in which 12 digital ports are enabled by device. Otherwise, I'm stuck in 12 devices.
3_[Low] Request are performed by ESPEasy only. Task must be triggered by time.
4_[Medium] Can't use other better suitable boards, such as bluepill / blackpill. Commands could be adjusted by string? PA1 instead of a Int number?
Before I start trying to change the code, I've decided to post here first to get some guidance and help. Even better, to understand if this is the better solution. For instance, in the past I've used TaskValueSet and UART to communicate an Arduino and ESPEasy. The problem now is that I want to use 4 arduinos. Before someone asks, why I will not use 4 ESP boards. I need to use ethernet cable and I just can't simply add four cables or a switch in the place. It is too complicated. I'm not planing to make a gateway with one board. Looking for wired solutions.
I've being looking for ways to extend my IOs and found that PME is by far the best solution. However, there are some flaws.
I need almost 48 IOs distributed in 4 different boards. The I2C is a perfect solution since I can wire those boards using I2C bus. Even better, I can use an isolation I2C device. No short propagation or ESD.
I can also get the freedom to set PWM and make analog reads if needed in the future.
Here are a list of restrictions marked by priority:
1_[High] PME doesn't allow me to adjust the I2C address. It is fixed in 0x7f. I can only use one PME.
2_[High] PME add only one device. For a 48 IOs, would be better to add only 4 devices, in which 12 digital ports are enabled by device. Otherwise, I'm stuck in 12 devices.
3_[Low] Request are performed by ESPEasy only. Task must be triggered by time.
4_[Medium] Can't use other better suitable boards, such as bluepill / blackpill. Commands could be adjusted by string? PA1 instead of a Int number?
Before I start trying to change the code, I've decided to post here first to get some guidance and help. Even better, to understand if this is the better solution. For instance, in the past I've used TaskValueSet and UART to communicate an Arduino and ESPEasy. The problem now is that I want to use 4 arduinos. Before someone asks, why I will not use 4 ESP boards. I need to use ethernet cable and I just can't simply add four cables or a switch in the place. It is too complicated. I'm not planing to make a gateway with one board. Looking for wired solutions.