I'm looking at several design choices for driving a LED and/or laser diode in a very stable, low noise way.

The specs are as follows:

  • current: 1-100mA, adjustable (the adjustment can be either digital, analog or via a trim pot); current accuracy: a few percent of the set point over time, temperature etc.

  • voltage: different LEDs I may need to drive are between 1.4V and 3V forward

  • noise/ripple at the LED: as low as possible (10uV rms is a good target ** this is one of the tough parts of the spec)

  • turn on/off time: 0.1 ms or less

The options:

  • Use a LED driver chip. Pros: they are meant to drive LEDs :) Cons: most of them don't have anywhere near 100:1 adjustment range (eg LED1642GW, can be adjusted in software which is nice but the range is only 3mA to 40mA). They also don't have any noise spec. Many have a lot more than 1% current variation over temperature (sometimes deliberate, the current drops at higher temperatures). Also, multi-LED drivers tend to have a single resistor set the current for all channels, they are not independently controlled.

  • Use an adjustable LDO configured as a current source (and use enable pin to turn on/off). Pros: the noise is specified and can be very good. Cons: the current sense resistor is also the current adjusting resistor, it needs to be a low resistance (let's say 1 kohm adjustable down to 10 ohm) and has fairly high worst-case power dissipation (0.1W) for a potentiometer. The enable pin turn on and turn off can be quite slow (sometimes adjustable turn on speed which is nice, but kHz operation is somewhat rare I think)


simulate this circuit – Schematic created using CircuitLab

  • Use an op amp, either directly or with a pass transistor: I breadboarded this. Pros: complete control over the behavior; adjustable over a wide range of current, including setting the current using input voltage. Cons: it seems pretty noisy and prone to oscillate; noise from the input can couple into the output; I haven't figured out how to make a version of this which is reasonably fast to turn on/off and also very low noise. If using just a positive supply, turning the LED off completely is not very straightforward.


simulate this circuit

Which of these sounds like the best design option for this spec?

(Btw: I will need to make a 100-channel version of this, with the current and on/off state of all channels controllable independently; this could be simply 100 copies of the same circuit. Using some of the 16- or 24-channel LED driver ICs could be nice, but only if the current for each channel is independently controllable)

  • \$\begingroup\$ Are there specs on the light flux? (What's the end-use? Or is this a product for general purpose uses?) \$\endgroup\$ – jonk Jul 23 '18 at 22:53
  • 2
    \$\begingroup\$ Alex, I've been through struggles using LEDs as "standard candles." I've used a current source that cost tens of thousands of dollars and provided accurate and repeatable currents with better specs than you have given (better than .1%) with results far worse than your specs suggest you want for optical flux. In fact, to achieve what we needed required throwing away almost all of the LEDs we would buy. We'd do a 48 hour bake-in (temp-stable) and monitor their flux. Far less than 1% of the LEDs would then qualify. \$\endgroup\$ – jonk Jul 23 '18 at 23:23
  • 2
    \$\begingroup\$ Yes. The current was ROCK SOLID. Not only did we spend gobs of money on the best unit we could buy, but we measured current using a NIST calibrated HP 3468B 6.5 digit multimeter. It's not the current. It's the FABs making the LEDs. They might be better now -- this was more than a decade ago. But I wouldn't count on it. I'd plan for trouble. And I'm assuming you will hold your LEDs at a very stable temperature, when I say that. You have my best wishes. Most of the LEDs would just "flicker" around and never did settle down. \$\endgroup\$ – jonk Jul 23 '18 at 23:30
  • 3
    \$\begingroup\$ Don't spend a lot of time and money designing something you think will do what you want, based on untested (and possibly false) assumptions, before you go out and first validate that your goals are achievable with today's products. Buy the current source, for now. Verify. Then go design, if that pans out. \$\endgroup\$ – jonk Jul 23 '18 at 23:34
  • 1
    \$\begingroup\$ @Jonk , TonyEE. Interesting. All my systems were ratiometric, so absolute output didn't matter, but I did notice very high levels of ultra low frequency random walk noise. I always attributed it to the photodiodes, but maybe it was the leds (gaas algaas then) \$\endgroup\$ – Henry Crun Jul 24 '18 at 8:59

Here is an arrangement that gives excellent regulation, low noise at low and high frequencies, and also allows you to switch the LED at very high frequencies, without compromising the noise.


simulate this circuit – Schematic created using CircuitLab

  • lots of caps to filter noise, both big electros and small ceramics
  • the voltage ref has its noise filtered to give a quiet reference to the opamp.
  • the opamp gives an accurate constant current
  • we use an emitter follower, as it has intrinsic constant current at high frequencies without the opamp doing anything
  • instead of turning it on and off, we steer the current between the test led, and a second matched led. This means that the currents and voltages stay constant during switching. The constant current circuit can have noise filtering, yet still be switched at speed.
  • We filter the supply to the leds to reduce the noise input from the power supply.
  • invertor is CD4069 (18V cmos). Must have sufficient supply voltage to turn the fets on. i.e. 5V above collector voltage of Q1. PFets could also be used.
  • the opamp is not critical, but must be single supply (works to 0) or rail to rail. LM358 prob OK, or TLV172. At low currents, the transistor is simple. At higher currents, you need to either change to a darlington, or maybe use a crazy hot modern transistor like zxt1053 which manages HFE=400@1A

This is the circuit I used in optical instruments for turbidity, transmission and flourescence.

Note that generally the actual brightness of the LED's is being calibrated out by another (reference) light path or photodetector. The brightness varies as the LED's age, and with temperature. If you need to control the absolute brightness, then you use a reference photodiode in the feedback loop to control brightness rather than current.

  • \$\begingroup\$ Fantastic answer, thank you! That's exactly what I'm looking to build. Any tips on component selection, esp op amp and BJT? How would I make the current adjustable - resistive divider after the precision voltage reference? \$\endgroup\$ – Alex I Jul 24 '18 at 0:38
  • 2
    \$\begingroup\$ That better not be "the circuit I used". The FETs will not turn on at any reasonable logic level, to start. I presume you want p-types, in any event. And C1 is just asking for oscillation. \$\endgroup\$ – WhatRoughBeast Jul 24 '18 at 3:13
  • 1
    \$\begingroup\$ @WhatRoughBeast Young whipper snappers. The gates are what we call "CMOS" y'know CD4069, 18V all that. [Kind of dates the design when I was avoiding pfets] V+ was certainly 12V originally. It will work fine from 9V with any modern nfet, as VC.q1 falls until the fets conduct. The fets do not need to be saturated. And with a 100us time constant into an emitter follower - No it doesn't oscillate. Keep theorising... \$\endgroup\$ – Henry Crun Jul 24 '18 at 8:23
  • 1
    \$\begingroup\$ @AlexI the opamp is not critical, but must be single supply (works to 0) or rail to rail. LM324 prob OK. At low currents, the transistor is simple. At higher currents, you need to either change to a darlington, or maybe use a crazy hot modern transistor like this diodes.com/assets/Datasheets/ZXT1053AK.pdf which manages HFE=400@1A \$\endgroup\$ – Henry Crun Jul 24 '18 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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