Pico display pack buttons unresponsive with Pico & Pico W

I am having troubles getting buttons B and Y on my Pico Display Packs to work with either the button_test.py example or my own code that uses interrupts. I see the resistance drop to zero when I measure between GPIO 13 & ground + pushing B and GPIO 15 & ground + pushing Y.

Any suggestions on new directions? I’ve tried the four combinations of a Pico and Pico W and two Display Packs. I’ve tried adjusting header pins. Here’s my code snippet:

button_A = machine.Pin(12, machine.Pin.IN, machine.Pin.PULL_UP)
button_B = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)
button_X = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP)
button_Y = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
button_A.irq(handler=press, trigger=machine.Pin.IRQ_FALLING)
button_B.irq(handler=press, trigger=machine.Pin.IRQ_FALLING)
button_X.irq(handler=press, trigger=machine.Pin.IRQ_FALLING)
button_Y.irq(handler=press, trigger=machine.Pin.IRQ_FALLING)

Any thoughts?

Did you solder the headers? Or were they a with header version?

I have several Display Packs, V1 and V2. So far no issues with the buttons. I use the button_test.py example file for testing.

Thanks for the response.

I soldered the headers on both the Pico W (no Pico WH yet) and classic Pico.

I updated the firmware to pimoroni-picow-v1.19.3-micropython.uf2 this evening in case there was something funny with my previous version.

I see the resistance drop to zero on button press even when a Pico is in the Pico Display Pack (measuring from the pads on the Pico Display).

I’ll keep investigating. I must have made a couple connections where there shouldn’t be any on that end of the boards.

The place to measure for a ground on button press is on the Pico. If it’s a soldering issue, you have a better chance of finding it measuring there. Also make sure pin 18 / ground, has a good connection. It may be the ground used for those two buttons, it’s right between those two pins.

Good call. I hadn’t checked that until you suggested it. The connection is solid.

Doubled checked this also and 16–18 goes to ~0 Ω when A is pressed, 17–18 goes to ~0 Ω when B is pressed, and so on.

I’m sure I’ve done something dodgy, but further checks will need to wait for another evening. 😴

Got a fresh Pico W today, freshly soldered headers and all is well with both Pico Display Packs. I probably cooked something when desoldering the previous headers.

1 Like

It sucks that it was a hardware issue, but at least you know what was wrong now. And have a working setup. Trying to unsolder a 20 or 40 pin header hardly ever goes well, even if you know what your doing. With the equipment I have home, its a bit of a daunting task.