The formula
An NTC (negative temperature coefficient) thermistor loses resistance as it heats. Klipper converts it with the Steinhart-Hart equation, with T in kelvin and R in ohms:
1/T = c1 + c2 × ln(R) + c3 × ln(R)³
T (°C) = T (K) − 273.15
Klipper defines each stock thermistor by three temperature and resistance points, then solves for c1, c2 and c3. Its Generic 3950 curve passes through 100 kΩ at 25 °C, 1,770 Ω at 150 °C and 230 Ω at 250 °C. The Honeywell and MGB18 sensors use a beta instead, which is the same equation with c3 = 0:
1/T = 1/298.15 + ln(R / R25) / B
R = R25 × e^(B × (1/T − 1/298.15))
A platinum resistance temperature detector (RTD), the PT100 or PT1000, gains resistance as it heats. The IEC 60751 Callendar-Van Dusen equation gives its resistance, with R0 the reading at 0 °C (100 or 1,000 Ω):
R(t) = R0 × (1 + A·t + B·t²) 0 to 850 °C
R(t) = R0 × (1 + A·t + B·t² + C·(t − 100)·t³) −200 to 0 °C
A = 3.9083 × 10⁻³ B = −5.775 × 10⁻⁷ C = −4.183 × 10⁻¹²
The calculator inverts both exactly: Cardano’s formula for the Steinhart-Hart cubic, as Klipper does, and the quadratic for an RTD above 0 °C. Below 0 °C it solves the RTD equation numerically.
How do you convert thermistor resistance to temperature?
Take the natural log of the resistance in ohms and put it into the Steinhart-Hart equation, 1/T = c1 + c2 ln R + c3 (ln R)³, with your sensor’s coefficients. Invert the result to get kelvin and subtract 273.15. On Klipper’s Generic 3950 curve, 92 kΩ works out to 300.13 K, which is 26.98 °C.
Worked example: 92 kΩ on a Generic 3950 thermistor
Klipper’s three points for Generic 3950 give c1 = 7.9347 × 10⁻⁴, c2 = 2.0076 × 10⁻⁴ and c3 = 1.6328 × 10⁻⁷.
- ln(92,000) = 11.4295.
- c2 × ln R = 2.0076 × 10⁻⁴ × 11.4295 = 0.0022946.
- c3 × (ln R)³ = 1.6328 × 10⁻⁷ × 1,493.09 = 0.0002438.
- 1/T = 0.00079347 + 0.0022946 + 0.0002438 = 0.0033319 per kelvin.
- T = 1 / 0.0033319 = 300.13 K = 26.98 °C, or 80.56 °F.
Near room temperature the 100k curves agree within 0.21 °C: the same 92 kΩ reads 26.77 °C on the ATC Semitec 104GT-2 curve. At hotend temperatures they spread much further apart, as the table below shows.
Beta 3950 and “NTC 100K B3950”
B3950 means a beta of 3950 K. Keenovo’s table for its 100 kΩ, B 3950 thermistor gives that B value between 25 and 50 °C, and Klipper’s Generic 3950 curve follows the table.
A plain beta of 3950 tracks the table near room temperature but drifts at hotend heat. At 200 °C it gives 744.6 Ω where the table curve gives 581.3 Ω, so a beta-only setup reading 581.3 Ω would show 214.5 °C. Pick “Other NTC” in the calculator to see what a seller’s R25 and B describe.
What should a 100k thermistor read at room temperature?
A 100k thermistor reads 100 kΩ at exactly 25 °C, since that is what the rating means. Between 20 and 30 °C, the common 100k curves run from about 79 to 127 kΩ. Prusa’s multimeter guide gives 80 to 125 kΩ for that range. A reading far outside it points to a wiring fault or a different sensor.
100k thermistor resistance table
Resistance at common temperatures, from each sensor’s Klipper definition.
| Temperature | Generic 3950 | EPCOS B57560G104F | Semitec 104GT-2 | Semitec 104NT-4 | Honeywell 135-104LAG | MGB18-104F39050L32 |
|---|---|---|---|---|---|---|
| 20 °C | 123.9 kΩ | 125.4 kΩ | 126.8 kΩ | 126.9 kΩ | 125.5 kΩ | 126.4 kΩ |
| 25 °C | 100.0 kΩ | 100.0 kΩ | 99.94 kΩ | 100.0 kΩ | 100.0 kΩ | 100.0 kΩ |
| 30 °C | 81.13 kΩ | 80.26 kΩ | 79.31 kΩ | 79.33 kΩ | 80.26 kΩ | 79.71 kΩ |
| 50 °C | 36.89 kΩ | 35.30 kΩ | 33.47 kΩ | 33.46 kΩ | 35.66 kΩ | 34.51 kΩ |
| 100 °C | 6.872 kΩ | 6.343 kΩ | 5.557 kΩ | 5.571 kΩ | 6.863 kΩ | 6.304 kΩ |
| 150 °C | 1.770 kΩ | 1.642 kΩ | 1.360 kΩ | 1.371 kΩ | 1.950 kΩ | 1.721 kΩ |
| 200 °C | 581 Ω | 553 Ω | 439 Ω | 446 Ω | 723 Ω | 618 Ω |
| 250 °C | 230 Ω | 226 Ω | 174 Ω | 178 Ω | 324 Ω | 270 Ω |
| 300 °C | 105 Ω | 107 Ω | 80.6 Ω | 82.8 Ω | 167 Ω | 136 Ω |
Near 25 °C the Generic 3950 curve changes by 4.1 kΩ per degree. Klipper defines the 104GT-2 from Semitec’s 126.8 kΩ at 20 °C, so its curve lands at 99.94 kΩ at 25 °C.
At 250 °C the curves run from 174 to 324 Ω. A Generic 3950 at 250 °C reads 230 Ω, which the 104GT-2 curve calls 234 °C and the Honeywell curve 274.7 °C. The wrong sensor type puts a hotend reading off by 16 to 25 °C.
The Slice Engineering 450 °C thermistor is a 500 kΩ part: 500.0 kΩ at 25 °C, 3.734 kΩ at 200 °C, 760 Ω at 300 °C, 240 Ω at 400 °C and 151 Ω at 450 °C.
Open circuit or short
- Megohms or OL (the meter’s over-limit display): an open circuit, such as a broken wire or a loose connector. Firmware reads it as very cold. Prusa’s MK3 shows 0 °C for a disconnected thermistor and stops with MINTEMP below 10 °C.
- Near 0 Ω: a short, often from pinched or bare wires. Firmware reads it as very hot. Prusa lists a damaged thermistor cable as one cause of a MAXTEMP error.
- About 1 kΩ on a “100k” sensor: it may be a PT1000, which reads 1,077.94 to 1,116.73 Ω at 20 to 30 °C.
How to measure a thermistor
- Turn the printer off and let the hotend or bed cool to room temperature.
- Unplug the thermistor from the board, as Prusa’s guide requires.
- Set the meter to the lowest range that covers 150 kΩ, usually 200k.
- Probe the connector’s two pins and type the reading into the calculator in ohms.
- Check both thermistors. Prusa notes that if they differ, one is probably faulty.
Klipper and Marlin sensor types
A 100k thermistor is an NTC rated at 100 kΩ at 25 °C. The EPCOS, Semitec and Honeywell parts are glass-encapsulated with two leads, and a 3D printer usually has one in the hotend’s heater block and one on the bed. The board reads each through a pullup resistor (4.7 kΩ by default in Klipper and Marlin) and turns the voltage into a temperature with the curve you name in firmware.
| Sensor | Klipper sensor_type | Marlin TEMP_SENSOR | B value (source) | Rated range |
|---|---|---|---|---|
| Generic 3950 | Generic 3950 |
11 | 3950 K (B25/50, Keenovo) | not published |
| EPCOS 100K B57560G104F | EPCOS 100K B57560G104F |
1 | 4092 K (B25/100) | −55 to 300 °C |
| ATC Semitec 104GT-2 | ATC Semitec 104GT-2 |
5 | 4267 K (B25/85) | −50 to 300 °C |
| ATC Semitec 104NT-4-R025H42G | ATC Semitec 104NT-4-R025H42G |
5 | 4267 K (B25/85) | −50 to 300 °C |
| Honeywell 135-104LAG-J01 | Honeywell 100K 135-104LAG-J01 |
7 | 3974 K (Klipper, Marlin) | −60 to 300 °C |
| NTC 100K MGB18-104F39050L32 | NTC 100K MGB18-104F39050L32 |
75 | 4100 K (Klipper, Marlin) | not published |
| Slice Engineering 450 °C (500 kΩ) | SliceEngineering 450 |
67 | 3800 K (Marlin) | up to 450 °C |
| PT1000 | PT1000 (4.7 kΩ pullup) or MAX31865 |
1047 or −5 | none | set by the probe maker |
| PT100 | MAX31865 or PT100 INA826 |
−5 or 147 | none | set by the probe maker |
Marlin converts with lookup tables and Klipper with equations. Read through Marlin’s 4.7 kΩ divider, tables 1, 5 and 7 land within about 1 °C of Klipper’s curves up to 200 °C. Marlin lists Slice Engineering’s 300 °C thermistor under 5 as well.
Table 11 is the exception. Marlin names Keenovo, but the table follows a plain beta of 3950. It matches Klipper’s Generic 3950 within 0.4 °C up to 100 °C, and near 200 °C the two read the same resistance 11 °C apart.
100k thermistor in Klipper
Type the sensor_type string exactly as Klipper spells it, for example sensor_type: Generic 3950 under [extruder]. For an NTC 100K B3950 sold with only an R25 and a beta, define a custom thermistor above the heater section instead:
[thermistor my_3950]
temperature1: 25
resistance1: 100000
beta: 3950
[heater_bed]
sensor_type: my_3950
In Marlin the same thermistor is TEMP_SENSOR 1000, with the resistance at 25 °C and the beta set in Configuration_adv.h.
100k thermistor max temp
EPCOS, ATC Semitec and Honeywell rate their glass 100k thermistors to 300 °C. Slice Engineering’s 450 °C thermistor “accurately measures up to 450°C”, and the company now sells a 300 °C part. Keenovo’s 3950 table stops at 300 °C and states no limit, and no maker figure turned up for the MGB18. The calculator warns above any published maximum.
What is the resistance of a PT1000 at room temperature?
By the IEC 60751 equation, a PT1000 reads 1,000 Ω at 0 °C, 1,077.94 Ω at 20 °C and 1,097.35 Ω at 25 °C. It gains about 3.88 Ω per degree, so 20 to 30 °C spans 1,077.94 to 1,116.73 Ω. A PT100 reads one tenth of those values: 109.73 Ω at 25 °C.
| Temperature | PT100 | PT1000 |
|---|---|---|
| −50 °C | 80.31 Ω | 803.06 Ω |
| 0 °C | 100.00 Ω | 1,000.00 Ω |
| 20 °C | 107.79 Ω | 1,077.94 Ω |
| 25 °C | 109.73 Ω | 1,097.35 Ω |
| 50 °C | 119.40 Ω | 1,193.97 Ω |
| 100 °C | 138.51 Ω | 1,385.05 Ω |
| 150 °C | 157.33 Ω | 1,573.25 Ω |
| 200 °C | 175.86 Ω | 1,758.56 Ω |
| 250 °C | 194.10 Ω | 1,940.98 Ω |
| 300 °C | 212.05 Ω | 2,120.52 Ω |
| 400 °C | 247.09 Ω | 2,470.92 Ω |
IEC Class B allows ±(0.3 + 0.005 × |t|) °C, so at 0 °C a PT100 may read 100 ± 0.12 Ω, per TI’s tolerance table. On a PT1000 that is ±1.2 Ω.
PT100 and PT1000 resistance formula
Put the temperature into R = R0 × (1 + A·t + B·t²). For a PT1000 at 25 °C:
- A·t = 0.0039083 × 25 = 0.0977075.
- B·t² = −5.775 × 10⁻⁷ × 625 = −0.0003609.
- R = 1,000 × (1 + 0.0977075 − 0.0003609) = 1,097.35 Ω.
A PT100 uses R0 = 100 Ω and gives 109.73 Ω. To go back from a reading at or above R0, solve the quadratic: t = (−A + √(A² − 4B(1 − R/R0))) / 2B. A PT1000 reading 1,100 Ω is at 25.68 °C.
Klipper’s PT1000 and MAX31865 converter code uses A and B only, which matches IEC 60751 at and above 0 °C. Its direct PT1000 table runs from 0 to 490 °C in 10 °C steps.
Built by 3D Calculators Team· Published · Figures last checked
Sources
- Klipper, klippy/extras/temperature_sensors.cfg (stock thermistor definitions) (accessed 2026-11-03)
- Klipper, klippy/extras/thermistor.py (Steinhart-Hart and beta math) (accessed 2026-11-03)
- Klipper, klippy/extras/adc_temperature.py (PT1000 table) (accessed 2026-11-03)
- Klipper, klippy/extras/spi_temperature.py (MAX31865 RTD conversion) (accessed 2026-11-03)
- Klipper documentation, Configuration reference (sensor_type, [thermistor]) (accessed 2026-11-03)
- Marlin 2.1.2.9, Configuration.h (temperature sensor list) (accessed 2026-11-03)
- Marlin 2.1.2.9, Configuration_adv.h (custom thermistor 1000) (accessed 2026-11-03)
- Marlin 2.1.2.9, thermistor tables (R25 and beta25 per table) (accessed 2026-11-03)
- EPCOS (TDK), NTC thermistors for temperature measurement, glass-encapsulated sensors B57560G, B57560G1 (accessed 2026-11-03)
- ATC Semitec, GT thermistor datasheet (104GT-2) (accessed 2026-11-03)
- ATC Semitec, NT series glass NTC thermistor datasheet (104NT-4-R025H42G) (accessed 2026-11-03)
- Honeywell, 135 Series thermistors (glass-encapsulated DO-35, −60 °C to 300 °C) (accessed 2026-11-03)
- Keenovo, NTC thermistor R-T table (R25 100 kΩ, B25/50 3950) (accessed 2026-11-03)
- Slice Engineering, Thermistor: High Temperature, 300 °C and 450 °C versions (archived January 2022) (accessed 2026-11-03)
- Slice Engineering, Thermistor (current 300 °C version) (accessed 2026-11-03)
- Vishay Beyschlag, PTS platinum thin film chip RTD datasheet (IEC 60751 coefficients) (accessed 2026-11-03)
- Texas Instruments, SBAA275A, A Basic Guide to RTD Measurements (accessed 2026-11-03)
- Prusa Knowledge Base, Multimeter usage (thermistor resistance) (accessed 2026-11-03)
- Prusa Knowledge Base, MINTEMP error and MINTEMP BED (accessed 2026-11-03)
- Prusa Knowledge Base, MAXTEMP error (accessed 2026-11-03)