Se rendre au contenu

What I²C bus speed should I use, and why 50 kHz on ESP32?

30 juillet 2026 par
What I²C bus speed should I use, and why 50 kHz on ESP32?
Administrator

It depends on the host driver, not the board brand:

Host / driver Bus speed
ESP-IDF i2c_master — ESPHome, MicroPython-ESP32, Arduino-ESP32 50 kHz
STM32 HAL · RP2040 · non-ESP32 Arduino (AVR/STM32duino) · Linux SBC (kernel I²C) 100 kHz

The ESP-IDF i2c_master driver's transaction timing interacts with the module's I²C recovery window at 100 kHz and produces intermittent read NACKs, so 50 kHz is the standing recommendation on ESP-IDF-based masters (that includes Arduino-on-ESP32, which wraps the same driver). Every other master runs the module at 100 kHz cleanly. The axis is the driver, not the board.

in FAQ
Documentation & source code
📖 rbAmp documentation overview · 💻 rb-amp/rbamp-docs on GitHub
Which boards and frameworks can I use with rbAmp?