I have an I2C device with address 0x62. I know this because I plugged it into my RPI 4B and ran sudo i2cdetect -y 1
. I see the device, if I remove the device power and rerun the command, the device is missing from the list.
I am trying to write a circuitpython script to interface with this device. My code is very simple
import busio
from board import *
i2c = busio.I2C(SCL, SDA)
print(i2c.scan())
i2c.deinit()
This always returns an empty list. I can not figure out why. When I run sudo i2cget -y 1 0x62
I get the error Error: Read failed
. I have tired a few different versions of the code above. I have tried to use while i2c.trylock()
, no change.
Adafruit has the following code:
"""CircuitPython Essentials I2C Scan example"""
# If you run this and it seems to hang, try manually unlocking
# your I2C bus from the REPL with
# >>> import board
# >>> board.I2C().unlock()
import time
import board
i2c = board.I2C()
while not i2c.try_lock():
pass
try:
while True:
print("I2C addresses found:", [hex(device_address)
for device_address in i2c.scan()])
time.sleep(2)
finally: # unlock the i2c bus when ctrl-c'ing out of the loop
i2c.unlock()
This also fails to find my device.
Device is SCD41 CO2 Sensor. I have a small dev kit for it which provides pinout.
I can not attach the image so I am sharing a link to it. Yellow is SCL and attached to pin 5, Green is SDA and is attached to pin 3.