A constant current circuit maintains a fixed output current regardless of load resistance or supply voltage variations, up to its compliance voltage limit. While integrated regulators like the LM317 are popular, a discrete Bipolar Junction Transistor (BJT) constant current sink offers a lower dropout voltage, cheaper bill of materials, and a masterclass in analog feedback. This guide walks through the design, behavioral physics, and breadboard verification of an NPN-based constant current sink targeting a 20mA LED string.

The Core Topology: NPN Constant Current Sink

The circuit relies on a negative feedback loop created by an emitter sense resistor and a fixed base voltage reference. When the load attempts to draw more current, the voltage across the sense resistor rises, which reduces the base-emitter voltage ($V_{BE}$) and throttles the transistor back down.

To understand the signal flow, we map the circuit to five critical nodes:

  • Node A ($V_{CC}$): The positive supply rail (e.g., 12V DC).
  • Node B ($V_{LOAD}$): The junction between the positive supply and the load (LED string).
  • Node C ($V_{C}$): The collector of the NPN transistor, connected to the negative terminal of the load.
  • Node D ($V_{E}$): The emitter of the NPN transistor, connected to the top of the sense resistor ($R_{SENSE}$).
  • Node E ($V_{B}$): The base of the NPN transistor, biased by a voltage reference (a standard LED in series with a current-limiting resistor).
Why this topology over the alternatives?
A simple series resistor fails to regulate current if $V_{CC}$ sags or the LED forward voltage ($V_F$) shifts with temperature. An LM317 constant current regulator requires a minimum dropout voltage of roughly 3V ($V_{REF} = 1.25V$ plus $V_{CE(sat)}$). This discrete BJT topology requires only about 1.2V of headroom ($V_{CE(sat)} \approx 0.2V$ + $V_E \approx 1.0V$), making it vastly superior for low-voltage battery-powered LED drivers.

Component Specification Sheet

Below is the exact bill of materials for a 12V supply driving a 20mA load. These values are derived from standard E12/E24 resistor series and common jellybean components.

Component Designator Value / Rating Function in Topology
NPN Transistor Q1 2N3904 (40V, 200mA) Variable resistor / current throttling valve
Sense Resistor R_SENSE 56Ω, 1/4W, 1% Converts load current to feedback voltage
Reference LED D_REF Standard Red (Vf ≈ 1.8V) Provides stable base voltage reference
Base Resistor R_BASE 2.2kΩ, 1/4W Limits current through D_REF to ≈4.6mA

Behavioral Matrix: How the Circuit Reacts to Change

Understanding how a constant current circuit behaves under stress is what separates theoretical knowledge from bench-ready design. The following matrix details the physical response when specific parameters shift. For deeper theoretical backing on BJT operating regions, refer to the All About Circuits constant current tutorial.

Parameter Changed Effect on $I_{OUT}$ Effect on $V_{CE}$ Physical Mechanism
Increase $R_{SENSE}$ Decreases Increases Higher $V_E$ reduces $V_{BE}$, throttling Q1 into a higher resistance state.
Increase $V_{CC}$ (Supply) No change* Increases Q1 absorbs the excess voltage. (*Micro-amp increase due to the Early effect).
Increase Ambient Temp Increases slightly Decreases $V_{BE}$ drops by ≈2mV/°C. $V_E$ rises, pushing $I_{OUT}$ higher.
Decrease Load Resistance No change Decreases Q1 opens further to maintain $V_E$, dropping more voltage across the load.

Design Walkthrough: 20mA LED Driver

Let’s synthesize the math for a 20mA target current using a 12V supply. We will use a standard red LED as our voltage reference because its forward voltage ($V_F$) is highly stable at low currents and tracks the temperature coefficient of the BJT’s base-emitter junction, providing passive thermal compensation.

Step 1: Calculate the Sense Resistor ($R_{SENSE}$)

The base voltage ($V_B$) is clamped by the red LED at approximately 1.8V. The base-emitter junction of the 2N3904 drops about 0.65V ($V_{BE}$). Therefore, the voltage at the emitter ($V_E$) is:

V_E = V_B - V_BE = 1.8V - 0.65V = 1.15V

Using Ohm’s Law to find the resistor needed for 20mA (0.020A):

R_SENSE = V_E / I_OUT = 1.15V / 0.020A = 57.5Ω

The closest standard E24 value is 56Ω. Using 56Ω yields an actual current of 1.15V / 56Ω = 20.5mA, which is perfectly safe for standard indicator LEDs.

Step 2: Calculate the Base Resistor ($R_{BASE}$)

The reference LED needs about 5mA to maintain a stable 1.8V drop. With a 12V supply:

R_BASE = (V_CC - V_LED) / I_LED = (12V - 1.8V) / 0.005A = 2040Ω

We select the standard 2.2kΩ resistor, yielding a reference current of roughly 4.6mA.

Step 3: Verify Power Dissipation

Check the Texas Instruments 2N3904 datasheet for limits. If the load is shorted, Q1 must drop the full 12V minus $V_E$ (1.15V), leaving 10.85V across the collector-emitter junction. Power dissipation in Q1 would be 10.85V * 0.0205A = 222mW. The 2N3904 is rated for 625mW at 25°C, so we are well within the safe operating area (SOA) without a heatsink.

Failure Modes: What Breaks at the Extremes?

A robust design anticipates component failure. Here is how the topology behaves when things go wrong on the bench or in the field.

  • Shorting $R_{SENSE}$: If the sense resistor shorts (or a solder bridge forms), $V_E$ drops to 0V. The full 1.8V from the reference LED is applied directly to the base-emitter junction. Q1 will saturate violently, acting as a closed switch. Current will spike, likely destroying the load LEDs and potentially melting Q1’s internal bond wires.
  • Opening $R_{SENSE}$: If the sense resistor cracks open, the emitter is disconnected from ground. No current can flow through the collector. $I_{OUT}$ drops to 0mA. The circuit fails safe.
  • Opening the Load: If the LED string disconnects, $I_{OUT}$ becomes 0mA. The collector voltage (Node C) floats up to $V_{CC}$ (12V). $V_{CE}$ becomes 10.85V. Since the 2N3904 has a $V_{CEO}$ rating of 40V, the transistor survives easily. Warning: If your supply is 48V, an open load will exceed the 40V breakdown voltage and avalanche the transistor.
  • Reversing the Load Polarity: If the LED string is plugged in backward, the LEDs will not light. The transistor’s collector-base junction may become forward-biased depending on the exact node voltages, but generally, the circuit just sits in cutoff. No catastrophic failure, but no light.

Breadboard Testing: Step-by-Step Verification

Do not trust the math until you verify it with a multimeter. Follow this exact sequence to validate your constant current circuit on a solderless breadboard.

  1. Build the Reference Leg: Insert the 2.2kΩ resistor and the red reference LED in series from the 12V rail to ground. Test: Measure across the LED. You should read between 1.75V and 1.85V.
  2. Insert Q1 and $R_{SENSE}$: Place the 2N3904 (flat side facing you: Emitter, Base, Collector). Connect the base to the anode of the reference LED. Connect the 56Ω resistor from the emitter to ground.
  3. Measure Quiescent Emitter Voltage: With no load connected, power the circuit. Measure the voltage across the 56Ω resistor. It should read 0V because there is no collector path to complete the circuit.
  4. Connect the Load: Power down. Connect your LED string between the 12V rail and the collector of Q1. Power up.
  5. Verify Constant Current: Set your digital multimeter (DMM) to DC millivolts. Measure directly across the 56Ω sense resistor. You should read approximately 1.15V (1150mV). Using Ohm’s law ($I = V/R$), 1.15V / 56Ω = 20.5mA.
  6. Test Compliance (Voltage Variation): Drop your bench supply voltage from 12V down to 5V. The DMM reading across the sense resistor should remain locked at 1.15V. When you drop the supply below 3V, the reading will suddenly collapse—this is the compliance voltage limit, where Q1 runs out of headroom and enters saturation.
Safety Caveat for Higher Voltages: If you adapt this topology for 24V or 48V systems, the power dissipation in Q1 during a shorted-load fault will exceed the 625mW limit of a TO-92 package. You must either upgrade to a TO-220 package (like the TIP31C) or add a PTC resettable fuse in series with the collector to protect the silicon during fault conditions.