Okay, here is my setup. I have 2 led strips, of about equal length. One is a bit longer than the other, and both have about 150 LEDS… However, what I am working with is just the first 30, from a fresh flash of wled…
Configuration 1. 24 V to 3 parallel buck converters outputting 5V. 5V to LEDs, and to esp32. All grounds connected. Led strip 1 is erratic. Disconnect LED strip 1, replace with LED strip 2. Led strip 2 works fine.
Remove the buck converters. Hook up another 5V supply. Led strip 1 works fine. Led strip 2 works fine.
Remove that PSU. Plug USB into esp32. Both strips work fine.
The only time strip 1, and ONLY strip 1 doesn’t work properly is when it is hooked up with the 5V coming from the buck converters.
When strip 1 doesn’t work. It acts like there is a bad ground, or like when you power the ESP32 from one source, the LEDs from another source, and forget to connect the ground of the 2 PSUs… But that isn’t the case here… The ground is good.
This has even happened with an ESP8266! Exactly the same thing happened.
I am at a total loss. Lil help?
So no ideas huh? Has me stumped too. Even tried a different buck converter. Same thing. I will try asking elsewhere, see if anyone knows.
Strange things can happen when you don’t have a level shifter. I would start by adding one.
for the ESP8266 you need to check the wire setup and the connection this shoudent happen there
is the right Config set for the stripe please post a image
is there the right GPIO connected to the stripe
Okay, I am a bit confused… So I should take the data line and change the voltage on it? The same Data line that works with another LED strip? The same data line that works with two other voltage sources just fine? Or am I misunderstanding?
What image? Of the ESP8266 connected to Strip 1 (Not working)? Or Strip 2(working)? Or power source 1 (Stright 5v)? Or power source 2 (5v stepped down with a buck converter)? And what configuration of both? Or are we talking about config in the web ui?
And please remember, I change NOTHING but where the 5v comes from… No wires change except I disconnect PSU1, and connect PSU2 (Which is 24v to a 5v buck converter) I don’t disconnect the data pins, nothing.
And I do with the end result to have it work with an ESP32, not the 8266. I just used the 8266 to be sure it wasn’t the controller for some reason.
LEDs are spec’ed for 5v Data. Esp’s output 3.3v from the GPIO’s. Sometimes the LEDs will work with that below spec voltage and sometimes they will not. To be sure you have correct data, it is advised to use a level shifter to shift that 3.3v data to the required 5v data. I highly advise using one of the shifters in the KB that I linked to above. Many people do not heed that advice and end up buying I2C shifters and they are the incorrect device for addressable LEDs. They end up with problems and then have to buy more of the correct ones.
Also the farther your first LED is from the controller the more that having proper 5v data comes into play.
If you use the search at the top of the forums and search for flickering you will find many many many… posts and the #1 recommendation is having a level shifter. You may also need to add a resistor to your data line (you could even try that before using a level shifter) The value of resistor is situation dependent and is trial and error. Something between like 20Ω to 200Ω. Most common would be 33Ω and 62Ω.
Last thing is to make sure you have good connections as a poor connection someplace can cause strange things.
Well, I have almost solved the problem, but not the mystery… (I will try a resister to see if it completely solves the issue later. Or maybe its outside interference?? I am exhausted)
It seems as though for some reason Strip 1 is much more sensitive to wire length than set 2 is… Before todays work Strip 1’s wires were likely a bit shorter then strip 2 wires, but still only 2-3’ long… BUT, my Data line was longer then the power lines… When I made them all the same length it got a LOT better… And after shortening them its almost perfect. Occasionally Strip 1 flickers once. But as I sit to write this, I may have an idea where the issue is… Can there be interference from household electrical wiring? Strip 1’s lead wires (Thats what I am gonna call the wires that go from the controller to the strip) run close to household electrical wiring. IN ADDITION, the 24v lines running from the 24V PSU to the buck converters run close to and around electrical wiring (like literally wrapped around the wiring, just to keep them in place)… Could it be because there is interference collected from the 24v line, and more interference from the proximity of the lead wires to the strip only on strip 1, that only strip 1 had the issues? If anyone thinks that could be the case, I will move some stuff around (Unless there is an easier way to solve it? It would have to be really easy though, cause its not that hard to move the 24V lines…)
Anyway, back to these level shifters. I have googled them a bit (The part numbers from the list) and I am only finding bare ICs. Is that how they come? So I would need to work them into my already hodge podge if a circuit board?
Finally (And if this is asking too much, I understand) what does a level shifter do exactly? I have googled it, and it seems all the explanations I can find are written for people… well, that wouldn’t need to google what a level shifter is, lol…
I know when I first started with working with wled someone was nice enough to explain the use and purpose of a TTL to RS485… Which I have managed to incorporate into some of my systems (Not on the ones I am having these issues with.)
Yes the wiring may be picking up noise.
Moving it may help or it may get worse. Only one way to know
I am sure @divsys could provide a much more detailed answer to this but in easy terms, the level shifter boosts the 3.3v output from the gpio pin(s) to 5v.
If you added a level shifter you should have no problem running your wires 3’. However without one that distance w/out issues is a huge roll of the dice. And what works now may not work down the road. You are asking the first IC on the LED strip to work with data that it was not spec’ed for and it’s not guaranteed that the data will always be correctly processed.
If looking at the SN7xxx shifters then yes those are only in bare chip form.
The TXS0108 is mounted on a pcb, but it may have issues with longer data lines, requires a 5v and 3.3v connection from the esp (SN7xxx only requires 5v) and from what I have seen some people have a harder time getting them to work.
The resister on the data line can help reduce “ringing” reflections on the line helping to keep your signal clean(er). This depends on the type of wire used and it’s overall length. As such it’s trial and error.
If it were me; I would add a SN74AHCT125N (along with it’s 100nF ceramic decoupling capacitor as shown in the KB). This will likely fix the issue. If not then I would try adding either a 33Ω or 62Ω resistor after it.
There is another option that may be easier, but is vastly more costly and that would be to buy a Falcon F-Amp from David Pitts at pixelcontroller.com it would go close to your controller and would take the data from your gpio and power from what is powering your LEDs. (they work with 5 or 12v)
Again you are free to try moving the wires, shortening them, adding resistors and see how you make out. But remember all of that is a kludge fix as in the end you are still feeding data at a level that the IC’s on the LED strip were not designed for.
Ah, okay I think I get it. The LED is expecting a +5v signal on the data line (rapidly turning on and off to provide the binary data) but instead if receiving 3.3v Now, because its receiving 3.3v rapidly turning on and off, it can still understand the data for the most part, because its still 3.3v switching from high to low.
Now this is where I get into a bit of assumption. So please correct me if I am wrong. Because 3.3v is quite a bit lower then 5v, voltage drop can become an issue. The chip is expecting 5v, it can work with 3.3v, but if it ends up dropping to low (Say 3.1v? I dunno) there isn’t enough difference between high and low for the chip to register.
The shift register basically turns the data from 3.3v switching from high to low, to 5v switching high to low. Thus the voltage drop of even .2v in my example still has a difference of 4.8v, much easier for the chip to tell the difference between high and low.
So, assuming that is correct (And I am willing to accept it is not) isn’t that just the job of a basic transistor? To switch power on and off? So why the need for this level shifter rather than just using a transistor? (Not trying to be argumentative, just wishing to understand)
I believe the chips are generally spec’ed from like 3.5 to 5.3v for Vhi pulse, but at short distances may work with the lower 3.3v that the Esp outputs (remember there is also the possibility noise and impedance that may factor in as well). This is not guaranteed as it is outside of the spec. So bits of data can be missed/miscalculated resulting in a corrupt data stream causing what we see as flickering or the display of incorrect colors. You can help take care of this by boosting the signal voltage using the level shifter to a value closer to/within spec. When selecting a level shifter you need something that is capable of high-current drive for low/high transition speed to satisfy the speed/frequency for tight timings of the data stream of digital LEDs(some place up around 800khz).
If you want to read a long drawn out detailed report of this topic you can find that here: Logic Level Shifters for Driving LED Strips – Electric Fire Design