Hello, I’ve got a couple of these recently & have been working on creating an esphome config for it similar to what’s available for espmuse luxe/proto. I’ve been able to get the rotary encoder working but am struggling with the encoder button config, it’s listed as using the GPIO0 pin here:
Encoder
A=32
B=19
Button =0
when validating the config in esphome it appears that’s a strapping pin:
WARNING GPIO0 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
The docs I’ve read recommend only using this pin for output and I’m getting strange results using this config, if I remove the delay filters it rapidly flips on/off continuously:
Hello and welcome,
Short answer, IO0 could be used for input as long as there is no external pull-up/down resistor attached to it. This is working fine on our demo app with a debounce you have mentioned but I will give it a too on HA.
longer answer:
IO0 is indeed a specific pin that is used to put the device in bootloader mode if push on the button (state == 0) while turning the device reboot, then it allows to upload a new firmware. This is usually managed by the autoboot loader but I like to have IO0 button in case the auto bootloader fails for some reason.
Can you get it working with the display on ESPHome? When I was testing, the music was distorted every time on display refresh.
Please do post your full config when it’s up and running.
I can see that the IO0 button is working in HA using the yalm file of the PROTO, so I rewrote one on that base. Light, button, and music is working, I also added screen to display time.
The display seems to add some noise on the audio, pretty sure this is not hardware related as it is working with others apps.