Problem with I2C level shifter 5V to 3.3V

Of course is the simplest approach to say: Ok, just get rid of this stupid level shifter.
But as far as I understand the situation will this decision lead to a bad design because I‘m out of the input range. This is not really good.

What I wonder is if the encoder has bounce that the shifter interacts with to make worse? Is that even possible?
Perhaps try hardware debounce of the encoder and see if that helps?

74HC4050 hex buffer shifts 6 channels 5V to 3.3V.

I‘ve go through all this before. I repeated it with pics.

„Wrong wiring which works“



Signal voltage with this setup.

Correct wiring which does NOT work



Signal voltage with this setup.

Pics of the board


Now it drives us crazy as well. Sorry, I can't see the problem.

Me too. It’s really such a simple circuit and it behaves like a super sensitive high frequency radar stuff.
I‘m really confused. And of course demotivated because it is one of my first projects with „own“ hardware and it end like this. :frowning:

I do an additional test. I removed the signal wires of the rotary encoder. Result: The rotary encoder inputs still behave like crazy. So it must have to do something with GND or VSS I think. Thought that the VSS breaks down maybe but I can measure stable 3,3V. The used buck converter can handle around 1A if I belive the data sheet. (I digged a little bit into the parts of the Arduino ESP).

I noticed that you have your negative DMM probe connected to the USB shield.
That is not a ground connection.

1 Like

I'm with jim-p. No wires to either GND pins on the level shifter.

Edit: I have one. It works if the GND pins are connected.

You mean that I should disconnect the wires of the level shifter GND on both sides?

No. The GNDs should be connected. I see no wires to either GND pins on the level shifter.

Also be aware that the level shifter from Adafruit has 10K pullups on all pins. They recommend NOT adding more pullups because it can defeat the bidirectional capability.

Both GNDs of the shifter are connected. Maybe it‘s a bit hard to see on the pics. Bit they are directly connected to the GND pin of the ESP.

I only have the PCF on this bus. As far as I know there are no additional resistors… (but why does it work then?!?) …. hmmmmm.

I‘ll measure it.

See post #27

I‘ve correted this


GND for any measurements is now the ESP GND pin.

What I see. On the low level voltage side I have 10kOhm. On the high level voltage side I have 10kOhm plus 4.7kOhm in parallel. Results in round about 3.2kOhm.
But could this be the reason that the whole I/Os start to become noisy?! Why does my rotary encoder start to count by itself? It looks like something starts to oscillate like crazy.

That may be your problem. Try removing the 4.7K resistors.

Probably not do you have the WiFi enabled?

But I tried a frequency of 40kHz too instead of 400kHz. Shouldn’t this help?

Phuhhhh. Remove the resistors. I think it’s not possible

Yes. Wifi is on and connected. I want to add a cloud feature.

Deactivated it for testing. No effect.

I measured the signal pin of the low voltage side. The side which has 10kOhm.
Additionally I measured the VSS of 3.3V. The supply is super stable. The signal has a lot of noise. No idea why.

Sometimes a data package runs through.