Understand nature of these glitches

Hi mates, may you please help me understand the nature of theese glitches? I’ve an ESP8266 driving 360 SK6812 RGBW, I’ve used an 74HC14 (trigger shmitt, the best option) to rise from 3.3 and clean the signal and also to connect the first with the second longer segment (first led is most right), coaxial cable for connections without ground loops, a good power supply 5V 25A, a main cable of 2x2,5mm and the stripes are connected to power line every 2 meters (60 led). I guess the hardware is ideal and done with accuracy.

With solid color I’ve not noticed glitches, but I’ve to admit it was pretty cold to make tests. I hope you have a minute to see this video, it’s glitter effect with 3 colors (ita flag), every about 10 seconds I notice this glich that may stay for 0,5 seconds, then disappear. Please notice the white (rgbW) is turning on and off sometimes corresponfing on particular color, and the red (only) has this short violet segments, a couple of time. Looking to it seems a problem of effect, but I would like ask you what can be the cause:

  1. ESP is running on too cold enfironment, it’s in a box with power supply, myabe temperature can be about -5. If suffers, then it seams at moderate CPU load only.
  2. The power supply can generate at intervals some harmonics that may “resonance” with the data line. A bit hard to believe because its effect should be visible everywhere, not on some colours only, but I can’t exclude it. I may need to filter the power going to CPU.
  3. WiFi broadcast may interrupt umproperly the effect, I need to isulate the ethernet domain to avoid too many broadcasts coming from other devices.

I count on your experience to guess what can be. Thanks!

What is the distance from the level shifter to the strip and the distance from the MCU to the level shifter?

Are you actually using coax cable for your data line?
Unless you have a proper transmission line driver ( not 2 74HC14 inverters) AND receiver (no a pixel) on each end of that cable, you’re probably not helping your data at all.
You’ll probably be better off with a dedicated pair of 18 to 22 Ga.wires - for starters.

Think about changing out the 74HC devices to 74AHCT (better voltage tolerances) and get away from the Hex Schmitt inverers and go to AND or OR devices (08,32,125,245). Dual inverters add propagation delay (not much I know, I know) and make sure you tie unused inputs to Hi or Lo, don’t leave them floating.

Temperature is not likely to be an issue at -5C.
But if you want to move the MCU indoors you can change your data line to a Tx-Rx RS485 pair.
It’ll give you clean data at the string and let you eliminate the level shifter completely.

thanks, this is the scheme for datga line only:

ESP8266 --20cm UTP wrapped with a GND – SN74HC14 2 ports in serial – GND connected – 7mt coaxial cable – no GND connection – First LED 2mt stripe on the right (considering the entrance)-- no GND connection-- 5t coaxial cable back to box-- GND connected – SN74HC14 other 2 ports in serial – GND connected – coaxial camble 1,5mt – no GND connection – Led stripe 10mt.
SIncerely I don’t see delay propagation problems, this posrts running at megahertz, also… a dealy may only affect my eyes, not the led themselves. As ell I don’t see problem on SN74HC14, the A letter doesn’t change nothing here. SN74HC14 is powered from power supply and has a condenser 100nF near its VCC, the 2 left ports are input gorounded to avoid auto-oscillations.

The only problem I may see here, considering that in the video there are no glithces on the right stripe, may be those 5mt of data cable from the leftmost pixel of the first piece right stripe to the second pair “buffer/clenaer” 74HC14. There it may income the noise… but wow I’m a bit shocked that a coaxial cable and a totem-pole pixel TTL level aren’t enough to avoid noise after 5mt! Also, I added a shmitt to clean… so it should clean any kind of noise, A noise that drops voltage from 5 to under 2volt is unbelievable. Or can a coaxial cable capacity kill the pixel output?
There may be a reason here, which I’ve never read around… to avoid led broken when for example users are inverting/putting outputs together, that the pixel is rea an open collector output and the next pixed is a pulled up input. That has big sense since I haven’t put a pullup on the shmitt, it can make difference. How much I should? 10k? I would prefer a 4,7k to load a bit the line. How much a pixel can output?

Anyway, look at the colours, why this glitch appears only on the red coour? and why the violed segments are so in order? is this a smart noise which affect only in that way? It doesn’t have much sense…
Here is the full video:

The “noise” everyone is talking about has nothing to do with voltage drops along the data cable.
The current in the data cable is a few mA at worst so Ohm’s law and voltage divider calculations rarely come into play.

The real issue is wave form shape and Timing. The data signal to your LED’s is a stream of square waves with very particular timing requirements. Once you get into the details, you’ll find that 150nS can make a big difference in what you see. The MCU and WLED handle the generation of that data. How it travels from the MCU to the strip and what it looks like when it arrives depends on the wires, their capacitance,where they’re run and how long the lines are.

So your wiring choices can easily change the nice clean square waves to rounded edges that may or may not meet the timing requirements of the data. Worse, when you use things like coax without the correct drivers and termination you add “ringing” oscillations on the edges of the square wave that can act like new signals.

If you have a scope and tons of time you can diagnose this in fine detail. Or you can follow the general recommendations about wiring and avoid 90% of the issues in the first place. I repeat, coax is not a typically suitable wiring choice for data in these lighting apps.

One question, are you talking RG58/59/62 style coax with a metal shield and center conductor like they use for satellite TV or CCTV connections looks like: https://canada.newark.com/productimages/standard/en_GB/2356787-40.jpg ?

1 Like

Thanks, I’m using a thin 75ohm coaxial cable

I don’t think that few meters of it can spoi the signal, can introduce too much parassite capacitance to round the square waves, honestly. The right part of stripe working good after about 8 meters of coax, the problem at opposite side, after 5/6 meters of coaxial before going back to the Trigger, exit and go to the left stripe. I do believe that metre of cable isn’t influencing.

So focusin on those 5/6 meters, I have no idea how the led pixel output the signal, if it is a TTL compatible, or lower voltage, or (probably) very few current. I believed that to safety problems, to avoid collisions and led malfunction when the operator connect 2 outputs together, the led output is just an open collector and the led input has a pull-up resistor. But if I measure with tester, as impedence very high, I guess there is a diode on input (I can measure 0,7volt) then it should be the pullup.
If what I’m saying is true, it’s right I have problems on the Trigger input, as nothing there is pulling up the line, but what to put there to don’t overload the LED output? I guess a 10k can be ok. Do you now how is the output low level max current? Thanks

More about triggers, they may introduce delay but the delay is absolute, not relative to the data itself, so there is any impact.
I do believe, if you assure it’s a problem of cable and not an ESP/software bug/malfunction, that the problems become at the input of the Trigger

If the coax is used strictly for the data signal and the braided section is not connected on either end, you can safely use the coax’s center core wire for data without worrying about corruption. It can also help shield the data signal in electrically noisy environments. Otherwise, it’s a waste of good coax.

Yes, it’s like this. I understand you for 2 reasons, when the gound is used to bring power GND to leds, it may float for peak of current and false the data reading, secondly, if connected with a GND wire it creates ground loops, antennas, that affects the data line. As I described to the stripes only center is connected, the coaxial grounds are connected all together and with ground nearby the processor, from the gnd of processor, only for shield use. That’s the ideal situation.

By the way, since I measured a diode effect at the input, I guess the equivalent scheme of the sk6812 is like this:

the input diode protect against unwanted negative voltage (probably there is a resistor too after diode), the pullup resistor assure a clear VCC when the line is floating (preventing glitches when the first led is disconnected, it has sense!), there is probably in parallel a diode too to VCC (or a zener to ground) to discharge unwanted higher voltages.
The output is an open collector, since there is a pullup on the next input that’s fine, it protects the led chip if 2 outputs can be wrongly connected together, that has sense too!

So, now I’m guessing how much current can this transistor assures in safe zone, and put a proper resistor as pullup to my trigger. Anyone knows? Thank you

Considering my experience, drive it slightly lower than 1mA may be a good compromise for the led life and an enough strong load to cancel noises. 6,8K, 8,2K or 10K…

unfortunately it didn’t work, I’ve put the pull-up but the result getting worse. I have to do more experiments, maybe something isn’t ok with joints on stripe. It’s f* cold outside and snowing, not easy to do (

Are you able to provide us with a schematic for your installation? I think it will be much easier for us to diagnose if we can see plainly how it’s set up!

A few thoughts…

  • Do you have a series termination resistor in your data line? Adding a small resistor in the data line can sometimes help prevent reflections, which can cause the “wave form shape” problems divsys was describing. Values between 33Ω and 330Ω are commonly used. The quindor data booster uses a 249Ω, the wled “getting started” guide recommends a 62Ω. Here is an article on this, the general idea is that the resistor needs to be chosen to “balance” your data cable, so each setup will have different requirements. This should be a cheap thing to test, at the least.

  • How often do you have power injection set up? 25A will be plenty for 360 LEDs, but the 5V LEDs are very sensitive to voltage drops. These drops can cause all manner of strange behavior.

  • Is your ESP being powered directly from the power supply? I have heard of issues being caused when the ESP is powered through LED strips, as the variable power draw can cause fluctuations to the ESP.

  • Are you willing to try changing your level shifter? I agree that the 74HC14 should work fine, but there’s definitely something going wrong here somewhere! I actually like @divsys suggestion a lot to try a tx-rx RS485 pair, which would also allow (require) you to replace your co-ax cable with a twisted pair, and allow you to sustain much longer data cables. It might even facilitate bringing the esp inside (I don’t believe this is the cause of your issue, but could be an added bonus). The MAX485 modules have become fairly ubiquitous at ~1USD/ea.

Thanks for answer, I’ve already descrided the circuit, I report it here. What I need is a circuit equivalen of sk6812, how is designed the IN stage and the OUT one, is it pulled up or not, is it open collector or not… in theis way I can much better guess where the problem is. Does someone knows how the chip is made itself?

About your points, here are my answers.
Terminate a line which works on kHz doesn’t have big sense, is too low frequency, anyway I would be glad to know how much current a led chip could provide to the next one, I dubt I can terminate the data line with a 33ohm resistor, this i sfor sure a mistake. 300ohm means 16mA, an enomous amount for a chip designed to ouput just a signal. More, here we need to clear how the output is designed, if it is an open collector, which worth to avoid collisions/mistakes, how you can terminate such line?

Power line is ideal, a cable 2,5mm for 10mt of stripe on left, with power input every 2,5 meters, a 1,5mm for the other 2 meters stripe on the right, begin and end. No issues here.

ESP is powered by power supply, ok here I can filter better, but on the first stripe, on the right, there are no glitches. So ESP works ok, the trigger works ok.

From trigger to first LED on right stripe, about 8 meters, no problem
From last LED of the right stripe, to the Trigger, has problems.
From Trigger to the first LED on left stripe i suppose is ok.

I have to connect the output trigger of ESP signal to the input of the left stripe and check, if all is ok the problem is as above. It may be a bad soldering out from the last led of the right stripe

Just to clear up a common misconception:
A static SK6812RGBW display requires a data stream at about 800Khz (~1Mhz).
When you send a changing display (effects added), individual bits change on the order of 100-200nS.
That can be the equivalent of a sudden burst of 10Mhz (or more) data in a steady stream of 1Mhz.
That’s why transmission line effects come into play.

Your whole analysis attempt on the output drivers requiring pull-ups because of OC outputs is a red herring IMHO. I have a few 500 LED strings running SK6812RGBW LEDS with NO output/input resistors added between them. They work just fine with effects or not, their biggest issues has been to ensure proper power injection.

Many installations have been presented now and in the past that document accepted best practices. While I don’t agree with all of them, for the most part they work.
I suggest you rethink your approach and follow them to get better success than you have up till now.

1 Like

Thanks again for you patience, I’ve read the article, seeing the oscilloscope values I share what he wrote. Sincerely I didn’t think the data frequency there is so high, if it reaches 10MHz, then definely yes, it matters.
It looks I’ve used the worst cable, with high capacitive effect, so as first experiment I have to cut the ground of the coaxial, and see if it works better. Chances are, atleast it should be better.
About resistor, now I got you were talking to put in serial… not as termination itself, then it’s better to call it a impedence adaptation, it should be placed after the output of the led, to have effect, placing it near the input of trigger won’t change the signal already affected.

Maybe a trimmer of about 470 let me find the best value, when glitches disappearing completely for long time, then replace it with an equal resistor.
Anyway do you have any documentation about the led output characteristics? Driving the coaxial by trigger for a longer distance doesn’t have effects, probably the totem pole of TTL is enough strong to keep the signal acceptable, but the led seams to be weak.

Thank you dear friend to helped me, you were right, the problem was about over parassite capacity of data cable. I simply cut the gnd from that coaxial cable and it worked. When it will be warmer I’ll try to insert a resistor after the stripe to get better impedence adaptation. A solution may be insert a 200ohm trimmer and find the proper set when the glitches disappear.

I have another issue now, but it doesn’t look it depends on the data line, it freezes for awhile and it happens regular every 10 seconds, looks ESP is busy doing something else, what can be? Thank you

all is working fine, I recomend people to don’t use coaxial, and leave the signal far from the other cables (reduce the capacity, the noise isn’t a problem here). Also, use the trigger 74HC14 to clean the signal (or convert 3,3v level from ESP) is a good choice