The resistance of a thermistor is its specific electrical opposition to current flow, which changes predictably and non-linearly in response to temperature variations. For a standard 10kΩ NTC (Negative Temperature Coefficient) thermistor like the ubiquitous Semitec 104NT-4-R025H42G, the resistance drops from exactly 10,000Ω at 25°C to roughly 1,200Ω at 85°C. In a sensing circuit, this shifting resistance alters the voltage drop across a divider network, translating thermal energy into a readable analog voltage for a microcontroller's ADC. Makers frequently confuse NTC thermistors with RTDs (which exhibit a linear, positive, and much smaller resistance change) or thermocouples (which generate millivolt potentials rather than varying resistance).

The Core Math: Calculating the Resistance of a Thermistor

To predict the exact resistance of an NTC thermistor at a given temperature, we rely on the B-parameter equation. While the full Steinhart-Hart equation offers higher precision across extreme ranges, the B-parameter formula is the workhorse for 90% of hobbyist and commercial embedded designs.

The formula is expressed as:

R_T = R_0 * e^[B * (1/T - 1/T_0)]

  • R_T: Resistance at the target temperature (in Kelvin)
  • R_0: Nominal resistance at the reference temperature (usually 25°C / 298.15K)
  • B: The Beta value of the thermistor material (typically 3000K to 5000K)
  • T: Target temperature in Kelvin
  • T_0: Reference temperature in Kelvin (298.15K)

Worked Numeric Example

Let us calculate the resistance of a generic 10kΩ NTC thermistor with a B-value of 3950K when the ambient temperature hits 50°C.

  1. Convert temperatures to Kelvin: T = 50°C + 273.15 = 323.15K. T_0 = 25°C + 273.15 = 298.15K.
  2. Calculate the inverse temperature delta: (1 / 323.15) - (1 / 298.15) = 0.0030945 - 0.0033540 = -0.0002595.
  3. Multiply by the B-value: 3950 * -0.0002595 = -1.0250.
  4. Apply the exponential function: e^(-1.0250) ≈ 0.3588.
  5. Multiply by nominal resistance: 10,000Ω * 0.3588 = 3,588Ω.

At 50°C, your microcontroller will see 3,588Ω instead of 10,000Ω. For a deeper dive into material science constants, the Ametherm NTC B-parameter guide details how manufacturing doping alters this curve.

Voltage Divider Output Table

Assuming a standard 3.3V VCC, a 10kΩ pull-up resistor, and the thermistor tied to ground, here is what your ADC actually measures:

Temperature (°C)Thermistor Resistance (Ω)ADC Voltage (V)10-bit ADC Value (0-1023)
0°C27,3000.88V273
25°C10,0001.65V511
50°C3,5882.42V750
85°C1,2052.94V911

Where You Meet This in Practice

You will rarely see a thermistor wired directly to a power rail. Because resistance shifts with temperature, we use them as the variable leg in a voltage divider. Here is where specific resistance profiles dominate the field:

  • 3D Printer Hotends: High-temperature environments rely on 100kΩ NTCs (like the EPCOS B3950) paired with a 4.7kΩ pull-up to maximize ADC resolution in the 180°C–260°C melting range.
  • LiFePO4 Battery Management Systems (BMS): 10kΩ NTC ring-lug sensors monitor cell terminal temperatures. The BMS cuts the charge MOSFET if the resistance drops below the threshold indicating 45°C.
  • HVAC Indoor Coils: 5kΩ or 10kΩ epoxy-potted NTCs track refrigerant line temperatures to prevent evaporator freezing.
Bench Tip: Always check the datasheet for the thermistor's dissipation constant (δ), usually listed in mW/°C. If your circuit pushes too much current through the thermistor, the I²R self-heating will artificially lower the resistance, causing the sensor to read higher than the actual ambient temperature.

Real-World Scenario Walkthrough: The 3D Printer Thermal Runaway

Understanding the resistance curve is not just academic; mismatching it can cause hardware destruction. Here is a classic bench failure involving Beta value assumptions.

The Setup

A DIY builder replaces a shattered EPCOS 100K (B=4092) hotend thermistor on their Marlin-based 3D printer with a generic "100K 3950" glass-bead thermistor from an online assortment kit. They leave the firmware Configuration.h file set to #define TEMP_SENSOR_0 1 (the EPCOS table).

The Numbers

Both sensors read exactly 100,000Ω at 25°C. However, their B-values dictate how fast that resistance drops. At a target printing temperature of 200°C:
• The original EPCOS (B=4092) drops to roughly 800Ω.
• The generic replacement (B=3950) drops to roughly 1,100Ω.

The Outcome

The printer commands a 200°C heat. The generic thermistor hits 200°C and reports 1,100Ω. The Marlin firmware looks up 1,100Ω in the EPCOS table and incorrectly calculates the current temperature as only 175°C. Assuming the hotend is still cold, the firmware drives the heater cartridge at 100% PWM.

What Went Wrong

The actual temperature overshoots to 260°C. The PTFE Bowden tube inside the hotend begins to degrade, releasing toxic fumes, and the PLA filament chars. Eventually, the firmware's "Thermal Runaway" safety watchdog triggers because the temperature reading isn't rising at the expected rate relative to the PWM output, shutting the machine down. The builder assumed all "100K" thermistors shared the same resistance curve, ignoring the critical B-parameter. The RepRap Thermistor Wiki explicitly warns against mixing Beta values without regenerating the firmware lookup tables.

Common Confusions and Bench Mistakes

When troubleshooting temperature circuits, avoid these three frequent traps:

1. Confusing NTCs with RTDs

A PT100 RTD (Resistance Temperature Detector) reads 100Ω at 0°C and rises linearly to about 138Ω at 100°C. If you wire an RTD into a circuit designed for a 10kΩ NTC, the microcontroller will read a near-zero voltage and assume the temperature is astronomically high. RTDs require constant current sources or Wheatstone bridges; NTCs simply need a pull-up resistor.

2. Ignoring Lead Wire Resistance

If you are using a low-resistance thermistor (e.g., 2.2kΩ or 1.8kΩ automotive sensors) over a long cable run, the copper wire's resistance adds directly to the thermistor's resistance. While 0.5Ω of wire resistance is invisible to a 100kΩ sensor, it introduces a measurable offset in low-impedance circuits. For long runs, step up to a 10kΩ or 100kΩ NTC to render lead resistance mathematically irrelevant.

3. Multimeter Self-Heating

When you measure a thermistor with a handheld digital multimeter (DMM), the meter injects a test current. On a tiny, un-potted glass bead thermistor, this test current generates enough I²R heat to raise the component's temperature by 1°C to 3°C above room temperature. If your bench reads 27°C when the room is 24°C, the DMM is likely heating the bead.

FAQ: Thermistor Resistance Nuances

Why use the Steinhart-Hart equation instead of the B-parameter?

The B-parameter equation assumes the Beta value is perfectly constant, which is only true over a narrow temperature window (usually 25°C to 50°C). If you need ±0.1°C accuracy from -40°C to +125°C, the B-parameter curve drifts. The Steinhart-Hart equation introduces three calibration coefficients (A, B, and C) derived from measuring the thermistor's resistance at three distinct bath temperatures, flattening the mathematical error across the entire operational range. Omega Engineering's thermistor resources provide excellent calculators for deriving these coefficients.

Can I use a PTC thermistor for temperature sensing?

Technically yes, but practically no. While PTC (Positive Temperature Coefficient) thermistors do change resistance with heat, most commercial PTCs are engineered with a sharp, non-linear "switching" curve designed for overcurrent protection (resettable fuses) or motor starting. For linear analog temperature sensing, NTCs are the universal standard. If you need a positive correlation, simply swap the positions of the thermistor and the pull-up resistor in your voltage divider.

How do I stop my ESP32 ADC from giving noisy thermistor readings?

The ESP32's internal ADC is notoriously non-linear and noisy at the voltage rails. First, ensure your voltage divider is feeding the ADC a voltage between 0.15V and 2.5V, avoiding the extreme top and bottom of the 3.3V scale. Second, place a 100nF ceramic capacitor in parallel with the thermistor to form a low-pass filter, killing high-frequency EMI. Finally, oversample the ADC in your code—take 16 rapid readings, discard the highest and lowest, and average the rest.