The problem with thermistors
Thermistors are cheap temperature sensors used in almost every 3D printer hotend and heated bed.
They're rated with a beta (β) value — a number that describes how their resistance changes with temperature.
The issue: the beta value is not constant. It varies with temperature, and cheap thermistors often have manufacturing tolerances of ±5%. This means your printer might think it's at 220°C when the actual temperature is 215°C or 225°C.
⚠ Real-world impact: A 5–10°C error leads to inconsistent layer adhesion, stringing, or even clogs — because filament behaves very differently across that range.
This tool lets you measure the real temperature at several points and calculates the correct beta using quadratic interpolation — much more accurate than a single fixed value from a datasheet.
STEP 1 What you need
You need an external temperature measurement device. Any of these work:
— K-type thermocouple probe — most accurate for this task. A multimeter with thermocouple input works great. Position the tip as close to the heater block as possible, or use thermal paste for better contact.
— IR thermometer — convenient but less accurate on shiny metal surfaces; matte surfaces give better readings.
— Thermal camera — works well and lets you see the temperature distribution across the whole hotend area at once.
STEP 2 Take 3 readings
Heat your hotend (or bed) to 3 different temperatures using your normal Klipper interface.
Wait at least 2–3 minutes after it stabilizes before reading the external thermometer.
Recommended temperature points for a hotend:
Point 1: set 190°C → read external thermometer → note actual °C
Point 2: set 220°C → read external thermometer → note actual °C
Point 3: set 250°C → read external thermometer → note actual °C
Important: Spread your 3 points across the range you actually print at. Don't cluster them — the further apart, the better the interpolation.
STEP 3 Get Beta at each point
You need the beta value that Klipper is using at each of those temperatures.
You can find these in the Klipper source or documentation for your thermistor type.
Common starting values for Generic 3950 thermistors:
~205°C → beta ≈ 4600
~234°C → beta ≈ 4200
~270°C → beta ≈ 3800
Note: Beta decreases as temperature rises — this is normal NTC thermistor behaviour. The pre-filled defaults in this tool reflect this pattern. Replace them with values from your thermistor's datasheet if available.
STEP 4 Fill in the calculator
Enter the actual temperature you measured externally (not the Klipper target) in the "Actual Temp" field.
Enter the corresponding beta for that reference temperature. Then set your target print temperature and click Calculate.
STEP 5 Measure thermistor resistance
For the most accurate calibration, you should also measure the actual resistance of your thermistor at a known ambient temperature — rather than relying on the datasheet nominal value (usually 100kΩ at 25°C), which can vary between individual sensors.
To do this: disconnect the thermistor from the board, let it sit at room temperature until it stabilises, then measure its resistance with a multimeter. At the same time, note the ambient temperature using your external thermometer. These two values go directly into temperature1 and resistance1 in the config.
Example: You measure 98 450 Ω at 23.5°C — use exactly those values. The more precisely you measure, the better the overall calibration.
STEP 6 Add to printer.cfg
Define a custom thermistor in Klipper and reference it in [extruder]. This keeps all your calibration data in one place and doesn't touch the built-in sensor definitions.
[thermistor MyThermistor]
temperature1: 24 # ← ambient temp (°C) when resistance was measured
resistance1: 98450 # ← actual measured resistance (Ω) at temperature1
beta: 4128 # ← your calculated value from this tool
[extruder]
sensor_type: MyThermistor
# ... rest of your extruder config
All three values matter together. Using the real measured resistance and actual ambient temperature instead of datasheet defaults eliminates a second source of error on top of the beta correction.
After saving
Run FIRMWARE_RESTART in the Klipper console, then verify with your external thermometer at a couple of temperatures that the readings now match. Small residual errors (<2°C) are normal.
Safety: Never leave a heating element unattended while calibrating. Make sure your runaway protection is enabled in Klipper.