Interstate 75 I2C

Hi,

I need help how to access the STEAMMA QT port on the Interstate 75 in Micro Python (pimoroni-pico-v1.18.4-micropython.uf2). I’ve connected an Adafruit BME680 to display temperature, humidity and pressure. I have already tried to scan the Port with the following code but only empty Brackets are returned.

from machine import Pin, I2C 
i2c = I2C(id=0, sda=Pin(20),scl=Pin(21))
print(i2c.scan())

On a Feather RP2040 with Micro Python the BME680 is working.

Do you have any ideas how to access the I2C properly?

Thanks in advance

Matthias

Try this code. It’s worked for me on my Pico. The Stemma is wired right to those pins so it should “just work”. I’m using the Qwicc on my Pico Lipo and didn’t have to do anything fancy, other than plugging in a cable and sensor. BME688 and others here.

import machine
sda=machine.Pin(20) # Explorer 20 Breakout 4
scl=machine.Pin(21) # Explorer 21 Breakout 5
i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000)
 
print('Scan i2c bus...')
devices = i2c.scan()
 
if len(devices) == 0:
  print("No i2c device !")
else:
  print('i2c devices found:',len(devices))
 
  for device in devices:  
    print("Decimal address: ",device," | Hex address: ",hex(device))

Hello alphanumeric,

Thanks for your help. I tried it out, but unfortunately it still couldn’t find any I2C device.
I get the following output.

Scan i2c bus...
No i2c device !

It looks like the two boards are more different than expected.

Ok, we know the BME680 works, and the cable must be OK.
And I checked the schematic and the i75 does use GPIO 20 and 21 for i2c.
And running that code on my Pico Lipo gets me a list of what I have connected. It uses pins 4 & 5 though.
Must be a bad jack on the i75, or a bad connection to it?

I’ve checked the connection between the boards with a multimeter the jack is fine.

Do you get continuity right to the solder pads marked SDA, SCL, etc?

Yes, I’m getting continuity between the solder points of the Interstate 75 and the BME680.

3.3V -> VIN ok
GND  -> GND ok
SDA  -> SDI ok
SCL  -> SCK ok

Must be a fault on the board somewhere? I’m pretty sure it a hardware fault, not a software issue.
@hel
You can contact Pimoroni tech support via this link.
Contact Us for Raspberry Pi Technical Support - Pimoroni

Thank you very much for the support I will contact the pimoroni support and share the result here.

Today I took measurements with the Logic Analyser.

On the Feather I could observe the communication on the I2C bus between the boards. (used code)

from machine import Pin, I2C
i2c = I2C(id=1, sda=Pin(2),scl=Pin(3), freq=400000)
print(i2c.scan())

On the Interstate 75 the tool shows nothing. (used code)

from machine import Pin, I2C
i2c = I2C(id=0, sda=Pin(20),scl=Pin(21), freq=400000)
print(i2c.scan())

Humor me and give sda=Pin(4),scl=Pin(5) a try.

Unfortunately nothing either

from machine import Pin, I2C
for pin in [4, 8, 12, 16, 20]:
    i2c = I2C(id=0, sda=Pin(pin),scl=Pin(in+1), freq=400000)
    print(pin, i2c.scan())

>>> %Run -c $EDITOR_CONTENT
4 []
8 []
12 []
16 []
20 []
from machine import Pin, I2C
for pin in [2, 6, 10, 14, 18]:
    i2c = I2C(id=1, sda=Pin(pin),scl=Pin(pin+1), freq=400000)
    print(pin, i2c.scan())

>>> %Run -c $EDITOR_CONTENT
2 []
6 []
10 []
14 []
18 []

IMHO something is broken on that i75.

Yeah, I’m inclined to agree - I don’t have an I75 to hand to test, but @alphanumeric 's code is detecting breakouts fine for me on a Plasma 2040 which should have the same I2C setup.

Support should be able to sort you out with a replacement, make sure to send them a link to this thread if you haven’t already :)

Hello Hel, thank you for taking the time to look at the problem. I am already in contact with Matt.

1 Like

According to Matt, it’s a faulty board, as you already suspected. The replacement is already on the way.

Thanks for your support.

Saturday the replacement part arrived and as suspected my I2C problems were caused by a fault on the Interstate 75.
Thank you for the fast and uncomplicated exchange.

3 Likes