Skip to main content

Thermal Sensor Configuration Methods

This page organizes common temperature sensor configuration methods in Klipper, including the hotend, heated bed, chamber temperature, motherboard temperature, host computer 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 Before Operation

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

Usage Notes
  • 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 sensors, thermocouples, and standard NTC thermistors use different interfaces and configuration methods. Connecting them to the wrong interface will cause abnormal temperature readings or ADC out of range.
  • After modifying the temperature sensor or heater configuration, 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 Purpose
Hotend[extruder]Reads hotend temperature and controls hotend heating
Heated Bed[heater_bed]Reads bed temperature and controls bed heating
Chamber / Additional Temperature[temperature_sensor xxx]Displays temperature only, does not directly control heating
Custom Heater[heater_generic xxx]Controls additional heating devices such as heated chambers or dry boxes
Motherboard Temperature[temperature_sensor xxx] + temperature_mcuDisplays internal MCU temperature
Host Computer 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 Thermistors​

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

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 Pin Examples​

The following only demonstrates common pin assignments for the C8P. When actually using it, fill in the thermistor and heater pins according to your wiring.

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 Models

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, refer to the product documentation first or contact after-sales support for confirmation.

PT1000 Direct Connection​

PT1000 sensors can be connected directly to thermistor interfaces that support PT1000. Different motherboards use different pull-up (sampling) resistors on their thermistor interfaces; they are not necessarily 1K. Common values include 4700, 2200, 1100, and 1000. Refer to the motherboard documentation or the actual hardware. Some motherboards allow switching the pull-up resistor via jumper caps.

The following example assumes a motherboard with a 1K pull-up resistor. pullup_resistor must be modified according to your motherboard's actual resistor value:

PT1000 Direct Connection Example (1K Pull-Up Motherboard)
[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
  • pullup_resistor must be set according to the actual pull-up resistor on the motherboard's thermistor interface. Common values include 4700, 2200, 1100, and 1000; there is no universal value. Check the motherboard documentation or contact after-sales support first.
  • If the motherboard's thermistor interface uses the default 4.7K pull-up, pullup_resistor can be omitted, and Klipper will treat it as 4700 by default.
  • For motherboards with jumper caps, the jumper state and the configuration must be consistent; otherwise, temperatures will be noticeably higher, lower, or trigger ADC out of range.

MAX31865 Configuration​

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

SensorTypical 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 the Type First

PT100, PT1000, and K-type thermocouples are not the same type of sensor. The MAX31865 is only used for RTD platinum resistance sensors such as PT100/PT1000, and is not used 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 Notes
  • The MAX31865 can only be used with 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 of the MAX31865, not a standard thermistor ADC pin.
  • rtd_num_of_wires must be set according to the actual number of wires on the probe; common values are 2, 3, or 4.
  • For boards with DIP switches or jumpers, set the PT100/PT1000 type and wire count according to the product documentation; otherwise, temperature readings will be abnormal.

K-Type Thermocouple Configuration​

K-type thermocouples need to be paired with a corresponding thermocouple converter chip. They cannot be connected directly to a regular thermistor interface, nor can they be connected to the PT100/PT1000 interface of the MAX31865. A common configuration uses 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 you are using a different K-type thermocouple converter chip, change sensor_type to the actual chip model, such as MAX6675, MAX31855, or MAX31856, and configure SPI according to the module's instructions. tc_type: K indicates that the current probe is a K-type thermocouple.

MAX6675 Example​

K-Type Thermocouple + MAX6675
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX6675
sensor_pin: <max6675_cs_pin>
spi_bus: <spi_bus>
min_temp: 0
max_temp: 500
MAX6675 Notes
  • The MAX6675 does not support the tc_type parameter; it can only read K-type thermocouples.
  • sensor_pin is the chip select (CS) pin of the MAX6675, not a regular thermistor ADC pin.
  • For SPI bus pins (MOSI/MISO/SCK), refer to the product manual of the mainboard or toolboard you are using to find the corresponding SPI interface for connection.
High-Temperature Configuration

Only increase max_temp when the hotend, heater cartridge, thermistor, nozzle, hotend mounting structure, and filament all support high temperatures. Do not arbitrarily set max_temp far beyond the hardware's capability just to eliminate errors.

Standalone Temperature Display​

If you only want to display 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

Mainboard 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 display name in the frontend. It can be changed to box, toolboard, host, etc., based on actual usage. The name must not duplicate any existing configuration section.

Common Thermistors and Custom Thermistors​

Klipper Built-in 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-point methodFLY motherboard hotend / heated bed default configuration, general PLA/ABS printing scenarios
Loading...
100K @ 25°CThree-point methodHigh-temperature hotends, thermistors paired with E3D-style hotends
Loading...
100K @ 25°CThree-point methodHotend / heated bed general purpose, commonly used as a generic NTC replacement
Loading...
100K @ 25°CB value 4100Silicone heating pads, heated bed thermistors
Loading...
500K @ 25°CThree-point methodHigh-temperature hotends (450°C class temperature measurement), verify the entire hotend's temperature rating
Loading...
100K @ 25°CThree-point methodHotend / heated bed, commonly used as an SMD NTC replacement
Loading...
100K @ 25°CB value 3974Hotend / heated bed general purpose
Loading...
100K @ 25°CThree-point methodHotend, small-package thermistor
Loading...
1000 Ω @ 0°CPlatinum RTDHigh-precision hotends; pullup_resistor must be set according to the motherboard's actual pull-up resistor (common values: 4700, 2200, 1100, 1000, etc.), see PT1000 Direct Connection above
Loading...
—SPI thermocouple conversion chipK-type thermocouple, up to approximately 1024°C, requires a MAX6675 module
Loading...
—SPI thermocouple conversion chipK-type thermocouple, up to approximately 1024°C, requires a MAX31855 module
Selection Recommendations
  • FLY motherboards typically ship with Generic 3950 configured; confirm the original model before replacing the thermistor.
  • If using E3D-style high-temperature hotends or their paired thermistors, the common choice is ATC Semitec 104GT-2.
  • If unsure about the model, check the product documentation or contact after-sales support to confirm; do not change sensor_type arbitrarily.

Custom Thermistors​

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

Placement

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

There are two common ways to define a custom thermistor:

Data TypeRecommended MethodDescription
Multiple temperature/resistance pointsThree-point methodPreferred; the temperature curve more closely matches the actual sensor
Only nominal resistance and B valueB value methodSimpler to write, but high-temperature accuracy may be inferior to the three-point method

Three-Point Method Example​

Below is an example using ATC Semitec 104GT-2 parameters to demonstrate the three-point method for custom thermistors. 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

Below is an example using EPCOS 100K B57560G104F parameters:

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
Selecting Three Points

The three points should cover the commonly used printing temperature range as much as possible, for example near room temperature, medium temperature, and the maximum commonly used temperature. If the datasheet provides a temperature/resistance table, prefer selecting three points from that table.

B Value Method​

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

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 come from thermistor tables in the Marlin firmware source code that have been verified against manufacturer datasheets. They are suitable for high-temperature hotends that require temperature measurement above 300°C. Before use, confirm that the hotend, heater cartridge, nozzle, and filament 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 at high temperatures, 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 filaments.
  • A standard 4.7 kΩ pull-up is sufficient; 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, which is vastly different from the 4.7 kΩ pull-up, resulting in low ADC resolution at high temperatures. If you need to print above 300°C for extended periods, it is recommended to use a 200K (204GT-2) or 500K (SliceEngineering 450) thermistor instead.

Dyze Design 2.5M B4500(500°C)
# R25 = 2.5M, B25 = 4500, needs to be paired with a large-resistance pull-up
# Source: Marlin thermistor_66.h comment 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
  • The 2.5MΩ nominal resistance at room temperature is far greater than the standard 4.7 kΩ pull-up. When using the default pull-up, the ADC in the low-temperature range is almost saturated, making accurate temperature measurement impossible.
  • It must be paired with a 470 kΩ or larger pull-up resistor, and pullup_resistor: 470000 must be set in the configuration.
  • If the mainboard or toolboard does not support replacing the pull-up resistor, do not use this thermistor. Use a PT1000 + MAX31865 or K-type thermocouple solution instead.
  • For 500°C-class temperature measurement, also confirm that the heater cartridge, nozzle, hotend structure, and filament all meet the temperature resistance requirements.
High-temperature solution selection
Target temperatureRecommended solutionDescription
≤ 300°C
Loading...
or
Loading...
The standard configuration is sufficient
300°C ~ 350°C
Loading...
The corresponding custom [thermistor] configuration on this page must be added first
350°C ~ 450°C
Loading...
Built into Klipper, directly enter sensor_type
450°C ~ 500°C
Loading...
or
Loading...
The corresponding custom [thermistor] configuration on this page must be added first, or use a K-type thermocouple
Above 500°C
Loading...
NTC thermistors are not suitable

Three-point method general template​

If you have a datasheet but no ready-made parameters, you can fill it in according to 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 can only be set according to the actual temperature resistance capability of the hotend, heater cartridge, thermistor, nozzle, and filament. The fact that a high-temperature NTC configuration can read higher temperatures does not mean that the entire hotend can safely heat to that temperature.

Post-Modification Checks​

After saving the configuration and restarting Klipper, check the following in order:

  1. Verify that the front-end temperature is close to room temperature.
  2. If ADC out of range, extremely high temperature, extremely low temperature, or negative temperature is displayed, stop heating first, power off, and check the connector, wiring, and sensor type.
  3. Confirm that sensor_pin is not shared with any other 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 heated bed sensor, re-run PID calibration and save the results.

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

Loading...