# Bidirectional level shifter circuit problem

Ok, so here is my problem:

I am trying to create a small 3.3V to 5V signal level shifter, using a BSS138 transistor. This is my source for the circuit: a SparkFun circuit.

This is my circuit:

As you can see, I have one bidirectional and one unidirectional line. On the left is the Low Voltage (3.3V) part and the right is the High Voltage (5V) one. When I connect the TX_LV to the Gnd line, the TX_HV turns to 0V. When I connect the TX_HV to Gnd, it does happen on the other side as well.

But the BSS138 transistor seems to act as a 20Kohm resistor when closed (I even measured it with my multimeter - it was about 19.7Kohms). This results in approximately 4.1V on both the LV (Low Voltage) and TX_LV lines (which should be 3.3V) when 5V is applied to the HV input and neither TX_LV and TX_HV are connected to Gnd...

This is quite a problem as I want to connect a Raspberry Pi to an Arduino via Serial port and I don't want to damage my Raspberry Pi by putting 4.1V on its pins. Could anyone please tell me how to fix this or what could I use instead of this solution?

• You need to connect LV to a 3.3V source for the circuit to work properly. Jun 5 '13 at 22:38
• That is properly connected, but thanks for the answer anyways! Jun 5 '13 at 22:43
• Oh my god I rechecked (not that I didn't recheck like 50 times before) and I had one connection a bit loose, so you were right after all - the 3.3V source was disconnecter. Could you post that as an answer so I can accept it? You did actually help me a lot! Jun 5 '13 at 22:52

## 1 Answer

You need to connect LV to a 3.3V source for the circuit to work properly. If it's floating up to 4.1V, it must not be connected to anything.