The aim of these circuits is to provide current regulator for as cheap as possible. The Basic circuit is given here: XXX. I soldered the Concept 1 for a tri-LED project, to light my car. Because I found the roof light too low, I bought a bunch of Cree P4 to improove my car. I use three P4 in serie, what should be around 10V in total. 3 LED is the max that can be used in a 12V car. The project can be used for any number of LEDs, or any load providing: - you take care about the power generated by the sens resistor - the sens resistor will provide 0.6V to the BJT at the desired current - the MOS can stand full Vcc voltage - the pullup can take the gate at at least saturation voltage for your MOS (usually 8V) - the pull-up resistor has a value of AT LEAST 10kR per 10V. This is a strict minimum. When using 10kR, the circuit starts oscillates around 11V. Reasons for this are out of scope of this article. I am using 100k for 12V supply, and, tested that 100k is a good value for supplies up to 50V. If you intend to use this for higher voltages, in the most possible direct way (aka: without any low voltage regulator below 24V), I think you can reasonably use 1M or 10M for up to 500V. As long as: - you take care the MOS can stand this - the initial current will not destruct the MOS (especially if load is inductive) - you remember that cheap resistors can only stand 200V If your maine are 220V, you have 350V peaks. If you intend, or need to use resistors that may absorbe such voltage, even momentarly, you need to put two identical resistors in serie (identical values, so that each component only absorbs half, or third of nominal voltage). The oscillation problem is about BJT response time, vs RC (pull-up resistor, multiplied by gate capacity): the MOS can be considered like an Opamp with infinite gain; it also has infinitly fast response time. Big values for the pull-up will make the MOS slower than the BJT, so that, the BJT track the current. RC needs to be reasonably slower than the BJT response time, but, not too much. do not use 10M resistor with low voltages like 12V: the circuit will just ... never start :) I have put 2R as probe in order to get around 300mA, because Cree P4 are sold to accept up to 350mA. The maths are as follow: U(BE)=R(probe)xI(Led) Ube=0.6 (by definition of the transistor, BC548 has Vbd=0.6V for low currents) I=300mA (what I want) R=U/I=0.6/0.3=2 In practice, the current I have measured is 280mA. Maybe my resistors resist a bit more than they claim :) Remember that Vbe is specific to each reference. Remember that If Vcc is below 8V, the MOS may have difficulties to get conductive. I use a BS170 for 300mA, to absorbe more than 2V. When the engine of my car is off, I get 11.4V => 0.394W; when on, I can have up to 14V => 1.12W. This may be more than the nominal maximum power for a BS170. But, the nominal value of 0.8W is given for free air. In practice, like for every other component, using a heat dissipator can help a lot. I could successfully make a BS170 absorb 4W without any problem using a cheap small heat-sink: just make the TO-92 flat side stick anything flat by any way. This have been discussed here: http://groups.google.fr/group/fr.sci.electronique/tree/browse_frm/thread/816de2e9c0de030d/ea8638c6c032da01?hl=fr&rnum=1&_done=%2Fgroup%2Ffr.sci.electronique%2Fbrowse_frm%2Fthread%2F816de2e9c0de030d%3Fhl%3Dfr%26 This concept is the fruit of a long discussion between Whygee (cite URL) and myself. I would not be affraid to plug this kind of things on live mails (220V), as long as respecting peaces of advice I gave about it. The input pin can be used for remote control. The use of this pin is not the ordinary way. You OBVIOUSLY can not apply there the output of a microchip (usually 0-5V). You must aply there a shortcircuit to ground. If you want to use a low side switch, LED will go OFF when switch is closed. If you want to use a micro-controller, you need to use a "0V out, or high impedance" logic: set the output value to 0V, and, then, you put the load on by configuring the microcontroller as high impedance, or the pin as input. When using a microcontroller, any direct voltage above 0.8V can destroy the BJT. If you try to use a limiting current resistor, you will set up a voltage divider with the pull-up to Vcc, and are very likely to put the collector to a default value very close to Vcc of the microcontroller. For example, if Vcc is 12V, and you use 1k protection resistor, and your chip outputs 5V, the collector will tend (assuming current in base is null) to 5.07V With 10k, you get 5.7V ... Then, all depends on Vcc, and your MOS. 5.7V can be enough, or not ... You can dimm the light produced by the LED by applying to the input a periodic signal (alterning 0V with high impedance, or pullup to high voltage if you prefered this approach), at any frequency lower than the response time of the BJT and RC. That's the way I will use this schematic in the future: dimm LEDs from microcontroller by playing with the Input/Output bit of some pin, that will have 0V value when configured as output. The advantage of this schematic is to provide realiable current regulator for very cheap. It has low temperature sentivity, and will accept VERY LARGE input voltage range. And you can improove the voltage range easily. Compensating the temperature senbility is not trivial for cheap. So, we will not talk about it. If the load is very few resistive, you must take care about two problems: - the peak current when you start the circuit (the BJT needs a few us to turn on and really limit the current; thats a few us when you can have several amps in the main branch) - this high current MUST be within the maximum current accepted by the MOS - this current multiplied by the value of the sensing resistor MUST NOT produce voltage above max acceptable Vbe (for example, 8V for a BC548, could be reached easily with 8A peaks) The more capacitive Vce is, the better stable current will be. If you place commutation above the pull-up resistor, you have a race-concurency between: - the pull-up taking the gate to high voltage - Vce being null Fact the BJT is also capacitive (like all diode junctions) also has impact. If C-E is very capacitive, and discharged, this will maintain the MOS in open state. But if for any reason C-E has high voltage, all way during the short "response time" of the BJT, you can consider the MOS fuly conductive, and assume large current every where. The second concept shown can only increase the current in load. You can still dimm with input. The third concept shown in the schematic aims at: - compensate a bit the temperature senbility - provide adjustment for reducing the current The two main disadvantages are: - can only be used for LEDs (the corrent can not be reduced and tweaked for any other kind of load) - requires one LED to be inserted between the MOS and the BJT, whereas previous concepts provide a possibility to drive as many leds as you want directly on 2 wires. If you are driving cheap LEDs, it's not a problem. If you are driving high power expensive LEDs, it can be. All depends if you can afford wiring one single LED appart from other ones, or not. A third side effect is that the Third Concept is less stable when input voltage has large variations. When the first schematic can accept variations from 10 to 50V, the third one will show variations in produced current way below 50V. Trimmed current must be adjusted at the average supply voltage you hope to have; this voltage shall not vary by more than 5V (when using a light LED under the MOS, that is about 3.3V. Input tolerance depends on LED voltage). Using an 1N4148 to only compensate the temperature in the third schematic (and keeping the var res) is an idea to be explored. This may also allow to trimm current to values lower than in Concept 1.