Калибровка стола 3d принтера marlin

Обновлено: 18.05.2024

Для калибровки PID экструдера или стола используется команда:

M303 E0 S235 C8 U

N.B.: Имеет смысл перед калибровкой PID экструдера включить на половину мощности вентилятор обдува модели командой M106 S127 что бы привести ситуацию к более реальным условиям.

Вот пример результата калибровки в программе Repetier-Host (вывод в консоль):

Для калибровки уровня стола на принтере с установленным датчиком уровня BLTouch или 3DTouch, (при первой ли установке, просто так ли, или при любом вмешательстве в экструдер или печатную голову) необходимо выполнить серию команд, например в Repetier Host:

G90 - Переключение принтера на абсолютные координаты

M851 Z0 - Сбросить параметр Z offset, если он установлен в настройках

G28 - Парковка по всем осям

G29 - Запуск автокалибровки стола. Ждем пока закончится.

G1 X110 Y110 F6000 - Переместиться по координатам X=110 Y=110, со скоростью 6000 мм/мин (обычно в центр стола, тут имеется в виду стол 220мм на 220мм)

G1 Z0 F500 - Опустить головку в координату 0 по оси Z со скоростью 500 мм/мин

G91 - Переключение относительные координаты, что бы дальше подгонять зазор относительно текущего 0 по оси Z

M211 Z1 S0 - Отключить программные концевики оси Z, чтобы можно было уходить в минус по Z, если понадобится

Теперь с помощью листа бумаги калибруем зазор между соплом и столом с помощью команды:

G1 Zn - движение по Z, где n - величина перемещения в миллиметрах.

Возможны дробные величины, через точку. Возможны отрицательные величины. даем эту команду несколько раз, подгоняя зазор, что бы чувствовалось, как бумага трется об сопло. Например, зазор большой. Даем G1 Z1. Т.е. опускаем сопло на 1 мм. Если бумага свободно двигается, даем G1 Z1 еще раз. Если бумагу зажало, откатываемся вверх на 1 мм командой G1 Z-1 и начинаем опять опускать, но уже по чуть-чуть: G1 Z0.1 и т.п. Пока не будет нужного зазора.

M114 - После точной найтроки даем эту команду. Она Покажет текущие координаты. Координату по Z вносим в настройки, в параметр Z offset.

G92 - Сбросить все координаты в 0.

После чего сохраняем настройки в энергонезависимую память либо из меню принтера, либо с помощью команды M500.

После калибровки выключаем принтер, включаем снова, проверяем сохранился ли Z offset и пробуем что-либо напечатать и на первом слое подгоняем зазор с помощью babystepping-а. Значение, полученное в babystepping при идеальной толщине выкладки первого слоя добавляем к Z offset (если значение babystepping положительное, то увеличиваем Z offset, если значение babystepping-а отрицательное, то, соответственно, уменьшаем)

Калибровка стола 3d принтера без всяких датчиков

Как известно для качественной печати на 3D принтере необходимо тщательно выровнять поверхность стола. К сожалению сделать это не всегда возможно. Довольно часто стол представляет собой криволинейную поверхность и даже использование стекла не позволяет полностью решить эту проблему. По счастью в последних прошивках Marlin всё больше и больше внимания уделется возможности калибровки поверхности стола. Полностью автоматическая калибровка требует применения дополнительных датчиков, что не всегда доступно, но кроме неё есть возможность калибровки стола в ручном режиме. Именно об этом я и хочу рассказать.

Включаем поддержку ручной калибровки

Задаём опции сетки

Внимание! Не использовать больше 7 точек на ось. Это ограничение прошивки.

Добавляем пункты в меню принтера

Скрипт выполняемый после калибровки. Тут по умолчанию какие-то телодвижения экструдером, не факт что они нужны. Не уверен на этот счёт.

После этого заливаем обновлённую прошивку.

Для ручной калибровки используется так называемый Mesh Bed Leveling (MBL). Т.е. способ калибровки по массиву точек. Соответственно поверхность стола разбивается на сетку и по узлам сетки производятся замеры Z координаты перемещением вручную оси Z. Собствено для измерения нужен только лист бумаги и прямые руки.

В каждой точке под сопло экструдера подкладываем лист бумаги и движением оси Z (либо посылая специальную G команду через ПО с компьютера, либо через меню принтера) добиваемся такого состояния когда лист под экструдером ещё можно свободно двигать, а уменьшение положения экструдера на один шаг уже мешает листу перемещаться. После этого текущая точка записывается и продолжаем со следующей и так до конца.

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

По умолчанию для калибровки используется сетка 3×3 т. е. 9 точек, но при желании можно задать в прошивке другое количество (не более 7 на ось, т. е. не более 49 всего).

Для дополнительного увеличения точности калибровки можно перед её выполнением разогреть стол и экструдер до рабочих температур. Это позволит учесть и скомпенсировать температурные расширения.

Через внешнюю программу

Для калибровки стола есть специальная команда G29

  1. G29 S0 читаем текущие значения точек в памяти принтера.
  2. G29 S1 перемещение принтера в первую точку для начала процесса настройки. Фактически принтер сначала паркуется в исходное положение, потом переходит к первой точке.
  3. G29 S2 записываем текущую точку и двигаемся к следующей
  4. Повторяем процесс для всех точек
  5. Используем команде M500 для записи измеренных величин в память принтера

Через меню принтера

Выбираем в меню Presets следующие пункты

Меню автокалибровки стола - Bed Leveling
Меню автокалибровки стола - Level Bed

После чего видим на экране следующую надпись и наблюдаем как принтер паркуется в домашнюю позицию

Меню автокалибровки стола - Парковка

Затем принтер предлагает нам кликнуть по энкодеру.

Меню автокалибровки стола - Click to begin

После клика экструдер переходит к первой точке

Меню автокалибровки стола - Двигаемся к первой точке

И мы видим регулировку оси Z.

Меню автокалибровки стола - Регулировка оси Z

Далее двигая рукоятку энкодера выставляем требуемый зазор как было описано выше.

Меню автокалибровки стола - Завершение регулировки оси Z

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

Меню автокалибровки стола - Leveling done

На этом процесс калибровки можно считать законченым и нужно сохранить настройки в память принтера.

Меню автокалибровки стола - Запоминаем настройки

В моём случае даже такая ручная калибровка позволила существенно улучшить качество печати. Причём заметно невооружённым взглядом. Дополнительным бонусом стало то, что перестал мазать стекло клеем для лучшего прилипания — в связи с тем, что после калибровки принтер учитывает неровности стола первый слой теперь укладывается абсолютно ровно и прилипает просто отлично. Опять же это сразу видно. Раньше из-за неровностей одна часть прилипала хуже и в результате без покрытия клея модель отваливалась.

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

Marlin PID Калибровка 3D принтер, 3D печать, Гайд, Pid, Длиннопост

PID (ПИД, Пропорционально-интегрально-дифференцирующий регулятор) - регулятор, использующий сумму трех значения входного сигнала (Kp, Ki, Kd) для задания и поддержки температуры стола\хотенда в установленных пределах. Данные значения будут разными в зависимости от используемого железа, наличия обдува, силиконового носка и множества других факторов, поэтому калибровку необходимо производить как после первого запуска принтера, так и после изменения конфигурации хотенда\стола. Так же данную процедуру необходимо проводить при скачкообразных изменениях температуры и большом разбросе при удержании заданного значения.

Marlin PID Калибровка 3D принтер, 3D печать, Гайд, Pid, Длиннопост

В прошивку Marlin встроены инструменты для автоматической калибровки PID как для хотенда, так и для стола. Для управления нагревом стола с помощью PID необходимо предварительно активировать в прошивке параметр "PIDTEMPBED" (подробнее в разделе Прошивка -> Стол, данную процедуру необходимо провести перед калибровкой стола и прошить принтер, по умолчанию параметр выключен). Процедуру калибровки желательно проводить на максимально приближенных к печатным условиям, если у вас закрытый корпус - необходимо закрыть дверцу и надеть кожух\колпак, при калибровке хотенда стол должен находиться в непосредственной близости к соплу и обдув должен быть включен на максимум (либо значение, которое вы используете чаще всего). Внимание, во время проведения калибровки вам может показаться, что принтер завис, но это не так - тест довольно длительный и время его проведения зависит от количества установленных повторений.

Полученные значения можно внести в прошивку или сохранить в EEPROM, данная процедура описана в разделе "Прошивка". Также для калибровки хотенда можно воспользоваться готовым GCod'ом который проведет калибровку за вас и сохранит значения в EEPROM. Для этого необходимо скопировать код, описанный ниже (установив в нем свои значения номера экструдера, температуры, а также количество повторений) в текстовый файл, сохранить его с расширением ".gcode" и запустить на исполнение на вашем принтере; результаты тестирования будут автоматически сохранены. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для экструдера находятся в строке с командой "M301".
;HotEnd_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E0 S240 C7 U ;E0<номер экструдера> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки

(необходимо активировать параметр PIDTEMPBED в прошивке)

Процедура калибровки PID для стола практически не отличается от калибровки хотенда. При наличии корпуса закройте дверцу и установите крышку принтера, чтобы создать закрытый объем внутри принтера. Обратите внимание, что команды для калибровки стола и хотенда совпадают, отличается лишь параметр номера экструдера, для стола это всегда будет "-1"

Полученные значения также вносятся в прошивку или сохраняются в EEPROM. Для тестирования стола также можно использовать GCode, указанный ниже, сохранив его в файл с расширением ".gcode" и запустив на принтере; он проведет тестирование и автоматически сохранит значения в EEPROM. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для стола находятся в строке с командой "M304".

;Bed_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E-1 S80 C7 U ;E-1<стол> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки

Marlin PID Калибровка 3D принтер, 3D печать, Гайд, Pid, Длиннопост

Значения, полученные после PID калибровки, записываются в разделе "PID Settings" в файле "Configuration.h" по порядку (без кавычек):

Для управления нагревом стола через PID необходимо раскомментировать параметр "PIDTEMPBED" (убрать "//"), после чего можно по порядку ввести значения Kp, Ki, Kd в разделе "PID > Bed Temperature Control" в файле "Configuration.h":

После прошивки принтера необходимо стереть EEPROM и загрузить в него значения, установленные нами в прошивке, для этого в терминале принтера нужно ввести две команды по порядку (до точки с запятой):

Терминал принтера
M502 ; Загрузить значения указанные в прошивке
M500 ; Сохранить значения в EEPROM

Не стоит забывать, что значения PID хранятся в энергонезависимой памяти контроллера и после перепрошивки вам необходимо либо восстановить в EEPROM значения, указанные нами в прошивке, либо, если вы не хотите перепрошивать свой принтер, вы можете сохранить значения напрямую в EEPROM, но не забывайте, что при использовании команды "M502" (записать значения из прошивки в EEPROM) придется повторно записать PID значения в EEPROM, так как они будут заменены теми, что указаны в прошивке. Для хранения данных значений предпочтительнее указывать их в прошивке - это убережет вас от множества проблем.

Терминал принтера:
M301 P<Kp value> I<Ki value> D<Kd value> ;Установить значения PID для хотенда
M304 P<Kp bed value> I<Ki bed value> D<Kd bed value> ;Установить значения PID для стола
M500 ; Сохранить значения в EEPROM

Marlin PID Калибровка 3D принтер, 3D печать, Гайд, Pid, Длиннопост

Хотэнд (HotEnd) - блок из нагревателя, термодатчика, сопла и корпуса, который отвечает за нагрев пластика

Стол (Bed, HeatBed) - Рабочая поверхность принтера, на которой располагается модель

EEPROM (ПЗУ) - Память контроллера для хранения настроек, которые сохраняются после отключения электроэнерги

M500 - Cохранить текущие значения в EEPROM

M502 - Загрузить значения из прошивки

M503 - Вывести текущие значения EEPROM

M106 S<speed> - Включение обдува модели (0 - выключить)

M301 P<Kp value> I<Ki value> D<Kd value> - Установить значения PID для хотенда

M303 E<номер экструдера(стол -1)> S<температура> C<циклы> U<применить полученные значения> - Автокалибровка PID

M304 P<Kp bed value> I<Ki bed value> D<Kd bed value>- Установить значения PID для стола

Надеюсь данный гайд был полезен, так же прошу прощения за упрощения\упущения и тавтологию данный текст в основном направлен на новичков в 3D печати посему упрощенно по максимуму. Если мой вариант изложения информации будет доступным и понравиться людям продолжу публиковать минигайды относительно 3D печати.

Что нам понадобиться?

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

Далее собственно сам 3D принтер который надо откалибровать.

3D модель прямоугольника. Она потребуется для проверки.

Вот собственно и всё что нужно.

А зачем вообще калибровать стол?

Тут всё просто правильно откалиброванный стол сбережёт вам кучу нервов и времени, ведь если вы используете хороший адгезив, и у вас подобраны тепловые режимы, то вы не будете мучаться с проблемой отрыва модели, так же вы будете получать шикарную нижнюю поверхность, размеры модели по оси Z не будут "плыть", а так же не будет эффекта "слоновья нога". Да и поверхность стола прослужит намного дольше.

Сам алгоритм калибровки стола.

В начале берём щуп, для меня идеально подходит щуп 0.2 мм, по этому предлагаю вам взять данный щуп как отправная точка, а дальше по результату калибровки вы сможете подобрать подходящий вам зазор между столом и соплом, или же настроить параметр Z offset(зазор который выставляется в G - коде.).

Затем включаете нагрев стола и экструдера, в ту температуру в которой вы чаще всего печатаете. у меня это ABC пластик следовательно стол 100 градусов, экструдер 245.

Зачем надо нагревать стол и экструдер? А всё дело в тепловом коэффициенте расширения, то есть при нагреве многие материалы имеют свойство расширяться, на глаз это не видно, но для 3D печати это могут быть огромные значения. А если калибровать в рабочих режимах, то и этот коэффициент мы исключаем.

Если у вас подан в экструдер филамент, то его стоит отодвинуть, это надо что бы во время калибровки он не мешал стекающими "соплями".

Затем через меню принтера ищем пункт с калибровкой стола. У меня установлена прошивка Marlin 2.xx по этому в следующих фото я покажу где этот пункт находиться у меня.

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

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

Затем нажимаем галочку и экструдер движется к следующему углу. Там проводим ту же операцию, И таким образом у вас должно получиться 4 угла, а далее в многих настройках есть пятая точка в центре, она нужна как контроль.

А что же она контролирует?

Ну собственно основная зона печати у принтеров это центр стола, по этому если у вас выставлены все зазоры то и центр должен проходить проверку щупом, но если в этом месте щуп свободно проходит или его закусывает, то продолжаем настраивать углы.

Могу по опыту сказать что бывает иногда надо сделать более 10 проходов по углам что бы откалибровать стол.

Но может получиться так что вы точно уверены что углы точно откалиброваны, но центральная точка всё равно не проходит проверку щупом, то тогда причину надо искать в направляющих, или столе.

И опять же из опыта скажу что если зона печати большая (больше 300мм*300мм) То очень часто наблюдаться кривизна стола. В таких случаях есть два пути решения это или настройка карты кривизны стола (это можно сделать как в ручную, но удобнее с помощью датчика). Второй вариант искать ровное стекло/зеркало, то есть очень высокого качества).

Уже закончили?

Можно сказать и так, но что бы самому себе доказать что ты молодец можно запустить тестовую печать, собственно для этого нам и потребуется 3D модель.

Читайте также: