Impedance matching 4ft of 20awg wire

Hello,

I am powering a long strip (50m) of ws2801 strips. About once an hour (but not on a schedule) I have a "blink" from my strips. It is annoying, so I've tried various things to silence them.

I installed filtering caps, and that seemed to make a difference. I also removed a ground loop just tonight, and it seems like I might have gotten it down to once every two hours... but it's still there.

I installed 100ohm resistors between the controller and data, but now I've read that 100ohm is for cat5 cable's impedance and that other types of cable need difference resistor values based on impedance. I'm not sure if it will solve the blink or not, but I'm willing to give it a shot.

How can I calculate the impedance of 20awg copper?

How can I calculate the impedance of 20awg copper?

You can probably look-up the impedance for networking cable (CAT 5, etc.), but it depends on "construction". That is, the space between the wires, etc. And, I don't think it's an issue at 4 feet and at the data-rates you're working with.

It's probably not an impedance issue. It could be software, or you may need to slightly slow-down the clocking. (If you're using shiftOut() I'm not sure how to slow it down.)

When I had a problem with a shift register type interface, it turned out to be a noisy/marginal power supply. And in my case, a larger capacitor on the voltage regulator for the LED driver stabilized the display.

With 50m of LED strips, you may have a power supply related issue too.

Curious how you have powered 50meters of digital LED strip (post a diagram). Shouldn't you power that at least 2-3meters or so. Leo..

Wawa: Curious how you have powered 50meters of digital LED strip (post a diagram). Shouldn't you power that at least 2-3meters or so. Leo..

Depends on illumination levels.

Guide i saw was every metre.

Qdeathstar: Hello,

I installed 100ohm resistors between the controller and data, but now I've read that 100ohm is for cat5 cable's impedance and that other types of cable need difference resistor values based on impedance. I'm not sure if it will solve the blink or not, but I'm willing to give it a shot.

Have you tried a terminating resistor at the far end ?

Not sure if its needed though as the signal regenerates each pixel i think.

Some caps on the supply rails may help

DVDdoug: ..... or you may need to slightly slow-down the clocking. (If you're using shiftOut() I'm not sure how to slow it down.)

It's not hard to override 'shiftOut()' by copying the function into the sketch file and introducing a delay between bits and/or between taking the clock high then low again. It's a very simple function:-

void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
{
    uint8_t i;
    for (i = 0; i < 8; i++)
    {
        if (bitOrder == LSBFIRST)
            digitalWrite(dataPin, !!(val & (1 << i)));
        else
            digitalWrite(dataPin, !!(val & (1 << (7 - i))));
        digitalWrite(clockPin, HIGH);
        digitalWrite(clockPin, LOW);
    }
}

Qdeathstar: Hello,

I installed filtering caps, and that seemed to make a difference.

Do you have the option of trying it powered by batteries ?

In the past i have used a 6V LA cell as a 'capacitor' to fault find troublesome supplies.

I have it powered every four meters. I am using one 100amp server supply. I don't think power is nessarily an issue (at full brightness everthing is bright white, not yellow). I have installed a line filter on the mains side of the transformer and 100uf capacitors everywhere I inject power to the strips. I am going to install ferrites there as well.

I think powering it it off of batteries would require a lot of batteries.

where would the terminating resistor go? what value? I hear something about a 1k between data and clock, but I didn't trust the source. I am using FastLED and have slowed down the data rate to 1mhz.

I notice that when I turn on mains powered light fixture closer to the strip, I get a blink.

Qdeathstar: I notice that when I turn on mains powered light fixture closer to the strip, I get a blink.

That would imply its an interference problem.

Perhaps moving the strip away from any electrical sources would narrow it down.

In #4 i mentioned caps, i meant distributed along the strip.

50 m long makes a good aerial, distributed caps across the rails may help

Should I put the caps voltage to ground? I'd need a axial cap like a resistor because there is not a lot of room in my aluminum channel. Maybe I should ground the channel (not to psu ground but to earth)

I can post a time lapse video of the blink it that will help.

Terminating resistor sounds like a easy thing to try. Could you elaborate on that

Qdeathstar: Should I put the caps voltage to ground? I'd need a axial cap like a resistor because there is not a lot of room in my aluminum channel. Maybe I should ground the channel (not to psu ground but to earth)

I was thinking Supply to ground, just an idea though.

Qdeathstar: Terminating resistor sounds like a easy thing to try. Could you elaborate on that

Don't think it will make a difference , i made an incorrect assumption initially.

The signal gets regenerated each led.

Do they blink when steady state ? Ie with no spi signals sending.

EG turn them on then disconnect the spi and clock signals.

Simpler test than soldering a load of caps.

Qdeathstar: I have installed a line filter on the mains side of the transformer and 100uf capacitors everywhere I inject power to the strips. I am going to install ferrites there as well.

100 uF implies electrolytic.

I was thinking of something with a low ESR, 1uF ceramic or similar.

50m of anything is going to pick up a lot of interference, You probably need to to electrically break up that long string to reduce the interference, which really means treating as a set of shorter strips and driving each separately / in parallel.

But then you have to synchronize each portion of course.

Is the run one long straight run? That's probably at risk of damage in the next thunderstorm if so too

MarkT: 50m of anything is going to pick up a lot of interference,

I am struggling to understand the mechanism.

For all the leds to blink at once.

They are all independently controlled local to the LED.

I wonder if the chips have some sort of reset internally i do not know about.

One chip boosts the signal of the next chip so I'm assuming

MarkT: 50m of anything is going to pick up a lot of interference, You probably need to to electrically break up that long string to reduce the interference, which really means treating as a set of shorter strips and driving each separately / in parallel.

But then you have to synchronize each portion of course.

Any way around that.

Is the run one long straight run? That's probably at risk of damage in the next thunderstorm if so too

Are there solutions for this? It's not all in a strait run. 10m max straight run. I had 10m set up outside before for about a year, and it was still going strong.. Even after severe weather/hurricanes.

Boardburner2: I was thinking Supply to ground, just an idea though.

Don't think it will make a difference , i made an incorrect assumption initially.

I would still like to try it. Someone said it worked well for them, but there wasn't enough detail. 1k across data and clock is what the said, but is that across one another or to ground?

The signal gets regenerated each led.

Do they blink when steady state ? Ie with no spi signals sending.

EG turn them on then disconnect the spi and clock signals.

I haven't tested this. But if I set up the LEDs to only get written once in setup, will that achieve the same thing?

Simpler test than soldering a load of c 100 uF implies electrolytic.

I was thinking of something with a low ESR, 1uF ceramic or similar.

I will try some of those as well.

Qdeathstar: I would still like to try it. Someone said it worked well for them, but there wasn't enough detail. 1k across data and clock is what the said, but is that across one another or to ground?

Probably data to ground and clock to ground.

I did this with a neopixel strip which has only 1 signal though.

Values , hard to say its suck it and see with an oscilloscope really, tweak until ringing is reduced.

But if you are able to control your strip OK its not necessary. Once the first LED gets a good signal the rest of the strip regenerates the signal anyway. Normally only a problem with long data feed wires.

Qdeathstar: I haven't tested this. But if I set up the LEDs to only get written once in setup, will that achieve the same thing?

The reason i suggested it is once they are on , physically disconnect the signal wires.

That may eliminate any possible glitches from the arduino end being the culprit.

Well, I will try that but I've noticed if you touch data and clock lines you can get led strips to light up at random, I I think disconnecting the data and clock lines will introduce noise that will change things from the get-go.

I also have breaks in the line about 1/2m in length every 10m or so... Maybe I should put a resistor there (though it would be difficult)

Qdeathstar: Well, I will try that but I've noticed if you touch data and clock lines you can get led strips to light up at random,

You act as an aerial ant put out random noise. That noise will be faithfully amplified all the way up the chain until a pixel interprets it as data.

1K to ground on both signals should fix that, preverably right next to the strip input.

Putting resistors anywhere past the first pixel may be a bad idea. possibly damage the amp output of the previous pixel that way.

Glad I asked before I tried ;).

Boardburner2: You act as an aerial ant put out random noise. That noise will be faithfully amplified all the way up the chain until a pixel interprets it as data.

1K to ground on both signals should fix that, preverably right next to the strip input.

Putting resistors anywhere past the first pixel may be a bad idea. possibly damage the amp output of the previous pixel that way.

How do the terminating resistors work then?