Flickering neopixel strip

Hi. I just made my first project based on an arduino board. I used two ws2812b 60led/m to make one ~7 m strip ( 5m + ~2m).


both switches are Sonoff SV that I use for google home

The problem i have is that sometimes the second strip flickers green, doesn't matter the color set on them and it also happens when I connect the arduino board to my pc. Do i need to connect a capacitor to that part of the circuit or try to redo to soldering? Or can it be something else?

You have no capacitor across the LED strips. Why is it wired in that funny way?

The schematic you have drawn would short out the power supply when those switches are pressed.

You should also have a resistor between he first strip and the second and another capacitor.

It is likely that the ground to the second strip is not solid, but I can’t tell unless you post a schematic without mistakes.

In fact I would add capacitors at both end of both strips.

What do you mean it's wired in a funny way and what kind of resistor and capacitors?

You illustrate the 5 V supply connected to "Vin", that is obviously wrong. Do not use "Vin" (at all). You power the UNO through its "5V" pin, but disconnect that pin (clearly, leaving "GND" connected) while you have the USB connected to a PC.

Well, we are not sure of what you are trying to do with the switches on the left hand side, and because you run the signal from the first strip to the second, the ground must also connect directly from the first to the second. If there is any distance between, then you should add a second resistor in series with the data at the start of the second strip just as there is a resistor which should be at the start of the first strip.

The data must always run along with the ground, so showing it separate from the power wires is a mistake. If anything, you run the power from the 5 V supply directly to the strip, and then run the power - 5 V and ground - together with the data wire, back from the start of the strip to the Arduino so that all are together.

Of course, the rule applies also to the power wiring, you do not separate the 5 V and ground wires at any point in the run. And a 470 µF capacitor should be across 5 V and ground at the start of each strip.

That's how I did it the first time and it did not get powered and then someone said to put it in VIN and it works/

The switches I use to turn the circuit on and off since my power supply doesn't have and On off switch and they are always pressed at the exact same time.
As for the power wires if I were to connect the second strip directly to the first one and add the extra current needed at the end of the strip instead of where it is right now would it work?

Then you clearly connected it wrong!

Powering via "Vin" loses a couple of volts and will be very unreliable.

Now you mention it. if the power supply is just a single output with duplicate "5V" and "GND" terminals - as most are - then you should actually be connecting the power - and ground - into the strips every 80 LEDs or so from a cable running alongside the strip. It really should be a single cable of at least 2 mm² wire.

Why do you want to turn the strip power off (and not just turn the mains input off)? When blanked - that is all programmed off - it will draw about 1 mA per LED. A relatively minor draw from a mains supply.

I'll try again with that connection. The problem with connecting the power every ~80 led is that it's placed in a quite wierd position and I can't have a cable alongside it, but for the first 300 leds it seems to work perfectly. So instead of using two different power wires if I connect the first wires again in that spot (where it is right now) would it be ok, and do I still need to connect the power between the two strips?
As for the power off I didn't think about that but I might use it in future project.

Well at least you do want to connect power - including ground - to both ends of each strip. Particularly the longer one but really, both strips and the middle of the 5 metre one.