IOError on any attempt to use buttonShim


#1

On any attempt to use the buttonShim, I get an IOError: [Errno 121] Remote I/O error

Even a super-trivial application like this:

#!/usr/bin/env python

import buttonshim

buttonshim.set_pixel(0xFF, 0x00, 0xFF

yields

Traceback (most recent call last):
File “shimLight.py”, line 12, in
buttonshim.set_pixel(0xFF, 0x00, 0xFF)
File “/usr/lib/python2.7/dist-packages/buttonshim/init.py”, line 376, in set_pixel
setup()
File “/usr/lib/python2.7/dist-packages/buttonshim/init.py”, line 188, in setup
_bus.write_byte_data(ADDR, REG_CONFIG, 0b00011111)
IOError: [Errno 121] Remote I/O error

What am I missing?


#2

Sounds like it’s not making a good electrical connection- what Pi are you using? How’s it fit to the header?


#3

The shim is sandwiched between a Pi Zero and a Scroll Phat HD. I have male headers soldered to the Pi Zero and female headers on the ScrollPhatHD. The ScrollPhatHD works perfectly but the Button Shim does nothing. See the photo below.


#4

Is the shim soldered to the male GPIO header? I think it needs to be soldered?


#5

I hadn’t soldered it; I had hoped to preserve flexibility to move it to another Pi later. But if it requires soldering, I guess I will solder it.

Addendum: I soldered it. No luck until I also tamped the ScrollPhatHD on as well. I must have had some marginal connected in there that the extra pressure solved.

Summary: yes, solder it.


#6

The Ledshim is as far as I know the only one that is designed to work without having to be soldered. I have two and soldered them anyway.
This won’t help you this time but you could have soldered a stacking header on it and it would then be transferable. What ever pHat or Hat you put on top of it will sit much higher though so its a tradeoff.
Or just a female header if its the only thing plugged into the GPIO.