NodeMCU ESP-32S 3rd I2C bus doesn't work


When looking at the peripheral diagram for the NodeMCU ESP-32S it shows 3 I2C busses. I2C0 and I2C1 work fine but 2 is inoperative and nothing happens even when looking with a logic analyser.

This makes sense as the ESP2 32 only has 2 hardware I2C modules, not three.

Maybe the documentation should delete the 3rd bus.


Hello IainColledge,

maybe we miss adding a note in the peripheral view of the Zerynt Pinmap. By the way, you’re right the ESP32 module has only 2 hardware I2C modules but we, inside the Zerynth VM, expose 3 modules where I2C1 and I2C2 are referred to the same peripheral of the ESP32 chip.

So I2C1 and I2C2 cannot be used together but individually they work without any problem; hope this can help you.


I was using I2C0 and tried I2C2 (D18 & D19) and when seeing nothing happening on those pins switched to I2C1 (D16 & D17) which was fine.

Are you saying both I2C1 and I2C2 map to pins D16 & D17, if so then the peripheral pin mapping is not correct.