Hardware Matrix

ESP32 pin & I²C address conflict planner

Two sensors can each work perfectly and still refuse to work together. Pick a board and the parts you intend to use — this checks for I²C addresses that collide, more UART devices than the chip has UARTs, and more analog inputs than it has usable ADC pins.

    Your build

      Nothing selected yet.

      Known I²C address collisions

      Every part below shares a default address with at least one other part in this index. Where both addresses are fixed in silicon, no amount of configuration helps — the fix is a TCA9548A multiplexer or the ESP32's second I²C bus.

      Address Parts Can it be resolved?
      0x29 No — both fixed. Needs a multiplexer or a second bus.
      0x38 No — both fixed. Needs a multiplexer or a second bus.
      0x40 No — both fixed. Needs a multiplexer or a second bus.
      0x69 No — both fixed. Needs a multiplexer or a second bus.
      0x20 Yes — at least one is strappable. A0-A2 strapping selects 0x20-0x27.
      0x39 Yes — at least one is strappable. ADDR pin selects 0x29, 0x39 or 0x49.
      0x3C Yes — at least one is strappable. Usually 0x3C; some modules expose a 0x3D jumper.
      0x44 Yes — at least one is strappable. ADDR pin selects 0x44 or 0x45.
      0x48 Yes — at least one is strappable. ADDR pin selects 0x48-0x4B.
      0x53 Yes — at least one is strappable. ADDR pin selects 0x52 or 0x53.
      0x5A Yes — at least one is strappable. Ships at 0x5A; reprogrammable in EEPROM.
      0x76 Yes — at least one is strappable. SDO pin selects 0x76 or 0x77.
      0x77 Yes — at least one is strappable. SDO pin selects 0x76 or 0x77; Adafruit boards ship at 0x77.

      Addresses come from the configurations published on each device page and are cross-checked against them at build time. Parts without a published config are not listed here, which means absence is not evidence of no clash — flash with i2c: scan: true and read the boot log.