I²C address map
Two devices on one address is the classic I²C bring-up failure. Here is every address these parts claim, and where they collide.
Cannot share a bus, ever
Both parts are fixed to the same single address with no strap pin. No wiring change helps: you need an I²C multiplexer such as a TCA9548A, or a second bus.
Collide by default, fixable by re-strapping
These overlap on their default addresses, but at least one has an alternate. Tie the address pin the other way and they coexist fine.
16 pairs
| Pair | Shared | Alternates available |
|---|---|---|
| ADS1115 + INA219 | 0x48, 0x49, 0x4A, 0x4B | ADS1115: 0 · INA219: 12 |
| ADS1115 + INA226 | 0x48, 0x49, 0x4A, 0x4B | ADS1115: 0 · INA226: 12 |
| ADS1115 + PCA9685 | 0x48, 0x49, 0x4A, 0x4B | ADS1115: 0 · PCA9685: 60 |
| ADXL345 + PCA9685 | 0x53 | ADXL345: 1 · PCA9685: 63 |
| BME280 + BMP280 | 0x76, 0x77 | BME280: 0 · BMP280: 0 |
| BME280 + PCA9685 | 0x76, 0x77 | BME280: 0 · PCA9685: 62 |
| BMP280 + PCA9685 | 0x76, 0x77 | BMP280: 0 · PCA9685: 62 |
| DS1307 + MPU6050 | 0x68 | DS1307: 0 · MPU6050: 1 |
| DS1307 + PCA9685 | 0x68 | DS1307: 0 · PCA9685: 63 |
| DS3231 + MPU6050 | 0x68 | DS3231: 0 · MPU6050: 1 |
| DS3231 + PCA9685 | 0x68 | DS3231: 0 · PCA9685: 63 |
| INA219 + INA226 | 0x40, 0x41, 0x42, 0x43… | INA219: 0 · INA226: 0 |
| INA219 + PCA9685 | 0x40, 0x41, 0x42, 0x43… | INA219: 0 · PCA9685: 48 |
| INA226 + PCA9685 | 0x40, 0x41, 0x42, 0x43… | INA226: 0 · PCA9685: 48 |
| MCP23008 + MCP23017 | 0x20, 0x21, 0x22, 0x23… | MCP23008: 0 · MCP23017: 0 |
| MPU6050 + PCA9685 | 0x68, 0x69 | MPU6050: 0 · PCA9685: 62 |
Full map, 0x08 – 0x77
Addresses below 0x08 and above 0x77 are reserved by the I²C specification and are not usable by devices.
0x08
free
0x09
free
0x0A
free
0x0B
free
0x0C
free
0x0D
free
0x0E
free
0x0F
free
0x10
free
0x11
free
0x12
free
0x13
free
0x14
free
0x15
free
0x16
free
0x17
free
0x18
0x19
0x1A
free
0x1B
free
0x1C
free
0x1D
0x1E
free
0x1F
free
0x28
free
0x29
free
0x2A
free
0x2B
free
0x2C
free
0x2D
free
0x2E
free
0x2F
free
0x30
free
0x31
free
0x32
free
0x33
free
0x34
free
0x35
free
0x36
free
0x37
free
0x38
free
0x39
free
0x3A
free
0x3B
free
0x3C
free
0x3D
free
0x3E
free
0x3F
free
0x50
0x51
0x52
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x5B
0x5C
0x5D
0x5E
0x5F
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
7-bit vs 8-bit addresses. Datasheets sometimes print the address already shifted left by one, with the read/write bit included — so the same part appears as 0x76 in one document and 0xEC in another. Everything on this page is 7-bit, which is what almost every driver API expects. If your address looks twice as big as it should, that is why.