I have a 3V3 rail and want to run an LED with a Vf=3.1V at 10mA with a constant current source. I'm used to circuits like the one below but the problem is that I only have 200mV of overhead and discrete circuits I am familiar with count on the 0.7V Vbe, which would brown out the LED.

Can anyone provide a constant current circuit using cheap discrete parts that can provide 10mA with less than 200mV of overhead? I am familiar with specific LED drivers or circuits that use op amps but they seem like engineering overkill to turn on an LED.

enter image description here

  • 1
    \$\begingroup\$ did you mean 200mV? whats the problem of using a single resistor? \$\endgroup\$
    – Wesley Lee
    Nov 23, 2015 at 17:50
  • 2
    \$\begingroup\$ His 3.3v is regulated but the LED's 3.1v can vary. Any change in the forward voltage compared to 200mv is a big change in the required resistor value. (This would make a good question on its own). \$\endgroup\$
    – gbarry
    Nov 23, 2015 at 18:12
  • \$\begingroup\$ Corrected to 200mV. A single resistor will not be constant current. \$\endgroup\$
    – EasyOhm
    Nov 23, 2015 at 18:12

2 Answers 2


You could use something like the below, which requires less than 60mV of headroom. Sense voltage is only 50mV so the offset voltage of the op-amp will tend to greatly affect the current. The LED could be controlled by connecting R3 to a port pin.

(R4 and C1 may not be necessary- it may be possible to omit C1 and short R4 but that would have to be determined- that phase margin is enough for good stability)


simulate this circuit – Schematic created using CircuitLab

Note that if your supply is nominal 3.3V and your LED nominal 3.1V Vf you still may not have enough headroom if the LED happens to be on the high side and your 3.3 turns out to be on the low side.


I came up with this circuit in trying to come up with a cheap LED flashlight for poorer people. The inexpensive flashlights tend to just use a resistor only, and would waste too much power (money) for those who only make a dollar or two a week. I finally settled on 2.6mA as the minimum usable light level, which I've been using for a few years. I've changed the batteries once, and they seem to last forever. I do believe that the overhead of this circuit is about 200mV, which is what you wanted. Replace R9 with a trimpot or a potentiometer to make it adjustable, or to find the actual value of the resistor for your particular LED. Remains fairly stable in the temperature range that I expect a flashlight to operate in, but it might not work well in Alaska or Death Valley, and need the trim-pot instead of a resistor if your product goes world-wide.

A Linear Regulated Discrete Constant Current LED Driver delivering about 10mA:

Discrete Constant Current LED Driver -- a Linear Regulator

  • 2
    \$\begingroup\$ I like it! I wonder how much of an issue per-specimen hFE variation in PNP4 is... Do you need to calibrate every individual circuit? Also, have you ever observed stability problems with your circuit? (I've seen stability issues with the simple 2T2R variant, but that might have been caused by long wires) \$\endgroup\$
    – marcelm
    Sep 10, 2020 at 19:16

Your Answer

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

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