Eeprom настройки 3д принтера

Обновлено: 16.05.2024

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

Что включает в себя механика

В 3D-принтерах любой конструкции всегда содержатся одни и те же вещи: Оси и направляющие, по которым перемещаются элементы принтера и двигатели с ремнями, которые приводят эти элементы в движение. В классической конструкции принтера есть как минимум 3 мотора (по одному на каждую ось), 3 направляющие (по одной на каждую ось) и плата электроники, которая управляет двигателями. Последнее можно с натяжкой назвать частью механики, но так как она управляет двигателями, она же косвенно влияет на качество модели.

Дефекты печати из-за неполадок в механике

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

Смещение слоёв - Ремни, Ток двигателей, Направляющие

Неправильная геометрия модели - Направляющие, Шаги двигателей, ремни

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

Как сохранять настройки

Для исправления некоторых дефектов нужно изменять программные настройки принтера. Поэтому, перед регулировкой механики необходимо понять, как правильно сохранять настройки внутри принтера. Для этого есть 3 пути:

Запись параметров в меню самого принтера

Все настройки находятся в соответствующем меню принтера

Перепрошивка принтера с новыми параметрами

В зависимости от вашей прошивки, в данной инструкции будут указаны участки кода для прошивки MARLIN в файле configuration.h

Запись параметров через GCODE команды

Сначала мы вводим параметры в принтер, а затем сохраняем их в EEPROM - внутреннюю память микроконтроллера. Либо вставляем все необходимые настройки в начале GCODE. О том, как это сделать, читайте в нашей статье про работу с GCODE и создание макросов.

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

Инструкции по настройке

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

Ремни

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

Порванный ремень с лопнувшими кордами

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

Совет: если в вашем принтере из комплекта шел натяжитель ремня в виде пружины, крепящейся на самом ремне - уберите его. Из-за гибкости этого натяжителя будут возникать дефекты печати, например, торчащие углы на модели. Лучше настроить ремень без использования данного натяжителя.

Натяжитель ремня

Ток двигателей

Как мы знаем из школьного курса физики, мощность двигателя зависит от напряжения и силы тока. Так как напряжение на всей электронике принтера везде одинаково, то единственно, что можно изменить - ток на двигателе. Точнее следует сказать максимальный ток, который драйвер будет подавать на моторы. Для изменения этого предела необходимо залезть внутрь корпуса и найти плату принтера. На ней вы увидите драйвера принтера. Нас интересует маленький потенциометр на самом драйвере (на картинке ниже он указан как подстроечный резистор).

Пример расположения потенциометра на драйвере

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

Vref = Imax * 1,25 для R100
Vref = Imax * 2,5 для R050

Чтобы понять какую формулу использовать необходимо найти резистор с подписью R100 или R050 на драйвере. Они располагаются рядом с чипом драйвера.

Vref = Imax * 1,41

Для всех драйверов одна формула

Значение максимального тока (Imax) зависит от двигателя, которым управляет драйвер. Это можно узнать из спецификации двигателя или по наклейки на нём. Далее указаны токи для самых популярных моделей двигателей:

17HS4401 - ток 1,7 А

17HS8401 - ток 1,8 А

17HS4402 - ток 1,3 А

Подставив значение в формулу, мы получим значение Vref для максимального тока, подаваемого на двигатель. Но при таком значении двигатель будет сильно греться, поэтому полученное значение Vref необходимо умножить на 0,7. Например, для двигателя с максимальным током в 1,5 А и драйвером TMC 2208:


Vref = 1,5 * 1,41 * 0,7 = 1,48 В

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

Внимание: не следует указывать значение Vref выше максимального рассчитанного для вашего двигателя! Иначе двигатель в скором времени сломается!

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

Шаги двигателей

При настройке шагов двигателей вам понадобится линейка. Для удобства можно использовать программу Repetier-Host. Настройка для каждой из трех осей происходит по одному и тому же алгоритму:

Ставим каретку в нулевые координаты (Autohome или G28)

Передвигаем каретку на некоторое расстояние

Измеряем, на какое расстояние прошла каретка

Рассчитываем правильное количество шагов на миллиметр по формуле:

Истинные шаги на миллиметр = текущие шаги на миллиметр * указанное расстояние / пройденное расстояние

Например, в принтере было указано 100 шагов/мм, приказываем принтеру переместится на 80 мм, а принтер проходит 87,5 мм. Тогда правильное значение шагов на миллиметр будет равняться 100 * 80 / 87,5 = 91,42 шагов/мм. Для удобства измерений можно закрепить на столе линейку, а на каретке тонкий предмет, например, иголку или булавку. Тогда можно будет крайне точно измерить пройденное расстояние. Для измерения расстояния в экструдере используется частично отличающийся алгоритм:

Вставляем пластик в экструдер

Обрезаем его прямо у выходного отверстия

Отдаем принтеру команду вытянуть пластик на некоторое расстояние (минимум 100 миллиметров)

Снова обрезаем пластик

Измеряем длину полученного отрезка пластика

Используем формулу из предыдущего алгоритма

Далее данные настройки нужно вставить в прошивку в строке:

Вместо X,Y,Z и E0 должны стоять значение шагов на миллиметр для каждой из осей соответственно. Иначе, необходимо вставить в начальный GCODE данную строку:

M92 Ennn Xnnn Ynnn Znnn

Вместо nnn в каждом из параметров необходимо подставить шаги на миллиметр для каждой оси. Если вы хотите настроить шаги только не для всех осей, то можно убрать ненужные параметры.

Ускорение

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

Для настройки ускорения нужно следовать простым шагам:

Нарезать модель стандартного тестового кубика с толщиной стенок равной одному диаметру сопла, без заполнения и верхних слоев, дно 2-3 слоя;

Открыть GCODE файл в блокноте;

Найти команду G28 в самом начале и вставить после неё данные строки:

M201 X5000 Y5000

Сохраните изменения, напечатайте модель по полученному GCODE и отметьте при каких параметрах P и T она печаталась;

Откройте тот же GCODE файл и измените значения P и T во второй строке, добавив к каждому из них по 500;

Повторите пункты 4-5 как минимум 3 раза;

В результате вы получите несколько тестовых кубиков, на части из которых будут видны волны у углов. Выберите кубик, напечатанный с наибольшими параметрами P и T, но чтобы на нём не было видно волн. Цифра в параметре P будет искомым значением ускорения. Чтобы сохранить данное значение необходимо найти в прошивке 2 строки:

Вместо X и Y следует поставить ускорение, в два раза выше найденного ранее. А вместо nnn необходимо поставить найденное ранее значение ускорения. Иначе необходимо вставить строку в начальный GCODE:

В параметрах P и T нужно поставить значение найденного ускорения. После этого настройку ускорения можно считать завершенной.

Рывок

Рывком обозначается то, с какой скорости начинать ускорятся. Он влияет на модель схожим образом, как и ускорение: создает рябь около углов модели. Но также увеличивается выпячивание углов, если рывок слишком мал. Настройка рывка также схожа с настройкой ускорения:

Нарезать модель стандартного тестового кубика с толщиной стенок равной одному диаметру сопла, без заполнения и верхних слоев, дно 2-3 слоя.

Открыть GCODE файл в блокноте

Найти команду G28 в самом начале и вставить после неё данные строки:

Сохраните изменения, напечатайте модель по полученному GCODE и отметьте при каких параметрах X и Y она печаталась

Откройте тот же GCODE файл и измените значения X и Y во второй строке, добавив к каждому из них по 2

Повторите пункты 4-5 как минимум 3 раза

В результате у вас получится несколько кубиков. Найдите кубик на котором не будет ряби, напечатанный при наибольших параметрах X и Y. Это и будет значением рывков для вашего принтера. Чтобы сохранить их необходимо найти в прошивке строку:

Необходимо подставить значения рывков для осей X и Y соответственно. Иначе необходимо подставить в стартовый GCODE команду:

Вместо nnn нужно подставить значение рывка, найденное ранее. На этом завершается настройка рывков.

Скорость

На самом деле существует множество различных параметров скоростей, значения для которых сильно разнятся. Далее рассмотрим основные из них:

Этот параметр отвечает за перемещение сопла без выдавливания пластика. Значение находится в пределах от 80 до 120 мм/с. Ограничивается только максимальной скоростью, с которой могут вращаться двигатели. Не влияет на модель

Скорость печати первого слоя

Данная скорость важна, так как она косвенно влияет на адгезию модели к столу. Обычно находится в пределах от 15 до 30 мм/с

Скорость печати стенок

-Скорость печати внутренних стенок

Обычно ставится около 60 мм/с, влияет только на прочность модели. Зависит от максимального количества пластика, который может продавить экструдер через сопло

-Скорость печати внешних стенок

Обычно около половины от скорости печати внутренних стенок (30 мм/с).Влияет не только на прочность модели, но и на внешний вид: чем ниже данная скорость - тем ровнее будут стенки.

Скорость печати заполнения

Стандартным значением является 80 мм/с, влияет только на прочность модели

Скорость печати дна/крышки

Обычно выставляется от 20 до 40 мм/с, от неё зависит качество верхнего слоя модели: чем ниже значение - тем ровнее крышка.

Все вышеуказанные параметры подбираются экспериментальным путем. Обычно действует простое правило: выше скорость - ниже качество. Поэтому не стоит пытаться найти идеальное значение для всех ситуаций. Лучше найти значения для быстрой печати, качественной печати и среднее, которое будет использоваться для большинства моделей.

Проверка настроек

Последним этапом настроек любого из вышеописанных параметров будет проверка результата. Если вы записывали параметры в прошивке или сохраняли их в EEPROM, то можете использовать команду M503. Она выведет все настройки принтера на компьютер. Для проверки настроек на практике можно распечатать несколько тестовых моделей:

На каждой из вышеуказанных моделей будет хорошо видны дефекты, если они ещё остались после настройки механики.

Это информация для новичков, для тех кто только осваивает 3D принтер, опытные пользователи и так все это знают, но почему то не делятся информацией.

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

Описание настроек прошивки Marlin для 3D принтера Creality3D Ender 3 Pro

При нажатии на "About Printer" (О принтере)

Можно посмотреть версию прошивки, у меня

Как видно версия: 1.1.6.2

Поэтому все остальное рассмотренное ниже относится к версии 1.1.6.2

Info Sreen

Info Sreen - Информационный, главный экран по умолчанию

Состоит из четырёх подразделов

1. Название 3D принтера.

2. Температуры сопла, стола и скорость вращение вентилятора

  • Вверху установленная температура в настройках
  • Внизу температура реальная.

На скриншоте видно, что в установках температуры нулевая, а реальная температура это комнатная температура. Лайфхак - 3D принтер можно использовать как градусник

3. Координаты сопла.

4. Работа с картой памяти (SD картой).

При нажатии на энкодер входим в экран настроек

И еще строчка "About Printer" но об этом было раньше (см. выше)

  • Prepare - Подготовка
  • Control - Контроль
  • Print fromTF - Печать с SD карты вставленный в принтер
  • Change TF card - Инициализировать карту SD
  • About Printer - О принтере

Давайте все рассмотрим подробно

Prepare - Подготовка

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

Prepare подразделы

  • Move axis - Перемещение по осям (есть подразделы)
  • Auto home - Автоматическая парковка (печатающая головка уедет на нулевые координаты)
  • Set home offset - Установить исходное смещение
  • Disable Steppers - Отключить шаговый двигатели
  • Preheat PLA - Предварительный нагрев для PLA пластика
  • Preheat ABS - Предварительный нагрев для ABS пластика

Подразделы для Preheat PLA или Preheat ABS (они одинаковые)

Preheat PLA (ABS ) - общий нагрев

Preheat PLA (ABS )end - нагрев сопла или вернее его "горячего конца" (что такое "горячий конец" в отдельной статье: " Словарь терминов используемых при 3D печати ")

Preheat PLA (ABS) bed - нагрев стола

Если выбрать один из этих разделов то появляется новый пункт меню: "Cooldown"- выключить нагрев.

Move axis - Перемещение по осям

Move axis X, Y, Z - можно подвигать экструдер по осям X, Y, Z

Extruder - можно включить шаговый двигатель "холодного конца" экструдера, но если "горячий конец" экструдера не нагрет, т. е. не было выбрано ранее Preheat PLA или Preheat ABS то при заправленном экструдере ничего не произойдет. При не заправленном прогонит нить до нагревателя т. е. до сопла. Если нагрев "горячего конца" произведен то начнет вылезать нагретый пластик при положительных значениях.

Control - Контроль

Этот раздел позволяет контролировать что происходит уже при печати и менять если это надо, сразу, на лету или заранее и вносит изменения в настройки.

  • Temperature -Температура (есть подразделы)
  • Motion - Движение (есть подразделы)
  • Filament - Нить (есть подразделы)
  • Store settings - Сохранение настроек
  • Load settings - Загрузка настроек
  • Initialize EEPROM - Инициализировать EEPROM

Рассмотрим все более подробно

Temperature - Температура

Nozzle - Температура "горячего конца " (по умолчанию 0)

Bed - Температура стола (по умолчанию 0)

Fan Speed - Скорость вентилятора (по умолчанию 0). Начинает крутится от 60, но ели помочь рукой то может раскрутится даже от 20 (по крайне мере так у меня)

Preheat PLA - настройки для PLA пластика, есть подпункты

  • Fan Speed - Скорость вентилятора (по умолчанию 255)
  • Nozzle - Температура "горячего конца " (по умолчанию 185)
  • Bed - Температура стола (по умолчанию 45)
  • Store setting - Сохранить настройки

Preheat ABS - настройки для ABS пластика, есть подпункты

  • Fan Speed - Скорость вентилятора (по умолчанию 255)
  • Nozzle - Температура "горячего конца " (по умолчанию 240)
  • Bed - Температура стола (по умолчанию 70)
  • Store setting - Сохранить настройки

Motion - Движение (везде есть подпункты меню)

  • Velocity - Скорость
  • Acceleration - Ускорение
  • Jerk - Рывок

Steps/mm - Шаги/мм. Коэффициенты шаг/мм по осям. Учитывается передаточный коэффициент осей.

А теперь подробно разберем подпункты этого меню

Velocity - Скорость

Максимальная скорость перемещения

  • V max X - (по умолчанию 500)
  • V maxY - (по умолчанию 500)
  • V maxZ - (по умолчанию 5)
  • V max E -(экструдер) (по умолчанию 25)

Acceleration - Ускорение

  • Accel -ускорение (по умолчанию 500)
  • A-Retract ускорение при ретрактах (откатах) (по умолчанию 500)
  • A-Travel ускорение при перемещениях (по умолчанию 1000)
  • Amax X, Y, Z, E - максимальное ускорение по осям (по умолчанию 500)

Jerk - Рывок

Моментальное изменение скорости

  • Vx - Jerk (по умолчанию 10)
  • Vy - Jerk (по умолчанию 10)
  • Vz - Jerk (по умолчанию +000.40)
  • Ve - Jerk (по умолчанию 5)

Steps/mm - Шаги/мм

  • Xsteps/mm (по умолчанию 80)
  • Ysteps/mm (по умолчанию 80)
  • Zsteps/mm (по умолчанию 400.00)
  • Esteps/mm(по умолчанию 93)

Разберем что значат все эти параметры

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

Ну со скоростью (Velocity) все понятно, это скорость с которой ездит сопло ("горячий конец") экструдера. А вот дальше нужно разбирается.

Понятия "Acceleration" (ускорение) и "Jerk" (рывок) различаются. Так как принтер понимает и знает что ему предстоит делать, передвинуть сопло (экструдер) на большое расстояние или сдвинуть на малое расстояние, для принтера это разные вещи. Если принтер делает "длинное движение" перемещает сопло на большую дистанцию, к примеру 30мм, то движение начинается с постепенного разгона и заканчивается постепенным торможением и в этом случае уместно говорить о ускорении - Acceleration . Если движение короткое, миллиметры, то о постепенном разгоне и торможении говорить не уместно, просто на это нет времени и происходит сдвиг сразу на максимальной скорости, называется это рывок - Jerk. Если цифры "рывка" слишком высоки, то это приводит в повышенным износам движущихся частей подшипникам и ремней шаговых двигателей, и вообще принтер может колбасить и он будет прыгать по столу, то же кстати относится и к "Ускорению". Причем Ускорение (Acceleration) задается разным не только для осей, но и для того когда оно происходит при обычном "холостом" движении A-Travel или при "всасывании" нити A-Retract (откат)

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

Steps/mm (Шаги) - это параметр для калибровки принтера высчитывается по формулам, если принтер работает, то вообще не лезем сюда.


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

Как я писал ранее, в качестве внутреннего ПО был выбран проект Marlin. Рассмотрим все необходимые действия для получения работоспособной прошивки для описанной выше конфигурации.

СРЕДА РАЗРАБОТКИ

ИСХОДНИК ПРОШИВКИ

Текущая версия Marlin для работы над прошивкой Marlin-1.1.0-RC8. Для скачивания прошивки в первоисточнике перейдите по ссылке.

ПОДКЛЮЧЕНИЕ КОНТРОЛЛЕРА

НАСТРОЙКА ПРОШИВКИ

ВКЛАДКА Configuration.h

Устанавливаем скорость обмена порта

Я установил достаточно большую скорость обмена. Здесь нужно осознавать, что работоспособность на выбранной скорости определяется не только платой контроллера, но и программой управления. Я использую Repetier Host. Она прекрасно справляется с такой скоростью :).

Выбираем плату контроллера

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

// RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)

Описание плат управляющего контроллера, поддерживаемые прошивкой, находятся во вкладке Boards.h.

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

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

Так как корпус принтера является открытым, то различные внешние возбудители (сквозняки и пр.) могут сильно влиять на температуру нагревателей. Для более точного поддержания температуры нагревателей я рекомендую использовать PID регулировку. В этом случае потребуется калибровка нагревателей! Она проходит в автоматическом режиме и опишу этот процесс ниже по тексту статьи. На данном этапе достаточно только включить PID регуляторы хотэнда и стола с коэффициентами регулировки по умолчанию.

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

Запрещаем холодную экструзию проволоки. При температуре ниже 170 гр. С подача осуществляться не будет:

Запрещаем непрерывную подачу пластика более 200 мм:

Включаем температурную защиту нагревателей:

Далее переходим к настройке механики. Концевые датчики положения в моей конструкции предполагают начало отсчета координат из минимального значения по всем трем осям:

Для правильной работы оптических концевиков потребуются подтягивающие резисторы:

При использовании оптических концевиков инвертируем значение логического сигнала:

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

По концевикам осталось только обозначить направление движения к начальной точке:

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

Следующие строки определяют направление вращения приводов для движение в нужном направлении. Напоминаю, что значения приведены для конфигурации Mendel Prusa I3.

При использовании экструдера, содержащего редуктор потребуется установить:

Использованные мной драйверы немного слабоваты. По этой причине на большой скорости движения в Z направлении заметны существенные глюки. Значит сразу лучше ограничить скорость при возврате каретки в начальное положение:

Для программного контроля перемещения в рабочем пространстве установим границы перемещения после установки принтером начальной точки:

Для точного перемещения по осям прошивка должна знать на сколько шагов требуется прокрутить двигатель при перемещении на 1мм:

В этой строке прописаны значения осей X, Y, Z, E (экструдера). Все значения, кроме E вполне совпадают с расчетными величинами (по крайней мере у меня). К значению Е вернемся позже. Теорию можно прочесть на форуме RepRap.

Далее ограничиваем ускорения для перемещений по всем осям. Я ограничил все значения, кроме ускорения вращения экструдера на половину от значений по умолчанию:

Для перехода на русский язык в меню управления принтером:

и SD карты памяти:

Основные параметры настроены, можно приступать к калибровке! Но, раз уж мы ковыряем прошивку, сразу доработаем все необходимое для реализации работы в меню контроллера без ПК.

Опишем температуру преднагрева для PLA и ABS пластика:

Если интересно знать статистику работы принтера. Для сохранения статистики в EEPROM включим:

Данная фишка позволит сохранять в энергонезависимой памяти контроллера следующую информацию:

Информацию можно получить из принтера по команде M78.

Также рекомендую включить настройки температурной безопасности:

Режимы требуется настраивать индивидуально для каждой модели принтеров. Описание параметров приведу в части статьи, описывающей вкладку Configuration_adv.h.

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

// ЧИСЛО ИМПУЛЬСОВ ЭНКОДЕРА НА ОДИН ШАГ. ДЛЯ ЭКОДЕРОВ С ВЫСОКИМ РАЗРЕШЕНИЕМ
// ТРЕБУЕТСЯ УВЕЛИЧИТЬ ЗНАЧЕНИЕ

// ИЗМЕНЕНИЕ НАПРАВЛЕНИЯ ВРАЩЕНИЯ

ВКЛАДКА Configuration_adv.h

Прошивка поддерживает большое количество дополнительных настроек, очень помогающих в работе. Хотелось бы сразу описать те, которые я активно использую. Для перехода к расширенным настройкам открываем вкладку Configuration_adv.h.

Настройки режимов защиты по температуре:

После включения параметра THERMAL_PROTECTION_HOTENDS при нагреве хотэнда по командам M140 или M190 принтер будет отслеживать прирост температуры! Если за период времени WATCH_TEMP_PERIOD температура не увеличивается на WATCH_TEMP_INCREASE ГРАДУСОВ, то принтер остановится и потребуется полная перезагрузка.

Для нагревателя стола тот же алгоритм защиты и переменные при условии включения THERMAL_PROTECTION_BED:

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

1. Определить пин контроллера, задействованный для управления вентилятором охлаждения:

Очень интересная настройка:

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

Для более детального управления вентилятором обдува радиатора задаем пин, скорость вращения и температура включения:

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

Пожалуй, это все самые необходимые настройки вкладки.

ВКЛАДКА Language_RU.h

После перехода на русский язык мне не понравился перевод параметров. Я сделал перевод под себя. Для этого во вкладке Language_RU.h изменил константы:

ОТЛАЖЕННАЯ ПРОШИВКА

Тем, кто собрал таки свою Прушу, выкладываю свою версию прошивки. Прошивка полностью отлажена и позволит сразу запустить принтеры ZDV Prusa I3 и ZDV Prusa I3 v2.

УПРАВЛЯЮЩАЯ ПРОГРАММА


Настройка экструдирования. Проверка и настройка точности длины подаваемого пластика

Это самая первая отстройка, которую необходимо сделать перед настройкой потока и слоя.

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


Для измерений нам нужна будет точка начала, которая при выимке трубке будет концом трубки, а при варианте с другой стороны, началом будет конец крепежа.

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


Далее, для проведения всех манипуляций, нам понадобится программа Repetier-Host. Там и консоль удобней и значения EEPROM проще редактировать.

Заходим в приложение, подключаем принтер и нажимаем ALT+E. На экран выводятся значения EEPROM.


EEPROM принтера

Прежде всего необходимо нагреть экструдер, иначе принтер не даст начать давить пластик. Делаем это командой M109 S180, которая скажет принтеру нагреть сопло до 180 градусов, нам будет достаточно, все равно он не принимает участия.


Как только нагреется сопло, нам надо подать из катушки некое удобное количество пластика, удобное для расчетов. 100мм или 200мм, которое будет проще измерить. Выдавим 100 командой G1 F400 E100.

Как только подача прекратится, можно отключить нагрев сопла командой M109 S0. Тем временем у нас торчит пруток пластика теоретически длинной 100мм.


Теперь необходимо так же заподлицо отрезать этот кусок и приступить к его измерению.


Как видно, нам выдавило 102мм пластика. По-этому нам надо пересчитать количество шагов/мм. Делается это следующим образом:

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

Настройка потока

Печатаем кубик 20мм на 20мм (скачать модель кубика) со следующими настройками:

Должно получиться в слайсере так:


Печатаем и приступаем к измерениям. Измеряем все стенки в нескольких местах. Скажем на каждой стенке провести по 3 измерения в разных ее местах. В итоге получим 12 значений, среди которых считаем среднее арифметическое.

Скажем, среднее арифметическое у нас получилось 0.44. Рассчитываем величину потока:

100% установленного потока * текущую толщину линии (печатаем соплом 0.4) / измеренную толщину. Получаем 100*0.4/0.44 = 90.9. Так же можно округлить до 91% и это значение вносим в настройки слайсера.

Далее печатаем кубик снова, что бы убедиться в верности новых настроек. Если результатом не довольны, провести калибровку еще раз.

«Магические числа»

Автор данного исследования: CHEP. Материал о магических числах является вольным переводом.

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

Что же за «магические числа»?

Микрошаги это дробление каждого шага на некоторое количество шагов. Этим и управляет драйвер двигателя. Микрошаг является менее точным положение. Во-первых, точности привода мешает геометрическая неидеальность ротора и статора двигателя, неидеальные обмотки, зазоры в подшипниках вала и т.п. В результате двигатель выполняет шаги всегда с некоторой погрешностью (как правило, 5% от величины полного шага), причем абсолютное значение погрешности постоянно для любого выбранного микрошагового режима! Кроме того, во многих драйверах управление двигателем также далеко от идеального, что приводит к дополнительной неравномерности перемещения в режиме микрошага.

В принтере Anycubic i3 MEGA на оси Z стоят ходовые валы со следующими параметрами:

  • Внешний диаметр: 8мм
  • Шаг: 2мм
  • Подъем гайки за 1 оборот: 8мм

В виду нехитрых расчетов, зная, что двигатель делает 200 шагов на оборот и за этот оборот подъем по оси Z составит 8мм, получаем 8мм/200шагов = 0.04мм. Это и есть «магическое число».

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