Skip to main content

Thermistor Configuration Methods

This page organizes common temperature sensor configuration methods in Klipper, including hotend, heated bed, chamber temperature, MCU temperature, host temperature, PT1000 direct connection, MAX31865, and K-type thermocouple. The pins, sensor models, pull-up resistors, and temperature ranges in the examples must be modified according to the actual hardware.

Power Off Operation

Before inspecting or replacing thermistors, PT100/PT1000, thermocouple modules, heater cartridges, heated beds, jumper caps, or terminals, completely shut down the printer and disconnect the power supply. Wait for the hotend and heated bed to cool down. Do not plug or unplug wiring harnesses, organize interface wiring, or touch terminals while the power is on.

Usage Instructions
  • sensor_type must match the actual sensor; do not simply copy the configuration example.
  • sensor_pin must be connected to an ADC / thermistor interface that supports temperature sampling. Do not use fan ports, heater ports, endstop ports, or general output ports.
  • PT100/PT1000, thermocouples, and standard NTC thermistors use different interfaces and configuration methods. Connecting to the wrong interface will result in abnormal temperature readings or ADC out of range.
  • After modifying temperature sensor or heater configurations, re-check the temperature readings and re-run PID calibration as needed.

Basic Structure

Temperature sensors typically appear in the following configuration sections:

ScenarioConfiguration SectionCommon Use
Hotend[extruder]Reads hotend temperature and controls hotend heating
Heated Bed[heater_bed]Reads bed temperature and controls bed heating
Chamber / Additional Temp[temperature_sensor xxx]Displays temperature only, does not directly control heating
Custom Heater[heater_generic xxx]Controls additional heating devices like chambers, drying boxes, etc.
MCU Temperature[temperature_sensor xxx] + temperature_mcuDisplays MCU internal temperature
Host Temperature[temperature_sensor xxx] + temperature_hostDisplays host CPU temperature

The most common hotend configuration structure is as follows:

printer.cfg
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300

The most common heated bed configuration structure is as follows:

printer.cfg
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120

Standard NTC Thermistor

Standard hotends and heated beds commonly use 100K NTC thermistors. These sensors are typically connected to the standard thermistor interfaces on the mainboard or toolboard.

Hotend Example

printer.cfg
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: Generic 3950
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300

Heated Bed Example

printer.cfg
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: Generic 3950
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120

C8P Port Example

The following only demonstrates common port assignments for the C8P. For actual use, fill in according to your wiring of the thermistor port and heater port.

C8P Hotend Example
[extruder]
heater_pin: PD12
sensor_type: Generic 3950
sensor_pin: PC2
min_temp: 0
max_temp: 300
C8P Heated Bed Example
[heater_bed]
heater_pin: PB0
sensor_type: Generic 3950
sensor_pin: PC5
min_temp: 0
max_temp: 120
Sensor Type

Common sensor_type values include Generic 3950, PT1000, or other built-in Klipper models. Use the model specified on the hotend, heated bed, or sensor label. If unsure, consult the product documentation or contact customer support for confirmation.

PT1000 Direct Connection

PT1000 can be directly connected to a thermistor interface that supports PT1000. Some FLY mainboards or toolboards require jumper caps to switch the pull-up resistor. Standard NTC typically uses a 4.7K pull-up, while PT1000 uses a 1K pull-up.

PT1000 Direct Connection Example
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: PT1000
sensor_pin: <pt1000_sensor_pin>
pullup_resistor: 1000
min_temp: 0
max_temp: 350
Pull-up Resistor
  • If the mainboard or toolboard is already jumpered for PT1000 with a 1K pull-up, set pullup_resistor: 1000 in the configuration.
  • If the hardware still uses the default 4.7K pull-up, you can omit pullup_resistor; Klipper defaults to 4700.
  • The jumper state and configuration must match, otherwise the temperature will be significantly high, low, or trigger ADC out of range.

MAX31865 Configuration

The MAX31865 is used to read RTD platinum resistance temperature sensors, commonly categorized as PT100 and PT1000. This method does not use standard thermistor ADC pins; it uses SPI communication and a chip select pin.

SensorCommon SettingReference Resistor ExampleDescription
PT100rtd_nominal_r: 100rtd_reference_r: 430Probe nominal resistance is 100 ohms
PT1000rtd_nominal_r: 1000rtd_reference_r: 4300Probe nominal resistance is 1000 ohms
Confirm Type First

PT100, PT1000, and K-type thermocouples are not the same sensor. The MAX31865 is only used for RTD platinum resistance sensors like PT100/PT1000, not for K-type thermocouples.

PT100 Example

PT100 + MAX31865
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX31865
sensor_pin: <max31865_cs_pin>
spi_bus: <spi_bus>
rtd_nominal_r: 100
rtd_reference_r: 430
rtd_num_of_wires: 2
min_temp: 0
max_temp: 350

PT1000 Example

PT1000 + MAX31865
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX31865
sensor_pin: <max31865_cs_pin>
spi_bus: <spi_bus>
rtd_nominal_r: 1000
rtd_reference_r: 4300
rtd_num_of_wires: 2
min_temp: 0
max_temp: 350
MAX31865 Precautions
  • The MAX31865 can only be used according to the PT100/PT1000 wiring supported by the corresponding board. Do not connect a standard NTC thermistor to the MAX31865.
  • sensor_pin is the chip select pin for the MAX31865, not a standard thermistor ADC pin.
  • rtd_num_of_wires must be set according to the actual probe wiring; common values are 2, 3, or 4.
  • Boards with DIP switches or jumpers must be set for PT100/PT1000 and wire count according to the product documentation, otherwise temperature readings will be abnormal.

K-type Thermocouple Configuration

K-type thermocouples require a matching thermocouple converter chip. They cannot be connected directly to a standard thermistor interface, nor to the PT100/PT1000 interface of the MAX31865. Common configurations use SPI:

K-type Thermocouple Example
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX31856
sensor_pin: <thermocouple_cs_pin>
spi_bus: <spi_bus>
tc_type: K
min_temp: 0
max_temp: 500

If using a different K-type thermocouple converter chip, change sensor_type to the actual chip model, such as MAX6675, MAX31855, or MAX31856, and configure the SPI according to the module documentation. tc_type: K indicates that the current probe is a K-type thermocouple.

High-Temperature Configuration

Only increase max_temp if the hotend, heater cartridge, thermistor, nozzle, hotend mounting structure, and wiring all support the high temperature. Do not arbitrarily set max_temp to a value far exceeding the hardware capability just to eliminate errors.

Standalone Temperature Display

If you only want to display a temperature without controlling a heater, use [temperature_sensor xxx].

Chamber / Ambient Temperature

Chamber Temperature Example
[temperature_sensor chamber]
sensor_type: Generic 3950
sensor_pin: <chamber_sensor_pin>
min_temp: 0
max_temp: 100

MCU Temperature

MCU Temperature Example
[temperature_sensor MCU]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

Host Temperature

Host Temperature Example
[temperature_sensor Host]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
Display Name

The chamber in [temperature_sensor chamber] is the frontend display name. It can be changed to box, toolboard, host, etc., based on the actual use. The name should not duplicate any existing configuration section.

Common Thermistors and Custom Thermistors

Built-in Klipper sensor_type

The following sensor_type values are built into Klipper and can be used directly without defining a custom [thermistor xxx]:

sensor_typeNominal ResistanceDefinition MethodCommon Use
Loading...
100K @ 25°CThree-PointFLY mainboard hotend / bed default config
Loading...
100K @ 20°CThree-PointHigh-temp hotends, E3D style hotends
Loading...
100K @ 25°CThree-PointHotend / Bed general purpose
Loading...
100K @ 25°CB value 4100Silicone heating pad
Loading...
500K @ 25°CThree-PointHigh-temp hotend (450°C)
Loading...
100K @ 25°CThree-PointHotend / Bed
Loading...
100K @ 25°CB value 3974Hotend / Bed
Loading...
100K @ 25°CThree-PointHotend
Selection Advice
  • FLY mainboards typically use Generic 3950 out-of-the-box. Confirm the original model before replacing the thermistor.
  • For E3D style high-temp hotends or matching thermistors, ATC Semitec 104GT-2 is common.
  • If the model is unknown, consult the product documentation or contact customer support; do not change sensor_type arbitrarily.

Custom Thermistor

If the sensor is not in the built-in list above, you can define a custom thermistor curve using [thermistor xxx].

Placement

[thermistor xxx] must be placed before the configuration section that references it, i.e., before the corresponding [extruder], [heater_bed], [temperature_sensor xxx], or [heater_generic xxx].

Custom thermistors commonly use two methods:

Data TypeRecommended MethodDescription
Multiple temperature/resistance pointsThree-Point MethodPreferred; temperature curve is closer to the actual sensor
Only nominal resistance and B valueB Value MethodSimpler, but high-temperature accuracy may be lower than the three-point method

Three-Point Method Example

The following uses parameters for ATC Semitec 104GT-2 as an example to demonstrate the three-point custom thermistor syntax. First define [thermistor semitec_104gt2], then use it in [extruder]:

ATC Semitec 104GT-2 Three-Point Method
[thermistor semitec_104gt2]
temperature1: 20
resistance1: 126800
temperature2: 150
resistance2: 1360
temperature3: 300
resistance3: 80.65

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: semitec_104gt2
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300

The following uses parameters for EPCOS 100K B57560G104F as an example:

EPCOS 100K B57560G104F Three-Point Method
[thermistor epcos_100k]
temperature1: 25
resistance1: 100000
temperature2: 150
resistance2: 1641.9
temperature3: 250
resistance3: 226.15

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: epcos_100k
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Point Selection

Select points that cover the typical printing temperature range, such as near room temperature, mid-range, and near the maximum common temperature. If the datasheet provides a temperature/resistance table, prefer selecting three points from it.

B Value Method

If the manufacturer only provides the nominal resistance and B value, you can define it using temperature1, resistance1, and beta:

100K B3950 B Value Method
[thermistor ntc_100k_b3950]
temperature1: 25
resistance1: 100000
beta: 3950

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: ntc_100k_b3950
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
100K B4500 B Value Method
[thermistor ntc_100k_b4500]
temperature1: 25
resistance1: 100000
beta: 4500

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: ntc_100k_b4500
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 350

High-Temperature Thermistor Configuration

The following high-temperature thermistor parameters are derived from thermistor tables in the Marlin firmware source code, verified against manufacturer datasheets. They are suitable for high-temperature hotends requiring measurement above 300°C. Before use, confirm that the hotend, heater cartridge, nozzle, and wiring all support the corresponding temperature.

ATC Semitec 204GT-2 (200K / 300°C)
# R25 = 200K, B25 = 4338, 4.7K pull-up
# Source: Marlin thermistor_2.h, verified against Mouser manufacturer datasheet
[thermistor semitec_204gt2]
temperature1: 25
resistance1: 200000
temperature2: 150
resistance2: 2520
temperature3: 300
resistance3: 142

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: semitec_204gt2
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
204GT-2 Notes
  • The 200K nominal resistance provides higher resistance values in the high-temperature range, offering better ADC resolution above 250°C compared to 100K thermistors.
  • Suitable for 300°C class high-temperature hotends, such as for printing PEI, PC, PA, and other high-temperature materials.
  • Uses a standard 4.7 kΩ pull-up; no need to change the pull-up resistor.
Formbot / Vivedino 100K B3950 High-Temp Version (350°C)
# R25 = 100K, B25/50 = 3950, 4.7K pull-up
# Source: Marlin thermistor_61.h, 100KR13950181203
[thermistor formbot_3950_350]
temperature1: 25
resistance1: 100000
temperature2: 150
resistance2: 509
temperature3: 300
resistance3: 63.5

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: formbot_3950_350
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 350
100K High-Temperature Accuracy Limitation

A 100K thermistor has a resistance of only about 63 Ω at 300°C, a huge discrepancy from the 4.7 kΩ pull-up, resulting in low ADC resolution at high temperatures. If you need to print consistently above 300°C, consider using a 200K (204GT-2) or 500K (SliceEngineering 450) thermistor.

Dyze Design 2.5M B4500 (500°C)
# R25 = 2.5M, B25 = 4500, requires a high-value pull-up resistor
# Source: Marlin thermistor_66.h commentary parameters
[thermistor dyze_500]
temperature1: 25
resistance1: 2500000
beta: 4500

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: dyze_500
sensor_pin: <hotend_sensor_pin>
pullup_resistor: 470000
min_temp: 0
max_temp: 500
2.5M Thermistor Pull-up Requirement
  • A 2.5MΩ nominal resistance is far greater than the standard 4.7 kΩ pull-up at room temperature. Using the default pull-up will cause the ADC to be nearly saturated in the low-temperature range, preventing accurate temperature measurement.
  • It must be used with a 470 kΩ or larger pull-up resistor, and pullup_resistor: 470000 must be set in the configuration.
  • Do not use this thermistor if the mainboard or toolboard does not support changing the pull-up resistor. Use a PT1000 + MAX31865 or K-type thermocouple solution instead.
  • For 500°C level temperature measurement, ensure the heater cartridge, nozzle, hotend structure, and wiring all meet the temperature resistance requirements.
High-Temperature Solution Selection
Target TemperatureRecommended SolutionDescription
≤ 300°C
Loading...
or
Loading...
Standard configuration is sufficient
300°C ~ 350°C
Loading...
Must first add the corresponding custom [thermistor] configuration from this page
350°C ~ 450°C
Loading...
Built into Klipper; use sensor_type directly
450°C ~ 500°C
Loading...
or
Loading...
Must first add the corresponding custom [thermistor] from this page, or use K-type thermocouple
Above 500°C
Loading...
NTC thermistors are not suitable

Three-Point Method Generic Template

If you have a datasheet but no ready-made parameters, you can fill in using the template below:

Three-Point Method Template
[thermistor my_custom_thermistor]
temperature1: 25
resistance1: <resistance_at_25c>
temperature2: 150
resistance2: <resistance_at_150c>
temperature3: 250
resistance3: <resistance_at_250c>

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: my_custom_thermistor
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
High-Temperature Thermistor Limitation

max_temp must only be set according to the actual temperature capability of the hotend, heater cartridge, thermistor, nozzle, and wiring. A high-temperature NTC configuration can read higher temperatures, but this does not mean the entire hotend assembly can be safely heated to that temperature.

Post-Modification Checks

After saving the configuration and restarting Klipper, follow this checklist:

  1. Check if the frontend temperature is close to room temperature.
  2. If ADC out of range, extremely high, extremely low, or negative temperatures are displayed, stop heating first, power off, and check the connector, wiring, and sensor type.
  3. Ensure sensor_pin is not duplicated by another function.
  4. Confirm that sensor_type, pullup_resistor, rtd_nominal_r, and rtd_reference_r match the actual hardware.
  5. After replacing the hotend or bed sensor, re-run PID calibration and save the results.

For common temperature and heating errors, please refer to: Temperature, Heating, and Extrusion Errors.

Loading...