热敏配置方法
本页面整理 Klipper 中常见温度传感器配置方式,包括热端、热床、仓温、主板温度、上位机温度、PT1000 直连、MAX31865 和 K 型热电偶。示例中的引脚、传感器型号、上拉电阻和温度范围都需要按实际硬件修改。
检查或更换热敏、PT100/PT1000、热电偶模块、加热棒、热床、跳线帽或端子前,请完全关闭打印机并断开电源供应,并等待热端和热床冷却。不要在通电状态下插拔线束、整理接口线序或触碰端子。
sensor_type必须与实际传感器一致,不能只按配置示例照抄。sensor_pin必须连接到支持温度采样的 ADC / 热敏接口,不能填风扇口、加热口、限位口或普通输出口。- PT100/PT1000、热电偶和普通 NTC 热敏电阻使用的接口和配置方式不同,接错接口会导致温度异常或
ADC out of range。 - 修改温度传感器或加热器配置后,应重新检查温度读数,并按需重新 PID 校准。
基本结构
温度传感器通常出现在以下配置段中:
| 场景 | 配置段 | 常见用途 |
|---|---|---|
| 热端 | [extruder] | 读取热端温度并控制热端加热 |
| 热床 | [heater_bed] | 读取热床温度并控制热床加热 |
| 仓温 / 额外温度 | [temperature_sensor xxx] | 只显示温度,不直接控制加热 |
| 自定义加热器 | [heater_generic xxx] | 控制加热仓、干燥箱等额外加热设备 |
| 主板温度 | [temperature_sensor xxx] + temperature_mcu | 显示 MCU 内部温度 |
| 上位机温度 | [temperature_sensor xxx] + temperature_host | 显示上位机 CPU 温度 |
最常见的热端配置结构如下:
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
最常见的热床配置结构如下:
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120
普通 NTC 热敏电阻
普通热端、热床常见使用 100K NTC 热敏电阻。此类传感器通常接在主板或工具板的普通热敏接口上。
热端示例
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: Generic 3950
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
热床示例
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: Generic 3950
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120
C8P 口位示例
下面只演示 C8P 常见口位写法。实际使用时请按你接线的热敏口和加热口填写。
[extruder]
heater_pin: PD12
sensor_type: Generic 3950
sensor_pin: PC2
min_temp: 0
max_temp: 300
[heater_bed]
heater_pin: PB0
sensor_type: Generic 3950
sensor_pin: PC5
min_temp: 0
max_temp: 120
常见 sensor_type 有 Generic 3950、PT1000 或其他 Klipper 内置型号。请以热端、热床或传感器标称型号为准,不确定时优先查看产品资料或联系售后确认。
PT1000 直连
PT1000 可以直接接到支持 PT1000 的热敏接口。部分 FLY 主板或工具板需要通过跳线帽切换上拉电阻,常见为普通 NTC 使用 4.7K 上拉,PT1000 使用 1K 上拉。
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: PT1000
sensor_pin: <pt1000_sensor_pin>
pullup_resistor: 1000
min_temp: 0
max_temp: 350
- 如果主板或工具板已经按 PT1000 跳线为
1K上拉,配置中应写pullup_resistor: 1000。 - 如果硬件仍是默认
4.7K上拉,可不写pullup_resistor,Klipper 默认按4700处理。 - 跳线状态和配置必须一致,否则温度会明显偏高、偏低或触发
ADC out of range。
MAX31865 配置
MAX31865 用于读取 RTD 铂电阻温度传感器,常见分为 PT100 和 PT1000 两类。此方式不使用普通热敏 ADC 引脚,而是使用 SPI 通信和片选引脚。
| 传感器 | 常见写法 | 参考电阻示例 | 说明 |
|---|---|---|---|
| PT100 | rtd_nominal_r: 100 | rtd_reference_r: 430 | 探头标称电阻为 100 欧姆 |
| PT1000 | rtd_nominal_r: 1000 | rtd_reference_r: 4300 | 探头标称电阻为 1000 欧姆 |
PT100、PT1000 和 K 型热电偶不是同一种传感器。MAX31865 只用于 PT100/PT1000 这类 RTD 铂电阻传感器,不用于 K 型热电偶。
PT100 示例
[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 示例
[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 只能按对应板卡支持的 PT100 / PT1000 接法使用,不要把普通 NTC 热敏电阻接到 MAX31865。
sensor_pin是 MAX31865 的片选引脚,不是普通热敏 ADC 引脚。rtd_num_of_wires应按实际探头线数填写,常见为2、3或4。- 带拨码或跳线的板卡必须按产品文档设置 PT100/PT1000 和线制,否则温度读数会异常。
K 型热电偶配置
K 型热电偶需要搭配对应热电偶转换芯片,不能直接接到普通热敏接口,也不能接到 MAX31865 的 PT100/PT1000 接口。常见配置使用 SPI:
[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
如果使用其他 K 型热电偶转换芯片,请把 sensor_type 改为实际芯片型号,例如 MAX6675、MAX31855 或 MAX31856,并按模块说明配置 SPI。tc_type: K 表示当前探头为 K 型热电偶。
只有在热端、加热棒、热敏、喷嘴、热端固定结构和线材都支持高温时,才可以提高 max_temp。不要为了消除报错而随意把 max_temp 设置到远高于硬件能力的数值。
独立温度显示
如果只想显示温度,不需要控制加热器,可以使用 [temperature_sensor xxx]。
仓温 / 环境温度
[temperature_sensor chamber]
sensor_type: Generic 3950
sensor_pin: <chamber_sensor_pin>
min_temp: 0
max_temp: 100
主板温度
[temperature_sensor MCU]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
上位机温度
[temperature_sensor Host]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
[temperature_sensor chamber] 中的 chamber 是前端显示名称,可以按实际用途改成 box、toolboard、host 等。名称不要与已有配置段重复。
常用热敏与自定义热敏
Klipper 内置 sensor_type
以下 sensor_type 已在 Klipper 中内置,直接填写即可使用,不需要自定义 [thermistor xxx]:
| sensor_type | 标称电阻 | 定义方式 | 常见用途 |
|---|---|---|---|
Loading... | 100K @ 25°C | 三点法 | FLY 主板热端 / 热床默认配置 |
Loading... | 100K @ 20°C | 三点法 | 高温热端、E3D 类热端 |
Loading... | 100K @ 25°C | 三点法 | 热端 / 热床通用 |
Loading... | 100K @ 25°C | B 值 4100 | 硅胶加热垫 |
Loading... | 500K @ 25°C | 三点法 | 高温热端(450°C) |
Loading... | 100K @ 25°C | 三点法 | 热端 / 热床 |
Loading... | 100K @ 25°C | B 值 3974 | 热端 / 热床 |
Loading... | 100K @ 25°C | 三点法 | 热端 |
- FLY 主板出厂配置通常使用
Generic 3950,更换热敏前先确认原始型号。 - 如果使用 E3D 类高温热端或配套热敏,常见为
ATC Semitec 104GT-2。 - 不确定型号时,优先查看产品资料或联系售后确认,不要随意更换
sensor_type。
自定义热敏
如果传感器不在上方内置列表中,可以用 [thermistor xxx] 定义自定义热敏曲线。
[thermistor xxx] 必须写在引用它的配置段上方,也就是写在对应 [extruder]、[heater_bed]、[temperature_sensor xxx] 或 [heater_generic xxx] 之前。
自定义热敏常见有两种写法:
| 资料类型 | 推荐写法 | 说明 |
|---|---|---|
| 有多个温度/电阻点 | 三点法 | 优先使用,温度曲线更接近实际传感器 |
| 只有标称电阻和 B 值 | B 值法 | 写法更简单,但高温段精度可能不如三点法 |
三点法示例
下面以 ATC Semitec 104GT-2 的参数为例,演示三点法自定义热敏的写法。先定义 [thermistor semitec_104gt2],再在 [extruder] 中使用:
[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
下面以 EPCOS 100K B57560G104F 的参数为例:
[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
三点应尽量覆盖常用打印温度范围,例如室温、中温和最高常用温度附近。如果规格书提供温度/电阻表,优先从表中选取三个点。
B 值法
如果厂家只提供标称电阻和 B 值,可以使用 temperature1、resistance1 和 beta 的方式定义:
[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
[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
高温热敏配置
以下高温热敏参数来自 Marlin 固件源码中经厂家规格书验证的热敏表,适用于需要超过 300°C 测温的高温热端。使用前请确认热端、加热棒、喷嘴和线材均支持对应温度。
# R25 = 200K, B25 = 4338, 4.7K 上拉
# 来源:Marlin thermistor_2.h,经 Mouser 厂家规格书验证
[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
- 200K 标称电阻在高温段阻值更高,相比 100K 热敏在 250°C 以上有更好的 ADC 分辨率。
- 适合 300°C 级高温热端,如 PEI、PC、PA 等高温耗材打印场景。
- 使用标准 4.7 kΩ 上拉即可,无需更换上拉电阻。
# R25 = 100K, B25/50 = 3950, 4.7K 上拉
# 来源: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 热敏在 300°C 时阻值仅约 63 Ω,与 4.7 kΩ 上拉差距极大,高温段 ADC 分辨率较低。如果需要长期在 300°C 以上打印,建议优先选用 200K(204GT-2)或 500K(SliceEngineering 450)热敏。
# R25 = 2.5M, B25 = 4500, 需配合大阻值上拉
# 来源:Marlin thermistor_66.h 注释参数
[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Ω 标称电阻在室温下远大于标准 4.7 kΩ 上拉,使用默认上拉时低温段 ADC 几乎饱和,无法准确测温。
- 必须配合 470 kΩ 或更大上拉电阻,并在配置中设置
pullup_resistor: 470000。 - 如果主板或工具板不支持更换上拉电阻,不要使用此热敏,改用 PT1000 + MAX31865 或 K 型热电偶方案。
- 500°C 级别测温请同时确认加热棒、喷嘴、热端结构和线材均满足耐温要求。
| 目标温度 | 推荐方案 | 说明 |
|---|---|---|
| ≤ 300°C | Loading... Loading... | 标准配置即可 |
| 300°C ~ 350°C | Loading... | 需先添加本页对应自定义 [thermistor] 配置 |
| 350°C ~ 450°C | Loading... | Klipper 内置,直接填写 sensor_type |
| 450°C ~ 500°C | Loading... Loading... | 需先添加本页对应自定义 [thermistor] 配置,或使用 K 型热电偶 |
| 500°C 以上 | Loading... | NTC 热敏不适用 |
三点法通用模板
如果手上有规格书但没有现成参数,可以按下方模板填写:
[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
max_temp 只能按热端、加热棒、热敏、喷嘴和线材的实际耐温能力设置。高温 NTC 配置能读取更高温度,不代表整套热端都可以安全加热到该温度。
修改后检查
保存配置并重启 Klipper 后,请按下面顺序检查:
- 查看前端温度是否接近室温。
- 如果显示
ADC out of range、极高温、极低温或负温,先停止加热,断电后检查插头、线材和传感器类型。 - 确认
sensor_pin没有被其他功能重复占用。 - 确认
sensor_type、pullup_resistor、rtd_nominal_r、rtd_reference_r与实际硬件一致。 - 热端或热床传感器更换后,重新执行 PID 校准并保存结果。
常见温度与加热报错请参考:温度、加热与挤出报错。