If you are designing a temperature-sensing circuit with an NTC (Negative Temperature Coefficient) thermistor, the direct answer you need is the Beta ($\beta$) parameter equation. While the three-parameter Steinhart-Hart equation exists for laboratory-grade precision, the Beta formula is the industry standard for 95% of microcontroller-based HVAC, battery management, and DIY environmental monitoring projects. It accurately maps resistance to temperature across a practical 0°C to 100°C range using just one material constant.
The Core Formula for Thermistor Resistance (Beta Equation)
The Beta equation models the exponential drop in resistance as an NTC thermistor heats up. Here is the standard formula for thermistor resistance at a given temperature:
RT = R0 · exp[ β · (1/T - 1/T0) ]
| Symbol | Definition | Standard Units |
|---|---|---|
| RT | Resistance of the thermistor at target temperature T | Ohms (Ω) |
| R0 | Nominal resistance at the reference temperature T0 (usually 25°C) | Ohms (Ω) |
| β | Beta value (material constant) specific to the thermistor batch | Kelvin (K) |
| T | Target temperature you are calculating for | Kelvin (K) |
| T0 | Reference temperature (almost always 298.15 K / 25°C) | Kelvin (K) |
| exp | Euler's number (e ≈ 2.71828) raised to the power of the bracket | Dimensionless |
When this applies and its assumptions: This formula assumes you are using an NTC thermistor (not a PTC), that the reference temperature T0 is exactly 25°C, and that self-heating is negligible. Self-heating occurs if your bias current is too high; always keep the current through the thermistor below 100 μA to prevent the component from heating itself and skewing the reading.
Rearranged Forms: Solving for Temperature, Beta, or R0
In embedded systems like an ESP32 or Arduino, you rarely need to find RT. Instead, your ADC measures voltage, you calculate RT via a voltage divider, and then you need to solve for T. Here are the algebraically rearranged forms you will actually use in your C++ or Python code:
- Solve for Temperature (T):
T = 1 / [ (1/T0) + (1/β) · ln(RT / R0) ]
Note: The result is in Kelvin. Subtract 273.15 to get Celsius. - Solve for Beta (β): (Useful if you are characterizing an unknown thermistor with two data points)
β = ln(RT / R0) / [ (1/T) - (1/T0) ] - Solve for Nominal Resistance (R0):
R0 = RT · exp[ -β · (1/T - 1/T0) ]
Worked Examples with Strict Unit Tracking
Abstract formulas cause bugs. Let us walk through two concrete calculations, tracking every unit to ensure the math holds up.
Example 1: Finding Resistance at a Target Temperature
Scenario: You have a 10 kΩ NTC thermistor with a β value of 3950 K. You need to know its exact resistance when the ambient temperature hits 85°C to size your ADC pull-down resistor.
- Convert Celsius to Kelvin:
T0 = 25°C + 273.15 = 298.15 K
T = 85°C + 273.15 = 358.15 K - Calculate the inverse temperature difference:
(1/T) - (1/T0) = (1 / 358.15) - (1 / 298.15)
= 0.0027921 K-1 - 0.0033540 K-1 = -0.0005619 K-1 - Multiply by β:
3950 K · (-0.0005619 K-1) = -2.2195 (Notice the Kelvin units cancel out, leaving a dimensionless exponent). - Exponentiate:
exp(-2.2195) = 0.10866 - Multiply by R0:
RT = 10,000 Ω · 0.10866 = 1,086.6 Ω
Example 2: Finding Temperature from an ADC Reading
Scenario: Your thermistor (R0 = 10 kΩ, β = 3950 K) is in a voltage divider with a 10 kΩ pull-up resistor connected to a 3.3V supply. Your multimeter reads 1.06V at the midpoint. What is the temperature?
- Calculate RT from the voltage divider:
Vout = Vcc · [ RT / (RT + Rpullup) ]
1.06V = 3.3V · [ RT / (RT + 10,000) ]
Solving for RT yields: RT = 4,735 Ω - Apply the rearranged temperature formula:
ln(RT / R0) = ln(4735 / 10000) = ln(0.4735) = -0.7476 - Divide by β:
-0.7476 / 3950 K = -0.0001892 K-1 - Add to 1/T0:
1/T0 = 1 / 298.15 K = 0.0033540 K-1
Denominator = 0.0033540 + (-0.0001892) = 0.0031648 K-1 - Invert to find T:
T = 1 / 0.0031648 K-1 = 316.0 K - Convert back to Celsius:
316.0 K - 273.15 = 42.85°C
Unit Mistakes That Break the Math (and Realistic Magnitudes)
If your code is returning -200°C or 4,000°C, you have fallen into one of the classic unit traps. According to application notes from Ametherm's thermistor design guides, the vast majority of field failures in thermal management stem from these specific math errors:
Realistic Answer Magnitudes: Always sanity-check your output against physical reality for a standard 10 kΩ NTC. If your formula spits out 0.05 Ω or 4,000,000 Ω, your math is wrong. Here is the realistic magnitude envelope for a 10k / 3950 β NTC:
- At -40°C (Freezer): ~252,000 Ω (252 kΩ)
- At 25°C (Room): 10,000 Ω (10 kΩ)
- At 85°C (Hot Electronics): ~1,086 Ω (1.1 kΩ)
- At 125°C (Boiling/Automotive): ~215 Ω
Decision Path: Selecting Your Thermistor and Bias Network
Do not just buy a random bag of thermistors off Amazon. The β value varies wildly between batches, and tolerance stacking between the thermistor and your pull-up resistor will ruin your accuracy. Use this decision tree to lock in your bill of materials.
| Condition / Requirement | Action / Choice |
|---|---|
| Need ±2°C accuracy from 0°C to 100°C (Standard HVAC/Battery) | Use the Beta formula. Buy a 10 kΩ NTC with 1% tolerance. |
| Need ±0.5°C accuracy across -40°C to 125°C (Medical/Lab) | Abandon the Beta formula. Use the 3-parameter Steinhart-Hart equation and buy a 10 kΩ NTC with 0.1% tolerance. |
| Microcontroller ADC is 12-bit (e.g., ESP32, STM32) | Match your pull-up resistor to the thermistor's R0 (10 kΩ) to center the voltage curve at 25°C. |
| Microcontroller ADC is 10-bit (e.g., Arduino Uno) | Use a 10 kΩ pull-up, but add a 100 nF ceramic capacitor in parallel with the thermistor to filter quantization noise. |
| FINAL DEFAULT PICK (DIY/Prototyping) | Buy the EPCOS (TDK) B57891S0103K000 (10kΩ, β=3988K, radial leaded) paired with a Vishay MRS25000C1002FRP00 (10kΩ, 1%, 0.6W metal film pull-up). |
By selecting the EPCOS B57891S0103K000, you get a tightly binned β value of 3988 K, which is heavily documented in manufacturer datasheets, making your Beta formula calculations highly predictable without needing custom calibration.
When the Beta Formula Fails: The Steinhart-Hart Upgrade
The Beta formula is a two-point approximation. It assumes the resistance-temperature curve is a perfect exponential, which it is not. According to Murata's NTC thermistor specifications, the Beta equation introduces an error of about 1°C to 2°C at the extreme edges of the operating range (e.g., below -20°C or above 100°C) because the actual β value of the semiconductor material drifts slightly with temperature.
If your project demands strict precision outside the 0°C to 80°C comfort zone, you must upgrade to the Steinhart-Hart equation:
1/T = A + B · ln(R) + C · [ln(R)]3
This requires three calibration constants (A, B, and C) provided in the manufacturer's datasheet. However, for 9 out of 10 workbench projects—like monitoring an e-bike battery pack or a 3D printer hotend—the Beta formula, paired with a 1% tolerance 10 kΩ pull-up resistor, provides more than enough resolution to keep your systems safe and your code clean.






