Power LED's - Simplest Light With Constant-current Circuit




About: Dan Goldwater is a co-founder of Instructables. Currently he operates MonkeyLectric where he develops revolutionary bike lighting products.

Here's a really simple and inexpensive ($1) LED driver circuit. The circuit is a "constant current source", which means that it keeps the LED brightness constant no matter what power supply you use or surrounding environmental conditions you subject the LED's to.

Or to put in another way: "this is better than using a resistor". It's more consistent, more efficient, and more flexible. It's ideal for High-power LED's especially, and can be used for any number and configuration of normal or high-power LED's with any type of power supply.

As a simple project, i've built the driver circuit and connected it to a high-power LED and a power-brick, making a plug-in light. Power LED's are now around $3, so this is a very inexpensive project with many uses, and you can easily change it to use more LED's, batteries, etc.

i've got several other power-LED instructables too, check those out for other notes & ideas

This article is brought to you by MonkeyLectric and the Monkey Light bike light.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: What You Need

Circuit parts (refer to the schematic diagram)

R1: approximately 100k-ohm resistor (such as: Yageo CFR-25JB series)
R3: current set resistor - see below
Q1: small NPN transistor (such as: Fairchild 2N5088BU)
Q2: large N-channel FET (such as: Fairchild FQP50N06L)
LED: power LED (such as: Luxeon 1-watt white star LXHL-MWEC)

Other parts:

power source: I used an old "wall wart" transformer, or you could use batteries. to power a single LED anything between 4 and 6 volts with enough current will be fine. that's why this circuit is convenient! you can use a wide variety of power sources and it will always light up exactly the same.

heat sinks: here i'm building a simple light with no heatsink at all. that limits us to about 200mA LED current. for more current you need to put the LED and Q2 on a heatsink (see my notes in other power-led instructables i've done).

prototyping-boards: i didn't use a proto-board initially, but i built a second one after on a proto-board, there's some photos of that at the end if you want to use a proto-board.

selecting R3:

The circuit is a constant-current source, the value of R3 sets the current.

- LED current is set by R3, it is approximately equal to: 0.5 / R3
- R3 power: the power dissipated by the resistor is approximately: 0.25 / R3

I set the LED current to 225mA by using R3 of 2.2 ohms. R3 power is 0.1 watt, so a standard 1/4 watt resistor is fine.

where to get the parts:
all the parts except the LED's are available from http://www.digikey.com, you can search for the part numbers given. the LED's are from Future electronics, their pricing ($3 per LED) is far better than anyone else currently.

Step 2: Specs & Function

Here i'll explain how the circuit works, and what the maximum limits are, you can skip this if you want.


input voltage: 2V to 18V
output voltage: up to 0.5V less than the input voltage (0.5V dropout)
current: 20 amps + with a large heatsink

Maximum limits:

the only real limit to the current source is Q2, and the power source used. Q2 acts as a variable resistor, stepping down the voltage from the power supply to match the need of the LED's. so Q2 will need a heatsink if there is a high LED current or if the power source voltage is a lot higher than the LED string voltage. with a large heatsink, this circuit can handle a LOT of power.

The Q2 transistor specified will work up to about 18V power supply. If you want more, look at my Instructable on LED circuits to see how the circuit needs to change.

With no heat sinks at all, Q2 can only dissipate about 1/2 watt before getting really hot - that's enough for a 200mA current with up to 3-volt difference between power supply and LED.

Circuit function:

- Q2 is used as a variable resistor. Q2 starts out turned on by R1.

- Q1 is used as an over-current sensing switch, and R3 is the "sense resistor" or "set resistor" that triggers Q1 when too much current is flowing.

- The main current flow is through the LED's, through Q2, and through R3. When too much current flows through R3, Q1 will start to turn on, which starts turning off Q2. Turning off Q2 reduces the current through the LED's and R3. So we've created a "feedback loop", which continuously tracks the current and keeps it exactly at the set point at all times.

Step 3: Wire the LED

connect leads to the LED

Step 4: Start Building the Circuit!

this circuit is so simple, i'm going to build it without a circuit board. i'll just connect the leads of the parts in mid-air! but you can use a small proto-board if you want (see photos at the end for an example).

first, identify the pins on Q1 and Q2. laying the parts in front of you with the labels up and the pins down, pin 1 is on the left and pin 3 is on the right.

comparing to the schematic:
G = pin 1
D = pin 2
S = pin 3

E = pin 1
B = pin 2
C = pin 3

so: start by connecting the wire from the LED-negative to pin 2 of Q2

Step 5: Keep Building

now we'll start connecting Q1.

first, glue Q1 upside-down to the front of Q2 so that it is easier to work with. this has the added benefit that if Q2 gets very hot, it will cause Q1 to reduce the current limit - a safety feature!

- connect pin 3 of Q1 to pin 1 of Q2.

- connect pin 2 of Q1 to pin 3 of Q2.

Step 6: Add a Resistor

- solder resistor one leg of resistor R1 to that dangling LED-plus wire

- solder the other leg of R1 to pin 1 of Q2.

- attach the positive wire from the battery or power source to the LED-plus wire. it probably would have been easier to do that first actually.

Step 7: Add the Other Resistor

- glue R3 to the side of Q2 so it stays in place.

- connect one lead of R3 to pin 3 of Q2

- connect the other lead of R3 to pin 1 of Q1

Step 8: Finish the Circuit!

now connect the negative wire from the power source to pin 1 of Q1.

you're done! we'll make it less flimsy in the next step.

Step 9: Permanant-ize It

now test the circuit by applying power. assuming it works, we just need to make it durable. an easy way is to put a large blob of silicone glue all over the circuit. this will make it mechanically strong and waterproof. just glob on the silicone, and make an effort to get rid of any air bubbles. i call this method: "BLOB-TRONICS". it doen't look like much, but it works really well and is cheap and easy.

also, tying the two wires together helps reduce strain on the wires also.

i've also added a photo of the same circuit, but on a proto-board (this one is "Capital US-1008", available at digikey), and with a 0.47-ohm R3.

The Instructables Book Contest

Participated in the
The Instructables Book Contest

4 People Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

320 Discussions


2 years ago

Does anyone have a diagram on how to make this on breadboard? please.

1 reply

Reply 2 months ago

I don't have a diagram, but I do have these pics after building this project yesterday.


Question 1 year ago on Step 1

Hello, I have the following scheme but i dont know how to calculate resistors and stuffs since i am using a little more difficult scheme.
All the LED diodes are 3W and need 700mA to light in full power.
As power supply i am using PC power supply with 12V as input.
Check the image and i will be really happy if u can help me and give me guidinence.

1 answer

10 months ago

I made one with IRF3205 and bc337, seems when the input between 10-18, the current keep less changes, say constant. when the input goes low, say 5-9v the current change fast too low.

Charles Gibbs

Question 10 months ago

Hi Dan.

I have a question.... I am from Namibia in Africa so please don't ask me to source something I have to get in America or EU.....
Now to the question, I have an Ebike that runs on 48 to 90V (that's what the controller can do...).

I have a front light that works on 9 - 85V so that was a good find I wanted a rear Led light that had an angel and main light in it that runs on the same voltages. They did not pitch after 4 months of waiting. so I have been refunded.

I now need to make a rear light that can also react to my ebrake, so a tail or park light that goes to full brightness once the ebrake is pulled....... I know.. complicated.....

I do not like having a bunch of dc dc convertors as this is just another thing that can go wrong.... I have a few of these cob style led roof lights that run on 12v I have strung 4 in series and put in a fairly high wattage 1.5K resistor and have with success run it on 85V with nothing burning out.....

Is it possible to use your circuit and adapt it for my voltage range? I also do not want to use an Arduino on the bike for the above mentioned reasons....
Any help will be appreciated..



3 years ago

In calculations, you mentioned LED current is 0.5/R3. How did you arrive at the number 0.5? similarly, the next line how did you arrive 0.25/R3 as power?

3 replies

Reply 3 years ago

Given that the voltage drop across the current sense resistor (R3) is 0.5v - then using Power = IV = VI = V x V/R = 0.5 x 0.5/R3 = 0.25/R3.

I've built the circuit and the voltage drop across Vbe for Q1 = voltage drop for R3 - is indeed 0.5v. But how could that be predicted from the 2N5088 data sheet? What are the design steps?

(it is a great tutorial BTW - just I'm frustrated by my lack of understanding - even if the light does come on!)


Reply 2 years ago

I was curious about this too, and if I'm understanding right has to do with the qualities of a transistor, but could be wrong. Here's why I think that:

- http://electronics.stackexchange.com/questions/916...

Throughout my reading, I've seen folks using 0.5 - 0.7 for various calculations; thankfully some named it as V_BE, so I googled around leading me to the above. It sounds like an inherent property of the materials used. Here's two examples that spell it out a little more than this tutorial:

- http://www.pcbheaven.com/userpages/LED_driving_and...
- http://www.scienceprog.com/building-simple-constan...

So, if we know that junction right above R3 is at 0.7V, I think that's how we get I = 0.7/R3 (though this tutorial uses 0.5). And power is V^2/R, so you get 0.25 (0.5^2). In the first link, his equation Vm = Vdd - Vled - 0.7 suggests that since the voltage will drop across the LED, and end up at 0.7 at the transistor, the MOSFET will have the balance.

Anyway, you had that already but felt like commenting since it perplexed me as well. I'm still not positive, but think he's using 0.5 instead of 0.7 and the value comes from a property of transistors. At least that's as close as I've gotten to something sane-ish!


Reply 1 year ago

The Voltage drop when used Germanium made components is around 0.5-0.6 but usually 0.5. If it's Silicium it's 0.7. That is as far as I remember from my lessons in high school :D
Maybe it's irelevant but i thought it might help :)


1 year ago

This is a really cool circuit. Thank you for sharing. I was wondering, would this circuit work on a long strand of led lights to combat voltage drop over the length of the run?


2 years ago

Will battery be okay as my power supply? Since it is not a constant voltage will it affect the way the circuit works?


3 years ago

Congratulations on a simple but effective constant current circuit.

The schematic symbol of the MOSFET shown in the circuit diagram is that of a P-Channel MOSFET, not N-Channel. Moreover, it is not a simple FET but a MOSFET.

The power adapter voltage can be calculated as follows:

V supply = 3.2 X n + 1V

Where 3.2 is the voltage drop across each led, n is the number of LED's in series.

The 1V added in the end is to take care of any voltage drop that may occur in the power supply due to regulation errors. So a 6V supply can only feed one LED. A 12V supply can feed a maximum of 3 LED's. From the above rough formula we can say that 3 LED's in series will require:

V = 3.2X3+1 = 10.6V

So a 12V supply will also work with 3 LED's, but to keep the power dissipation of the MOSFET at a minimum, it would be advisable to keep the power supply voltage as close to the calculated value as possible, thus 11V would dissipate less heat than a 12V supply. So if you have a 24V supply available, you can safely connect 7 LED's in series.

4 replies

Reply 2 years ago

You are wrong, the symbol is that of a P-Channel MOSFET. Below is the actual symbol of the Fairchild FQP50N06L MOSFET taken from their data sheet. Please be informed before commenting:

N-Channel Mosfet.jpg

Reply 2 years ago

Both symbols ( yours and the author´s ) are correct and correspond to an NMOSFET. The authors´s symbol is a simplified symbol which does not show the internal bulk-source connection. IEEE(Institute of Electrical and Electronics Engineers) accepts this symbol as a validNMOSFET symbol. Nothing more to say.


Reply 2 years ago

You are ALL wrong. That is the symbol for a exhaust bearing.

Look folks, you all know what it is supposed to be regardless of your view, why argue the point?


2 years ago

I had posted here about 8 months back about a serious flaw in the circuit diagram and related text. I am surprised to find that the original circuit is still being published without correcting the flaw. It seems the author does not bother to read the comments and the people following the post are also as much blind and misinformed as the author.

I would like to once again point out the mistake. The circuit symbol of the MOSFET shown is that of a P-Channel Mosfet, and not N-Channel as written in the article. But funnily, the part number given is that of a N-Channel MOSFET. The proper symbol for the MOSFET mentioned in the article is given below:

N-Channel Mosfet.jpg
1 reply

Reply 2 years ago

as simpletronic said, BOTH your symbol AND the author's symbol are correct and are both acceptable ways of drawing an N-channel MOSFET.

I have no illusions, however, that my picture will change your mind either.

I worked at my parents' hardware store in college. one time a man came in with a "blown fuse". I suggested we check it first with a multimeter. the fuse showed 0 Ohms, so I said the fuse was still good and hadn't been blown. the man said 0 Ohms meant open circuit. I politely restated it was a short circuit. he restated his assertion that it was open. I tried to diplomatically explain I was currently studying EE and showed him that the fuses on our shelves also measured 0 Ohms. I even touched the tips of the meter together and showed him the display now read 0 Ohms. he left without buying a replacement fuse because he was certain he was correct and that all of the fuses in our stock were just as bad as the one he had.

some people just "know" they are correct and no amount of evidence to the contrary will convince them otherwise.