Electronics Design AU
Power Electronics

How Do You Design a Constant-Current LED Driver Circuit?

Last updated 7 July 2026 · 9 min read

Direct Answer

An LED must be driven with a regulated current, not a regulated voltage, because its forward voltage changes only slightly across a wide current range — a small Vf shift causes a disproportionately large current change, so a fixed voltage source risks thermal runaway as the LED heats up and its Vf drops further. For a single low-power indicator LED, a series resistor sized as R = (Vsupply − Vf) / I_LED is adequate and simple. For anything beyond that — multiple LEDs, higher power, dimming, or efficiency requirements — use a dedicated constant-current source: a linear current-source circuit (transistor or op-amp plus a sense resistor) where supply headroom above the LED string's Vf is small, or a switching (buck, boost, or buck-boost) LED driver IC where efficiency matters or the input voltage doesn't comfortably sit above the LED string's forward voltage. Dim with PWM at a fixed drive current rather than by reducing the current continuously, since PWM preserves the LED's colour point and its current-vs-brightness linearity where analogue current dimming does not.

Detailed Explanation

LEDs are driven by dozens of pages across this site as example loads — a status indicator here, a backlight there, a "constant-current LED driver" named in passing as one use for a discrete current mirror — but the driver circuit itself, and the decision between the several ways to build one, has no dedicated coverage. This page covers that decision directly: why current regulation (not voltage regulation) is the starting requirement, the specific circuit topologies used to provide it, and the dimming and multi-string details that trip up designs that otherwise look correct on paper.

Why Constant Current, Not Constant Voltage

An LED is a diode, and like any diode its current-voltage relationship is steeply exponential rather than linear — past its forward-conduction knee, a very small change in the voltage across it produces a very large change in the current through it. Combined with the LED's negative voltage temperature coefficient (Vf decreases as junction temperature rises, typically by a few millivolts per degree Celsius, similar in mechanism to any diode junction), driving an LED from a fixed voltage source creates a thermal runaway risk: current rises, self-heating increases, Vf drops further, current rises again. A constant-current source breaks this loop by actively holding the current at its set value regardless of how Vf drifts — the LED's actual voltage is whatever it needs to be at that current, and the driver doesn't care what that value is as long as it has enough voltage headroom to work with.

The Series Resistor (Simple, Limited)

For a single low-power indicator LED running from a stable supply, a series resistor is the simplest constant-current-ish approach:

R = (V_supply − V_f) / I_LED

Example: a 3.3 V supply, a red LED with Vf ≈ 2.0 V, targeting 10 mA: R = (3.3 − 2.0) / 0.010 = 130 Ω.

A resistor isn't a true current source — it only approximates constant current because the LED's own Vf variation is small relative to the total voltage dropped across the resistor. This approximation holds up reasonably well for a single indicator LED with generous supply headroom, but degrades as the resistor's share of the total voltage shrinks (a resistor-driven LED running close to the supply rail regulates current far more loosely) and wastes power proportionally to the voltage it drops — acceptable at 10 mA, wasteful once currents or LED counts rise into the range where efficiency starts to matter.

Linear Constant-Current Sources

Where a true current source is needed but the available voltage headroom above the LED string's Vf is small (so a switching converter's added complexity isn't justified), a linear current source regulates current directly rather than approximating it with a fixed resistor value:

  • Transistor plus sense resistor. A BJT or MOSFET in series with the LED, with a small sense resistor in its emitter/source leg feeding back to a reference (an op-amp, a shunt regulator like the TL431, or a dedicated linear LED driver IC) that adjusts the transistor's drive to hold the sense voltage — and therefore the LED current — constant.
  • Discrete current mirror. A matched-transistor current mirror is a simple way to build a fixed-ratio current source for a low-power indicator or small LED array without needing an active feedback loop — the mirrored current tracks a reference current set elsewhere in the circuit.
  • Dedicated linear LED driver ICs. Purpose-built parts integrate the sense-and-regulate loop in a single package, often with a dimming control input, and are common for single-string, low-to-moderate power LED loads where the input-to-Vf headroom is small and constant.

Linear current sources dissipate their excess headroom (V_supply − V_f_string, times current) as heat in the regulating element, exactly like a linear voltage regulator — efficient only when that headroom is small, and a poor choice when the supply voltage is much higher than the LED string's total forward voltage. The decision between a linear and switching LED driver follows the same headroom-and-efficiency logic as choosing between a linear and switching voltage regulator; only the regulated quantity (current instead of voltage) differs.

Switching (Buck, Boost, Buck-Boost) LED Drivers

Where efficiency matters, or the input voltage doesn't sit conveniently just above the LED string's forward voltage, a switching LED driver IC applies the same buck, boost, or buck-boost topologies covered in DC-DC converter topology selection — but regulating output current to the LED string rather than output voltage:

  • Buck LED driver — used when the input voltage is comfortably above the total LED string voltage (e.g. driving a 3-LED string, ~9–10 V total Vf, from a 24 V supply).
  • Boost LED driver — used when the input voltage is below the LED string voltage (e.g. driving a multi-LED backlight string from a single-cell 3.7 V lithium battery).
  • Buck-boost LED driver — used when the input voltage range straddles the LED string voltage across its operating range (a battery that starts above and discharges below the string's Vf).

These parts typically regulate current by sensing it across a small resistor in the LED string's return path, feeding that back into the same kind of switching control loop used in any current-mode switching converter, and most include a dedicated PWM dimming input separate from the switching frequency itself.

PWM Dimming vs Analogue Current Dimming

Two distinct methods reduce an LED's perceived brightness, and they are not interchangeable:

PWM dimming switches the LED fully on and off at a fixed drive current, varying the fraction of time it's on (duty cycle) rather than the current level itself — see PWM frequency and duty cycle for the general PWM mechanics this borrows from. Because the LED always operates at the same current when it's on, its colour point stays essentially constant across the entire dimming range. The PWM frequency needs to be high enough that the on/off switching isn't visible as flicker — commonly recommended practice keeps this above roughly 200 Hz for general viewing, with camera-facing applications needing considerably higher frequencies to avoid banding artefacts in rolling-shutter image sensors.

Analogue current dimming continuously reduces the actual drive current to lower brightness. This avoids any switching artefacts but shifts the LED's operating point — and because wavelength (and, for white LEDs, correlated colour temperature) both vary somewhat with drive current, analogue dimming produces a visible colour shift across its dimming range that PWM dimming does not.

Most dedicated LED driver ICs support PWM dimming as standard, and many support both methods, letting the same driver be used for colour-critical dimming (PWM) or the simplest possible dimming control (analogue) depending on the design's priority.

Design Considerations

  • Choose linear vs switching based on headroom, not just power level. A linear source is simpler and cheaper when the supply voltage sits only slightly above the LED string's Vf; the same linear approach at high headroom just burns the difference as heat and needs a heatsink — see thermal design and heatsink selection for sizing that dissipation once it's unavoidable.
  • Give every parallel LED string its own current-limiting element. Sharing one regulated current source across multiple parallel strings without individual per-string regulation invites current hogging — see the FAQ above for the failure mechanism and fix.
  • Match the driver's dimming input to the application's colour requirements. Use PWM dimming for anything where colour consistency across the dimming range matters (indicator arrays used for visual state, backlighting, general lighting); analogue dimming is acceptable where colour shift is unimportant and the extra simplicity of a fixed-frequency-free design is worth it.
  • Size the current sense resistor for the driver IC's actual sense-voltage spec, not an arbitrary round value — most driver ICs regulate to a specific sense voltage (commonly in the 100–200 mV range on many parts; always confirm against the specific IC's datasheet), and the resistor value follows directly from dividing that sense voltage by the target LED current.

Common Mistakes

  • Using a series resistor across multiple LEDs or higher current loads where a true current source is needed. A resistor's loose current regulation becomes a real problem exactly where it matters most — higher LED counts and higher currents, where thermal effects on Vf are largest and the cost of poor regulation (uneven brightness, thermal runaway risk) is highest.
  • Ignoring LED forward-voltage bin tolerance in a resistor-based design intended for volume production. A resistor value calculated against one LED's datasheet typical Vf will produce a different actual current on units drawn from a different Vf bin — a genuine current source removes this sensitivity entirely, which is one of the strongest reasons to move away from resistor-only driving once a design leaves the prototype stage.
  • Paralleling LED strings without individual current limiting and being surprised by uneven brightness or early failures. See the current-hogging FAQ above — this is one of the most common LED driver design mistakes, and it can look like a defective LED batch when the actual cause is the topology.
  • Setting PWM dimming frequency too low. A PWM dimming frequency low enough to be visible as flicker, or low enough to produce banding in a camera-facing application, undermines the entire reason for choosing PWM dimming over analogue dimming in the first place.

Zeus Design's electronics engineering team designs LED driver circuits — from a simple indicator to multi-string lighting arrays with dimming control — as part of complete product electronics design.

Frequently Asked Questions

Why does driving an LED from a fixed voltage risk thermal runaway?
An LED's forward voltage decreases as its junction temperature rises — typically on the order of a few millivolts per degree Celsius, similar in mechanism to any diode junction. Because the LED's current-voltage relationship is steeply exponential, that small voltage decrease at a fixed applied voltage produces a disproportionately large current increase. Higher current increases self-heating, which further lowers Vf, which further increases current — a positive feedback loop that can destroy the LED if nothing limits the current independently of temperature. A current-regulated source breaks this loop entirely: the drive circuit actively holds current constant regardless of how Vf drifts with temperature, so there is no runaway path.
What is current hogging in a multi-string LED design, and how do you prevent it?
Current hogging happens when two or more LED strings are wired in parallel from a single shared current-regulated source without each string having its own current-limiting element. LEDs (even from the same reel, same bin) have some forward-voltage tolerance between individual units — the string with the slightly lower total Vf conducts disproportionately more of the shared current, running hotter, which lowers its Vf further and pulls even more current from the other string(s). The fix is to give each parallel string its own dedicated current-limiting element — a separate resistor, a separate linear current source, or a separate output channel on a multi-channel driver IC — rather than relying on one shared regulated source to divide current evenly between strings on its own.
Does PWM dimming affect an LED's colour the same way as reducing its drive current?
No, and this is the main reason PWM dimming is preferred over continuously reducing drive current (analogue dimming) in colour-critical applications. An LED driven at full current but for a shorter fraction of each PWM cycle spends all of its 'on' time at the same operating point, so its colour point (dominant wavelength and, for white LEDs, colour temperature) stays essentially constant across the dimming range — only the perceived average brightness changes. Reducing the drive current continuously instead changes the LED's actual operating point, and because wavelength and colour temperature both shift somewhat with drive current, analogue dimming produces a visible colour shift as brightness changes — most noticeable in white LEDs and in applications where colour consistency across a dimming range actually matters (display backlighting, general lighting).

References

Related Questions

Related Forum Discussions