Loop Burden Calculator
Check 4-20mA loop voltage budget against device burdens.
evaluated at 20 mA full scale
OK — 6.00 V margin at full scale
This tool checks whether a 4-20 mA loop's voltage budget closes: supply voltage minus the drop across sense resistor, wiring and other series devices must still exceed the transmitter's minimum operating voltage at 20 mA. It reports the voltage left at the transmitter, the margin, and the maximum loop resistance the budget allows.
How it works
A 2-wire transmitter powers itself from the loop, so every ohm in series eats into its supply. At full-scale current the drop is V = 0.02 A × R_loop; what remains, V_tx = V_supply − V_drop, must stay above the datasheet minimum. Rearranged, the budget reads as a resistance limit: R_max = (V_supply − V_min) / 0.02 — the number instrument datasheets plot as the “load resistance vs supply voltage” line.
The tool sums your sense resistor, wire resistance and other series drops, evaluates the worst case at 20 mA, and flags a negative margin — the condition that makes a loop read correctly at low current but clip before full scale.
Worked example
drop @20 mA = 0.02 × 300 = 6 V → V_tx = 18 V
margin = 18 − 12 = 6 V · R_max = (24−12)/0.02 = 600 Ω
Parameters
| Parameter | Value | Notes |
|---|---|---|
| Worst-case current | 20 mA | full scale |
| Budget | V_tx = V_supply − 0.02·R | |
| Pass criterion | V_tx ≥ transmitter min V | datasheet value |
| Max resistance | (V_supply − V_min) / 0.02 | |
| Series items | sense R · wire · barriers · indicators |
C implementation
/* 4-20 mA loop voltage budget at full scale (20 mA) */
typedef struct { float v_tx, margin, max_r; int ok; } burden_t;
burden_t loop_burden(float supply, float v_min_tx, float loop_r)
{
const float i = 0.020f; /* worst case: full scale */
burden_t b;
b.v_tx = supply - i * loop_r; /* voltage left for transmitter */
b.margin = b.v_tx - v_min_tx;
b.max_r = (supply - v_min_tx) / i; /* budget as max resistance */
b.ok = b.margin >= 0.0f;
return b; /* 24 V, 12 V min, 300 R -> v_tx 18 V, margin 6 V */
}FAQ
▸Why does my loop read fine at 4 mA but saturate before 20 mA?
That is the classic burden failure signature. Voltage drop across the loop resistance grows with current (V = I·R), so a loop can have enough voltage at low current yet starve the transmitter below its minimum operating voltage as current rises. Check the margin at 20 mA — if it is negative, the reading will clip.
▸What is a transmitter's minimum (lift-off) voltage?
The smallest terminal voltage at which a 2-wire transmitter still regulates the loop current correctly — it powers itself from that voltage. It is on the datasheet, and it is the number the whole budget is measured against.
▸What counts toward loop resistance?
Everything in series: the receiver's sense resistor (250 Ω is the classic value), wire resistance both ways, intrinsic-safety barriers, and any loop-powered indicators. Devices specified as a voltage drop can be entered as equivalent resistance: R = V/0.02.
▸Why evaluate at 20 mA and not 4 mA?
Because burden drop is worst at maximum current. A loop that has margin at 20 mA has more at every lower current. (Transmitters can over-range to ~20.5 mA, which costs a few percent more — keep a little headroom beyond zero margin.)
▸Is my data uploaded?
No. The budget math runs locally in your browser.