I2C Address Converter and Scanner Parser
Convert I2C addresses between 7-bit, 8-bit write/read, HEX, DEC, and BIN formats. Parse Arduino scanner logs and Linux i2cdetect output quickly.
Scanner output parser
Paste Arduino I2C scanner logs, Linux i2cdetect output, or a plain HEX list. The parser extracts address candidates in 0x00–0x7F and converts each one.
| Detected address | 7-bit | 8-bit write | 8-bit read | Reserved range |
|---|---|---|---|---|
| No parsed addresses yet. | ||||
What is a 7-bit I2C address?
Most I2C software APIs use a 7-bit slave address. In practical terms, the address value is usually shown as a hex number like 0x3C or 0x68.
7-bit vs 8-bit I2C address
Some datasheets show 8-bit values that include the R/W bit. If the 7-bit address is A, then 8-bit write is A << 1 and 8-bit read is (A << 1) | 1.
Arduino Wire address vs 8-bit address
Arduino Wire APIs usually expect the 7-bit address. That is why you pass 0x3C, while some datasheets list 0x78 and 0x79 for write/read byte values.
Linux i2cdetect address format
Linux i2cdetect output displays 7-bit addresses. If you compare that value with 8-bit write/read bytes in a datasheet, convert between both formats first.
Common I2C address examples
| Device | 7-bit address | 8-bit write | 8-bit read | Notes |
|---|---|---|---|---|
| SSD1306 OLED | 0x3C | 0x78 | 0x79 | Common OLED module address |
| MPU-6050 | 0x68 | 0xD0 | 0xD1 | Common IMU address |
| DS3231 RTC | 0x68 | 0xD0 | 0xD1 | Common RTC address |
| BME280 | 0x76 | 0xEC | 0xED | Common sensor address |
| BME280 alternate | 0x77 | 0xEE | 0xEF | Alternate sensor address |
| 24Cxx EEPROM | 0x50 | 0xA0 | 0xA1 | Common EEPROM base address |
FAQ
What is the difference between 7-bit and 8-bit I2C addresses?
A 7-bit address identifies the slave device. 8-bit values include an extra read/write bit in the least significant bit.
Why does Arduino use 0x3C while some datasheets show 0x78?
Arduino Wire APIs usually take the 7-bit value (0x3C). Datasheets that show 0x78 are often showing the 8-bit write byte.
What address format does Linux i2cdetect show?
Linux i2cdetect shows 7-bit addresses. Use conversion when comparing with 8-bit write/read values in datasheets.
What I2C addresses are reserved?
Commonly usable 7-bit addresses are 0x08 to 0x77. Values 0x00–0x07 and 0x78–0x7F are reserved ranges.