WS2812B + MAX485 daisy chained

Hi, I have 8 WS2812B strips connected in series like this:

Teensy 3.2 > MAX485 transmitter board > MAX485 receiver > 60 LED long WS2812b LED strip > MAX485 transmitter > MAX485 receiver > 60 LED long WS2812b LED strip > MAX485 transmitter > and so forth (8 strips in total)

Each strip has it's own power source (5v 4A).

The problem I have is this: the first strips work well, but they're increasingly noisy as the chain advances. When there are few pixels lit the entire system works flawlessly, also works great when I light them all for just one frame and then go to black (like a flash). The problem appears when there's a lot of pixels lit with the same color and increases with brightness.

EXAMPLES OF THE PROBLEM (the structures are daisy chained from right to left):

Arduino Nano, multicolor patterns (works OK)

Arduino Nano, solid magenta 80% brightness (the last structure is noisy)

Teensy 3.2, solid magenta, maybe 90% brightness (the last 5 structures show blue instead of magenta)

Teensy 3.2, small cyan section, 100% brightness (shows no problems)

Teensy 3.2, big cyan section, 100% brightness (is a disaster)

Teensy 3.2, small magenta section, no problem

Teensy 3.2, solid magenta, maybe 70% brightness (the last two structures show blue)

THINGS I TESTED

Lack of power: every structure has it's own power source (a 5v 4A switching power supply, the structures consume a maximum of 5v 3.7A, but I wasn't near this on the examples I showed), I thought the problem could be related to lack of power, I tested two structures with one common power source of 5v 35A, the problem worsened (so it seems it is somehow related to the power source). And also, looking at the videos you can notice that the problem is worse in relation to the number and brightness of the LEDs.

GND problems: I've read that some projects with similar problems solved it by making changes in the way the GND is wired. I did some tests: using one common power source, cutting the common ground, etc. The problem was always the same no matter what I did with the GND wires.

Design of the MAX485 boards: the design of these boards is based on this one. I know that the signal is transmitted and received correctly because of the examples you can see on the videos marked as not having problems. I would like to find a solution that doesn't make me replace these boards.

Signal reflection: lastly, my last hope was signal reflection. It happens that in some patterns, when they don't work, you can see some noisy "inverted" pattern elements. For example, mixing the pattern shown in the "small cyan" videos with a solid background, sometimes a yellow same sized pattern appears on some structures (I understand yellow as having the inverted signal of cyan, inverted in time not in color, you can se something like this in the "big cyan section" video). I tried removing the last MAX485 transmitter (that sends signal into open wires) thinking it could be the problem, but after removing it the problem is the same. You think it could be signal reflection? Should I put diodes at the end of the last strip dataline?

Some extra info: solid colors like green, blue and red work fairly well (little noise at the end of the chain), the problem is more present when I mix two colors (cyan, magenta and yellow). White works better.

Thank you in advance, I hope someone finds this problem pretty obvious and can give me hand.

When there are few pixels lit the entire system works flawlessly,

So that will be lack of decoupling then. You don’t mention any capacitors in that setup.
Also don’t use the 5V that has gone through the strip, wire separate power and ground.

Hi, I don't have any capacitor besides the ones I included on the MAX485 boards. I was reading in this forum that sometimes is recommended to use a 1000uF capacitor at the start of the strip, I'll try that, but it will take me some time.

Grumpy_Mike:
Also don’t use the 5V that has gone through the strip, wire separate power and ground.

I don't fully understand this one. Each structure has it's own power source, and yes, I power the MAX485 transmitter with the 5v and GND at the end of the strip. You say I should power it directly from the power source?

You have stability problems, I am suggesting things I know from my experance that will help with that. These are not guarantees but suggestions how to make things better. Basically scaling up is a difficult thing to do, especially for a beginner.

You should not power anything from the end of an LED strip, that is just asking for trouble. Each strip needs at least one capacitor on it.

I did not suggest you power the max buffers from a separate supply I suggested that you wire it up separate so the power does not have to go through the strip. On a long run of anything you pick up interference from mains wiring and radio transmissions, you reduce this with capacitors. Also series inductors can help.

all of the grounds should be commoned together... the teensy, the driver boards, and the strips should all have a common ground.

How are you running the wires between the strips? Are you soldering the wires?

Also, have you tested with the most basic code (to make sure it’s not a code problem?

Most ws2812v led strips have a capacitor for each led on board for decoupling, the capacitor the drawings suggest you add is to mitigate voltage fluctuations due to rapid changes in current draw.

Grumpy_Mike:
You should not power anything from the end of an LED strip, that is just asking for trouble. Each strip needs at least one capacitor on it.

I did not suggest you power the max buffers from a separate supply I suggested that you wire it up separate so the power does not have to go through the strip. On a long run of anything you pick up interference from mains wiring and radio transmissions, you reduce this with capacitors. Also series inductors can help.

OK, so I'll try with the capacitor at the start, and rewiring the power.

Qdeathstar:
all of the grounds should be commoned together... the teensy, the driver boards, and the strips should all have a common ground.

How are you running the wires between the strips? Are you soldering the wires?

Also, have you tested with the most basic code (to make sure it’s not a code problem?

Most ws2812v led strips have a capacitor for each led on board for decoupling, the capacitor the drawings suggest you add is to mitigate voltage fluctuations due to rapid changes in current draw.

All grounds are wired together, that's checked.

The wires are CAT.5, they're soldered to the transmitter, then they go out of the "chassis" through an RJ-45 connection and enter to the next chassis through another RJ-45 connection, and inside are soldered to the receiver.

I tried with different libraries and different micro controllers.

Here is a diagram of the wiring:

i think you may want send a negative from the power supply to each of the strips instead of running the negative through the strips and omit the top negative

OK, so I'll try:

  • Adding a 1000uF capacitor at the start of each structure's circuit.
  • Wiring GND from each power source to the next, avoiding wiring it from the end of the circuit.
  • Feeding the MAX485 at the end of each structure directly from the source.

So the general idea is to evade sending power through the strips as much as posible.

I think you will be fine just powering the strips (and associated 485s) on one end of the structure. I would not power both ends of the structure because you may introduce ground loops into the system. I wouldn’t ground both ends of the structure for the same reason.

Qdeathstar:
I think you will be fine just powering the strips (and associated 485s) on one end of the structure. I would not power both ends of the structure because you may introduce ground loops into the system. I wouldn’t ground both ends of the structure for the same reason.

OK, I'll try the changes in the days to come, I also will use thicker wires for power (I checked and they're a little thin, so that should be one of the main problems).

Qdeathstar:
I would not power both ends of the structure because you may introduce ground loops into the system. I wouldn’t ground both ends of the structure for the same reason.

I would disagree with that and would power both ends, I don't think ground loops are a problem here.

I would also use some 0.1uF ceramic capacitors in parallel with the large electrolytics to handle high frequency noise.

Grumpy_Mike:
I would disagree with that and would power both ends, I don't think ground loops are a problem here.

I would also use some 0.1uF ceramic capacitors in parallel with the large electrolytics to handle high frequency noise.

Ok, I'll make the other changes before powering from both ends, but I'll keep in mind in case it doesn't work. The MAX485 circuits have some small capacitors for that purpose between 5v and GND (4.7uF and 22nF), so I don't know if it is necessary to place more.

For now, as for your answers and doing some questions and research, I think my priorities are thicker power wires and the 1000uF capacitor. Then if it doesn't work I will power also from the other end, which as a consequence will result in a direct wiring to the power source GND being sent as reference to the next structure.

Thank you for your help, I'll come back after the tests (after some days).