qwiic_i2c_scanner-8.ino
Python script using the smbus library to scan the I2C bus and list addresses of devices connected via Qwiic connectors.
Enable I2C via raspi-config or /boot/firmware/config.txt (dtparam=i2c_arm=on). Install python3-smbus. Qwiic connectors use standard JST-SH cables. The script scans bus 1; check schematics if another bus is used for extensions. Ensure devices are powered.
qwiic_i2c_scanner-8.ino
import smbus
import time
def scan_i2c_bus(bus_number=1):
"""Scanne le bus I2C specified pour trouver des périphériques actifs"""
try:
bus = smbus.SMBus(bus_number)
print(f"Scanning I2C bus {bus_number}...")
found_devices = []
for addr in range(1, 127):
try:
# Tentative de lecture d'un byte pour détecter la présence
bus.read_byte(addr)
found_devices.append(addr)
print(f"Device found at address 0x{addr:02X}")
except OSError:
pass
if not found_devices:
print("No I2C devices found.")
return found_devices
except Exception as e:
print(f"Error accessing I2C bus {bus_number}: {e}")
return []
if __name__ == "__main__":
# Le connecteur Qwiic est généralement sur I2C1 (Bus 1) sur les modèles CM4/CM5
scan_i2c_bus(1)