Калибровка принтера "Дельта" с помощью исходного кода

.... теги: .3D-news


Как Вы думаете, чем отличаются эти крокодилы?

 

Цветом? Увы, но не только. Вот крокодил здорового человека, напечатан на MZ3D-256:

 

А вот - крокодил курильщика, напечатан на принтере "Дельта", собранном из DIY-конструктора

 

Если первый имеет практически "круглую" длину 90 мм, то второй - существенно длиннее. Чтобы исключить влияние кривизны установки крокодила, я быстренько сделал тестовую модельку со стороной 60 мм. После печати её на Дельте, получаем:

 

Снова завышение...

"Какая разница?", спросите Вы... Действительно, чуть длиннее крокодил, или чуть короче - никто и не заметит. Но увы. Печать всякой красоты - это так, для развлечения. А когда принтер используется для дела - от погрешности в доли миллиметра получаются вот такие филиалы Пизанской башни

 

Соседняя стойка, чуть покрупнее:

 

И это хорошо, что корпус сделан из мягкого, но прочного PETG. Будь он из PLA - стойка бы просто сломалась. И в крышку эта стойка уже не попадёт. В общем, если принтер взят для дела - он должен давать идеальные размеры.

Смотрим файлы конфигурации. Там есть куча параметров, измеренных с точностью до сотой миллиметра. Пытаемся измерить самостоятельно - нет, это невозможно. Там получается плюс-минус лапоть.

К счастью, оказалось, что схема Дельта - это уникальная схема. Благодаря куче формул из прикладной математики, она может калиброваться полностью самостоятельно, надо только знать волшебные заклинания. Осматриваем сеть, видим кучу обсуждений на уровне шаманства. Затем - находим красивый PDF файл с подробной инструкцией, как откалибровать принтер при помощи команды "G30 A". Пробуем подать - не работает. В.И. Ленин, конечно, сказал, что важнейшим из искусств для нас является шаманство... Но в данном конкретном случае, к принтеру прилагались исходные коды "Прошивки", поэтому у нас имеется возможность докопаться до физической сути. Открываем исходный код - а нет такой подкоманды у команды G30. Причём код-то не самый старый, уже этого года выпуска.

Допустим, документ был написан для новейшей версии "прошивки" Marlin. Идём на сайт разработчика, скачиваем самую-самую свежую версию. Но в ней тоже у команды G30 нет ничего подобного. Но зато появилась команда G33, которая явно производит требуемую автокалибровку.

Первое желание - перетащить новую команду в работающую прошивку. И тут мы понимаем, что такое бардак... Обе прошивки называются Marlin. У них сходные версии. Но... Ээээ. Я лучше приведу фрагмент кода обработчика команды G30 для "прошивки", приложенной к принтеру

 

float X_probe_location = code_seen('X') ? code_value_axis_units(X_AXIS) : current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER,

Y_probe_location = code_seen('Y') ? code_value_axis_units(Y_AXIS) : current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER;

 

и кода, скачанного с сайта разработчика "прошивки"

 

const float xpos = parser.linearval('X', current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER),

ypos = parser.linearval('Y', current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER);

и кода, скачанного с сайта разработчика "прошивки"

 

 

Видите что-то общее? А это одна и та же функциональность... И так - по всему тексту. Одно и то же выражено совершенно разными способами.

В общем, бросил я эту затею, перетянуть функцию. Слишком много правок, а значит - шансов на ошибку. Поэтому я просто перетянул конфигурацию в новый вариант. Тоже творческая задачка. Часть параметров расположены в разных местах файла, некоторые параметры имеют разные имена. Так что чисто сравнением файлов не обойдёшься.

Дальше пошло испытание всего этого дела. Ну, и разные весёлости. Например, выход щупа BL-TOUCH за стекло. Тем не менее, через несколько часов калибровка была завершена, можно было начинать печать. Ставим принтер на прогрев... Что такое? Хочу 225 градусов, а он даёт 218 и ни градусом больше. Наверное, с новой "прошивкой" стоит перекалибровать PID-регулятор? Да без проблем, M303 S225... Что такое? Температура сопла - падает. Может, алгоритм калибровки изменился? Вот оно остыло... А потом и сообщение об ошибке вышло.

Долго я думал, что это такое, но нечаянно задел провода, идущие к головке. Тут-то нагрев и пошёл. Да-да, отходит контакт. Причём там этот контакт греется, даже оплётка оплавилась.

 

Поэтому и не мог до 225 градусов дойти. Ээээх! Гарантийный же случай... Но перед нами - не заводской принтер, а DIY конструктор, так что никакой он не гарантийный. Ладно, позажимал плоскогубцами - провода перестали греться, а сопло - наоборот, начало достигать любых температур.

Печатаем... Получаем вот такую красоту.

 

 

  Заключение

3D принтеры со схемой "Дельта" обладают уникальной способностью для самокалибровки. В статье показано, как это можно сделать (взять "прошивку", поддерживающую команду G33 и применить эту команду).

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

Но вот идею "Зачем переплачивать заводу? Сейчас соберём, и будем всё печатать" DIY-комплект в очередной раз не оправдал. Пока автор получал удовольствие, разбираясь с премудростями, печатью занимался стоящий в другом углу старичок MZ3D. За это время он успел напечатать вот такую замечательную вещь, у которой размеры - весьма критичны. А печатать надо было срочно, так как после сильных ливней в гараже залило кессон, и надо было быстренько откачать воду... Гайка же, разумеется, вместе с приделанным к ней шлангом, была далеко. Так может случиться с каждым...



Поделитесь с друзьями этой страницей: