First of all, I will introduce you my setup, right now it goes like this:
I have two 50 pixel strings each one with its PSU and an ESP32 as a controller. The ESP outputs data to the first string and then a 10m cable (2 wire inside 1 cable) runs ground and data to the next strip.
I thought pixels themselves acted as level shifters or “data boosters”, but my testing just led me to encounter flickering on the second string whenever signal was comming from the last led of the first string however, if the signal came directly from the ESP, no flickering happened at all.
That led me to the conclusion that the pixels themselves dont really boost the signal by much (because the MCU could send data without any problems to that distance), and that I needed to boost the signal right after the last pixel of the first string so that it could go down 10m to the next string.
Can a level shifter (SN74AHCT125N) at the end of a 50px string be used to boost signal going to the nex string?
You will likely need 1 or 2 F-Amps/null pixels to get 10m to your next string (you would need a positive wire for them). I would put one 1/2 way and see if it works. You could also try running the ground and data separate. Running them in one wire can cause interference and net you less distance. A level shifter is not going to help you.
Mmmm I see. Then how is it possible that the signal coming straight from the MCU can reach 10 meters without issue in the same conditions as if it was a pixel (two wires, ground next to data). That is what made me believe that a level shifter was the way to go
Forgot to mention that I’m not using a level shifter to output data to the pixels from the nodemcu, so basically I’m feeding them 3.3v signal which can travel for 10m without any problem, not like the signal coming ftom the pixel
Could be a variety of reasons for the data corruption after the first string.
Power could be causing issues, it’s possible the voltage supplied to the second string and/or appearing at the end of the 1st string is subject to some voltage drop. What happens if you setup WLED to only display on the 2nd string? Keep the 1st string black and apply an effect to the 2nd string only.
The other sure fire method is to light both strings at 100% White and measure the voltage drop along the entire setup.
So I got some interesting results after trying what you suggested…
First of all I set both strips to white @ 100% brightness and tuned both PSU so that the voltage on the strips was just 5v (I have power injected at the beggining and the end).
Next, I used a sine effect on all leds and interesting things started to happen from here. Whenever the brightness lowered the flickering dissapeared, so then I tried turning off the first string and so the flickering completely dissapeared on the second one.
That made me think about changing the voltage on the second PSU, and to my surprise, lowering the voltage on the second strip to something like 4.7v ended up with signal problems. Moreover, exactly the same happened if I raised the voltage on the first PSU. So in the end I had a potential difference between the two PSU and that ended the flickering…
The general implication is that cheap supplies don’t regulate their output voltage as well.
For your setup, the flicker was likely an issue of the supply voltage at the end of strip 1 was lower or “farther out of spec” than the input voltage of strip 2.
The other thing that happens is there is a voltage drop along the strip itself causing the pixels farthest from the injection point to have a lower supply voltage than those nearest.
I usually suggest you do your injection points in the middle of the strip to try and minimize that effect.
I don’t really think so, for the simple reason that the power is injected right at the end of the strip, on the last LED. So it recieves the right voltage.
I just can’t get out of my head the fact that feeding the second string via a 10m cable straight from the MCU with no level shifter works better than the output of a pixel.
Anyhow, I think the only solution for me on this is going to be using RS485…
Do you know if an untwisted shielded cable will work on that scenario? And what about if I use a two core cable but use the shielding as GND?
For that short a length, you can use almost anything.
I routinely setup 20m runs with 22/4 alarm cable that gives me 2 conductors for power and 2 for A+/B- data.
If you get to 50m distance you might have to move up to Cat5e and actual twisted pairs (but maybe not).
Remember the voltage supply on that last pixel is likely not 5V, it’s the final dropped voltage of the whole strip. That means the output doesn’t swing up to 5V, it probably gives you 0.8 x the dropped voltage, so it’s entirely possible you’re getting swings up to 3.8V (or worse). That might be good enough, but it’s also dependent on the variation of effects/brightness/etc.