My raspi 4b is running Ubuntu 24.04. I have mounted the shim, correctly as far as I can tell, on the raspi pins. There is no way to be sure. I’ve tried two different i2c boards and neither show a sign of life.
ls /dev/i2*
/dev/i2c-1 /dev/i2c-20 /dev/i2c-21
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: -- -- -- -- -- -- -- --
i2cdetect -y 20
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77
i2cdetect -y 21
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77
I also tried the same without any i2c board connected. And I tried two different cables.
I have enabled i2c with raspi-config.
Does the press-fit connection usually work the first time or are they finicky?
Do you have any other I2C device? If yes, you can try to connect that to your PI. That will let you know if there is a problem with the I2C interface of the Raspberry pi or the shim is bad.
I did try another one, and with identical results. So there’s no other setup or config required? Is the press fit connection of this kind of shim typically reliable?
The shim board itself does not have an address. it is just providing a Qwiic connector and 3v3. Which device is connected to the Qwiic connector?
That’s useful to know. I tried a small oiled display and a small imu breakout. Is there maybe something Ubuntu specific that I’m missing?
Do those devices have pull-up resistors for SDA and SCL to 3v3 ?
Honestly I don’t know and not sure what that even is. I assumed all qwiic boards are “plug-and-play”.
On Qwiic / I2C one device (most often a peripheral) needs to have pull-up resistors. if you have more devices on the same Qwiic / I2c line it also happens that all of them have pull-up. Then it can fail as well.
Which devices, type/ number/trademark info, do you have. Maybe we can help to find out.
Simply explained: the way Qwiic/I2C scanner works is that the controller (your Pi in this case) sends an address and controls the clock (SCL). A peripheral with that address will pull the SDA low for a short moment to indicate it is there. If none of the devices is pulling low, the pull-up resistor will set the line “high”. Without pull-up resistor, the line is floating and the scanner may detect it is low or maybe not.
I think I figured it out. One of the pins in the shim is broken/bent. Probably my own fault… Do you think it’s salvageable?
Good catch.. to bad.. you could replace the connector (Qwiic JST Connector - SMD 4-pin (Horizontal)). but give the 1 dollar difference to a new shim.. I would buy a new on.
It’s possible to bend the pin back with a pair of tweezers. It’s a little fiddly, but doable. Helps if you’ve got a microscope or something. Just be careful to not cause more damage or fatigue the pin by bending it back and forth a lot.