NTC Thermistor Calculator

Beta and Steinhart–Hart models, coefficient fitting from datasheet points, a thermistor divider into an ADC with sensitivity and resolution, series-resistor choice, self-heating, tolerance error and a firmware lookup table.

Method, formulas and references

Beta model

The exponential approximation used in NTC datasheets describes the resistance with one material constant B and a reference point, normally 25 °C:

(1)R(T) = R0 · exp[B (1/T − 1/T0)], T = 1 / (1/T0 + ln(R/R0)/B)

Temperatures are absolute (T = °C + 273.15). For real materials the local B changes with temperature (it rises with temperature in all three datasheet tables used here), so a single B describes the curve exactly only at the two temperatures it was measured at. The datasheet value is the chord between two points:

(2)BT1/T2 = ln(R1/R2) / (1/T1 − 1/T2)

That is why manufacturers quote B25/50, B25/85 or B25/100 and why they differ for the same part: Murata gives 3380 K (25/50), 3434 K (25/85) and 3455 K (25/100) for the NCP18XH103. Use the pair closest to the temperatures that matter, or use the Steinhart–Hart model. The local B, −T² d(ln R)/dT, is shown by the converter; the temperature coefficient is α = −B/T².

Steinhart–Hart model

(3)1/T = A + B ln R + C (ln R)³

Steinhart and Hart proposed this form for oceanographic thermistors in 1968. With R in ohms and T in kelvin, three calibration points (Ti, Ri) give three linear equations in A, B and C, solved here exactly (Gaussian elimination with pivoting). The determinant is (L2 − L1)(L3 − L1)(L3 − L2)(L1 + L2 + L3) with Li = ln Ri, so the resistances must differ. The fit passes through the three points; between and beyond them the error depends on the material. Choose points that span the range you measure: for the Vishay table, points at −40, 25 and 125 °C keep the whole −40 to 125 °C table within 0.06 °C. The Beta model is the special case C = 0, BSH = 1/B, A = 1/T0 − ln R0/B.

Resistance from temperature needs the real root of C x³ + B x + (A − 1/T) = 0 with x = ln R. With y = (A − 1/T)/(2C) and p = B/(3C), Cardano's formula gives x = ∛(√(p³ + y²) − y) − ∛(√(p³ + y²) + y); the result is refined with Newton steps. The curve is used only where B + 3C (ln R)² > 0 over the whole range, so that resistance falls monotonically with temperature.

Divider into an ADC

With the thermistor from the output to ground (low side) and Rs to the supply Vs, or the other way round (high side):

(4)Vlow = Vs · R / (R + Rs), Vhigh = Vs · Rs / (R + Rs)
(5)dV/dT = ± Vs Rs / (R + Rs)² · dR/dT

with dR/dT = −B R/T² for the Beta model and −R / (T² (B + 3C ln²R)) for Steinhart–Hart; the sign is + for the low side.

An N-bit ADC with reference Vref has 1 LSB = Vref/2N. Codes are taken as round(V/LSB), limited to 0…2N − 1, i.e. an ideal converter with code transitions at ½ LSB; a converter whose first transition is at 1 LSB reads up to one code lower. The resolution is LSB / |dV/dT| in °C per LSB and the quantisation error is ± half of it. When the ADC reference is the divider supply (ratiometric), the code is 2N · R/(R + Rs) and does not depend on Vs. With a separate reference every change of Vs appears as a temperature error. The code-to-temperature readout uses the centre voltage of the code, R = Rs V/(Vs − V) (low side) or Rs (Vs − V)/V (high side).

Choosing the series resistor

Four choices are listed, each with the nearest E24 or E96 value:

  • Largest slope at Tdes: Rs = R(Tdes). From (5), |dV/dT| ∝ Rs/(R + Rs)², whose derivative with respect to Rs is (R − Rs)/(R + Rs)³, zero at Rs = R. The slope there is Vs B/(4T²) for the Beta model. Applied at the middle of the range this is the rule given in Microchip AN685.
  • Turning point at Tdes. For a fixed Rs, the slope of V(T) is largest at the inflection of the curve, where d²V/dT² = 0 and V(T) is locally straight. With s = dR/dT, (5) gives s′(R + Rs) = 2s², so Rs = 2s²/s′ − R. For the Beta model, s = −BR/T² and s′ = BR(B + 2T)/T⁴, which reduces to
(6)Rs = R(T) · (B − 2T) / (B + 2T)

TDK gives the same expression for a resistor in parallel with the thermistor, R ∥ RP = RP · R/(R + RP), which has the same shape as the low-side divider. It is smaller than R(T): for B = 3977 K at 25 °C, Rs = 0.739 R(25 °C). Conversely, with Rs = R(Tmid) the steepest point of the curve lies below Tmid, where R = Rs (B + 2T)/(B − 2T). The Steinhart–Hart version uses the analytic derivatives of (3).

  • Largest output span: Rs = √(R(Tmin) · R(Tmax)). The span Vs[R1/(R1 + Rs) − R3/(R3 + Rs)] has zero derivative when R3(R1 + Rs)² = R1(R3 + Rs)², i.e. Rs² = R1R3. The outputs at the two ends are then symmetrical about Vs/2.
  • Three-point linearisation. Requiring V(Tmid) to be the mean of V(Tmin) and V(Tmax), 2R2/(R2 + Rs) = R1/(R1 + Rs) + R3/(R3 + Rs), expands to a linear equation in Rs:
(7)Rs = (R2(R1 + R3) − 2R1R3) / (R1 + R3 − 2R2)

The same results hold for the high-side position, whose output is Vs minus the low-side output.

Self-heating

(8)P = Vs² R / (R + Rs)², ΔT = P / δ

In steady state the thermistor sits ΔT above its surroundings and reads high by that amount. P is largest, Vs²/(4Rs), where R = Rs, as TDK shows for its B57861S. The dissipation constant δ is measured by the manufacturer in a defined medium, usually still air; copper, potting or airflow change it. Preset values are the datasheet figures: enter the value from your datasheet. Powering the divider only while sampling reduces the average power.

Tolerance

The R25 tolerance applies at 25 °C. The B tolerance spreads the resistance away from 25 °C. A part at a tolerance corner has

(9)Ract(T) = R(T) · (1 ± tR) · exp[± tBB (1/T − 1/T25)]

and the error band is the spread of the temperatures read from the four corners with the nominal model. To first order this is TDK's ΔR/R = ΔR25/R25 + (1/T − 1/T25) ΔB and Vishay's Z = (1 + X)(1 + Y) − 1 followed by ΔT = Z/α. Vishay's example, ±5 % R25 and the ±0.75 % B tolerance at 0 °C, gives Z = 5.966 % and ±1.17 °C. With the Vishay preset the calculator gives −1.13 / +1.19 °C there: the corners are evaluated exactly instead of linearised, so the band is slightly asymmetric. The B tolerance is taken as a fraction of the B value entered, which should be the one the datasheet specifies the tolerance for. The series resistor tolerance and drift, ADC offset, gain and non-linearity, reference noise and lead resistance are not included.

Lookup table

The table lists, for each temperature step, R from the selected model, the divider output and the ideal code. The C output has one array of codes and one of temperatures in 0.1 °C; firmware finds the two entries that bracket a reading and interpolates linearly. The interpolation error grows with the step and is largest where the curve bends most, at the ends of the range. Check the ADC input against its sampling requirements with the ADC input settling checker: the source resistance of the divider is R ∥ Rs.

Data sources

  1. J. S. Steinhart and S. R. Hart, "Calibration curves for thermistors", Deep-Sea Research 15 (1968) 497–503
    The equation 1/T = A + B ln R + C (ln R)³ and its calibration from measured points.
  2. TDK (EPCOS), NTC thermistors, general technical information, January 2018
    Section 3.1: exponential (Beta) model, B value from two temperatures (formula 3), tolerance of R and B. Section 3.2: self-heating, dissipation factor δth, largest self-heating when Rs = R.
  3. TDK (EPCOS), NTC thermistors, application notes, January 2018
    Section 1.2: linearisation with a resistor, turning point at the mean temperature, RP = RT (B − 2T)/(B + 2T).
  4. Microchip AN685, Thermistors in Single Supply Temperature Sensing Circuits (B. C. Baker, 1999)
    Series resistor equal to the thermistor resistance at the middle of the temperature range; Steinhart–Hart form.
  5. Vishay BCcomponents NTCLE100E3 datasheet, doc. 29049, rev. 07-May-2025
    Pages 1–2: R25, B25/85 = 3977 K ±0.75 %, R25 tolerance codes, δ = 7 mW/K, operating range. Page 10: R/T table of NTCLE100E3103 (−40 to +150 °C).
  6. TDK (EPCOS) NTC thermistors, miniature sensors with bendable wires, B57861S, January 2018
    Page 2: δth ≈ 1.5 mW/K, P25 = 60 mW, 55/155/56. Page 3: B57861S0103+040, R/T 8016, B25/100 = 3988 K ±1 %. Page 6: R/T 8016 as RT/R25.
  7. Murata NCP18XH103F03RB product data sheet and NTC thermistor catalog R44E (Aug. 3, 2018)
    Murata Product Search Data Sheet (2015-12-04, distributor copy): R25, tolerances, B25/50 = 3380 K, reference B values, 1 mW/°C, 100 mW. R/T centre values from catalog R44E p. 15, column NC□□□XH103 (copy: datasheet.octopart.com/NCP18XV103J03RB-Murata-datasheet-115026483.pdf).

Related electronics tools