AS5600 stops updating when TCA9548A is on same I²C bus (ESP32)

Hello,

I would like to ask whether there is a known issue or possible improvement in ESPHome regarding I²C compatibility between AS5600 and TCA9548A when used on the same I²C bus with an ESP32.

Setup

  • MCU: ESP32
  • I²C devices:
    • AS5600 (address 0x36)
    • TCA9548A (address 0x27)
  • Single shared I²C bus
  • Power: 3.3 V, common GND
  • Pull-ups present (standard values)

Problem

Both devices are correctly detected by I²C scan and appear in the logs.

However, when TCA9548A is connected, the AS5600 sensor stops updating its values (no new angle data), even though:

  • the I²C scan still detects both devices
  • TCA9548A works normally

If I disconnect TCA9548A, AS5600 works perfectly again.

Important observation

The issue is strongly related to I²C clock speed:

  • At 100 kHz or higher → AS5600 does not update reliably
  • At 25 kHz → both devices work reliably and continuously
  • At very low speeds (e.g. 1 kHz) → fully stable but impractically slow

This suggests a timing / clock-stretching / bus arbitration issue, possibly caused by TCA9548A affecting the bus in a way that AS5600 is sensitive to.

Question

  • Is this a known limitation or bug in ESPHome’s I²C handling?
  • Are there any recommended settings (timeouts, delays, driver changes) to improve compatibility at standard I²C speeds?
  • Has anyone already solved a similar AS5600 + TCA9548A combination issue?

Thank you for any guidance or suggestions.