Another user made the following claim:

You cannot [LEDs] in parallel and expect the current to magically divide in half.

Of course, this is exactly what someone just starting in EE would expect to happen if two "identical"¹ LEDs were connected in parallel to a constant current source. It's also exactly what happens in simulation, both in CircuitJS and CircuitLab:


simulate this circuit – Schematic created using CircuitLab

An LED is (IIUC) a constant-voltage device. Now, I know the way current limiting usually works is by dropping voltage, but let's say my voltage is already close to the LED forward voltage. Say, for example, my LED has Vfw = 3 V and Ifw = 20 mA, and I am supplying 3 V and have my current limit set to 20 mA. (This works out to 60 mW of Power.)

Now let's say I take that same 3V, current-limited to 20 mA, and try to drive two of those LEDs. Surely I'm not going to be driving both LEDs at 60 mW! That would mean I'm pouring 120 mW of power into the system, but my input is only 60 mW!

  • What actually happens, and why?
  • What if I supply 5V instead of 3V?
  • If I wanted to drive both LEDs at 20 mA, at what current would I set my current limiter?

(¹ In the real world, no two parts are truly identical, but I'd still expect the actual result to be within shouting distance of expectation.)


4 Answers 4


In the simulator, identical LEDs are identical. In the real world, LEDs with the same part number from the same batch are only similar.

A LED has a very steep V/I curve. The LED current changes by orders of magnitude for tiny changes in terminal voltage. Small differences in their temperature, or the way they were made, could change their terminal voltage up or down by a few mV, enough for an order of magnitude current difference.

When giving a constant current supply of 20 mA to two 'identical' LEDs, I would not be surprised to see the current split 1 mA and 19 mA. I would also not be surprised to see it split 10 mA each.

If you voltage drive a LED, then you get pretty much pot luck for the current. Consider that the lower intrinsic voltage LED is clamping the voltage for the other LED. So the low voltage LED is being current driven, sinking that 19 mA (is more or less 20 mA) I mentioned above. The higher voltage LED is then effectively being voltage driven, at a voltage below its '20 mA voltage', so is only drawing a tiny current.

  • \$\begingroup\$ Yes, this matches what I found elsewhere. Thank you for sharing your knowledge! \$\endgroup\$
    – Matthew
    Oct 10, 2023 at 20:17

What if I supply 5V instead of 3V?

Then your supply is most assuredly a 20ma current source (if you've previously set current limit to 20mA). If your power supply has a voltage display, it should indicate the LED's forward voltage, since no series resistor is present. A different temperature may change this voltage reading, and a different LED may indicate a different voltage too.

If I wanted to drive both LEDs at 20 mA, at what current would I set my current limiter?

You might try setting current limit to 40 mA. You can be assured that 40mA is emitted by the current-limited supply, but that's dangerous - because one parallel LED might hog most of that current and get hot, while the other LED gets starved.

It is difficult to visually compare LED brightness by eye. Even if two are equally bright, it is not a reliable indication that they share current equally.
Some LED data sheets show lumens variation when driven at a specified current:Everlight white LED data sheet http://www1.futureelectronics.com/doc/EVERLIGHT%C2%A0/334-15__T1C1-4WYA.pdf
Note that at 20mA, Luminous intensity can vary 2:1 range from LED-to-LED. In the same batch, you might experience a smaller range than this. Some manufacturers allow binning to achieve a smaller range - but that'll cost you extra.
And also note that forward voltage can vary from 3.0V to 3.6V - and that's at a constant ambient temperature of 25C!

A series-connected string of 70 LEDs ensures current-sharing, but for 3V LEDs, that adds up to about 210 V (awkward). At least 42 W step-up converter would be needed.

  • 1
    \$\begingroup\$ There's my "supply", and there's what's feeding the LED, e.g. an LED driver or current-limiting "bench" supply. IIUC, you're right on the money; a "bench" supply, with its "nominal" voltage set to 5V, will drop that voltage in order to limit the current (and will display the actual voltage). Similar effect if I plug a 5V "wall wart" into an LED driver, except the voltage drop happens at the driver and the supply doesn't know anything about it. \$\endgroup\$
    – Matthew
    Oct 10, 2023 at 21:04
  • \$\begingroup\$ On the current-brightness relation... sure, different LEDs especially can have different lumens-per-watt, and I can see where tuning for brightness is a bad way to try to get to similar current. When it comes to "the same" LEDs, however, is targeting equal current a reasonable approach to trying to get similar brightness? (My application has 70 LEDs. Trying to hand-tune the current target for each, individually, is... not ideal. 🙂) \$\endgroup\$
    – Matthew
    Oct 10, 2023 at 21:08
  • \$\begingroup\$ @Matthew added an edit showing a manufacturer's data sheet Millicandella can vary quite a bit unless you pay for binning. Manufacturers offer binning to better match a batch of LEDs - you might ask them, "How many years does your binning hold to spec?, and over what temperature range?" Binning may be an option if you do try parallel LEDs with no series resistor. Still risky, IMO \$\endgroup\$
    – glen_geek
    Oct 10, 2023 at 21:41
  • \$\begingroup\$ 112 mcd - 450 mcd? 😱 ...oh, joy. (That's for an LED I'm considering for my application.) Well, I need 30. I wonder, if I were to buy, say, 100, if I'd be able to "bin" them myself in any reasonable manner... I can't wire more than 4 in series anyway, and actually doing so would be challenging. \$\endgroup\$
    – Matthew
    Oct 10, 2023 at 22:00

For lighting applications, LEDs are often binned into 100mV wide bins over which the forward current might vary by a factor of 2-3, so assuming you're buying from a reputable supplier and they're all the same voltage bin, you might expect in the worst case the lower forward voltage LED to get 2-3x the current of the higher forward voltage LED if temperature can be ignored.

A bigger factor is thermal runaway, since the forward voltage of an LED changes by several millivolts per degree, the LED that gets the higher current will get hotter, which will lower its voltage, which will increase its current... Eventually if the diodes are not in close thermal contact, one gets really hot and all the current goes through it. Not good.

That said, paralleling strings of multiple series LEDs is extremely common in high power lighting applications. If you put enough in series, the random variation will average out, and you will get relatively even distribution. If you mount them on a common aluminum PCB, the they'll heat each other a to a common temperature. This needs to be carefully designed though to make sure that the worst case current imbalance won't go into thermal runaway or damage the LEDs.

  • \$\begingroup\$ Unfortunately, I don't think I can apply balancing to my application. IIUC, short of independently driving each individual LED, my best bet is going to be to pair each with a resistor. And, alas, I think Neil's Answer covered the "why" just a smidge better. Still, this is useful information; thanks! +1 \$\endgroup\$
    – Matthew
    Oct 10, 2023 at 20:38

An effect which others haven't mentioned yet [at time of writing]: internal resistance. Compared to rectifiers, LEDs have quite high internal resistance. More or less, because more metal on top of the die would block light output.

Put another way: when is a CV load not a CV load? When it has enough resistance that the voltage drop across that resistance dominates over differences in forward voltage.

A typical application is an array of LEDs, where series strings are wired in parallel. Also surprisingly common is just wiring them direct in parallel, for manufactured strings I mean (in quantity, matching/binning is feasible; this is harder to do at board level, mind). The effect is that, at light load, several (lowest Vf) LEDs light up, dominating current draw -- sharing is nonexistent, but, when the total input current is less than the If(max) of any given chip, this is fine, electrically at least. This level might also be below the nominal operating current of the array/strip, below which light balance or CRI isn't specified or guaranteed (phosphors respond differently at low levels, hence the CRI being generally poorer). Basically, if you don't need much light output, and don't care about the CRI, or evenness of illumination, this is fine. And then as you increase current, voltage drop across the resistive component increases, and more LEDs light up, to similar light levels. As long as ratings are respected at all currents, that's it, you're done.

So we need some degree of matching between LEDs, given the desired ratings of the overall array. How much matching, depends on the relative amounts of Vf variation and ESR drop within the diodes themselves. When ESR is larger, matching can be looser.

Note we can add external resistance, to further improve matching. A typical use-case is unmatched LEDs in series strings, with a small resistor added (say, 10 LEDs in series, plus one Vf's-worth of resistance), and then wiring those in parallel. The resulting array is still perfectly suitable for a CC supply, and the strings will match well at ratings; they might not illuminate equally at light load, but as long as the mismatch is within ratings, that's fine, and we can ensure ratings are respected by choosing the resistance high enough.

Actually modeling or calculating this is another matter; CircuitLab isn't really suitable, but SPICE can be used to adjust the temperature of a given component to be able to do temperature difference simulations, and either min/max models can be used (if the manufacturer provides such), or we can add explicit external offset (voltage and resistance; note the resistance can be negative to effectively reduce the model's own ESR) to a given string to simulate mismatch.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.