Troubleshooting: Logic Level Converter and WS2812B LED with ESP32 D1 Mini NodeMCU

I have connected my ESP32 D1 Mini NodeMCU to an AZ Delivery 8 channel Logic Level Converter TXS0108E in order to pull GPIO4 to 5 volts. I connected the VCC of the Logic Level Converter to a 5V power source and connected the GND of the Logic Level Converter to the GND of the ESP32 D1 Mini NodeMCU. Additionally, I connected the HV input of the Logic Level Converter to the 5V power source and connected the LV input of the Logic Level Converter to the 3.3V pin of the ESP32 D1 Mini NodeMCU. Finally, I connected GPIO4 to the VA1 input of the Logic Level Converter and connected the output channel VB1 of the Logic Level Converter to the Data input of my WS2812B.

The LED remains off. The WS2812B is not defective, as it works with another 5V controller. When I execute the Blink script, I measure a constant 5 volts at the output channel of the Logic Level Converter. As soon as I connect the 5 volts to the Logic Level Converter, the Blink script stops working.

Did I connect everything correctly? Where is my mistake?

I have the following components in use:

Have you pulled up OutputEnable (OE) pin?
6305.2158.Schematic.png-1230x0

Yes i conect it to the 3.3 Volt From the ESP

I’m using the same level shifter and I believe my issue may be related to OP’s.

I looked up the specs HERE and it includes this sentence, which I’m not sure what to do with:

When the output-enable (OE) input is low, all outputs
are placed in the high-impedance (Hi-Z) state.

To ensure the Hi-Z state during power-up or powerdown periods, tie OE to GND through a pull-down
resistor. The minimum value of the resistor is
determined by the current-sourcing capability of the
driver.

For this, you can just connect OE to 3.3v.

1 Like

I’ve looked at the datasheet for that device and while I haven’t used that particular chip, I can offer some suggestions.

The chip is a fairly complicated device with multiple timing considerations when powering it up from different voltages (a common use).

The comment you noted about using the OE input was edited.
From the data sheet:

To ensure the high-impedance state of the outputs during power up or power down, the
OE input pin must be tied to GND through a pull-down resistor and must not be enabled until VCCA and VCCB are
fully ramped and stable. The minimum value of the pull-down resistor to ground is determined by the current-
sourcing capability of the driver.

The comment implies that there are timing concerns about this pin being held high during power up. It may be worthwhile to try and initially ground the pin through a 220Ohm resistor and after powering up, tie it to 3.3V.

The other possibilities are:

  1. Drop the secondary voltage slightly
    You show VCCb as 5.1V, which is within the specs for the TXS0108 but might be near the top end of what’s acceptable for the attached LED. Common practice is to boost the supply voltage for 5V LEDs to near maximum so you have a little more room for power induced voltage drop. This doesn’t occur with the data line so there’s little advantage with going over 5V on data.

  2. Make sure to ground out all the unused input lines (A2-A8?). Floating inputs can pickup noise from the environment and cause Unexpected Results.

  3. (Should have lead with this) try disconnecting everything from the shifter except power.
    Tie the OE input to 3.3V and manually connect A1 to 3.3V through a 470Ohm resistor. You should be able to measure close to 5V at B1. If you then tie A1 to ground through the 470Ohm resistor, you should measure close to 0V at B1. If that happens, the chip logic is doing what it’s supposed to do.

Lastly, consider using one of the other shifter options. The 74AHCT245 works very well as an 8 channel shifter, is inexpensive and doesn’t require multiple supply voltages.

1 Like

Thank you @tonyno @divsys it seems you are both correct and I will give it a try tonight.

An additional resource I found that also confirmed the same is from Sparkfun HERE

I include a graphic for quick reference
image

Just an update that connecting OE to the 3.3V seemed to do the trick! Now I am awaiting delivery of thicker gauge wires to resolve a separate low-voltage issue but otherwise it’s working as expected!

1 Like