LED Shim Remote I/O error

Hi folks,

Just received some of the new LED shims and after doing a full install via curl and making sure i2c is on I’m getting the following error in my code:


ledshim.clear()
ledshim.set_pixel(0,255,0,0)
ledshim.show()
Traceback (most recent call last):
File “”, line 1, in
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 243, in show
self.setup()
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 93, in setup
raise e
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 89, in setup
self._reset()
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 269, in _reset
self._sleep(True)
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 274, in _sleep
return self._register(_CONFIG_BANK, _SHUTDOWN_REGISTER, not value)
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 299, in _register
self._bank(bank)
File “/usr/lib/python3/dist-packages/ledshim/is31fl3731.py”, line 294, in _bank
self.i2c.write_i2c_block_data(self.address, _BANK_ADDRESS, [bank])
OSError: [Errno 121] Remote I/O error


FWIW: I’m running the latest lite version of raspbian stretch with everything updated.

I would appreciate any help or suggestions that you may have.

Also: I see the function reference, which your product page points to:
http://docs.pimoroni.com/ledshim/
is not available.

Thanks!

This is probably a “wiring” error (or rather a problem with the electrical connection between the Pi’s pins and the shim itself), could you snap a photo of how you have the LED shim installed?

Thanks for your quick reply! I’m enclosing a snapshot below of how the LED shim is attached to my Pi. As you might be able to make out it is attached to Pico Hat Hacker soldered onto the male header of a Pi Zero w. Until now I’ve been using a Blinkt! attached to this Pico/Pi combination with no problems.

Note: In the photo I’ve just placed a 2x20 female header block on top of the LED shim to make sure that it was fitting snuggly… but alas to no avail.

$ i2cdetect -y 1 displayed this:


pi@plutus02:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --

Is that normal?

Thanks again for your help!

It’s quite possible there’s a dry joint or another soldering issue somewhere on the i2c pins of the Pico Hat Hacker. Are you able to get a photo from the other side?

Blinkt! uses different pins and is somewhat more fault tolerant.

It could also be a flaky connection on behalf of the LED SHIM itself, but we’ll try to eliminate the other possible causes first.

Okay thanks! Here below is a photo of the other side… in the meantime I tried another LED Shim on the same board (I received 3 this morning) but had no luck. So it either is a soldering issue or I’m missing something in software. Looking forward to hearing what you think (and learning!)

Your soldering looks tip top- try removing the female header and tilting the LED SHIM slightly to see if there’s a point at which it makes contact.

Do you have any other i2c devices to test with?

  1. Re: Tilting the LED shim… can I safely do that while the pi is powered up?

  2. Since I’m ssh-ing into the pi I assume I can best check if ‘contact is made’ by repeatedly checking i2cdetect yes?

  3. Good idea… I do have some other i2c devices but they all are being used at the moment. But I have a new pi zero I can solder some header on this evening and then test with one of the LED Shims.

Thanks for the support so far!

That looks like an extruded aluminum beam frame that its mounted too? I’d make sure nothing is touching the beams and shorting out. Yes, nice looking soldering job.
No, that i2c doesn’t look right, it shouldn’t be blank. The LED shim uses address 0x75:

Pico hat hacker soldered to the Pi zero GPIO? Hard to tell from the picture?

@alphanumeric

Indeed, I’m using MakerBeamXL for my projects. And yes I’m being careful about potential short circuits (using stand-offs) thanks!

I kind of figured you had it under control, but asked anyway just to be sure ;)
I’ve used the OpenBeam stuff on some of my projects. Also black anodized. Mine is 15 x 15 mm I think? Yours looks thicker. It makes for some nice looking projects, a big boys mechano set of sorts I guess. =)

MakerBeam XL is also 15 x 15 mm. It’s made by the same people who make OpenBeam but it has a different profile and the ends are tapped for 3mm screws. The profile has been designed to also interface with FischerTechnik blocks which I find very handy…

Cool, I bought one big kit originally, then some more brackets etc a few years latter. Just odds and ends left now. I made some cool stuff with it though. I book marked that site, thanks for the link. Will be buying more at some point. I did this with the original kit, https://1drv.ms/f/s!AjOYwiwlwDtpgq9LUHdGiiRpn7dr2Q and this https://1drv.ms/f/s!AjOYwiwlwDtpgq9V6GJUlAfcPpnD7A with the left over bits.
Please post some good pics of your project when its done. =)

Yes, as long as it’s gentle and it’s causing the pins to potentially make contact with the holes in the SHIM. I’m trying to figure out if the connector is just out of tolerance for making a good connection on your pins, or if something else is awry. I’d give it a wiggle while running i2c-detect to see what I can see.

You’d be surprised what you can get away with on the Pi while it’s powered on- I almost never power off to swap out HATs unless I accidentally short or brown out my Pi while doing so :D (As long as you don’t short 5v and 3.3v power or logic pins together, you’re generally okay)

@gadgetoid

Well I tried wiggling… but without any luck. I then decided to remove the pi from my project and re-solder the specific i2c pins and power/ground pins (on both pi zero and pico HAT) as indicated here:

https://pinout.xyz/pinout/led_shim

I then tried testing the LED Shim on the pi zero header pins directly… without success.

Next steps for me is to solder some header pins on a brand new pi zero, set it up with a fresh SD card and use that for testing… will let you know how that goes.

Thanks again for your help and support!

Yeah, I have a couple of headers here that are on the flimsy side, really easy to bend the male PINs. I’m pretty sure the pins are thinner than they should be. They mate with female GPIO headers OK if your careful plugging them in. I’d be very surprised if they worked with something like the LED shim that relies on a pinch fit. Something to be aware of. You need good quality parts all around some times. One weal link can just end up messing up your day and leave you scratching your head.

@gadgetoid

Well… long story short…

I finally got the LED Shim to work. The solution required some judicious header pin bending, specifically GPIO pins 2 and 3 (the i2c SDA and SCL pins).

Simply wiggling—or bending and holding the shim itself in various positions—did not result in i2cdetect registering the address. I really needed to bend the two i2c pins down/away from the top/other row of pins. This was the case on not one—but two different pi zero boards.

@alphanumeric: Point noted concerning header pin quality and ‘thickness’, however I’ve been using Pimoroni’s own 2x20 header (which I indeed find better quality than what I can obtain here in the Netherlands from the local supplier).

The LED shims are really lovely and it is great to have more than 4 times the number of leds than are on the Blinkt!, but to be honest, I can’t see using them without a great deal of fiddling and futzing. In my own use case I’m going to order some more female header to solder them directly to. YMMV.

Thank you again for your support and suggestions. I’ve certainly learned something and hope this thread might help someone else who comes along with the same problem.

cringe - yikes! Yeah this should not be necessary at all. The holes are very finely tuned on the SHIM header, and I think these have been manufactured a little too loose. This is frustrating because I went through quite a few of these during testing/software development and didn’t have a single connection problem!.. well apart from when I installed it upside-down and burned myself (we fixed that failure mode).

I agree (albeit I’m biased) the shims are lovely, and the tiny LEDs are amazing, but it kinda defeats the whole point if you have to solder them! We’ve already got a good idea of what must have gone awry and will investigate. Stay tuned!

@gadgetoid

Thanks for your reply… I should also mention that I believe the 3 that I just received were probably from the ‘latest batch’ i.e. when I first noticed the shim for sale you were already ‘out of stock’. As soon as you had them back in I made my order…

1 Like

Just ordered an LED shim. Won’t have it for a week or more though, snail mail. I’ll be soldering mine to the Pico Hat Hack3r board. I’ll be using the mounting holes on Pico Hat to mount my LED shim behind a Ninja Diffuser. Then a male 90 degree header on the other row of GPIO pins of Pico Hat. Then female to female jumpers to a Proto Hat to i2c, 5V 3.3V and Ground. The LED shim will be vertical beside a sense hat. Mounting it right to the GPIO just doesn’t work for what I want to do. I’ll post back how I make out.