Button Shim - Not detected

I am fully prepared to accept that my soldering will have caused this, as I have tried to solder/desolder/resolder this onto my Pi Zero W a number of times. I have been rather cautious about this as there is a small IC on the board right next to the pins that need soldering. Yikes.

Each time, though, I’ve not been able to get this to work. When I try to get one of the python examples to run, I get an error:

Traceback (most recent call last):
File “/home/paul/Pimoroni/button-shim/examples/rainbow.py”, line 16, in
File “/usr/local/lib/python3.9/dist-packages/buttonshim-0.0.2-py3.9.egg/buttonshim/init.py”, line 303, in on_press
File “/usr/local/lib/python3.9/dist-packages/buttonshim-0.0.2-py3.9.egg/buttonshim/init.py”, line 192, in setup
TimeoutError: [Errno 110] Connection timed out

If I run i2cdetect -y 1, nothing is listed.

I have tried testing continuity, mostly by seeing if there is continuity from the solder on the Shim to the pin base under the Pi. All seems good there.

Obviously, I’d like to get this working, and I’ve hit the edge of my knowledge on this kind of thing. What else should I be checking? i2c is enabled in /boot/config.txt

Shout I check for shorts between the GPIO pins? Are there, for example, cases where I would expect continuity to be there, or should all the used pins be isolated? I have checked quickly, and I think my contused soldering/desoldering has removed some of the masking from the board.

I have tried removing the SHIM from the Pi, but with no success. It seems to be well fixed there now, so my idea of removing it, and soldering it underneath the pi where I feel I can do less damage now has gone out of the window.


check your SDA/SCL against GND and 3V3. Check resistance, it should be very high against GND (no short) and against 3V3 the value of the pullups (I think the board relies on the internal pullups of the Pi).

Otherwise, just to be sure, connect another I2C device, just to see if i2cdect will find it.

Are these the pins you soldered?
Button SHIM at Raspberry Pi GPIO Pinout

EDIT: Did the Pi Zero come with a header, or did you solder it on?

Thanks both. Still no luck - even though I do get the resistance values @bablokb advises.

I put my eInk hat on the Pi over the shim, but that does nothing now, so I expect that I’ve got a short somewhere.

@alphanumeric - Yes - those are the pins I’ve soldered. It was a Pi zero with pre-soldered headers.

I think my next step will be to desolder and re-solder after masking the exposed copper with some paint (or nail varnish - I understand that’s pretty good for this) in a couple of places, just incase that’s doing something.

Something else to try, is to solder all the pins that are ground pins. Just in case there is one thats needed, but got missed in the pinout. I’d do pin 9 for sure. And both +5V pins.

I’ll give that a go, thanks. As I said, I have some exposed copper around some of the pins which I felt were causing a short - a continuity test on the copper and some pins and a look through a magnifying glass show that this may be the case, so I’ll try to rectify that while soldering the pins you suggest.

It would probably be a good idea to post a picture of your soldering when your done.

HI all,
thanks for the help and suggestions. It’s been a while, but life got in the way of getting some buttons on a Pi to work.

Anyway, during that time, I figured that I may have damaged the Pi Zero, so I got another one. As PiMoroni was having a sale, I picked up the hammer header kit and a new ButtomShim (which I fear is now permanently fixed to the original Zero - until I get round to removing the headers).

It seems that this new stuff is working! Actually, there was also a small shutdown script that I had totally forgotten about which was shutting the system down whenever I pressed a button, and it was listening to GPIO 3, and that was clashing with the shim.

So the initial problems could have been all software, not hardware. I think my attempts and de-soldering and desoldering the shim made things worse.

A quick test of the rainbow.py script in the examples folder shows it working as expected, so I think this is it. It’s working.

Thanks again, all.

1 Like