Does a large LED matrix with power injection quantify as a "DC series circuit" in the following context?

Hey guys, got a question regarding long LED strips…

I have two sets of 5 meters of ws8212b RGB LED’s. They come in strips of 60 / meter, thus in total I have 600 LED’s.
I wish to build a 20x20 matrix with these LED’s, which I will do by daisy-chaining 20 rows of 20 LED’s together. This matrix will be driven by an ATmega328p.

I have a slight problem… the following warning label is printed on the packet of my LED strips:
“The LED strips must not exceed 5 meters, when used in a DC series circuit.”

I just wanted to verify, what it means by “DC series circuit” in this context and if I’ll be voiding this 5 meter warning in my matrix.
If you added up the length of 20 LED’s 20 times, my matrix will be 6.67 meters in length and consist of 400 LED’s. (Length not including extra wire to daisy-chain the LED rows.

Notably though, I will be power injecting intermittently every two rows(every 40 LED’s) for this matrix.

Does this still make it a “DC series circuit” and void this warning?

Assuming the above described matrix doesn’t void this warning, what type of circuit would?

Hoping for an opinion on this, thanks :slight_smile:

They presumably do mean that you should not expect the power to go all the way along the strip.

If you make a matrix, the data will “zig-zag” back and forth in alternate rows. You connect 5 V and ground in parallel to all the rows on each side. If there are only 20 LEDs in a row (1.1 Amps at most) it will probably suffice to actually feed in the power on one side though it is a good idea to supply power to both sides (where “power” of course always means both supply and ground).

1 Like

Hi,
Can you please tell us your electronics, programming, arduino, hardware experience?

You haven’t mentioned the current consuption of the strips.
You need to calculate how much current will flow in each strip.
The reason for the warning is because the amount of current to drive 5meters is becoming higher than the wiring in the strip is rated.

How big a power supply do you think you will need for a 20 x 20 WS8212B array.

Tom… :grinning: :+1: :coffee: :australia:

Thankyou for the response.
I am relatively new to electronics, hardware and Arduino however I’ve worked as a software engineer and have plenty of programming experience.

In hindsight, I can see that I haven’t provided an adequate amount of detail. I think I’ve incorrectly assumed that almost all ws8212b LED strips are the same. I’ll do my best to go into detail of my findings and understanding here, however if I misuse some technical terminology please understand that the electronics concepts are all relatively new to me.

The ws8212b LED strips are black, non-waterproof and come in rolls of 5 meters, where there are 60 LEDs per meter (Thus 300 LEDs per roll). I have two of these rolls, thus 600 LEDs or 10 meters. You can cut these strips into smaller strips, which is what I intend to do for this project (20 strips of 20 LEDs for a 20x20 matrix). They also operate at the 4.5 - 5.5 volt range.

According to the manufacturer, Each LED is made up of three(Red, Green, Blue) smaller LEDs that at full brightness draw 20mA each. This means that a LED showing white at full brightness would draw 60mA.

When you consider a chain of 300 LEDs or 5 meters in series at full white brightness, this would draw an enormous 18,000mA or 18 amps (60 * 300 / 1000). If I were to chain 400 LEDs or 6.67 meters in series at full white brightness, this would draw an even larger 24,000mA. This of course, isn’t even considering the current draw of the other components in the circuit.

It is to my understanding, that by putting the label “The LED strips must not exceed 5 meters, when used in a DC series circuit”, the manufacturer is noting that the max current draw of 5 meters worth of all white, full brightness LEDs should not be exceeded. Either this, or that the voltage drop will be so significant at 5m that they should not be wired this way.

The actual project, is that I wish to make a few small arcade-style games where the RGB LED matrix serves as a screen and each LED serves as a pixel. With this considered, I feel that I must note that:

  • Only around 25% to 40% of the lights will be on at any one time during a game.
  • I will be using a brightness of around 50% for all lights.

50% of 24 amps is 12 amps, and 25% to 40% of this gives a range of 3 to 4.8 amps.

With all of this considered along with the other components in the project and so that I have ample room to adjust the brightness up, I have elected to start with a 5v 10 amp power supply.

I understand that at this point, I’ve possibly answered my own question because if the strips aren’t going to draw more than 18 amps anyway, then surely there’s no sense worrying about voiding that 5m warning. I’ve figured this as the warning most likely has to do with going over a maximum current of 18 amps and the LEDs / strips wire not being able to deal with it.
Even though I never intend to do this, I would still like to wire my circuit under the ideology that I could connect a 24 amp power supply instead and set all lights as white at full brightness without issues because my matrix was wired to support it.

With that all out of the way, now onto my question…
Due to my lack of understanding of electronics, I’m not 100% sure if the way I wish to wire my matrix qualifies as a “DC series circuit” and will void the manufacturers 5m rule. Obviously in a literal sense I’m using 400 LEDs or 6.67 meters WORTH of ws2182b strip which if wired in one long line would clearly void the manufacturers rule.

I may be misunderstanding this, but I’ve come across this diagram and and link…

By using something called “power injection” or “voltage injection” I should, theoretically be able to chain 20 rows of 20 LEDs with the same data pin, without the entire strip’s massive current draw going through every row.

For example, if the matrix was to display red at every pixel at 50% brightness, I would expect it to draw 4,000mA in total (20mA / 2 * 400). If I were to measure the current on any given row however, I would wish to find a reading of 200mA which is 1/20th of the total current of 4000mA. For this to work, one thing I have noted is that the wire I’d use for my “power lines” would have to be thicker than others as the total current of each row would indeed flow through these.

My most pending question is, is this possible? Is it possible to wire a 20x20 ws2812b matrix in such a way with 1 data pin, but many intermittent power injections to ensure that the current remains reasonable and doesn’t void the 5m warning for “DC series circuit”? Is the circuit I’ve described even qualify as a “DC series circuit”?

Thankyou for your time.

Hi,


You need to have power gnd wires as well as power positive supply, all that current has to get back to the power supply.
You also connect the gnd of the LED Strip power supply to the controller to give the control signal a gnd reference for the LED controllers.

Tom… :grinning: :+1: :coffee: :australia:

1 Like

Thanks for the speedy reply!
So, if I were to…

  • Replicate the circuit shown in the diagram.
  • Add additional thicker black ground rails, as the red +5v ones have been shown.
  • Assume that instead of a horizontal line, those strips of LEDs were chained in a zig-zag pattern.
  • Connect the data pin on the first row to an arduino data pin
  • Connect the data line for the end of each row/strip to the data line of the next row

It would not qualify as a “DC series circuit” and that massive current won’t be drawn through every strip on the circuit?

It’s an easy error that most if not all of us started with. The WS2812 is the IC that drives three LEDs (or one tri-color LED). The current requirements of the power supply depends on which LED each chip drives. You need to see the specs from the LED strip maker, but as a conservative rule of thumb, plan on 60mA pre LED set (20mA per color).

The chip has one input and one output. In this way the chips are daisy chained- one feeds the data to the next chip. There is no limit to how long this daisy chain can be. I have built one Christmas display with over 1,000 WS2812 LED bulbs on strings that was controlled with a single Wemos D1 Mini.

So, the power to the LEDs should be in parallel as much as possible- typically no more than 5 meters between power connections. (I use 12V LED strings and can go over 300 LEDs in a string powered on one end only.)

1 Like

It’s not a rule, it’s a recommendation. What happens is if you put 5V on one end of a strip, due to the resistance of the tiny conductors between the chips, you will probably have just over 3V at the other end. Any longer and the voltage at the LED will be below 3V and the LED won’t light.

Use individual WS2812 modules:

You can break these apart (or not) and hot glue them to a back board in any arrangement you wish.

1 Like

Thankyou so much for these replies, they’ve been very helpful.

I’ve taken note of the individually addressable LEDs for the future, however I wish to use the LED strips as I already have them handy and don’t want to spend too much more on this project. Would you mind taking a quick look at the diagram in reply #5 and my response in #6 to verify if this sounds okay?

The tldr to the majority of this thread, the warning label says “The LED strips must not exceed 5 meters when used in a DC series circuit.”. I just wanted some verification that the diagram in reply #5 with additions in reply #6 don’t qualify as the LED strips being in a “DC series circuit”?

Thanks again!

As stated above, you can put the LEDs in any pattern you want. There is only one Data-In from the processor. That will be led(0) in your program. Each WS2812 daisy-chains the data to the next WS2812. If you cut a strip, then the data-out needs to be wired to the data-in of the next strip.

The data is in series.
The power (+V AND ground) is in parallel as much as practical.

1 Like

Mate you are an actual legend. Thankyou so, so much for your patience and time. :slight_smile:

Nothing wrong with using LED strips to construct a matrix.

Note what I explained in #2, which SteveMann has illustrated in his second diagram.

However his first diagram is inappropriate! :roll_eyes: You do not want to run the data back from the end of one row to the “start” of the next. You arrange the rows in alternate data directions so that the end of the first row on the right, feeds directly to the start of the second row on the right in a zig-zag pattern. Now the libraries which are written to control matrices deliberately allow for such an arrangement because it is the only practical way to do it. In particular,it is important that wherever the data flows from one part to the next, the ground must accompany it.

Similarly, the diagram you cite:

appears to be written by someone who has no understanding of electricity. Electricity flows in a circuit and a circuit has two sides, a supply and a return. Everywhere the supply side goes, the (“ground”) return must travel with it and it is important when you have devices operating at “RF” - radio frequencies - that the two travel together as a pair so that they do not become a radio antenna to transmit or pick up interference.

Either way will work if the data line is not too long.

Its just nonsense(*), it just means keep the strips short if you want even brightness.
Technically the strips are only ever used parallel and only work with DC in the
first place.

(*) Probably poorly translated or copied from something else.

It’s just CYA for the manufacturer to discourage returns of “bad” strips when someone tries to make a 30 meter long run with power at one end only.

Thankyou very much for your replies.

I can see now how your(@Paul_B) first post does indeed describe the solution that @SteveMann wrote/drew. I wasn’t quite able to understand it initially due to my beginner-level knowledge of electronics and electronics terminology.

I had some follow-up questions if you don’t mind answering…

My questions here are addressed to @Paul_B, however I’ve tagged @SteveMann in this post a couple of times. If you’re reading this, hi! - thankyou so much again for your help. My questions are primarily based on what @Paul_B has recommended/commented however if you have any further comments I’d love to hear them too.

As I’m bumping this post after a week, here’s a quick tldr of the important parts of this thread for answering the questions…

1). The project is a 20x20 matrix of RGB LED’s which are driven by an ATMega328p (Taken off of the Arduino). The 20x20 matrix is constructed by 20 strips of 20 WS2812b RGB LEDs and will be used as a screen of 400 pixels to display some simple games.

2). You mentioned in your last response that another helpful user’s(@SteveMann) illustration might not be appropriate because I’ll have to wire the data line for the matrix around and around again when I could just wire it in an S or zig-zag pattern.

3). I come from a software engineering background, hence my focus on this project is actually the software side. It is for this reason that I later intend to directly program the ATMega328p chip without the use of the Arduino IDE, Arduino bootloader, etc but rather write raw C/C++ to it at some point.
I also want to try my hand at not using the FastLED or other existing library.

One of the goals I have with this project is to make it as bare-bones as I can. (No Arduino, only ATMega328p, writing my own library / functionality for the “screen”, etc).

I have 4 follow-up questions if you don’t mind…

1). In regards to your comment that “libraries written to control matrices deliberately allow for such an arrangement” (zig-zag)… How would you recommend I wire the data line considering I’m going to try and write my own library / not use FastLED? Would non-zig-zag make things easier on the software end if I wasn’t using a library?

2). Referencing @SteveMann’s diagram… If I changed the data-line to be in a zig-zag pattern, other than rotating every second strip 180 degrees and remapping the ground and 5v+ to the rotated strip’s ground and 5v+ is there anything else I would have to change? I note in your comment you mentioned that “it is important that wherever data flows from one part to the next, the ground must accompany it.”. In the original diagram and the above alterations, is this rule in effect?

3). Again referencing @SteveMann’s diagram, I note that only the left side is “directly” connected to the power supply, whilst the right side is connecting each of the +5v and ground lines together of each LED strip. I note that in your original comment, you mentioned how it’s a good idea to supply power to both sides. Is this what’s going on in the diagram? Does this qualify as both sides being “powered”? I’m struggling to understand this as the right side is not directly connected to the Power supply. Please excuse my lack of technical terminology.

4). If the matrix had all LEDs on showing white at full brightness, each LED would draw approx 60mA * 400 = 24 amps for the entire matrix. I can assure that I won’t be doing this, however I have a question in regards to wire thickness.
Currently, I’ll be using a 10 amp power supply, as no more than 40% of the lights will be on at any time and all lights will be using a maximum of about 50% brightness. Furthermore I don’t intend to use white very much.
If in the future, I wanted to experiment with a beefier power supply and allow for more brightness, etc I would want to be able to just simply connect it up without having to worry about re-wiring the matrix because the wire is not thick enough.

My questions in regards to this are…
a). What thickness of wire would you recommend in this scenario?

b). Should / can I use a thinner wire for the data line?

c). My assumption is that the power/ground lines would need to be thick enough to support my “beefier” current (let’s say 18 amps). Would the wire that attaches the power/ground lines to the actual LED strip need to be the same thickness (If I’m assuming correctly, they’ll need to be thick enough to support 1/20th of 18 amps)?

Thankyou so much for your time.

Not for the subject about power and there are no details what kind of patterns you want to run, but you might have to reconsider the use of the 328P. Using standard libraries, 600 leds will require 1800 bytes of RAM.

Hi there. Thankyou for your response, however this post is actually over 1 week old and was only just bumped because I posted some follow-up questions addressed to the users who’d I’d been talking with a week ago. :slight_smile:

Marginally!

You already have to write the code to divide up the image into individual lines, so making the lines alternate is hardly much extra work. The same applies if you are doing vector graphics.

The advice that a “bus” of 5 V and ground should run down and connect the end of every strip together already causes the grounds to be connected as well as the short data connection to alternate strips.

Well it would be a good idea to connect power to both sides of the array, but if the strips are fairly short, there will not be much voltage drop along them and the end which is not directly connected to the power will distribute power from lightly loaded strips back into any heavily loaded ones.

Well, the wire connecting the ends of the strips on each side should be sized for the full load, and the wire from the power supply to one or both sides should arguably be sized for the full load to start with. I suggest at least 2.5 mm2 gauge.

Just remember that it is PWM. There is always some possibility that the individual PWM waveforms may synchronise to some extent and you may see pulses of near the full current even at half brightness.

The data line itself may be of light gauge but the accompanying ground is carrying full load current and needs to be rated accordingly.

Only from the standpoint of the LED number. In FastLED, the LEDs are represented by an array. So whether you zig-zag the strips or start each strip at the left depends entirely on how you want to address them.

0- 1- 2- 3-4-5
11-10-9-8-7-6
or
0-1-2-3- 4- 5
6-7-8-9-10-11
Etc.

No. It’s just giving the right side an assist- balancing the power. However, since you are only dealing with 20 LEDs per strip, then I would just wire them all on one side.

All grounds must be connected together. Period.

14 gauge (2.5mm) should be good to 20 Amps from the power supply to the matrix. You could run a bus of #14 wires down the side of the enclosure and tap from that to each string with #18 wire. Don’t forget the ground. It has to be the same size.

The data wire only carries nanoamps of current. You can use the thinnest wire you have for the data. I would use #20 or #22 only because anything smaller would be difficult to work with.

Wires only need to be thick enough for the maximum expected load. The power and the ground make a complete circuit so they carry the same load.