If you need to drive high-power LEDs, charge lithium cells safely, or test electronic loads without blowing them up, a voltage source will not cut it. You need a constant current supply circuit. For 90% of bench applications between 50mA and 1.5A, the definitive answer is an LM317 linear regulator configured as a current source with a 1.25Ω sense resistor. This setup delivers a rock-solid 1A output, requires only two external components, and inherently protects against short circuits.
Below is the complete design framework, from node-level topology to thermal math and breadboard verification.
Topology Description: The LM317 Current Regulator
The LM317 is traditionally known as an adjustable voltage regulator, but its internal architecture makes it a perfect constant current source. The IC actively regulates its output pin to maintain exactly 1.25V (nominal) between the OUT and ADJ nodes.
By placing a sense resistor ($R_{sense}$) between the OUT and ADJ nodes, and connecting your load between the ADJ node and Ground, you force the IC to push whatever current is necessary to keep 1.25V across that resistor.
$I_{out} = \frac{1.25V}{R_{sense}}$
For a 1A current supply circuit, $R_{sense} = \frac{1.25V}{1A} = 1.25\Omega$.
Node Labels & Signal Path:
- $V_{IN}$ Node: Unregulated DC input (must be higher than load voltage + dropout voltage + sense voltage).
- $V_{OUT}$ Node: Connects to one side of $R_{sense}$.
- $ADJ$ Node: Connects to the other side of $R_{sense}$ and the positive terminal of the load. The IC's internal error amplifier monitors this node.
- $GND$ Node: The return path for the load. (Note: The LM317 does not connect to ground directly in this topology; the load completes the circuit to ground).
Behavior Matrix and Extreme Failure Modes
A robust current supply circuit must behave predictably when things go wrong. Here is how the LM317 topology reacts to element changes and extreme faults.
| Condition / Fault | Circuit Response | Component Stress & Result |
|---|---|---|
| $V_{IN}$ increases (e.g., 12V to 15V) | Current remains locked at 1A. LM317 drops the extra voltage as heat. | LM317 junction temperature rises. Heatsink required. |
| Load resistance decreases | Current remains 1A. Voltage across load drops. | Normal operation, provided $V_{IN}$ has enough headroom. |
| Extreme: Load Shorts | LM317 limits current to 1A. Output voltage drops to ~1.25V. | LM317 dissipates max power ($V_{IN} \times 1A$). Internal thermal shutdown triggers if heatsink is inadequate. |
| Extreme: Load Opens | Current drops to 0A. ADJ node floats. |
OUT node voltage rails up to $V_{IN}$. If $V_{IN}$ exceeds 40V, the LM317 internal junction breaks down. |
| Extreme: $R_{sense}$ Shorts | IC sees 0V between OUT and ADJ, opens the internal pass transistor fully. |
Current spikes to maximum. Load burns out or LM317 enters short-circuit current limit (~2.2A) and thermal shutdown. |
| Extreme: $R_{sense}$ Opens | Current path to ADJ is broken. Output turns off. |
Current drops to 0A. Output voltage floats to $V_{IN}$ minus internal leakage. |
Why This Topology Beats the Alternatives
Why use an LM317 instead of a discrete BJT current mirror or an Op-Amp + MOSFET setup? It comes down to part count, thermal ruggedness, and bench practicality.
| Topology | Accuracy | Component Count | Short-Circuit Ruggedness | Best Use Case |
|---|---|---|---|---|
| LM317 Linear | ±2% (Ref dependent) | 2 (IC + Resistor) | Excellent (Internal thermal & SOA protection) | Bench power, LED driving, battery charging (10mA - 1.5A) |
| Discrete BJT Mirror | Poor (Vbe tempco drift) | 3+ (Transistors, bias resistors) | Poor (Secondary breakdown risk) | On-chip IC biasing, low-power signal routing |
| Op-Amp + MOSFET | Excellent (0.1% with precision ref) | 5+ (Op-amp, MOSFET, sense R, ref, caps) | Moderate (Requires careful SOA and gate drive design) | Programmable lab supplies, high-precision sink/source (>2A) |
The Texas Instruments LM317 datasheet explicitly details the internal safe operating area (SOA) protection. Unlike a raw MOSFET which can suffer from localized thermal runaway (hot-spotting) when dissipating high voltage and current simultaneously, the LM317's silicon is ballasted to handle the linear dissipation safely, provided you manage the case temperature.
Decision Path: Sizing Your Current Supply Circuit
Use this decision tree to lock in your component values. We are designing for a 1A target current.
- Is your target current under 10mA?
Yes: The LM317's minimum load current (typically 3.5mA to 5mA) will cause regulation errors. Use a TL431 shunt regulator + BJT instead.
No: Proceed to step 2. - Is your target current over 1.5A?
Yes: The standard LM317 will overheat or hit its internal limit. Use an LM338 (5A) or an Op-Amp + PNP pass transistor.
No: Proceed to step 3. - Is your input-to-load voltage differential greater than 15V?
Yes: Linear dissipation will be massive ($P = V \times I$). You need a switching buck LED driver (e.g., TPS92515) or a pre-regulator.
No: Proceed to final pick.
Design Walkthrough: 1A Supply Component Selection
Let's build a 1A current supply circuit to drive a 10W Cree XML2 LED (Forward voltage $V_f \approx 3.0V$ at 1A) from a standard 12V DC wall adapter.
1. Sizing the Sense Resistor ($R_{sense}$)
Target $I = 1A$.
$R_{sense} = 1.25V / 1A = 1.25\Omega$.
Power dissipated by the resistor: $P = I^2 \times R = 1^2 \times 1.25 = 1.25W$.
Engineering Rule: Derate resistors by at least 50% for thermal stability and to prevent the resistor's temperature coefficient from drifting the current. Pick a 1.25Ω 3W or 5W wirewound ceramic resistor. (e.g., Ohmite 43F1R25E).
2. Verifying Input Voltage Headroom
The LM317 requires a minimum dropout voltage ($V_{IN} - V_{OUT}$) to regulate. At 1A, the dropout is roughly 2.0V to 2.5V.
$V_{IN(min)} = V_{load} + V_{sense} + V_{dropout}$
$V_{IN(min)} = 3.0V + 1.25V + 2.5V = 6.75V$.
Our 12V wall adapter provides plenty of headroom.
3. Thermal Dissipation and Heatsink Sizing
This is where most hobbyists burn their fingers. The LM317 must burn off the excess voltage as heat.
$V_{dissipated} = V_{IN} - V_{load} - V_{sense} = 12V - 3.0V - 1.25V = 7.75V$.
$P_{LM317} = 7.75V \times 1A = 7.75W$.
A bare TO-220 package has a junction-to-ambient thermal resistance ($\theta_{JA}$) of about 65°C/W. At 7.75W, the junction would rise $500°C$ above ambient and instantly trigger thermal shutdown (or melt).
We need a heatsink. Target a max junction temp of 100°C in a 25°C room ($\Delta T = 75°C$).
Max allowable $\theta_{JA} = 75°C / 7.75W = 9.6°C/W$.
Subtracting the junction-to-case ($\theta_{JC} \approx 3°C/W$) and case-to-sink ($\theta_{CS} \approx 1°C/W$ with thermal paste), we need a heatsink with $\theta_{SA} < 5.6°C/W$.
Concrete Pick: An extruded aluminum TO-220 heatsink like the Aavid Thermalloy 530709B (rated ~4.5°C/W with natural convection).
Step-by-Step Breadboard Testing and Verification
Do not just wire this up and plug in your expensive LED. Follow this verification protocol to ensure your current supply circuit is behaving before connecting the load.
- Prep the Breadboard: Standard solderless breadboards are rated for ~1A to 2A per contact, but contact resistance can cause voltage drops. For a 1A test, use heavy-gauge jumper wires (20 AWG or thicker) for the main power rails. Do not route the 1A load current through standard 24 AWG breadboard jumpers; they will get warm and introduce resistance that alters your sense voltage.
- Wire the Core: Insert the LM317. Connect $V_{IN}$ (12V) to the IN pin. Connect the 1.25Ω sense resistor between the OUT and ADJ pins. Leave the load terminals (ADJ and GND) open for now.
- Test Open-Circuit Voltage: Power the 12V supply. Use your DMM to measure the voltage between the OUT pin and GND. It should read exactly your $V_{IN}$ (12V). This confirms the IC is not internally shorted and the ADJ node is floating correctly.
- Insert a Dummy Load: Power down. Connect a high-wattage dummy load resistor between the ADJ node and GND. A 10Ω, 5W power resistor is ideal. (At 1A, it will drop 10V, plus our 4.25V overhead = 14.25V required. If your supply is only 12V, use a 3.3Ω, 5W resistor to keep the total voltage drop under 12V).
- Measure the Sense Voltage: Power up. Place your DMM probes directly across the 1.25Ω sense resistor (OUT to ADJ pins). You should read 1.25V ± 0.05V. If you read significantly less, your input voltage is sagging or the IC is in thermal shutdown.
- Verify the Current: Switch your DMM to the 10A current measurement mode. Break the circuit at the ground return path and insert the meter in series. The reading should be locked between 0.95A and 1.05A. (For deeper insight into measurement techniques, refer to this electronics tutorials guide on constant current sources).
- Thermal Check: Let the circuit run for 3 minutes. Carefully hover your hand near the LM317 heatsink. It should be hot, but if it is smoking or the thermal paste is bubbling, your heatsink is undersized or the input voltage is too high.
- Connect the Real Load: Power down, remove the dummy load and DMM, and wire in your LED or battery cell. Power up and verify final operation.
By treating the LM317 not just as a voltage chip, but as a precision 1.25V servo-loop, you gain a highly reliable, short-circuit-proof current supply circuit that will outlast almost any discrete transistor hack on your bench.






