I2C works only one way between 3.3V and 5V arduinos with logic level shifter

Hi,

i have been trying with no success to have 2 arduinos communicate over I2C.

One is an Arduino Due (3.3V) and the other an Arduino Pro Mini (5V).

If i connect two Dues together both work fine either as a slave or as a master without the need for a logic level shifter since both work at the same voltage.

Now for my specific setup, i use the Pololu 2595 logic level shifter (Pololu - Logic Level Shifter, 4-Channel, Bidirectional) as the interface between the SCA/SDL ports. So i have the 3.3V output of the Due connected to the LV port of the 2595 and the VCC output of the Pro Mini connected to the HV port of the 2595.

Then SCL/SDA of the due on the LV side of the 2595 and A5(SCL)/A4(SDA) of the Pro mini on the HV side. Finally, i grounds of the two boards are linked.

Strangely enough, I2C works when i set the Pro Mini as a Master and Due as slave but i have no working connection with the Due as Master and Pro Mini as slave.

Did this ever happen to anyone ? Any idea in which direction i should check to fix it ?

Thanks

Lucas

The Arduino Pro Mini uses clock pulse stretching, I don't know if the Wire library of the Due supports that.

Did you get this working in the end Lucas_P ?

If you suspect the level shifter as not being suitable, try this one from Adafruit. I've used them successfully on numerous projects.