Метод настройки термодатчиков
На этой странице собраны распространенные способы настройки датчиков температуры в 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-термистор
Для обычных хотэндов и нагревательных столов часто используются NTC-термисторы на 100K. Такие датчики обычно подключаются к стандартным портам термисторов на плате или инструментальной плате.
Пример для хотэнда
[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. На разных платах подтягивающий (измерительный) резистор для порта термистора может отличаться и не обязательно равен 1K. Часто встречаются значения 4700, 2200, 1100, 1000 и т.д. Ориентируйтесь на документацию платы или на фактическое оборудование. На некоторых платах подтягивающий резистор можно переключать перемычками.
В приведенном ниже примере используется плата с подтяжкой 1K. Значение pullup_resistor обязательно должно быть изменено в соответствии с фактическим резистором вашей платы:
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: PT1000
sensor_pin: <pt1000_sensor_pin>
pullup_resistor: 1000
min_temp: 0
max_temp: 350
- Значение
pullup_resistorдолжно соответствовать фактическому подтягивающему резистору порта термистора на вашей плате. Часто встречаются4700,2200,1100,1000и т.д. Единого значения нет, сначала проверьте документацию платы или свяжитесь с послепродажным обслуживанием. - Если порт термистора на плате имеет подтяжку по умолчанию
4.7K, параметрpullup_resistorможно не указывать, так как Klipper по умолчанию использует значение4700. - На платах с перемычками состояние перемычек и конфигурация должны совпадать, иначе температура будет明显 завышена, занижена или вызовет ошибку
ADC out of range.
Настройка MAX31865
MAX31865 используется для считывания показаний платиновых RTD-датчиков температуры, которые обычно делятся на PT100 и PT1000. Этот способ не использует обычные контакты ADC термистора, а использует интерфейс SPI и пин выбора чипа (CS).
| Датчик | Обычное значение | Пример опорного резистора | Описание |
|---|---|---|---|
| PT100 | rtd_nominal_r: 100 | rtd_reference_r: 430 | Номинальное сопротивление датчика 100 Ом |
| PT1000 | rtd_nominal_r: 1000 | rtd_reference_r: 4300 | Номинальное сопротивление датчика 1000 Ом |
PT100, PT1000 и термопара типа K — это разные датчики. MAX31865 используется только для RTD-датчиков на платиновой основе, таких как PT100/PT1000, и не используется для термопары типа 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— это пин выбора чипа (CS) MAX31865, а не обычный пин ADC термистора.- Параметр
rtd_num_of_wiresдолжен соответствовать фактическому количеству проводов датчика, обычно2,3или4. - На платах с DIP-переключателями или перемычками необходимо настроить режим PT100/PT1000 и схему подключения в соответствии с документацией продукта, иначе показания температуры будут некорректными.
Настройка термопары типа K
Термопара типа K требует использования соответствующего чипа-преобразователя термопары. Ее нельзя подключать напрямую к обычному порту термистора или к порту PT100/PT1000 MAX31865. Распространенная конфигурация использует 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
chamber в [temperature_sensor chamber] — это имя, отображаемое на интерфейсе. Его можно изменить на box, toolboard, host и т.д. в зависимости от реального применения. Имя не должно повторять уже существующие секции конфигурации.
Стандартные и пользовательские термисторы
Встроенные sensor_type в Klipper
Следующие sensor_type уже встроены в Klipper. Их можно использовать напрямую, без необходимости задавать собственный [thermistor xxx]:
| sensor_type | Номинальное сопротивление | Способ задания | Типичное применение |
|---|---|---|---|
Loading... | 100K @ 25°C | Метод трёх точек | Конфигурация по умолчанию для хотэнда/стола плат FLY, обычные сценарии печати PLA/ABS |
Loading... | 100K @ 20°C | Метод трёх точек | Высокотемпературные хотэнды, штатные термисторы для хотэндов типа E3D |
Loading... | 100K @ 25°C | Метод трёх точек | Универсальные для хотэнда/стола, часто используются как замена стандартных NTC |
Loading... | 100K @ 25°C | B-коэффициент 4100 | Силиконовые нагревательные маты, термисторы для стола |
Loading... | 500K @ 25°C | Метод трёх точек | Высокотемпературный хотэнд (измерение до 450°C), необходимо убедиться, что весь хотэнд рассчитан на соответствующую температуру |
Loading... | 100K @ 25°C | Метод трёх точек | Хотэнд/стол, часто используется как замена SMD NTC |
Loading... | 100K @ 25°C | B-коэффициент 3974 | Универсальные для хотэнда/стола |
Loading... | 100K @ 25°C | Метод трёх точек | Хотэнд, термистор в малом корпусе |
Loading... | 1000 Ω @ 0°C | Платиновый терморезистор RTD | Высокоточный хотэнд; pullup_resistor необходимо указывать по фактическому подтягивающему резистору платы (обычно 4700, 2200, 1100, 1000 и т.д.), см. раздел PT1000 直连 выше |
- Платы 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 даёт более высокое сопротивление в области высоких температур, что обеспечивает лучшую разрешающую способность АЦП выше 250°C по сравнению с термистором 100K.
- Подходит для высокотемпературных хотэндов уровня 300°C, например для печати высокотемпературными материалами, такими как PEI, PC, PA.
- Достаточно стандартной подтяжки 4.7 кОм, замены подтягивающего резистора не требуется.
# 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 кОм, поэтому разрешение АЦП в диапазоне высоких температур низкое. Если требуется длительная печать при температуре выше 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.5 МОм при комнатной температуре значительно превышает стандартную подтяжку 4.7 кОм. При использовании подтяжки по умолчанию АЦП в диапазоне низких температур будет почти насыщен, что делает точное измерение температуры невозможным.
- Обязательно используйте подтяжку 470 кОм или больше и укажите в конфигурации
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-калибровку и сохраните результат.
Общие ошибки температуры и нагрева см.: Ошибки температуры, нагрева и экструзии.