Shockley Diode Equation Calculator — Current, Voltage and Thermal Voltage
Solve the Shockley ideal diode equation either way: current from voltage or voltage from current, with thermal voltage from exact CODATA constants.
Shockley Diode Equation Calculator
Background.
The Shockley equation is the one line that explains why a diode has a 'forward voltage' at all. It says the current through an ideal junction rises exponentially with voltage — I = I_S(e^(V/nV_T) − 1) — and everything people say about diodes follows from that shape. There is no threshold in the equation, no 0.7 V anywhere in it; 0.7 V is simply where the exponential has climbed to a current you notice. Change I_S, and the same diode 'turns on' somewhere else.
This page solves the equation in both directions. Give it a voltage and it returns the current; give it a current and it returns the voltage using the exact inverse, V = n·V_T·ln(I/I_S + 1), so a round trip lands back on the number you started with. Alongside the answer it reports the thermal voltage at your junction temperature, the small-signal resistance n·V_T/(I + I_S), and the bias expressed in thermal voltages — the last of which tells you whether the −1 term is still doing any work.
The thermal voltage is built from the CODATA 2022 values of the Boltzmann constant and the elementary charge, both of which have been exact since the 2019 SI redefinition, giving 25.6925791211 mV at 25 °C. That matters because one of the sources behind this page offers the shortcut V_T = T/11,586, which is 0.16 % low; the difference and the choice are recorded rather than smoothed over.
The model is deliberately ideal, and the limits sit beside the result rather than in a footnote. There is no bulk series resistance, so the curve keeps climbing where a real diode flattens — past about 0.9 V the equation returns currents nothing survives, and the page refuses to print them. There is no reverse breakdown, so nothing here describes a Zener. And the temperature input changes V_T only: a real diode conducts more when it gets hot because I_S rises steeply with temperature, and that dependence is not modelled here. I_S and n are numbers you extract by measuring a device, not values to look up.
What is shockley diode equation calculator?
The Shockley ideal diode equation, also called the diode law, gives the current through a p-n junction as I = I_S·(exp(V/(n·V_T)) − 1). I_S is the reverse saturation current, the tiny leakage that flows when the junction is reverse biased. V_T is the thermal voltage kT/q, about 25.7 mV at room temperature, which sets the scale of the exponent — every extra V_T of forward bias multiplies the current by e. n is the ideality or emission factor, a fitting parameter between about 1 and 2 that absorbs recombination in the depletion region. Three consequences are worth holding on to. Under forward bias beyond a few thermal voltages the −1 becomes irrelevant and the current is a clean exponential, which is why plotting log I against V gives a straight line whose slope yields n and whose intercept yields I_S. Under reverse bias the exponential collapses and the current settles at −I_S, which is why an ideal diode blocks. And because the relation is exponential, the small-signal resistance r_d = n·V_T/(I + I_S) falls in inverse proportion to current — 26 Ω at 1 mA, 2.6 Ω at 10 mA — which is the property every diode-based mixer, log amplifier and temperature sensor exploits.
How to use this calculator.
- Choose which side to solve for: current from a voltage, or voltage from a current.
- Enter the saturation current I_S in picoamps and the ideality factor n. Both are properties of the device you are modelling and should come from a datasheet curve fit or your own measurement.
- Enter the junction temperature. It sets the thermal voltage and nothing else.
- Read the current or voltage, then look at the bias-in-thermal-voltages figure: past about 5, the familiar I ≈ I_S·e^(V/nV_T) shortcut is safe.
- Use the small-signal resistance when you need the diode's behaviour for a small AC signal sitting on this DC bias.
- If the calculator refuses a forward voltage, it is telling you the ideal equation has left physical reality at that bias — a real diode would be limited by its bulk resistance long before.
The formula.
Start with the thermal voltage. At 25 °C the absolute temperature is 298.15 K, so V_T = (1.380649×10⁻²³ × 298.15) ÷ 1.602176634×10⁻¹⁹ = 0.0256925791211 V, or 25.6925791211 mV. Both constants have been exact since the 2019 SI redefinition, so this figure carries no measurement uncertainty at all — only the temperature does.
Now the exponent. With n = 1 and 0.6 V applied, V/(n·V_T) = 0.6 ÷ 0.0256925791 = 23.3530466977. That is the number the page reports as 'bias in thermal voltages', and it is the whole story: the current is I_S multiplied by e raised to it, less one. e^23.353 is about 1.387×10¹⁰, so with I_S = 1 pA the current is 1×10⁻¹² × 1.387×10¹⁰ = 0.0138707299472 A, or 13.8707299472 mA.
The −1 is worth keeping. At 23 thermal voltages it changes the answer by one part in 1.4×10¹⁰ and could safely be dropped, but at 5 thermal voltages it is worth 0.67 %, and at zero bias it is what makes the current exactly zero rather than I_S. The page classifies your bias against ±5 thermal voltages and says which regime you are in — that cut-off is this page's own convention, not a published standard.
Solving backwards uses the exact inverse. Feed 13.8707299472 mA back in with the same I_S and n, and V = n·V_T·ln(I/I_S + 1) returns 0.6 V. A test asserts that round trip, which is the strongest check available on an invertible relation.
The small-signal resistance is the derivative, not a ratio. Differentiating the equation gives dI/dV = (I + I_S)/(n·V_T), so r_d = n·V_T/(I + I_S) = 25.6925791211 mV ÷ 13.8707299472 mA = 1.8522874583 Ω at this operating point. Note that it is n·V_T divided by the current, not the voltage divided by the current — the DC ratio 0.6 V ÷ 13.87 mA would be 43 Ω, more than twenty times larger, and it is the wrong number for any small-signal calculation.
One recorded disagreement. The LibreTexts Solar Basics module that supplies the equation with its ideality factor also gives the thermal voltage as V_T = T/11,586. The CODATA constants give T ÷ 11604.518…, so the shortcut runs 0.16 % high — 25.735 mV against 25.693 mV at 298.15 K. This page uses the constants, and a test pins the size of the gap so the discrepancy cannot quietly disappear.
Rounding happens once, at the return boundary, to ten decimal places. That precision has a visible consequence worth knowing: a current of 4×10⁻¹⁷ mA, which is what one nanovolt of forward bias produces, displays as zero. The bias-in-thermal-voltages output does not, which is why the forward/reverse classification is made on the voltage rather than on the rounded current.
A worked example.
A junction with a 1 pA saturation current and an ideality factor of 1, sitting at 25 °C with 0.6 V across it. The thermal voltage is 25.6925791211 mV, so the bias is 23.3530466977 thermal voltages — well past the point where the −1 term matters. The current is 13.8707299472 mA. The small-signal resistance at that operating point is n·V_T/(I + I_S) = 1.8522874583 Ω, which is about twenty-three times smaller than the DC ratio of voltage to current, and it is the figure to use for a small AC signal riding on this bias. Feeding 13.8707299472 mA back into the page with 'solve for voltage' returns exactly 0.6 V, which is the round trip a test asserts. Raise the ideality factor to 2 and the same 0.6 V produces only 0.0001177731 mA — a factor of about 1.2×10⁵ less, because the exponent halves. Raise the temperature to 100 °C instead and the thermal voltage climbs to 32.1555790677 mV and the current falls to 0.1269471533 mA; that is the V_T term acting alone, and it is the opposite of what a real hot diode does, because in reality I_S climbs far faster than V_T does. This page does not model that, and says so beside the number.
Frequently asked questions.
Why does the equation have no 0.7 V turn-on voltage in it?
What value should I use for the saturation current and the ideality factor?
Why does the current go down when I raise the temperature?
Why does the calculator refuse some forward voltages?
Is the small-signal resistance the same as voltage divided by current?
References& sources.
- [1]Engineering LibreTexts, 'Solar Basics' supplemental module, D. P-N Junction Diodes, §3 'Ideal Diode Equation'. Primary source for the form implemented, including the ideality factor: 'i(v) = I_S [exp(v/ηV_T) − 1]', with I_S the reverse saturation current, v the applied voltage where 'negative values indicate reverse bias', V_T the thermal voltage, and 'η is the emission coefficient, which is 1 for germanium devices and 2 for silicon devices'. The module also names the relation the 'Shockley ideal diode equation'. Its shortcut V_T = T/11,586 is NOT used here — see the note on the CODATA constants below, and the 0.16 % gap recorded on the page. Retrieved 2026-07-29.
- [2]Don H. Johnson (Rice University), 'Electrical Engineering', Engineering LibreTexts §3.20 'The Diode'. Independent second authority for the same relation without an ideality factor: 'i(t) = I₀(e^(qv(t)/kT) − 1)', where q is 'the charge of a single electron', k is Boltzmann's constant, T is 'the diode's temperature in Kelvin' and I₀ is the leakage current. Also states 'kT/q = 25mV' at room temperature, against the 25.693 mV this page computes from the exact constants — agreement to the precision the source gives. Setting n = 1 makes this page's equation identical to Johnson's, which is why n = 1 is the default. Retrieved 2026-07-29.
- [3]Bill Wilson (Rice University), 'Introduction to Physical Electronics', Engineering LibreTexts §1.9 'The Diode Equation'. Third treatment, used for the saturation-current guidance quoted in the field hint and the FAQ: the ideal equation I = I_sat(e^(qV_a/kT) − 1); the statement that q/kT ≈ 40 V⁻¹ at room temperature, i.e. kT/q ≈ 25 mV; that for real silicon diodes 'I_sat is such a small value (on the order of 10⁻¹⁰ amps)'; and a measured extraction giving 'I_sat = e^−19.68 = 2.89 × 10⁻⁹ amps'. Retrieved 2026-07-29.
- [4]NIST Reference on Constants, Units and Uncertainty — CODATA 2022 recommended values. Boltzmann constant k = 1.380649×10⁻²³ J K⁻¹, listed as exact; elementary charge e = 1.602176634×10⁻¹⁹ C, listed as exact. Both are exact by definition following the 2019 revision of the SI, so the thermal voltage kT/q carries no uncertainty beyond that of the temperature itself. Source of every digit of the 25.6925791211 mV figure quoted on this page. Retrieved 2026-07-29.
In this category
Embed
Quanta Pro
Paid features are coming later.
- All 977 calculators remain free
- No billing is enabled