How do I calculate temperature from thermistor resistance?
For an NTC thermistor, use 1/T = 1/T0 + ln(R / R0) ÷ B with temperatures in kelvin, then subtract 273.15 to get °C. A 10 kΩ, B = 3435 K thermistor measuring 5.778 kΩ is at 39.9 °C.
Find an NTC thermistor's resistance at any temperature, or the temperature from a resistance or an ADC reading, with the Beta model. The 10k thermistor table below covers common parts, and the calculator also shows the divider voltage, ADC code and self-heating and generates a firmware lookup table as a C array.
Usually R25, the resistance at 25 °C.
From the datasheet, for example B25/85.
Where the thermistor sits in the divider. The output is measured at the middle node.
Leave blank for a ratiometric ADC, referenced to the divider supply.
Optional, from the datasheet (usually a typical figure). Gives the self-heating temperature rise.
Resistance at 50 °C
3.588 kΩ
B comes with a temperature pair (B25/50, B25/85 or B25/100) and is only exact at those two points. Use the B whose pair brackets your range.
Use the Beta equation: R = R0 × exp(B × (1/T − 1/T0)), with temperatures in kelvin. A 10 kΩ thermistor with B = 3950 K reads 3.588 kΩ at 50 °C. To go the other way, 1/T = 1/T0 + ln(R / R0) ÷ B. The result is exact at the two temperatures that define B; further away, use the Steinhart-Hart equation or the manufacturer's table.
The thermistor equation used here, the Beta model, treats the logarithm of the resistance as a straight line against 1/T. Vishay's NTC application note gives it as a first approximation and defines B between two temperatures, usually 25 and 85 °C.
The divider output with a series resistor Rs on a supply Vs, and the resistance back from a measured voltage:
The ADC code uses the standard single-ended transfer, and the slope of the divider sets the temperature each code step is worth:
R = 10 kΩ × exp(3950 × (1/323.15 − 1/298.15)) = 3.588 kΩ. In a divider with a 10 kΩ series resistor on 3.3 V and the NTC to ground, the output is 871.4 mV, which a 12-bit ratiometric ADC reads as code 1081. One code step is worth 0.033 °C there.
A 12-bit ADC reads 1500 with a 10 kΩ series resistor on 3.3 V and a 10 kΩ, B = 3435 K NTC to ground. The voltage is 1500 × 3.3 ÷ 4096 = 1.208 V, so the thermistor is 5.778 kΩ. Then 1/T = 1/298.15 + ln(0.5778) ÷ 3435, which gives 39.9 °C.
A 100 kΩ thermistor is specified at B25/85 = 3950 K and B25/50 = 3890 K. With the 25/85 value, 85 °C comes out as 10.87 kΩ, matching its table value of 10.863 kΩ. At 50 °C, the 25/85 value gives 35.88 kΩ but the 25/50 value gives 36.44 kΩ, matching the table's 36.435 kΩ. Same part, about 1.5 % apart, which is why the pair should bracket the range you measure.
A 10k thermistor resistance chart at three B values, plus a 100 kΩ part, from the same Beta-model code as the calculator. Check your part's datasheet for its exact pair, and use the 10k NTC thermistor calculator above for temperatures between the rows.
| Temperature | 10 kΩ, B 3950 K | 10 kΩ, B 3435 K | 10 kΩ, B 3380 K | 100 kΩ, B 3950 K |
|---|---|---|---|---|
| -40 °C | 401.9 kΩ | 248.3 kΩ | 235.8 kΩ | 4.019 MΩ |
| -20 °C | 105.4 kΩ | 77.52 kΩ | 75.02 kΩ | 1.054 MΩ |
| 0 °C | 33.62 kΩ | 28.7 kΩ | 28.22 kΩ | 336.2 kΩ |
| 10 °C | 20.17 kΩ | 18.41 kΩ | 18.23 kΩ | 201.7 kΩ |
| 25 °C | 10 kΩ | 10 kΩ | 10 kΩ | 100 kΩ |
| 40 °C | 5.301 kΩ | 5.759 kΩ | 5.81 kΩ | 53.01 kΩ |
| 50 °C | 3.588 kΩ | 4.101 kΩ | 4.16 kΩ | 35.88 kΩ |
| 60 °C | 2.486 kΩ | 2.981 kΩ | 3.039 kΩ | 24.86 kΩ |
| 70 °C | 1.76 kΩ | 2.207 kΩ | 2.261 kΩ | 17.6 kΩ |
| 85 °C | 1.087 kΩ | 1.451 kΩ | 1.497 kΩ | 10.87 kΩ |
| 100 °C | 697.5 Ω | 987 Ω | 1.024 kΩ | 6.975 kΩ |
| 125 °C | 358.8 Ω | 553.7 Ω | 580 Ω | 3.588 kΩ |
A Vishay NTCLE100E3103 (R25 = 10 kΩ, B25/85 = 3977 K), computed with the Beta model and compared with the R-T table in its datasheet. The temperature error is what a Beta conversion reads at the datasheet resistance, minus the true temperature.
| Temperature | Datasheet R | Beta model R | R error | Temperature error |
|---|---|---|---|---|
| -40 °C | 332.1 kΩ | 412.1 kΩ | +24.1 % | +2.99 °C |
| -20 °C | 96.36 kΩ | 107.1 kΩ | +11.1 % | +1.71 °C |
| -10 °C | 55.05 kΩ | 58.95 kΩ | +7.1 % | +1.20 °C |
| 0 °C | 32.55 kΩ | 33.9 kΩ | +4.1 % | +0.76 °C |
| 10 °C | 19.87 kΩ | 20.27 kΩ | +2.0 % | +0.40 °C |
| 25 °C | 10 kΩ | 10 kΩ | +0.0 % | +0.00 °C |
| 40 °C | 5.33 kΩ | 5.279 kΩ | -1.0 % | -0.24 °C |
| 50 °C | 3.605 kΩ | 3.563 kΩ | -1.2 % | -0.31 °C |
| 60 °C | 2.49 kΩ | 2.463 kΩ | -1.1 % | -0.31 °C |
| 70 °C | 1.753 kΩ | 1.739 kΩ | -0.8 % | -0.24 °C |
| 85 °C | 1.07 kΩ | 1.07 kΩ | +0.0 % | +0.01 °C |
| 100 °C | 677.3 Ω | 684.9 Ω | +1.1 % | +0.39 °C |
| 125 °C | 338.7 Ω | 350.8 Ω | +3.6 % | +1.40 °C |
| 150 °C | 182.6 Ω | 194.4 Ω | +6.5 % | +2.84 °C |
The same thermistor has a different B for each pair of temperatures. These are the manufacturers' published figures.
| Part | B25/50 | B25/85 | B25/100 |
|---|---|---|---|
| Murata NCP18XH103 (10 kΩ) | 3380 K | 3434 K | 3455 K |
| RND 155QN0402X104F3950FA (100 kΩ) | 3890 K | 3950 K | not listed |
| Semitec 103AT-2 (10 kΩ) | not listed | 3435 K | not listed |
| Vishay NTCLE100E3103 (10 kΩ) | not listed | 3977 K | not listed |
Keep the measuring power low. Self-heating adds directly to the reading: dissipation factors run from about 1 mW/K for small SMD parts to 7 mW/K for leaded ones such as the NTCLE100E3, and Murata lists a 0.1 mA maximum operating current for the NCP18XH103. The rise depends on the air and the board around the part, so pulse the divider if the sensor is small or the supply is high.
Use a ratiometric ADC when you can, with the divider and the ADC on the same reference, so supply drift cancels. Add a small capacitor at the ADC pin when the source impedance is high and the sample time short. Lead resistance matters for low-value thermistors on long wires. R25 and B tolerance add a part-to-part spread on top of the model error: a 1 % error in R25 is about 0.23 °C at 25 °C for a part with a temperature coefficient of −4.4 %/K.
A firmware lookup table with linear interpolation trades a little flash for no floating-point log. Use a smaller step where the curve bends most, near the cold end, and check that neighboring entries still have different codes.
For an NTC thermistor, use 1/T = 1/T0 + ln(R / R0) ÷ B with temperatures in kelvin, then subtract 273.15 to get °C. A 10 kΩ, B = 3435 K thermistor measuring 5.778 kΩ is at 39.9 °C.
A material constant in kelvin that sets the slope of the resistance curve: B = ln(R1 / R2) ÷ (1/T1 − 1/T2). Datasheets give it for a pair of temperatures, such as B25/85. The Vishay NTCLE100E3 family spans 2880 to 4570 K.
With R25 = 10 kΩ it depends on B: 3.588 kΩ for B = 3950 K and 4.101 kΩ for B = 3435 K. Use R = R0 × exp(B × (1/T − 1/T0)) with temperatures in kelvin.
10 kΩ at 25 °C with a B value of 3950 K, but check the temperature pair. One 100 kΩ part from RND is specified at B25/85 = 3950 K and B25/50 = 3890 K, so entering the wrong B for your range shifts the resistance by about 1.5 % at 50 °C.
Choose the series resistor close to the NTC resistance in the middle of the temperature range you care about, because the slope of the divider is steepest when the two are equal. For a 10 kΩ NTC centered near 25 °C that is 10 kΩ, which dissipates 272 µW in the NTC on a 3.3 V supply.
Either works and the resolution is identical. With the NTC to ground the voltage and ADC code fall as temperature rises; with the NTC to the supply they rise. The choice usually comes down to how a shorted or open sensor should read.
Exact at the two temperatures that define B and close between them. For a Vishay NTCLE100E3103 (B25/85 = 3977 K), the Beta model reads 0.8 °C high at 0 °C and 3.0 °C high at −40 °C against the datasheet table. For better accuracy use the Steinhart-Hart equation or the manufacturer's table.
Turn the code into a voltage with V = code × Vref ÷ 2^N, get the NTC resistance from the divider, then apply 1/T = 1/T0 + ln(R / R0) / B. A 12-bit reading of 1500 with a 10 kΩ series resistor and a B = 3435 K, 10 kΩ NTC to ground gives 5.778 kΩ and 39.9 °C.
The temperature rise is power divided by the dissipation factor. A small SMD part at 1 mW/K in a 10 kΩ / 10 kΩ divider on 3.3 V rises about 0.27 °C. Vishay recommends a measuring power under 5 % of the dissipation factor, which keeps the rise under 0.05 °C.
See all free electronics tools →
ProtoFlow is free AI PCB design software: describe a circuit and get a schematic with real parts, PCB layout with an autorouter, SPICE simulation and Gerber files. Native KiCad, Altium and EAGLE import and export. Free on macOS, Windows and Linux.
Free to start. No card required.