Точная настройка термистора в Marlin.

3DiY
Идет загрузка
Загрузка
13.05.2016
45631
26
печатает на Prusa i3 Steel
3D-печать

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

96
Статья относится к принтерам:
Prusa i3 Steel - DIY BiZon Prusa i3 Steel Prusa i3 Steel

Точная настройка термистора в Marlin.

На качество печати влияет множество факторов: качественная сборка принтера, подбор настроек слайсера, хороший пластик, качественные комплектующие, «прямые руки» и многие другое. Один из значимых факторов это точное показание температуры хотенда. Материалы для 3D-печати имеют разные температуры плавления. Представьте отличие реальной температуры от текущей на вашем принтере на 20-50ºC, о каком качестве может идти речь? Все знают, что контроль температуры осуществляется термистором (терморезистором) или термопарой. Принцип работы термистора основан на изменении сопротивления от температуры. В природе существует много различных термисторов со своими характеристиками. Список часто используемых в принтерах термисторов можете посмотреть здесь http://reprap.org/wiki/Thermistor/ru . Как правило в 3D - принтерах используются термисторы с сопротивлением 100 кОм (25ºC). Для того, чтобы экструдер показывал точную (реальную) температуру, в прошивке нужно указать тот тип термистора, который у Вас используется.

Какие строки кода нужно поменять?

Если Вы используете прошивку marlin, то тип термистора выбирается во вкладке configuration.h

Как видно, в прошивку уже включен ряд термисторов, которые можно активировать, выбрав соответствующую цифру. Если у Вас термистор “100k thermistor - best choice for EPCOS 100k (4.7k pullup)” то в строке, которая отвечает за термистор хотэнда, нужно поставить цифру “1”. Если у вас другой термистор, то выбираем необходимый.

Как узнать какой у Вас термистор?

Что бы узнать, какой именно у Вас термистор, нужно посмотреть его технические характеристики и сопоставить с тем списком, который указан в прошивке и выбрать необходимый. Что делать если у вас нет таких данных? И вы точно не знаете какой у вас термистор?

В таком случае Вам понадобится дополнительное устройство, которое будет показывать температуру хотэнда, например, мультиметр с возможностью измерения температуры (в комплект должна входить термопара). Как вы уже поняли, термопара будет показывать “реальное” значение температуры хотэнда, и это значение необходимо сравнивать с показаниями Вашего термистора.

Процедура подбора будет заключаться в следующем:

1. Выставить в прошивке значение первого термистора, залить на плату;.

2. Термопару мультиметра приложить как можно ближе к термистору хотэнда (для чистоты эксперимента);

3. Включить прогрев хотэнда (например, до 200 градусов) и подождать пока температура «устаканится».

4. Сравнить значение температуры, которую выдает термопара и термистор;

5. Если температура на термопаре и на термисторе совпадает (в идеале температура не должна отличаться более 5 градусов), то вы выбрали правильный термистор;

6. Если температуры будут сильно отличаться, значит в прошивке Вы выбрали не тот термистор. В прошивке выбираем следующую цифру, заливаем на плату и делаем пункты 1-6 до тех пор, когда температуры на термопаре и на термисторе не будет одинаковая (в пределах погрешности).

Пример подбора термистора.

Теперь давайте рассмотрим конкретный пример, мы взяли новый термистор SEMITEC NTC 100 кОм (Япония). Нам нужно выставить правильный тип в прошивке. Для начала выставим значение “1” и зальем на плату.

Далее соберем импровизированный «испытательный стенд» (испытательный нагревательный блок).

Мы просверлили нагревательный блок сверлом 3.2мм насквозь, с одной стороны (на фото левая) закрепили терпомапару (наш “эталонный” измеритель), а с другой стороны приложили термистор. Вам не обязательно в точности повторять такую варварскую процедуру со своим нагревательным блоком, но постарайтесь разместить термопару, как можно ближе к термистору.

После того как все собрали, включаем прогрев экструдера и ждем пока температура «устаканиться» и смотрим на показания прибора.

Как видим, действительная температура 186 градусов, а термистор показывает 201 градус, то есть разброс на 15 градусов, значит тип термистора в прошивке мы указали не верный.

В прошивке нужно выбрать другой тип термистора, и проделать все тоже самое. Мы покажем Вам уже верный тип термистора, который соответствует значению “5” - is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup). После изменения и заливки прошивки получаем следующее:

Полученные значения гуляют в пределах 2-3 градусов. Согласитесь не плохой результат, значит в прошивке мы указали верный тип термистора.

В прошивке нет нужного термистора.

Что делать, если вы перепробовали все типы термисторов в прошивке, а показания не соответствует действительности? Есть несколько вариантов:

1. Выбрать оптимальный термистор в прошивке, что бы разность температуры между “реальной” и нашим термистором была минимальна;

2. Добавить в прошивку собственный термистор со своими характеристиками.

В данном разделе мы покажем, как в прошивку marlin добавить собственный термистор, что бы показанные им значения совпадали с действительностью. Для этого нам понадобиться та же самая термопара с мультиметром.

Для начала зайдем в кладку thermistortables.h

Здесь содержится вся информация о всех типах термисторов, которые включены в прошивку. Открываем вкладку и видим следующее

Каждому термистору соответствует своя таблица значений температур и значения АЦП. Значения справа это температура, а слева значения АЦП, которые мы как раз и будем менять.

И так, нам нужно подправить значения слева от температуры. Алгоритм простой: крепим термопару ближе к термистору (как делали до этого), и начинаем “медленно” с интервалом в 5 градусов прогревать хотэнд. Мы должны получить температуру на мультиметре, например, 30 градусов (при этом термистор может показывать другую температуру, не верную) и данному значению температуры будет соответствовать свое значения АЦП (нам как раз их нужно и менять).

Откуда брать эти значения АЦП?

Данные значения прошивка может сама выдавать на экран программы, все что нужно сделать - это активировать данную функцию, заходим в прошивку Marlin и открываем вкладку CONFIGURATION_ADV_H и находим строчку '//#define SHOW_TEMP_ADC_VALUES' нам нужно ее активировать, то есть нужно убрать “//” перед этой строкой. Заливаем измененную прошивку на плату и запускаем “Repetier-Host”. Теперь, когда хотэнд будет греться, в журнале (который находиться внизу) будут выскакивать значения температуры и соответствующие значения АЦП.

Теперь приступим непосредственно к самой калибровке, прогреваем хотэнд до тех пор, пока мультиметр не покажет 30 градусов. После того как температура на мультиметре «устканилась», смотрим на значения АЦП которые ему соответствует. Записываем на лист бумаги или сразу в Exel. Например, температура-30 и АЦП-966. Еще раз напомим, что 30 градусов - это температура, которую показывает мультиметр.

Далее начинаем прогревать хотэнд до того момента, пока термопара не покажет 35 градусов. Записываем снова значения АЦП – 950. И так мы должны постепенно с интервалом в 5 градусов, прогревать хотэнд и одновременно записывать значения АЦП.

В итоге мы получим точно такую же таблицу как в прошивке, но со своими значениями. Все значения старых АЦП меняем на свои и заливаем на плату. После заливки можно проверить правильность наших действий, прогреть хотэнд и сравнить температуры термистора и термопары, если все сделано правильно, то они будут равны (в пределах погрешности). После всех манипуляций не забывайте сделать несколько раз PID регуляцию.

Результаты печати с откалиброванным термистором:

Напечатано на нашем 3D-принтере Prusa I3 Steel серебристым PLA (фото ниже -черный PLA) от компании REC.

Параметры печати:

- Слайсер Cura

- Высота слоя 0,15мм

- Плотность заполнения 20%

- Толщина стенок 0,8мм

- Температура экструдера 200ºC

- Температура стола 50ºC

- Обдув модели 100%

- Скорость печати 50 мм/c

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

96
Комментарии к статье

Комментарии

13.05.2016 в 12:53
11

Наконец-то нормальные статьи, а не 'получил пробник, распечатал лягушку, сапожок,кораблик (нужное подчеркнуть)'.

13.05.2016 в 13:03
1

Спасибо, надеемся статья будет всем полезна

17.10.2017 в 23:53
0

А как откалибровать термистор от стола, стол ведь не может нагреваться до 300гр?

18.10.2017 в 03:37
0

Два варианта.
Если не припаен поставте на место термо блока. Естетсвенно на плате тоже нужно переключить.
Если smd на столе припаен то просто греть стол до максимально возможных для стола температур.
Таблица будет меньше.

13.05.2016 в 13:07
5

Хорошая статья :)
Немного дополним:
1) Даже при правильно указанном типе термистора он может врать на 10-15 градусов. Это связано с погрешностью самого термистора и погрешностью резисторного делителя, с которого снимается напряжение АЦПхой. Более того, на подавляющем большинстве плат делитель сделан таким образом, что в области 'горячих' температур процессор еле-еле улавливает на грани одного бита АЦП даже большое изменение температуры.

Впрочем, погрешность не особенно страшна, т.к. в диапазоне температур печати (180-240С) уплывание показываемой температуры от реальной обычно примерно одинаково. Т.е. придется для всех видов пластика на конкретном принтере увеличивать или уменьшать температуру печати на определенное значение. В общем, подбирать ее экспериментально.

А вот указание неверного типа термистора дает другую бету и всю форму кривой сопротивления термистора, т.е. на одной температуре разница будет одной, на другой температуре - уже другой.

2) Semitec в китайских клонах не встречается никогда, т.к. стоит больше $3 за один термистор. В подавляющем большинстве китайских хотов стоит Epcos 100K, в прошивке Marlin - цифра 1 или 6.

3) Сам Semitec 104GT-2 снят с производства, сейчас идут новые термисторы как прямая замена - 104NT-4-R025H42G.

13.05.2016 в 14:30
0

Спасибо за дополнение! А термистор реально дороговато обошелся:)

13.05.2016 в 17:45
0

Я не знал про опцию '//#define SHOW_TEMP_ADC_VALUES', и составлял таблицу более хардкорным методом.

Вход ардуины, на который в конечном счете идет ток через термистор получает до 5 вольт. При изменении температуры термистор изменяет свой сопротивление, и на вход ардуины попадает меньшее напряжение. Вот фактическое напряжение и есть коэфициент, который преобразуется к первому значению таблицы температуры. Диапазон от 0 вольт до 5 делится на 1024 отрезка (диапазона). Соответственно фактическое напряжение термистора при текущей температуре надо разделить на 5/1024, и мы получим значение для первого столбца. Например:
При температуре 100 градусов напряжение будет 3,4 вольта. 3,4 вольта / (1/1024) = 696. Записываем строчку в таблицу { 696 * OVERSAMPLNER, 100 }. 

В принципе имея характеристику термистора можно рассчитать таблицу не прибегая к эксперименту. 

В показательном расчете мог где-то ошибиться, я свой термистор рассчитывал с пол года назад и попытался забыть это как страшный сон. Так что мог перепутать амперы и вольты, например ^_^ 

14.05.2016 в 10:19
2

3Diy статьи пишут редко, зато метко. Эту еще не читал, но полезность уже очевидна.

16.05.2016 в 11:10
0

Мерять китайский термистор, китайским тестером за 2 копейки, вы серьезно? Метод конечно правильный, статья полезна, но средства измерения и по точнее могли бы быть )))

16.05.2016 в 11:42
3

Если есть более точные средства измерения, то используйте их.;)  Если их нет, то обычный мультиметр справиться со своей задачей на 99 %. В нашем небольшом эксперименте мы не гнались за сотыми градусами, а хотели добиться что бы разброс был не более 3-5 градусов, и нам кажется что для таких целей высокоточные измерительные средства ни к чему, хотя если они есть, то никто не запрещает их использовать.:) 
В статье мы хотели акцентировать внимание непосредственно на сам метод, который позволяет выбрать правильный термистор с 'подручными' средствами.

19.05.2016 в 15:10
1

Запустил тест температуры, выбрал наиболее хороший вариант, печатаешь в своё удовольствие.
И наплевать что там на экране написано, хоть 200, хоть 230...

19.05.2016 в 15:37
0

Может быть такой вариант, что если у вас указан не верный тип термистора, и вы печатаете на определенной температуре (которая показывается в программе и которая отличается от действительности скажем на 10-20 градусов), то коэффициенты PID регуляции будут разные. И если в вашем случаи температура будет гулять в пределах 1 градуса, то в действительности температура может скакать гораздо больше, но этого в программе ( на графике температур) вы не увидите, так как у вас указана другой тип термистора и для него сделан свой PID. Этот момент может сказаться на качестве печати.

19.05.2016 в 17:22
0

ПИД автокалибруется под конкретный хотэнд в конкретном принтере, независимо от названия термистора.
Если мой неизвестный термистор при реальных 200 градусах показывает на табло 220 градусов, это будет огромная погрешность в 10%
то есть при гулянии пида на 1 градус, на самом деле будет гуляние на 1.1 градуса.
неужели +- 0.1 градуса сможет хоть как-то повлиять на результат[IMG]?

Это конечно не отменяет того факта что надо хотябы примерно выбрать термистор в прошивке, чтобы хотенд не расплавился при первом включении.
Кстати стоит добавить предостережение, что если уж сам решил вбить новые цифры в таблицу прошивки, первое включение надо делать с градусником, ато случайная опечатка и хотэнд может умереть.

Это интересно конечно, таблички в экселе строить и заливать спец прошивку для вывода АДС, оно помогает глубже понять всю кухню, поможет разобраться как конфигурить прошивку и перепрошивать плату.
Но на качество печати к сожалению это не скажется)  даже калибровка термистора в ЦСМ с точностью 0.1 градуса не улучшит печать.
Единственный способ определить оптимальную температуру для печати конкретной бобины это калибровочный тест на температуру.

А если у вас после калибровки термистора стало лучше печатать, значит вы не делали калибровку температуры под конкретный пластик.
После калибровки вам случайно повезло что найденная коррекция оказалась в нужную сторону для улучшения печати)))

19.05.2016 в 18:19
1

Все калибровочные тесты мы делали, различные кубоиды итп http://www.thingiverse.com/thing:337957. Выбирали оптимальную температуру и печатали заново. Это все понятно) Но факт остается фактом, если напечатать модель например на температуре 230 градусов ( в действительности температура например 210), а потом выставить нужный термистор и поставить температуру 210 градусов, то качество будет немного лучше. Где-то читал статью на другом форуме, про настройку термистора, у людей тоже качество улучшается. 

Второй момент, связан с удобством печати. Под определенные типы пластиков, производители дают свои конфиги слайсеров, и там понятное дело указывают реальную температуру печати, а не вымышленную :)) Это удобно для тех пользователей, которые не так давно в 3D печати.

19.05.2016 в 17:22
0

ошибся уровнем

19.05.2016 в 18:30
0

У такого мультиметра погрешность измерения температуры по паспорту +-3%, то есть +-6 градусов на 200, плюс сам термистор +-1% или +-3%, плюс pull-up резистор +-1%, плюс погрешность ADC как минимум 0.5%, о каких +-5 градусах точности может идти речь.

hax
19.05.2016 в 19:07
0

Как писали уже выше, если есть более точные средства измерения, то нужно использовать их. :) Чем более точные приборы и идеальные условия проведения, тем лучше, это очевидно. В общую погрешность входит не только инструментальная погрешность, поэтому можно придраться и к условиям проведения измерений )) 

В статье мы хотели познакомить непосредственно с самим методом, а не то, как уменьшить погрешность. :)

22.05.2016 в 22:31
0

Хотелось бы увидеть график температуры за 10-15 минут.

06.08.2016 в 08:25
0

Помогите пожалуйста. Собираю Prusa i3 Steel. ПИД стола настроил нормально, а вот не то что ПИД, а просто настроить термистор ХотЕнда не могу настроить. Сам термистор вроде бы рабочий (подключал его на место термистора стола, температуру нормально показывает). А температура ХотЕнда показывает 73 градуса, и без разницы подключен термистор или нет, температура всё равно отображается эта. Менял в прошивке на другие типы термисторов, но от этого только менялась 'холодная' температура ХотЕнда, при его нагреве мультиметр показывает быстрый рост температуры до 200 и выше градусов, а сам термистор в это время показывает температуру примерно всего на 20 градусов выше от первоначальной. Ставил другой RAMPS, ситуация от этого не изменилась. Ардуины другой у меня нет. Термистор вроде обычный 100 К ом NTC 3950.

23.09.2016 в 17:11
0

Статья отличная! Познавательно!
а можно подобный материал по настройке Термопара PT100 + AD597+Ultimaker 1.5.7
Кто может помочь с такой проблемой? комнатную температуру кажет верно, но при нагреве:
240 грею - по факту 180 градусов.
как исправить? куда копать?
Буду признателен за помощь, и не только я (на сколько я понимаю)

13.11.2016 в 17:32
0

получается это нужно делать к каждому термистору т.к. уних есть погрешности? или когда?

25.11.2016 в 15:30
0

А какой термистор стоит купить, чтобы не плясать с бубном и танцами? и пофиг, что будет стоит 3-5 бакса.

1. Есть в виде болта м3 104NT-4-R025H42G
2. Либо стандартный 104GT-2

Что из этого лучше и точнее будет? Либо может какой другой вариант есть?

26.11.2016 в 12:14
0

А можно ли поподробнее о верхней строчке в файле thermistortables.h?
#if (THERMISTORHEATER_0 == 2) || (THERMISTORHEATER_1 == 2) || (THERMISTORHEATER_2 == 2) || (THERMISTORBED == 2)
Я могу создать свою запись, гнапример, с номером 17 и выбирать 17-й термистор в CONFIGURATION.H #define TEMP_SENSOR_, или эти значения фигурируют еще где-то?
#if (THERMISTORHEATER_0 == 17) || (THERMISTORHEATER_1 == 17) || (THERMISTORHEATER_2 == 17) || (THERMISTORBED == 17)
Я пробовал что-то такое делать, но получил ошибку компилятора.

20.08.2017 в 15:45
0

Сталкивания такой вещью в Repetier-Firmware v.0.92.9 кривая таблица на мой термистор.
В Marlin я конечно ее тоже подгонял для более точно работы, но там вообще температуру показывает где-то на Венере!
Так вот там структура таблиц ни как в Marlin.

Случайно не знает ни кто как для Repetier формировать таблицу или может как подтолкнуть имеющуюся?

Имеющиеся таблица формируется такая же как приведена тут.

21.08.2017 в 13:46
0

В общем, сделал всё как было описано в статье, а именно - подобрал подходящий тип термистора. С термистором из Китая не было никакой документации, но в описании товара тип NTC 3950 100K. В прошивке выбрал '11 : 100k beta 3950 1% thermistor (4.7k pullup)'. Показания всегда совпадают с показаниями мультиметра, а мультиметр вроде нормально показывает при 100 градусах (показывает 104 градуса в кипящей воде). Откалибровал PID. И вроде бы всё должно быть хорошо, но пластик (PLA Фдпласт) еле выдавливается. Точнее, при печати на 210 градусах с соплом 0.2 мм не выдавливает вообще. При повышении температуры ситуация не сильно улучшается - пробовал повышать до 250 и всё равно полная лажа.
До этого выбирал другие типы в прошивке, например 1 или 5 и в этом случае показания мультиметра отличались градусов на 15-20 в большую сторону. В общем-то, с 0.4 мм соплом работало нормально, а вот на 0.2 появилась очень сильная волна по оси Z похожая на зубцы пилы (симметрично по X/Y), что навело меня на мысль о том, что у меня температура скачет, а калибровка PID не помогала. Но пластик выдавливался и причём неплохо.
Как быть?
UPD: прожёг сопло горелкой, вроде прочистилось. Наверное спёкся пластик пока PID калибровал. Откалибровал термистор и прописал таблицу вручную, результат почти такой же как в предустановке 11. Теперь для печати соплом 0.2 мм температура 210 градусов вполне подходит, а волна почти полностью ушла. Всё-таки небольшие колебания температуры в районе половины градуса на 0.2 мм сопле сказываются, но терпимо. Спасибо за статью.

08.10.2017 в 01:04
0

Здравствуйте.
Не подскажете, есть ли в прошивке Wanhao i3 Plus настройки для 104NT-4-R025H42G ?
Можно ли изменить настройки через Repetier-Host например ?

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Мажор ли Нормальный мужик? Интервью с владелецем IMPRINTA Артёмом Соломниковым

Урок Солидворкс для начинающих или как начать моделировать в SolidWorks

Печать пластины из ABS пластика

КОМПАС-3D v18 Home. Основы 3D-проектирования. Часть 16.2 Создание игрушечного паровоза. Отбойник паровоза

Не все китайцы одинаково китайцы

Обзор настольного 3D-принтера 3DGence Double P255