Level Shifter bugging me off!

gyz, i have a Arduino Uno, NodeMCU and a Level Shifter

and i connected like shown in the picture,
but it doesn't work, When i connected directly without a Level shifter, it worked,
What could be the problem here!

Nothing is wrong, except your level shifter.
Is there a schematic for the level shifter ?

I think that it is not a normal level shifter. A bi-directional level shifter uses two mosfets per channel. You seem to have a single-direction level shifter.
Maybe you have to connect "RX" to "RX" everywhere and maybe you have to connect "RX" to "TX" everywhere. Instead of randomly trying connections, I would reverse engineer the module and make my own schematic.
If that is too much work, then buy something that works. Adafruit sells modules that work, they have tutorials as well.

Do you have a multimeter (also called DMM) ?
Then you can make a pin HIGH and LOW with digitalWrite() and check the voltages.

Is the NodeMCU a ESP8266 ? Then it is more or less 5V tolerant. If you connect that directly to a Arduino Uno, then it does not hurt too much :adhesive_bandage:

[UPDATE] Oops, a mistake. A single signal needs one mosfet. Thanks 6v6gt.

1 Like

Have you tried without a level shifter? You can connect the Tx of the ESP to the Rx of the Uno with no danger of damage. You can connect the Tx of the Uno to the Rx of the ESP with a voltage divider (e.g. 22K & 10K).

Here is the most important question: why do you need to connect them? Why do you need Uno in the circuit at all. The ESP is far faster and more "powerful" (computationally) than Uno. It has only a few I/O pins, but you can add more. Using two MCU in a circuit just to gain more pins is a very common beginner mistake.

3 Likes

None of those signals is bidirectional - so why use a bidirectional level shifter?

As @PaulRB said, why even use a shifter at all?

Those crude shifters can be very slow - so what baud rate are you using?

1 Like

This is one channel of a Sparkfun bi-directional 3.3v / 5v level shifter:

image

Interestingly, the ground connection is not used.

1 Like

yes, my NodeMCU has an ESP8266 chip,
so that's "okay" to connect Arduino UNO and NodeMCU without it right :point_right::point_left:

yes, i tried without a level shifter many times, it worked correctly every time,
so that is not gonna hurt NodeMCU right when i use it without level shifter!
should i make a voltage divider or i just directly connect the 2 boards?

i have a project that needs lots of IO pins and i let UNO do the dirty work and i really like to separate those works so the project is much cleaner for my view!
heh heee

I am using 115200

Having a 3V output drive a 5V input should be fine.
You just lose a bit of noise margin.

But driving a 3V input from a 5V output should really use the divider - as @PaulRB described.
Otherwise, you are over-driving the 3V input.

1 Like

From the picture, your level shifter is likely to be a copy of this one: RETIRED - Using the Logic Level Converter - SparkFun Learn. Your "schematic" is not detailed enough to see if you have wired it correctly. Label the pins on the level shifter with TXO / TXI / RXO/ RXI so there is no confusion or check out the example of a 5v Arduino uno and a 3.3v SD card in the link above.

You could also probably forget the pins marked RXO/I and use use the two bi-directional channels marked TXO/I

3 Likes

i am sorry, silly me,
i didn't understand what you meant there,
can you explain more please!

(I am sending data from Arduino UNO board to NodeMCU)

Sorry - which part(s) didn't you understand?

thank youuuuu for the info mate! :black_heart:

This should work but the labelling system on that shifter is very confusing

All with respect to the picture in post #10

UNO TX pin --> Level Shifter RXI pin (top left hand side)
UNO RX pin --> Level Shifter TXO pin (top left hand side)

Node MCU TX pin --> Level Shifter TXI pin (bottom left hand side)
Node MCU RX pin --> Level Shifter RXO pin (bottom left hand side)

and of course the power connections gnd, 3.3v and 5v.

EDIT
Corrected thanks to @Koepel . The good thing is that SparkFun no longer sell this device with that weird pin naming system.

1 Like

This is from that (retired) Sparkfun tutorial:

It has the level shifter upside-down, and then:
Uno TX -> RXI
Uno RX -> TX0
NodeMCU TX -> TXI
NodeMCU RX -> RX0

@6v6gt Thank you for the solution. Can you check that Uno TX connects to RXI and not RXO ?

@ktauchathuranga You win the most confusing question of the month award :trophy:

3 Likes

Firstly.. I'll admit i did have some difficulty comprehending your "Super Complex Schematic" but after a few hours of reverse engineering i finally got there :stuck_out_tongue:

I'm suprised no-one has mentioned this
-- Why don't you use an Oscilloscope ?

This is simple

  • Yes we can muck around and discuss if the L.L.C. is faulty or a knock-off

  • Yes we can discuss (even though you have
    Tx - Rx - Rx - Rx and on the other line
    Rx - Tx - Tx - Rx and this looks fine we can debate whether it should have been
    Rx - Rx - Rx - Tx and
    Tx - Tx - Tx - Rx
    But all that is neither here nor there

  • Crack out a 2Ch Scope and a breadboard

    • Connect both probes to the common GND
    • Probe CH1 - Probe and confirm 5V from the UNO and going into the L.L.C.
    • Probe and confirm 3.3.V from Node MCU and to L.L.C.
    • Probe the Data line without connection to LLC
    • Then connect Rx to Rx on the UNO side and probe Rx on the MCU side
    • Then connect Rx to Tx on the UNO side and probe Rx on the MCU side
    • Then connect Tx to Rx on the UNO side and probe Rx on the MCU side
    • Then connect Tx to Tx on the UNO side and probe Rx on the MCU side

Doing this will give you an absolute understanding of

  • If and when a signal is being throughput
  • If the LLC is faulty
  • And the Amplitude of those signals

Give that a go
i would also recommend using the Diagram that @Koepel posted as guidance

1 Like

Thank you guyz for your help!

cuz I don't have access to one! unfortunately! :sneezing_face:
and again, thank you so much and I will try tonight and let you guys know the status!

Man that sux.
if it helps here is a dirt cheap DSO, not high quality but itll help you until you get one

Cheap Scope on Ebay

so now you can do this

You can use a DMM if you have one to check voltage levels

you can test just for presence of voltage and signal by using an LED .
First test it on the UNO side of the board between UNO and LLC
then on the other side between LLC and MCU

you could also try using a simple speaker.
first see if your signal generates a tone from the UNO, then test it on the other side

If you're in sydney i could help you out.

1 Like

Or you can kick in a little more and get a better scope with a probe, usable signal generator and built-in rechargeable battery. This was $50 well spent.

2 Likes

Agreed, but one thing is certain.........He needs something, He needs a scope at a minimum or he's lost

4 Likes