Skip to content

Discrete Current Sources

Published On:
Jan 9, 2022
Last Updated:
Jul 15, 2026

Discrete current sources are constant-current circuits built from just a transistor and a handful of passive components (e.g. no op-amp or other more “advanced” circuitry). They set a fixed current and are commonly used for biasing and simple LED drives. This page covers two popular discrete designs: the Zener diode + BJT source and the JFET constant-current diode.

For the general concept of current sources and sinks (compliance, schematic symbols, independent vs. controlled sources) see the parent Current Sources And Sinks page. Current-mirror-based sources are covered separately on the Current Mirrors page.

Zener Diode And BJT Current Source

Below shows one of the popular methods for constructing a current source from a Zener diode and BJT.

Schematic of a Zener diode + BJT current source.

How It Works

  1. The Zener diode D1D1, biased into its voltage regulation range with resistor R1R1, maintains a steady voltage VBV_B at the base of the BJT transistor.
  2. Using the rule that there is a 0.7V0.7\unit{V} drop across the base-emitter junction of a BJT, this puts a fixed voltage at the emitter also.
  3. Since this means there is a fixed voltage across RER_E, this means by Ohm’s law there is a fixed current through RER_E.
  4. Because most of the current supplied to the emitter of a BJT comes from the collector (only about 1/1001/100th to 1/8001/800th of the current comes from the base, depending on the gain hFEh_{FE} of the BJT), this means there is a fixed current through RloadR_{load} also!

The current through the load is given by:

Iload=VZ0.7VRE\begin{align*} I_{load} = \frac{V_Z - 0.7\unit{V}}{R_E} \end{align*}

where:
VZV_Z is the voltage of the Zener diode in V\mathrm{V}
RER_E is the resistance of resistor RER_E in Ω\mathrm{\Omega}
IloadI_{load} is the resulting current through the load resistor, in A\mathrm{A}

Double-Diode And BJT Current Source

This design is similar to the Zener diode and BJT current source above, but uses two diodes in series instead of a Zener diode. This time, rather than sinking current from a load down to ground, we’ll build a high-side current source that pushes current into the load — so we’ll use a PNP transistor above the load. The following schematic shows a current source that will drive approx. 4.7mA4.7\unit{mA} into a load:

Schematic of a double-diode + BJT current source.

This works because there is 1.4V1.4\unit{V} across D1D1 and D2D2. There is a drop of 0.7V0.7\unit{V} across the base-emitter junction of the PNP transistor, so there is 0.7V0.7\unit{V} of drop across RER_E. The current through RER_E is then IRE=0.7V/150Ω4.7mAI_{R_E} = 0.7\unit{V}/150\unit{\Omega} \approx 4.7\unit{mA}. Because the base current of the PNP transistor is small compared to the collector current, this means the current through the load will also be approx. 4.7mA4.7\unit{mA}.

The exact value of R1R1 does not matter, as long as there is enough current to properly forward bias the diodes but not too much to overheat them.

Two-BJT Current Sink

The two-transistor current sink (also called the two-transistor current limiter) is another popular discrete current source. Unlike the Zener and double-diode designs above, this circuit does not use Zeners or diodes as a voltage reference. Instead, it uses a second BJT to limit the current through the first BJT. It has the advantage of being able to work down to very low voltage and uses two of the same component (the BJTs).

Schematic of a two-BJT current sink.

How It Works

Q1Q1 is the pass transistor that carries the load current, and R1R1 feeds base current into it from the top rail. The sense resistor RsenseR_{sense} sits in Q1Q1‘s emitter, so the entire load current flows through it. The clever part is Q2Q2: its base-emitter junction is connected directly across RsenseR_{sense}, and its collector is tied to Q1Q1‘s base.

The loop regulates itself against Q2Q2‘s base-emitter voltage:

  1. As the load current rises, the voltage across RsenseR_{sense} rises with it.
  2. When that voltage reaches Q2Q2‘s turn-on threshold (≈0.7V0.7\unit{V}), Q2Q2 begins to conduct.
  3. Q2Q2 pulls Q1Q1‘s base voltage down, stealing base drive from Q1Q1 and throttling it back.
  4. The loop settles at the point where RsenseR_{sense} drops almost exactly ≈0.7V0.7\unit{V}.

The load current is therefore set by the sense resistor and a single base-emitter voltage:

Iload=VBE(Q2)Rsense0.7VRsense\begin{align*} I_{load} = \frac{V_{BE(Q2)}}{R_{sense}} \approx \frac{0.7\unit{V}}{R_{sense}} \end{align*}

where:
VBE(Q2)V_{BE(Q2)} is the base-emitter voltage of Q2Q2, in V\mathrm{V}
RsenseR_{sense} is the resistance of the sense resistor, in Ω\mathrm{\Omega}
IloadI_{load} is the resulting current through the load, in A\mathrm{A}

Because the reference is a single, well-defined VBEV_{BE} rather than a loosely-toleranced Zener voltage, the absolute accuracy is reasonable. However, VBEV_{BE} drifts by about 2mV/C-2\unit{mV/^\circ C}, so the current has a positive temperature coefficient (roughly +0.3%/C+0.3\unit{\%/^\circ C} for a 0.7V0.7\unit{V} sense drop).

What makes the two-BJT topology notable is that it is likely the most commonly used circuit purely as a current limiter: it normally passes current freely and only intervenes on overload, e.g. a short-circuit protection front-end on power supplies.

The µA723 voltage regulator IC uses a similar circuit to limit the current. The two transistors are highlighted in red. The BJT on the left “steals” base drive from the series pass BJT once a certain voltage is reached, set by a externally provided sense resistor (so it is adjustable).1

Constant-Current Diode (JFET Current Source)

The constant-current diode (a.k.a JFET current source, current-limiting diode (CLD), or regulating diode2) is a very simple current source made from a JFET and optional resistor.

Below shows the schematic for a constant-current diode:

Schematic for a constant-current diode, a.k.a JFET current source. Current source is very simple, and consists of just an N-channel JFET and (optional) resistor. This two-terminal current source is not referenced to any rail and thus the load can be high-side, low-side, or anywhere in-between!

How It Works

The constant-current diode works by using the resistor RSR_S to negatively bias the N-channel JFET at a specific operating point. At this operating point the current from drain to source (and consequentially the load) will be relatively constant.3

How To Calculate The Value Of The Resistor RSR_S

  1. Decide on what N-channel JFET you are going to use and your desired constant current, IDI_D.

  2. You then calculate the required gate-source voltage5:

    VGS=VGS(off)[1(IDIDSS)1/k]\begin{align*} V_{GS} = V_{GS(off)} \left[ 1 - \left(\frac{I_D}{I_{DSS}}\right)^{1/k} \right] \end{align*}

    where:
    VGSV_{GS} is the gate-source voltage required to bias the JFET at the correct current, in V\mathrm{V}
    VGS(off)V_{GS(off)} is the gate-source cutoff voltage, a parameter you can get from the JFETs datasheet, in V\mathrm{V}
    IDI_D is the current you want the current source to drive at, in A\mathrm{A}
    IDSSI_{DSS} is the zero gate-source drain current, a parameter you can get from the JFETs datasheet, in A\mathrm{A}
    kk is the conduction parameter for the JFET, and depends on the device geometry. This is not normally mentioned in the datasheet, however for this equation you can generally assume it to be 22.

  3. You can then find the value of RSR_S with:

    RS=VGSID\begin{align*} R_S = \frac{|V_{GS}|}{I_D} \end{align*}

An important parameter determining the accuracy/stability of a constant-current diode is the output conductance gossg_{oss} of the JFET. This is the ratio of change in IDI_D to change in VDSV_{DS}. This is a measure of how stable the constant-current source will be to changes in the voltage across it, which occur if either the supply voltage or load resistance changes. The lower the gossg_{oss} the better (an ideal current source would have goss=0g_{oss} = 0, which is the equivalent to a resistance of \infty).

For more great reading on the constant-current diode, see the Vishay/Siliconix application note AN103.5

Depletion-Mode MOSFET Current Source

A depletion-mode MOSFET can be turned into a two-terminal constant-current source in exactly the same way as the JFET constant-current diode above. Unlike the far more common enhancement-mode MOSFET (which needs a gate-source voltage above a threshold before it conducts), a depletion-mode MOSFET is normally on — it conducts at VGS=0VV_{GS} = 0\unit{V}. This means it can be self-biased with a single source resistor, just like the JFET.

The attraction over a JFET is voltage and power headroom. Where JFET constant-current diodes top out around 100V100\unit{V} and 100mA100\unit{mA}, depletion-mode MOSFETs built for this job go much higher. The classic part is the Supertex (now Microchip) DN2540, a 400V400\unit{V}, 500mA500\unit{mA} device6; the LND150 pushes the voltage rating higher still. These are widely used for high-voltage LED strings, vacuum-tube plate loads, and high-voltage startup/bleeder supplies.

Schematic of a depletion-mode MOSFET constant-current source.

How It Works

Self-biasing works identically to the constant-current diode: the source resistor RSR_S develops a voltage as the drain current flows through it, and because the gate is tied to the bottom of RSR_S this appears as a negative gate-source voltage. As the current rises, VGSV_{GS} becomes more negative and pinches the channel back, settling at a constant operating current.

How To Calculate The Value Of The Resistor RSR_S

The depletion MOSFET follows the same square-law relationship as the JFET, so the design steps are identical:

  1. Choose your depletion-mode MOSFET and desired constant current, IDI_D.

  2. Calculate the required gate-source voltage:

    VGS=VGS(off)[1(IDIDSS)1/k]\begin{align*} V_{GS} = V_{GS(off)} \left[ 1 - \left(\frac{I_D}{I_{DSS}}\right)^{1/k} \right] \end{align*}

    where the parameters mean the same as in the JFET section above (VGS(off)V_{GS(off)} is the gate-source cutoff voltage, IDSSI_{DSS} the zero-gate-voltage drain current, and k2k \approx 2).

  3. Find RSR_S with:

    RS=VGSID\begin{align*} R_S = \frac{|V_{GS}|}{I_D} \end{align*}

Comparison Of The Discrete Topologies

The table below summarizes the three discrete current sources covered on this page to help you pick between them.

PropertyZener + BJTJFET Constant-Current DiodeDepletion-Mode MOSFET
Terminals3 (referenced to a rail)2 (floating, not rail-referenced)2 (floating, not rail-referenced)
Typical current rangemA up to amps (limited by BJT and RER_E power)10mA100mA10\unit{mA}-100\unit{mA}10mA500mA10\unit{mA}-500\unit{mA} (e.g. DN2540)
Max voltageSet by BJT VCEOV_{CEO} (tens of volts typical)100V\sim100\unit{V}400V\sim400\unit{V}+ (e.g. DN2540)
Accuracy (untrimmed)Moderate — set by VZV_Z and the 0.7V0.7\unit{V} VBEV_{BE} approximationPoor — large VGS(off)V_{GS(off)} spreadPoor — large VGS(off)V_{GS(off)} spread (>>2:1)
Temperature stabilityGood if VZV_Z tempco offsets VBEV_{BE} (≈2mV/C-2\unit{mV/^\circ C})GoodModerate (≈4.5mV/C4.5\unit{mV/^\circ C} for DN2540)
Parts countHigher (Zener, bias resistor, BJT, RER_E)Lowest (JFET + optional resistor)Low (MOSFET + resistor)
Best forAdjustable higher-current biasing off a railSimple low-power floating current limitingHigh-voltage / higher-power floating sources

For anything requiring accuracy, all three benefit from a trimmer to set the current by measurement, as discussed in the sections above.

Source Resistor Calculator

The calculator below sizes RSR_S for either device type. Enter the datasheet IDSSI_{DSS}, the VGS(off)V_{GS(off)} range, and your target current IDI_D — it returns the resulting RSR_S range and a suggested fixed-resistor-plus-trimmer combination. The presets load the datasheet values for the parts discussed above.

Sizes the source resistor R_S for a JFET or depletion-mode MOSFET wired as a two-terminal constant-current source. Because the cutoff voltage V_GS(off) is specified as a datasheet range, the result is a range of R_S. One solution is to pick a fixed value near the low end and trim up with a series potentiometer.
Presets:
IDSS
A
Zero-gate-voltage drain current (drain current at VGS = 0), from the datasheet.
VGS(off) min
V
Gate-source cutoff (pinch-off) voltage, minimum-magnitude end of the datasheet range. Negative for n-channel.
VGS(off) max
V
Maximum-magnitude end of the cutoff-voltage range. Set both min and max equal for a single-value calculation.
ID
A
The constant current you want the source to drive.
k
Conduction (square-law) exponent. Almost always 2 — leave as-is unless the datasheet says otherwise.
VGS
-1.113 V to -2.596 V
Required gate-source voltage at the operating point (VGS = VGS(off) [1 − (ID/IDSS)1/k]).
RS
111.3 Ω to 259.6 Ω
Source resistor: RS = |VGS| / ID.
The spread comes from the VGS(off) range. To get better accuracy, use a fixed resistor near 111.3 Ω in series with a trimmer of at least 148.4 Ω, then adjust it to hit the target current with an ammeter.

Footnotes

  1. Texas Instruments (1999, Jul). µA723 Precision Voltage Regulators [datasheet]. Retrieved 2026-07-18, from https://www.ti.com/lit/ds/symlink/ua723.pdf.

  2. Central Semiconductor Corp. What is a Current Limiting Diode?. Retrieved 2022-01-11, from https://www.centralsemi.com/pdfs/selection/leaded/what_is_a_cld.pdf.

  3. Electronics Tutorials. FET Current Source. Retrieved 2022-01-11, from https://www.electronics-tutorials.ws/transistor/fet-current-source.html.

  4. On Semiconductor (now On Semi) (2010, Feb). 2N5457, 2N5458 JFETs: General Purpose N−Channel − Depletion [datasheet]. Retrieved 2022-01-11, from https://www.onsemi.com/pdf/datasheet/2n5457-d.pdf.

  5. Siliconix (now Vishay) (1997, Mar 10). AN103: The FET Constant-Current Source/Limiter [application note]. Retrieved 2021-04-29, from https://www.vishay.com/docs/70596/70596.pdf. 2

  6. Supertex (now Microchip). DN2535/DN2540 N-Channel Depletion-Mode Vertical DMOS FETs [datasheet]. Retrieved 2026-07-15, from https://cdn-reichelt.de/documents/datenblatt/A200/DN240N5-G-STEX.pdf. 2 3