Jump to content

Калібрування термісторів у Marlin


Як усім відомо - температурні показання в 3D принтерах більш фіктивні, ніж реальні. Деякі перевіряють пірометром, деякі термопарою і запам'ятовують різницю. Мені набридло користуватися папугами і я зважився на колупання прошивки, а зокрема редагування thermistor_x.h В основному при покупці в Китаї, продавці не вказують модель термістора, встановленого в екструдері або силіконовій грілці. Нещодавно, купивши термістор  HT-NTC100K, взагалі не знайшов його температурну таблицю і від продавця домогтися виразного відвіра не вийшло, пішов у непритомність і мовчання!

Перепробувавши безліч варіантів у прошивці, зупинився на термісторі №5, різниця у показаннях - 20°

5 : 100K thermistor - ATC Semitec 104GT-2/104NT-4-R025H42G (Used in ParCan & J-Head) (4.7k pullup)

І так, прикрутив термопару до кубика хотенду на каптон. 🙂 Прогрів хотенд до робочої температури 230С і порівняв показання.

image.thumb.png.9d0e2b019fcab5635490672b6f5f3f3e.png

Як видно – різниця в 23°. Те саме зробив потім зі столом

image.thumb.png.756c7f55fa021799f48e84f3bef7c255.png

Така сама різниця в 22°С.

Тепер найцікавіше. Пам'ятаємо, що у прошивці вказані типи термісторів hotend & BED - 5 Відкриваємо у прошивці Configuration.h та виставляємо хотенду 6, столу 7.

#define TEMP_SENSOR_0 6
.
.
.
#define TEMP_SENSOR_BED 7

Тепер на шляху \Marlin\src\module\thermistor робимо копії оригінальних файлів

image.thumb.png.3650f2188a07007a15114b79048813f0.png

 

Відкриваємо текстовим редактором, я користуюсь  Notepad++,  оригінальний файл thermistor_5.h та копіюємо масив даних:

 

image.thumb.png.5b4acd6d4236b5ce81e01fd969e9e151.png

Відкриваємо перший файл, що редагується thetmistor_6.h і копіюємо в нього дані замість існуючих в ньому. Можна повністю замінити вміст файлу thetmistor_6.h на вміст thetmistor_5.h, але потрібно змінити посилання на номер таблиці:

 

image.thumb.png.5fb889cb40b7d39746252c0fe7be90a9.png

 

Тепер логіка зміни для хотенду. Нас цікавлять значення таблиці у діапазоні від 160 до 250С. Для тугоплавких пластиків краще використовувати термопару, це окрема тема для розмови, але повернемося до наших значень.

За кімнатної температури 20_25С термістор повинен мати опір близько 100кОм.

Перший стовпець у масиві - це значення термістора в омах або значення компаратора, нам це не важливо, видно що при кімнатній температурі значення термістора буде 986 якихось одиниць. Другий стовпець - температура відповідна цим значенням. Нижче на скріні видно звідки я почав зміни у другому стовпці масиву даних, змінюючи температуру на 20С, а вище зменшив крок. Для наочності зробив порівняння в екселі та пофарбував 🙂 

image.thumb.png.163c2133c74d38681363ce5950c8a59d.png

 

Виправлений масив із даними:
const short temptable_6[][2] PROGMEM = {
  { OV(   1), 713 },
  { OV(  17), 300 }, // top rating 300C
  { OV(  20), 295 },
  { OV(  23), 290 },
  { OV(  27), 285 },
  { OV(  31), 280 },
  { OV(  37), 270 },
  { OV(  43), 260 },
  { OV(  51), 250 },
  { OV(  61), 240 },
  { OV(  73), 230 },
  { OV(  87), 220 },
  { OV( 106), 210 },
  { OV( 128), 200 },
  { OV( 155), 190 },
  { OV( 189), 180 },
  { OV( 230), 170 },
  { OV( 278), 160 },
  { OV( 336), 150 },
  { OV( 402), 140 },
  { OV( 476), 130 },
  { OV( 554), 120 },
  { OV( 635), 110 },
  { OV( 713), 100 },
  { OV( 784),  90 },
  { OV( 846),  80 },
  { OV( 897),  50 },
  { OV( 937),  40 },
  { OV( 966),  30 },
  { OV( 986),  20 },
  { OV(1000),  10 },
  { OV(1010),   0 }
};

  

За таким же принципом змінюємо значення у файлі thermistor_7.h, але діапазон беремо від 30° і до 130° Тут нас цікавить температура при 40, 60, 70, 100, 120 градусах.

Не буду нудити описами –нижче мої значення, порівняти з оригіналом можете самостійно.

BED thermistor_7.h  
const short temptable_7[][2] PROGMEM = {
  { OV(   1), 713 },
  { OV(  17), 300 }, // top rating 300C
  { OV(  20), 290 },
  { OV(  23), 280 },
  { OV(  27), 270 },
  { OV(  31), 260 },
  { OV(  37), 250 },
  { OV(  43), 240 },
  { OV(  51), 230 },
  { OV(  61), 220 },
  { OV(  73), 210 },
  { OV(  87), 195 },
  { OV( 106), 185 },
  { OV( 128), 170 },
  { OV( 155), 165 },
  { OV( 189), 150 },
  { OV( 230), 140 },
  { OV( 278), 130 },
  { OV( 336), 120 },
  { OV( 402), 100 },
  { OV( 476),  90 },
  { OV( 554),  80 },
  { OV( 635),  70 },
  { OV( 713),  60 },
  { OV( 784),  55 },
  { OV( 846),  50 },
  { OV( 897),  45 },
  { OV( 937),  40 },
  { OV( 966),  30 },
  { OV( 986),  20 },
  { OV(1000),  10 },
  { OV(1010),   0 } // to allow internal 0 degrees C
}; 

 

image.thumb.png.27d7b30d44b081feef16609e7c34f6b1.png

Як видно за результатами, температура на дзеркалі відповідає реальній. Серветка виступає у ролі надрукованої деталі на поверхні столу.🙂 Фотографію хотенду не робив, там результат такий самий.

Але є нюанс, а саме зі свідченнями термістора на столі. На цьому принтері стоїть силіконова грілка потужністю 200Вт. Напруга стандартного БП піднято до 14в. Розмір столу 230х330мм 3мм алюмінію АМГ-6. та дзеркало 200х300. При стокових установках Thermal Protection у файлі Configuration_adv.h - Ви отримуватимете помилку Thermal Raneway  Так як для досягнень нових температурних значень потрібно набагато більше часу.

 

Із цієї ситуації є три виходи:

 

  1. Замінити силіконовий нагрівач більш потужний 12в 300Вт і більше або 220в 500-600Вт, із заміною мосфета на твердотільне реле;
  2. Замінити БП на 24в, знизити діапазон шим регулювання потужності столу, замінити нагрівач хотенду та всі вентилятори на 24 вольтові;
  3. Загрубити значення температурного сторожа  🙂 #define WATCH_BED_TEMP_PERIOD  у файлі Configuration_adv.h

Стіл із зазначеними параметрами та "обвісом" нагрівається, до чесних 100°, за 18хв. Так, якщо хочеться швидкого "нагрітися" і друкувати - потрібно вживати заходів!!!

 

П.С. Не забуваємо, що після калібрування термісторів, або заміні термістора чи нагрівача - ОБОВ'ЯЗКОВО треба калібрувати PID нагрівачив. Для тих хто не дуже розбирається - нижче посилання на файли автоматичного калібрування PIDів у вигляді G-кодів. Достатньо запустити файл і дочекатися завершення калібрування. Нові значення автоматично вносяться у пам'ять EEPROM

ЗАУВАЖЕННЯ: як що Ви набумаєте скинути пам'ять EEPROM - скинуться значення PID калібровки і доведеться повторювати калібрування PID.

 

Правильних Вам температур на табло принтера!

 

 

Навчальні відео

За бажанням ви можете додати відео з Youtube чи Vimeo до вашого підручника


User Feedback

Recommended Comments

There are no comments to display.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Додати коментар

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...