qwiic_i2c_scanner-8.ino

Xerxes Pi 2026 Carrier Board for Raspberry Pi CM4/CM5 Modules · File : qwiic_i2c_scanner-8.ino · Language : python · Use case : Détection des périphériques I2C connectés aux connecteurs Qwiic SH-series

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)

← Back to the board