A BJT current source is an active circuit configuration that uses a bipolar junction transistor and a biasing network to deliver a steady, predictable DC current to a load regardless of variations in load resistance. While a simple series resistor limits current based on a fixed voltage drop, a BJT current source actively adjusts its internal collector-emitter resistance to maintain a constant flow. This changes how we design sensitive analog stages, shifting biasing from voltage-dependent guesswork to highly stable, temperature-compensated current delivery. Beginners frequently confuse a constant current source with a basic current limiter (which just caps maximum current during fault conditions) or a current mirror (which is a specific multi-transistor topology used to copy a reference current from one branch to another).
The Core Mechanism: How a BJT Regulates Current
To understand the BJT current source, we have to look past the switching-model approximation ($I_C = \beta I_B$) and focus on the linear region. The most robust and common topology is the emitter-degenerated current source. In this setup, the base voltage ($V_B$) is held rigid by a voltage divider or a Zener diode. Because the base-emitter junction acts like a forward-biased silicon diode, the emitter voltage ($V_E$) naturally sits about 0.7V below the base.
By placing a resistor ($R_E$) between the emitter and ground, we force a specific voltage drop across it. Ohm's law dictates the emitter current: $I_E = V_E / R_E$. Since the collector current ($I_C$) is virtually identical to the emitter current (differing only by the tiny base current), the collector delivers a constant current to whatever load is attached to it.
Worked Numeric Example: Designing a 10mA LED Driver
Let's build a constant current driver for a high-power indicator LED. We need exactly 10mA, and our bench supply provides a clean 12V DC. We will use a standard 2N3904 NPN BJT.
Step 1: Set the Emitter Voltage ($V_E$)
A common beginner mistake is making $V_E$ too small (e.g., 0.1V). The base-emitter voltage ($V_{BE}$) has a temperature coefficient of roughly -2mV/°C. If $V_E$ is only 0.1V, a slight temperature rise will drastically change the $V_E / R_E$ ratio, causing thermal drift. We want $V_E$ to 'swamp' these variations. A good rule of thumb is $V_E \ge 1V$. Let's choose $V_E = 1.2V$.
Step 2: Calculate the Emitter Resistor ($R_E$)
Using Ohm's law: $R_E = V_E / I_E = 1.2V / 0.010A = 120\Omega$. This is a standard E24 value.
Step 3: Determine the Base Voltage ($V_B$)
$V_B = V_E + V_{BE} = 1.2V + 0.7V = 1.9V$.
Step 4: Design the Voltage Divider ($R_1, R_2$)
To keep $V_B$ stiff, the current flowing through the divider should be at least 10 times the base current ($I_B$). Assuming a conservative $\beta$ of 100, $I_B = 10mA / 100 = 0.1mA$. We'll aim for a divider current of roughly 1mA.
$R_2 = V_B / I_{div} = 1.9V / 1mA = 1.9k\Omega$.
$R_1 = (V_{CC} - V_B) / I_{div} = (12V - 1.9V) / 1mA = 10.1k\Omega$.
Since 1.9kΩ and 10.1kΩ aren't standard E24 values, we select the closest standard resistors: $R_2 = 1.8k\Omega$ and $R_1 = 10k\Omega$.
Compliance Voltage and Real-World Limits
A BJT cannot conjure energy out of thin air. The range of load resistances over which the circuit successfully maintains constant current is called the compliance voltage range.
For the transistor to regulate current, it must remain in the active region, meaning the collector voltage must stay above the emitter voltage by at least the saturation voltage ($V_{CE(sat)}$, typically ~0.2V for a 2N3904). In our 12V circuit, the load is tied between $V_{CC}$ and the collector. The voltage budget looks like this:
| Circuit Node / Component | Voltage Drop | Notes |
|---|---|---|
| Emitter Resistor ($V_E$) | 1.13V | Fixed by our divider and $R_E$ |
| Transistor Saturation ($V_{CE(sat)}$) | 0.20V | Minimum required to stay in active mode |
| Maximum Load Voltage | 10.67V | $12V - 1.13V - 0.20V$ |
Where You Meet This in Practice
You won't just find emitter-degenerated current sources in LED drivers. They are foundational building blocks in professional analog design:
- Differential Amplifier Tails: The input stage of almost every operational amplifier (like the classic LM741 or TL072) uses a BJT current source to bias the differential pair. This provides a high-impedance tail that rejects common-mode noise and stabilizes the gain.
- RTD Excitation: When measuring temperature with a Resistance Temperature Detector (like a PT100), you must pass a highly precise, constant current through the sensor. Any ripple or drift in the excitation current directly translates to temperature reading errors.
- Linear Battery Charging: The constant-current (CC) phase of charging NiMH or Li-ion cells is often handled by power BJT current sources (or their MOSFET equivalents) to safely bulk-charge the cell before transitioning to constant-voltage (CV) mode.
For deeper reading on how these topologies scale into integrated circuits, review the semiconductor chapter on current mirrors at All About Circuits, which builds directly on the single-transistor source concepts covered here.
BJT Current Source FAQ
How does a BJT current source differ from a simple series resistor?
A series resistor is a passive, voltage-dependent limiter. If the supply voltage sags or the load resistance changes, the current changes proportionally according to Ohm's law. A BJT current source is an active, self-adjusting circuit. It continuously varies its own internal collector-emitter resistance to absorb supply ripples and load variations, holding the current flat.
Why add an emitter resistor to a BJT current source circuit?
The emitter resistor ($R_E$) provides negative feedback, a concept known as emitter degeneration. If the transistor heats up and its internal $\beta$ increases, or if $V_{BE}$ drops, the emitter current tries to rise. This raises the voltage across $R_E$, which in turn reduces the base-emitter bias voltage, throttling the current back down. Without $R_E$, the circuit is highly susceptible to thermal runaway.
Can I build a high-side current source using a PNP transistor?
Yes. A PNP BJT current source is the exact topological mirror of the NPN version, but it sits on the high side (between $V_{CC}$ and the load). The emitter connects to $V_{CC}$ through $R_E$, and the base is pulled down to a specific voltage below $V_{CC}$ to establish the bias. This is incredibly useful when your load must be tied to ground, such as in microcontroller-switched heating elements or grounded thermocouples.
How does temperature affect a BJT constant current source?
The primary thermal vulnerability is the base-emitter voltage ($V_{BE}$), which drops by about 2mV for every 1°C rise in junction temperature. If your base voltage is fixed, a hotter transistor will yield a slightly higher emitter voltage, increasing the output current. This is exactly why we design $V_E$ to be 1V or higher; a 2mV shift on a 1.2V baseline is a negligible 0.16% error, whereas a 2mV shift on a 0.1V baseline would cause a massive 2% drift.






