Inkplate 6 drawing 180 mA when P-button pressed with audible noise

Customer:

I’m using external buttons for the Inkplate 6 to navigate the screen. These buttons are connected to P0-0, P0-1 and GPIO36 for wake-up. When running normally, it draws around 40 mA. However, when I press a P-button, it starts drawing 180 mA and produces an audible hissing-noise from the circuit. Only “cure” is a reboot. Is there a way to mitigate this?

Originally submitted via email support on 29 September 2023. Migrated to the forum for community visibility.

Soldered Support:

When declaring those pins as inputs, check whether you’re using IO_EXT_ADDR for the external IO expander.

IO Expander 1 is used for driving Inkplate’s display and for other stuff, but some pins are available. When setting pins in that IO Expander, the argument for the address of the expander is IO_INT_ADDR. The external IO expander is IO_EXT_ADDR.

Explicitly set the pins for IO expander 2:

display.pinModeIO(IO_PIN_A0, INPUT, IO_EXT_ADDR);
display.pinModeIO(IO_PIN_A1, INPUT, IO_EXT_ADDR);

You can also use INPUT_PULLUP, which could resolve your issue.

Then use:

display.digitalReadIO(IO_PIN_A0, IO_EXT_ADDR);

Attachment omitted in migration: image.png

Customer:

I haven’t managed to solve the problem yet. It still draws too many amps, but I have some things to test out that might shed some light over it, or at least isolate the problem further.

Attachment omitted in migration: image.png

Soldered Support:

Let me know when you finish testing. These kinds of issues are often something in the pin configuration. I definitely recommend you use any available pins on the second GPIO expander rather than the first one.

Customer:

It was a configuration error from my side. Thank you for your patience.