WS2812b led strip and arduino, should I give up?

Hi guys,
I used for two months a 95 LED strup (60 led per meter cutted) WS2812B 5V on my ESP8266

This was my setup.

after some months I wasn't able to control the led anymore. I tried everything, cutting the first led, the second one, the third one. The led strip was dead, only some leds lighted up and every others shutdown.

I tried everything and the strips seemed dead so I bought another strip and connected only 10 leds to it just to give it a try. same things, the strip was dead.

So I decided to try a different approach with this schema

basically I used a logic converter to up my 3.3V digital pin to 5V. I also added a resitance of 470omh.

nothing, I can't control the strip. strip light up but leds are out of control, some leds off and some others with some strange color.

power supply seems to be in a good state and connection seems to work well.

should I give up?
what can it be?

Replace parts with known good ones. Find the bad part.

CraigMurphy:
Replace parts with known good ones. Find the bad part.

I replaced the ESP, I replaced leds, I replaced the logic level converter, I replaced the capacitor, the resistor,
the only part I haven't replaced it the power supply.

can it be the power supply?

I tried changing the power supply. Still I can't drive the led.
LEDs lit up but I can't drive them.

Can it be a software problem?
Is it possible that the same sketch doesn't work anymore after some libraries update I have done in the Arduino IDE?

I really don't know what to think

You should have a resistor connected to the data line. I can only see that in your first picture. You should also have a large cap, e.g. 1000uF, across the power supply lines, close to the start of the strip.

Instead of your logic convertor module, you can try a 74hc14 chip. Power the chip with 5V. Each chip contains 6 inverter gates. You will need to use two gates, connected in series. As with any chip, put a 0.1uF cap across the 5V & ground pins, close to the chip.

PaulRB:
You should have a resistor connected to the data line. I can only see that in your first picture. You should also have a large cap, e.g. 1000uF, across the power supply lines, close to the start of the strip.

Instead of your logic convertor module, you can try a 74hc14 chip. Power the chip with 5V. Each chip contains 6 inverter gates. You will need to use two gates, connected in series. As with any chip, put a 0.1uF cap across the 5V & ground pins, close to the chip.

I tried with the resistor and the capacitor.
the problem is that now it doesn't work even with the simple schema that it is always worked.

can it be a software problem?
sketch is not changed but I updated libraries. can it be a problem of software that it compile ok but than does not work for some new libraries I installed?

Your first pic shows a Nano. This is a 5V Arduino. The others show esp-based Arduino which are 3.3V. This could be the reason.

PaulRB:
Your first pic shows a Nano. This is a 5V Arduino. The others show esp-based Arduino which are 3.3V. This could be the reason.

pictures shows different devices but I always used the ESP8266 with wemos d1 mini.

I finally finded the problem. My power supply, I don't know why, started to give 13V instead of 5V.
he burned my strips as soon as I attached them.

finally, I finded the reason. thank for the support guys!

just the last question.

is 220ohm enough if using an ESP8266 with a logic level converter that bump the GPIO from 3.3V to 5V?
can you explain me the reason why use a resistence for the GPIO and a capacitor for the power ?

The resistor stops reflections and protects the input, especially if the signal is applied with no power to the strip.
The capacitor stabilise the voltage and prevents damage to the power supply.

The capacitor I can explain. Even with thick wires, there is some resistance. This limits the current flow. That limits the speed that voltage can return to normal when the current suddenly changes, like when a bunch of pwm controlled LEDs switch on or off. When the voltage cannot return to normal quickly, this affects the data signal, indirectly, because the voltage of the data signal is always compared, by the chips on the strip, to the supply voltage. If the data voltage cannot quickly return to normal, the data gets, or appears to be, corrupted. The capacitor near the start of the strip acts as a local reservoir of charge, so charge does not have to be transferred over the long wires, there is a local supply available. So the power to the strip remains more steady, and the data signal is less likely to appear corrupted.

Thanks for the answer guys. I really appreciate your help

Another questions if possible.
Why they say that a 220ohm / 470 ohm resistance is ok?

Should I choose 220 or 470?
I choosed 220ohm for esp8266 + logic level converter from 3.3 to 5v, was I wrong?

Another question. I have 95 LEDs ws2812b with smd5050.

Should I power the strip on two side or one side is enough?

Thanks

Why they say that a 220ohm / 470 ohm resistance is ok?

It offers a good balance between protection and not cutting the drive voltage down too much. Mainly from imperial experiments.

Powering from both sides is always preferable if possible.

I choosed 220ohm for esp8266 + logic level converter from 3.3 to 5v, was I wrong?

You should always have the resistor the 5V side of the of the converter.

I am not convinced that those I2C converters are fast enough for Neopixel driving.

Grumpy_Mike:
Mainly from imperial experiments.

While poor old Phil may have been driving Land Rovers until yesterday (and I strongly suspect will not be driving them any more), I would be distinctly surprised if any of the family knew what an Arduino or WS2812 was.

empirical

Grumpy_Mike:
I am not convinced that those I2C converters are fast enough for Neopixel driving.

Sounds dodgy. A 74HCT14, or even a 74HC14 would be far more appropriate with two gates in series.

empirical

Dyslexia rules KO. :slight_smile:

Grumpy_Mike:
It offers a good balance between protection and not cutting the drive voltage down too much. Mainly from imperial experiments.

Powering from both sides is always preferable if possible.
You should always have the resistor the 5V side of the of the converter.

I am not convinced that those I2C converters are fast enough for Neopixel driving.

Thanks for the answer mike
How.can I see if they are fast enough?
If seems that my ambilight reacts well to movies and multimedia in general. Should I check something? Thanks

sblantipodi:
How.can I see if they are fast enough?

If the standard example sketches for FastLED or Neopixel libraries run normally, and the patterns and colours displayed are as expected, then the converter is fast enough.

These converter modules are designed for use with i2C and similar signals, which have a data rate of 100KHz or perhaps 400KHz. WS2812B leds use a data rate of 800KHz. I found that when I used these adaptors for LED strip purposes, the strips displayed colours and patterns correctly, but if I touched certain contacts on the adaptor with my fingers, the strips would flicker, freeze and not show the correct colours & patterns. As soon as I removed my fingers, the patterns would return to normal. This indicated that the signal to the strip was only just good enough. Mike suggested that I should try a 74hc14 chip instead of the adaptor, and I found this was much more stable, because it did not react in any way to being touched - the colours and patterns remained stable.

PaulRB:
If the standard example sketches for FastLED or Neopixel libraries run normally, and the patterns and colours displayed are as expected, then the converter is fast enough.

These converter modules are designed for use with i2C and similar signals, which have a data rate of 100KHz or perhaps 400KHz. WS2812B leds use a data rate of 800KHz. I found that when I used these adaptors for LED strip purposes, the strips displayed colours and patterns correctly, but if I touched certain contacts on the adaptor with my fingers, the strips would flicker, freeze and not show the correct colours & patterns. As soon as I removed my fingers, the patterns would return to normal. This indicated that the signal to the strip was only just good enough. Mike suggested that I should try a 74hc14 chip instead of the adaptor, and I found this was much more stable, because it did not react in any way to being touched - the colours and patterns remained stable.

I'm waiting the 74hc14 as per mike suggestion, in the mean time using logic level converter, I will keep you posted if I will encounter some problems with it.

it seems that ambilight does not suffer from problems using the logic level converter.
probably because ambilight sends a signal every 15ms so it doesn't need fast response? in any case I am waiting for 74hc14.

another question if I can...

currently I am using a schema similar to this:

I have an

  • ESP8266 on a wemos d1 mini lite
  • logic level converter
  • 220ohm resistance on the GPIO
  • 1000uf 16V capacitor on the 5V line.

I noticed a strange thing though...

If I connect the power to the strip, and than connect the ESP to the PC, monitor blink black and then return the image.

Is this a signal of some malfunctioning? I don't want to burn the pc.

because ambilight sends a signal every 15ms so it doesn't need fast response?

No, the update rate is not relavent here. The doubts about the speed of the level convertor concern things that happen 1,000 to 10,000 times faster than the update speed. The concerns are about the speed that the signal between the Arduino pin and the first led in the strip can change from a 0V to 5V and back again. If those signals cannot change fast enough, then the data will be corrupted and the strip will not be able to receive it correctly, because the 0s and 1s of the digital data are transmitted by different timings of the transitions from 0V to 5V and back to 0V again.