According to espressif datasheet of the ESP8266 it uses MTMS (I2C_SCL) and GPIO2(I2C_SDA) for I2C.
However in several examples I've seen the typically use is GPIO(4&5) or GPIO(0&4) to connect to the I2C.
I guess all method works? but what is the real difference?
1 Answer 1
Many modules don't have the right pins for I2C available. Thus it was decided that the sensible option would be to use a bit-banged implementation of I2C using software only.
Also GPIO2 has a special meaning for booting, and using it is risky at best, and should be avoided.
Doing it 100% in software has the advantage that any pin combination can be used for I2C.