An NPN current source is a transistor circuit configured to sink or source a fixed, predictable amount of current to a load, independent of variations in the load's resistance or supply voltage. While schematics and bench talk often use the umbrella term "current source," an NPN bipolar junction transistor (BJT) placed on the low side of a load technically acts as a current sink, pulling a fixed current down to ground. If you need to push current from the positive rail down through a load, you would use a PNP transistor or a PMOS FET as a high-side source.

In a real circuit, an NPN current sink changes the fundamental behavior of your load from voltage-driven to current-driven. Instead of the current fluctuating wildly when the load's resistance changes (like a heating element warming up or an LED's forward voltage dropping with temperature), the transistor automatically adjusts its internal resistance (V_CE) to maintain a steady flow of electrons. The most common confusion on the bench is mistaking a true active current source for a simple passive current-limiting resistor, or assuming an NPN can easily source current on the high side without complex biasing.

The Water Analogy: Think of a water pipe with a pressure-compensating valve. If the downstream pipe narrows (resistance increases), the valve automatically adjusts its internal restriction to keep the gallons-per-minute (current) exactly the same, provided the main water pressure (supply voltage) is high enough to overcome the restriction.

The Core Concept: What an NPN Current Source Actually Does

To make an NPN transistor act as a constant current sink, we must decouple the collector current (I_C) from the transistor's highly variable current gain (beta, or h_FE). If you simply feed a fixed base current and rely on beta to multiply it, your current will drift as the transistor heats up or as you swap between different batches of the same part number.

The solution is emitter degeneration. By placing a resistor (R_E) in the emitter path and holding the base at a fixed voltage (V_B), we create a negative feedback loop. The voltage across the emitter resistor is simply V_B minus the base-emitter voltage drop (V_BE, typically 0.7V). Because Ohm's law dictates that I_E = V_E / R_E, and I_C is approximately equal to I_E, the current is now set entirely by stable resistors and voltage references, not the transistor's internal semiconductor physics.

The Math: A Worked Numeric Example

Let's design a precision 20 mA current sink to drive a standard 5mm red indicator LED from a 12V DC supply. We will use a ubiquitous 2N3904 NPN transistor.

  1. Define the parameters: V_CC = 12V, Target I_C = 20 mA, V_BE = 0.7V.
  2. Set the Base Voltage (V_B): We want V_E to be large enough to swamp out minor V_BE temperature variations, but small enough to leave plenty of compliance voltage for the load. Let's set V_B to 2.0V using a simple resistive voltage divider from the 12V rail.
  3. Calculate Emitter Voltage (V_E): V_E = V_B - V_BE = 2.0V - 0.7V = 1.3V.
  4. Calculate Emitter Resistor (R_E): R_E = V_E / I_C = 1.3V / 0.020A = 65 ohms. The closest standard 5% E24 value is 68 ohms.
  5. Verify Actual Current: I_C ≈ I_E = 1.3V / 68Ω = 19.1 mA. This is perfectly within the tolerance for an indicator LED.
  6. Design the Voltage Divider: To keep the base voltage stiff, the current through the divider should be at least 10x the base current. Base current I_B ≈ 19.1 mA / 100 (assume beta=100) = 0.19 mA. Divider current = 2 mA. Total divider resistance = 12V / 2 mA = 6kΩ. R2 (to ground) = 2.0V / 2 mA = 1kΩ. R1 (to 12V) = 4.7kΩ (standard value).

For a deeper look at the underlying semiconductor physics and biasing networks, the All About Circuits Semiconductor Textbook provides excellent foundational theory on BJT current mirrors and biasing.

Where You Meet This in Practice

You won't just find NPN current sinks in textbook exercises; they are workhorses in modern electronic design and DIY builds.

  • LED Drivers: Maintaining exact brightness across parallel LED strings where slight V_F mismatches would otherwise cause one string to hog all the current.
  • Battery Charging: The constant-current (CC) phase of charging NiMH or lead-acid cells, where the circuit must push a steady milliamp rate regardless of the battery's rising terminal voltage.
  • Active Dummy Loads: Testing power supplies or solar panels by sinking a precise, adjustable current to ground, rather than burning power through massive wirewound resistors.
  • Audio Amplifiers: Biasing the differential input pairs and voltage amplifier stages in solid-state audio amps to ensure low distortion and stable quiescent current.

Bench War Story: When the "Constant" Current Drifted

Early in my career, a junior tech was tasked with building a quick 50 mA constant current dummy load to test the over-current protection on a batch of 5V USB power banks. He grabbed a 2N2222 NPN transistor, a 10kΩ base resistor tied directly to the 5V rail, and omitted the emitter resistor entirely to "save parts."

The Setup: A 2N2222 with a 10kΩ base resistor connected to 5V. The collector was tied to the 5V power bank output. No emitter resistor was used; the emitter went straight to ground.

The Numbers: The base current was calculated as (5V - 0.7V) / 10,000Ω = 0.43 mA. The tech assumed a typical 2N2222 beta (h_FE) of 150. Expected collector current = 0.43 mA × 150 = 64.5 mA. He figured this was close enough to 50 mA to trip the power bank's protection.

The Outcome: When connected, the circuit initially pulled about 60 mA. But within ten seconds, the transistor grew too hot to touch, the current spiked to 120 mA, and the 2N2222 failed short with a sharp pop, taking the power bank's protection MOSFET down with it.

What Went Wrong: Thermal runaway. Without an emitter resistor (R_E) to provide negative feedback, the circuit was entirely dependent on beta. As the silicon die heated up, the transistor's beta increased and its V_BE dropped. This caused the base current and the collector current to rise, which generated more heat, which increased the current further. The power dissipation (V_CE × I_C) rapidly exceeded the 2N2222's 625 mW limit. The lesson learned on the bench that day: never rely on h_FE to set a precision current. Always use emitter degeneration. For more on biasing stability, Electronics Tutorials breaks down the math behind thermal stability in BJTs.

NPN Current Source vs. Simple Resistor

Why go through the trouble of building an active transistor circuit when you can just use Ohm's law and a single resistor? Here is how they compare when driving a load that changes resistance (like a heating element or a battery).

Criteria Simple Series Resistor NPN Active Current Sink
Current Stability Poor. Current drops as load resistance increases. Excellent. Current remains flat across varying load resistance.
Component Count 1 (Resistor) 3 to 5 (BJT, R_E, biasing network)
Power Efficiency High, if voltage headroom is minimal. Lower. The BJT must burn excess voltage as heat (V_CE × I_C).
Compliance Voltage Requires exact matching of V_CC to load V_F. Requires V_CC to be higher than load V_F + V_E + V_CE(sat).
Best Use Case Basic indicator LEDs on a tight budget. Precision charging, active loads, and matched LED strings.

FAQ: Troubleshooting and Design Gotchas

Q: Why does my current drop off when I increase the load resistance?
A: You have hit the compliance voltage limit. An NPN current sink can only maintain constant current as long as the power supply voltage is high enough to overcome the load's voltage drop, the emitter resistor's voltage drop, and the transistor's saturation voltage (V_CE(sat), usually ~0.2V). If V_CC is too low, the transistor saturates and acts like a closed switch, reverting to simple Ohm's law behavior.

Q: Can I use an NPN to source current to a high-side load?
A: Technically yes, by placing the load in the emitter path (an emitter follower), but it is highly impractical. The base voltage must be higher than the supply rail to drive the load fully. For high-side current sourcing, use a PNP BJT or a PMOS FET configured as a high-side current source.

Q: My current is slightly lower than my math predicted. Why?
A: Two reasons. First, I_C is slightly less than I_E because a tiny fraction of the current exits through the base (I_B). Second, if your base voltage divider is too "weak" (high resistance), the base current drawn by the transistor will pull V_B down below your calculated value. Ensure your divider current is at least 10x the expected base current.