> The internal resistor can be replaced by a npn BJT transistor in > common-collector > setup: Or you could produce a DAC controlled CC (constant current) driver. The following has the advantages of allowing the Arduino etc output V to be < 5V (or < 3.3V) and of current driving the LEDs rather than the riskier voltage drive method which relies on well behaved LEDs with consistentish specs between batches. You can still use PWM if desired but smooth it to DC when driving the emitter follower (or op-amp driver if used. See below. . Constant current DAC or PWM controlled LED driver. NPN bipolar or NPN bipolar or NChannel MOSFET with opamp buffer/level corrector. [MOSFET not good without opamp as Vgson is (even more) poorly defined. (than for a bipolar) LED+ to V+ Collector to LED - Emitter to resistor R to ground. Base driven by DAC. If VLED max =3D 3.3V x 3 say and Vce_sat max =3D 0.2V and V+min =3D 12v the= n, headroom =3D Vin - VLED - Vsat =3D 12 - 9.9 - 0.2 =3D 1.9V. The more the better. R CC set =3D <=3D Vheadroom/ I_LED_max. Say I_LED_max =3D 250 mA. >From above Rmax =3D 1.9/.25 =3D 7.6 Ohms. Using 6.8r gives Vrmax =3D 1.7V. Modern white LEDs will usually be usefully < 3.3V, allowing more headroom. Max possible V_Rcc is useful as it helps to swamp variations in Vbe as V_DAC =3D V_Rcc + Vbe. So Icc ~- (V_DAC- Vbe)/Rcc Adding an opamp driver (eg 4 per LM324 quad) allows Vbe to be ignored. Adding an opamp section has such substantial advantages that I would try to do it in all cases except where cost and space was utterly utterly critical. DAC or filtered PWM to OA+ OA out to gate or base OA- to resistor top (emitter or source junction) Qc to LED- Qe to Rcc and OA- Russell --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .