To do an I2C scan on a Raspberry Pi the i2cdetect
command is used. If not already done, be sure to enable I2C on the Raspberry Pi via raspi-config
. If the i2cdetect
command is not found, install it with:
sudo apt-get install i2c-tools
And then to run a scan, use i2cdetect
with the following command line parameters:
i2cdetect -y 1
On modern Raspberry Pi OS releases, you do not need to run the command with sudo
. The -y
disables interactive mode, so it just goes ahead and scans. The 1
specifies the I2C bus.
Normal Behavior
If all goes well, you should get a list of addresses for each device found. In the example below, an Adafruit BMP280 breakout is attached to a Raspberry Pi 4.
The BMP280's I2C address of 0x77
shows up as expected.
Missing Device or Pull Ups
If the device is disconnect and/or the pull up resistors are missing, the results will look like this:
The scan runs fine, but no addresses are shown. Keep in mind that Raspberry Pi's include pull up resistors on the SCL and SDA pins.