Калибровка стола для 3D-принтера Marlin
Обновлено: 21.11.2024
По мере того, как наш опыт в 3D-печати растет с течением времени, мы также можем набраться смелости, чтобы начать возиться с нашим оборудованием, устанавливать обновления или устанавливать другие начальные и конечные фрагменты G-кода. Наблюдать за тем, как наши дополнения улучшают качество вывода нашей машины, может быть невероятно полезно, и мы, несомненно, приобретем огромное количество знаний, делая их.
При замене основного компонента нашего принтера вполне может случиться так, что вам потребуется перенастроить его исходное положение из-за разницы в размерах между старой и новой частью. Это, безусловно, произошло со мной, когда я сменил свой предыдущий хотэнд на новый цельнометаллический. Разница в размерах привела к смещению примерно на 14 мм, которое необходимо было учитывать.
В этой статье мы рассмотрим шаг за шагом и объясним, как перекалибровать исходное положение почти каждого 3D-принтера.
Для повторной калибровки самонаведения 3D-принтера необходимо открыть прошивку, настроить параметры так, чтобы они отражали реализованные физические модификации машины, перекомпилировать прошивку, экспортировать ее и загрузить сгенерированную .hex на 3D-принтер.
Этапы повторной калибровки исходного положения 3D-принтера
Как узнать, какую прошивку использует ваш 3D-принтер
Логотип Marlin, самой популярной прошивки для 3D-принтеров
Чтобы повторно откалибровать исходное положение 3D-принтера в соответствии с новым установленным оборудованием (или по другим возможным причинам), важно выяснить, какую версию прошивки он использует. К счастью, почти все самые популярные производители используют прошивку под названием Marlin или ее потомок.
Принтеры Lulzbot, Anet, Artillery 3D, AnyCubic, Alphawise, Bibo, BQ, BCN3D, Creality, FLSun, FolgerTech, Geeetech, JGAurora, LMYSTAR, Makerbase, Mingda, Printrbot, Prusa Research, Tevo, TronXY, Ultimaker, Wanhao, и Zonestar — лишь некоторые из популярных производителей, использующих прошивку Marlin.
В оставшейся части статьи мы будем предполагать, что у вас есть машина, на которой используется эта прошивка, поскольку она охватывает почти все случаи. Даже мой принтер, чья марка* не указана, потому что я единственный человек, у которого он есть, использует эту прошивку.
*: Для любопытных, производитель называется Createbot. Не знаменитый Creatbot, а Createbot.
Вариант 1. Найдите готовую готовую версию
Этот вариант, который является самым простым, подходит для тех пользователей, которые просто хотят сбросить или обновить прошивку своих принтеров. Возможно, вы отменили некоторые обновления и просто хотите вернуться к стандартной прошивке вашего компьютера.
Если этот вариант подходит для ваших целей, выполните следующие действия:
Во-первых, убедитесь, что у вас установлена последняя версия прошивки Marlin для вашего принтера. Ниже приведены некоторые полезные ссылки для быстрого поиска.
Если у вас есть 3D-принтер, которого нет в списке выше (этот список определенно не является исчерпывающим), вы обязательно найдете его, выполнив поиск «ВАША_МОДЕЛЬ_ПРИНТЕРА + прошивка».
1.2 Подключите 3D-принтер к компьютеру
Следующий шаг состоит в установлении соединения между машиной и вашим компьютером. Этого можно добиться различными способами, но подключение через USB-кабель, безусловно, самый простой и удобный способ.
Для большинства 3D-принтеров требуется кабель типа USB-B. Хотя это довольно непопулярный тип штекера универсальной последовательной шины, он, скорее всего, есть в вашей машине. В противном случае этот скучный обычный принтер (бумажный, а не 3D) почти наверняка использует тот, который вы можете взять на время.
1.3 Загрузите прошивку на свой 3D-принтер
Этот шаг можно легко выполнить с помощью предпочитаемого вами слайсера. Чтобы все было кратко и лаконично, я проведу вас через шаги, которые необходимо выполнить, если вы используете Cura. Другие слайсеры имеют почти идентичный процесс.
В разделе "Настройки" выберите "Принтер" и выберите "Управление принтерами". После появления окна выберите свой и нажмите «Обновить прошивку».
Чтобы этот шаг работал, вам необходимо предварительно установить соединение с вашим принтером (предыдущий шаг). Если вам это удалось, вы сможете нажать «Загрузить пользовательскую прошивку». Теперь вам просто нужно выбрать прошивку, которую вы загружаете. Целевой файл должен иметь расширение «.hex».
Загрузка может занять до минуты, поэтому убедитесь, что вы ничего не отключили во время процесса.
Если вы выполнили все шаги до буквы Т, теперь вы можете похлопать себя по плечу, прежде чем использовать 3D-принтер со свежеустановленной прошивкой!
Вариант 2. Скомпилируйте собственную прошивку Marlin
Поначалу этот вариант может показаться немного сложным, но имейте в виду, что если вы каким-то образом совершите ошибку в процессе, вы всегда можете обратиться к первому варианту и отменить изменения.
После того, как вы успешно завершите этот процесс, вы определенно почувствуете себя профессионалом и, скорее всего, станете частью своего сообщества 3D-принтеров.
Прежде чем начать, убедитесь, что на вашем компьютере установлена среда разработки Arduino IDE, так как она потребуется для компиляции прошивки. Вы можете скачать его бесплатно отсюда.
Начнем!
2.1 Загрузите исходный код встроенного ПО
Первый шаг состоит в загрузке исходного кода прошивки Marlin. Не паникуйте перед тем, как начать, для прохождения этого маршрута не требуется никакого опыта программирования.
Вы можете скачать исходный код Marlin отсюда.
Если у вас есть CubeAnet8, Anycubic 4MAX, TronXY X5s или Anet AM8, вы можете загрузить готовую прошивку с этого замечательного веб-сайта. На всякий случай, если вы думаете, что это недостаточно сложно, вы заметите, что я перенаправил вас на сайт на немецком языке.
2.2 Изменение конфигурации прошивки Marlin
Внешний вид исходного кода Marlin, загруженного с помощью Arduino IDE. Источник
В среде Arduino IDE откройте файл с именем Marlin.ino, который находится в папке Marlin. Перейдите к файлу эскиза «Configuration.h»* и найдите следующие строки:
*Поскольку ваши принтеры, вероятно, поставлялись с пользовательским файлом конфигурации, рекомендуется запросить его у продавца или производителя и внести изменения в этот файл.
Вам нужно будет настроить эти параметры, пока не будет достигнуто желаемое положение. Эта итерация может стать утомительной, если вы решите делать это методом проб и ошибок, а не измерять штангенциркулем, поэтому может быть полезно использовать Repetier Host, чтобы сделать все немного более плавным.
2.3 Скомпилируйте прошивку Marlin
После того, как вы закончите изменять настройки, вы можете нажать «Эскиз» и сразу после этого «Проверить/скомпилировать».
Компиляция для Ender3 или аналогичного
Вы можете столкнуться с несколькими проблемами в будущем, если у вас есть Ender3, так как он использует 16-битный микроконтроллер ATmega1284P, который не поддерживается по умолчанию. В этом случае загрузите Sanguino отсюда и перетащите извлеченные файлы в папку «…/Arduino/hardware» вашей установки Arduino IDE.
После этого обязательно установите следующие параметры:
Инструменты>Процессор:>ATmega1284 или ATmega1284P (16 МГц)
В дополнение к этим двум шагам загрузите U8Glib отсюда и добавьте его с помощью Sketch>Include Library>Add .ZIP Library…
Экспортируйте и загрузите скомпилированную прошивку на принтер
К настоящему моменту у вас, вероятно, какая-то форма посттравматического стрессового расстройства, но будьте уверены, что худшее уже позади. Нам просто нужно экспортировать скомпилированный код, нажав «Sketch > Export Compiled Binary».
Arduino IDE экспортирует два файла, а именно «Marlin.ino.sanguino.hex» и «Marlin.ino.with_bootloader.sanguino.hex». Единственным подходящим файлом для нашей текущей цели является первый ("Marlin.ino.sanguino.hex").
Нет необходимости исследовать что-либо о загрузчиках и флэш-памяти, поскольку мы можем загрузить их с помощью предпочитаемого нами слайсера. Остальная часть процесса теперь такая же, как и в варианте 1. Все, что осталось сделать, это подключить 3D-принтер к компьютеру через кабель USB B и загрузить его с помощью слайсера.
Может ли ваш 3D-принтер потерять исходное положение во время печати?
Не редкость, когда 3d-принтер внезапно имеет сдвиг по оси X или Y на случайном слое и на всех остальных. Хотя многие энтузиасты могут подумать, что это может быть вызвано проблемой прошивки, из-за которой принтер случайным образом забывает свое исходное положение, настоящая причина проблемы кроется в оборудовании.
В таких случаях вместо повторной калибровки исходного положения решение может основываться на проверке машины на наличие незакрепленных, смещенных или неправильно расположенных деталей. Причина проблемы, вероятно, заключается в ремнях, приводном шкиве двигателя, стержнях или каретке X.
Причина, по которой внезапное смещение по оси X или Y не вызвано проблемой домашней калибровки, заключается в том, как на самом деле работает 3D-принтер.
Когда начинается новая печать, вы можете заметить, что она выполняет процедуру, в которой она возвращается в исходное положение перед запуском всего задания. После указанной процедуры принтер только следует инструкциям, данным G-кодом, и фактически не помнит никакого предыдущего понятия о начальном положении. Он просто предполагает, что он правильно приземлился и что все последующие движения были выполнены правильно.
Например, если ленты 3D-печати недостаточно натянуты, это может привести к смещению слоя в направлении упомянутой ленты. Поскольку принтер не может знать, что произошло это неправильное перемещение, он просто следует своему рецепту, продиктованному файлом.
Как узнать, правильно ли исходное положение 3D-принтера
Чтобы узнать, верно ли фактическое исходное положение 3D-принтера, вы можете выбрать по крайней мере один из трех простых способов:
Подтвердить с помощью процедуры выравнивания кровати
Большинство современных 3D-принтеров включают своего рода процедуру автоматического выравнивания платформы, которая проходит через все четыре угла и центр рабочей пластины, чтобы проверить, является ли расстояние между соплом и поверхностью ровным. Если вы запустите эту процедуру, она, скорее всего, сначала пойдет в угол, ближайший к конечной остановке вашего принтера. Теперь вы можете визуально определить, находится ли эта позиция хотя бы на приблизительном расстоянии от правильной.
Распечатайте прямоугольник по форме вашей рабочей пластины
Вы можете создать квадрат и изменить его размер в соответствии с размерами рабочей платформы после загрузки в слайсер. Чтобы не ждать, пока экструдер достигнет нормальной температуры, вы можете удалить нить и установить начальную температуру на очень низкое значение. Это позволит вашему принтеру немедленно начать движение.
Создайте свой собственный G-код: это самый простой вариант, который заключается в создании собственного файла с этими простыми двумя строками, которые сообщают вашей машине, что нужно перейти в исходное положение.
Первая строка указывает вашему принтеру двигаться к дальним углам вашей машины, пока он не достигнет конечной остановки. Вторая строка будет перемещать инструментальную головку в нулевое положение по осям X и Y со скоростью, заданной F. Обратите внимание, что я добавил смещение на 15 мм по оси Z из соображений безопасности.
Об авторе
Мартин Майер
Я сразу влюбился в 3D-печать, когда впервые услышал о ее существовании в 2013 году. Месяц спустя я купил свой первый FDM-принтер и не оглядывался назад! Эта технология не перестает меня удивлять, и я всегда стремлюсь быть в курсе новейших тенденций в этой области. Сообщество 3D-печати не похоже ни на что другое, что я видел раньше, и написание этих статей и программирование (несколько) полезных инструментов — это мой способ внести хотя бы небольшой вклад!
В условиях по умолчанию движение оси экструдера обрабатывается так же, как линейные оси XYZ. Двигатель экструдера перемещается линейно пропорционально всем остальным двигателям, поддерживая точно такой же профиль ускорения и точки пуска/остановки. Но экструдер не является линейной системой, поэтому такой подход, скорее всего, приводит к экструзии дополнительного материала в конце каждого линейного движения.
В качестве примера возьмем обычный тестовый куб. Даже при самой лучшей настройке углы обычно не острые, а размытые. Верхнее сплошное заполнение имеет шероховатости в местах изменения направления печати по периметру. Эти проблемы незначительны или даже незаметны при низкой скорости печати, но они становятся более заметными и проблематичными по мере увеличения скорости печати.
Настройка потока может помочь, но это может привести к недостаточной экструзии при запуске новых строк. Некоторые слайсеры включают возможность завершения экструзии в начале каждого шага, но это усложняет G-код и требует перенастройки для разных температур и материалов.
Поскольку основной причиной является давление, LIN_ADVANCE отделяет экструзию от других осей, чтобы создать правильное давление внутри сопла, адаптируясь к скорости печати. Как только Linear Advance правильно настроен, кровоточащие края и шероховатая твердая заливка должны быть почти устранены.
- Более высокая точность размеров благодаря уменьшению расплывающихся краев.
- Возможна более высокая скорость печати без потери качества печати, если ваш экструдер может обрабатывать необходимые изменения скорости.
- Видимое и осязаемое качество печати повышается даже при более низкой скорости печати.
- Нет необходимости в высоких значениях ускорения и рывка, чтобы получить острые края.
Журнал изменений
- K теперь является значимым значением с единицей [мм сжатия нити, необходимой для скорости экструзии 1 мм/с] или [мм/мм/с].
- Нагрузка внутри шагового ISR снижена, так как там больше не нужны вычисления. Вместо этого экструдер работает с фиксированной скоростью во время регулировки давления. Поэтому эта версия работает быстрее.
- LIN_ADVANCE теперь учитывает аппаратные ограничения, установленные в Configuration.h, а именно рывок экструдера. Если для коррекции давления требуется более быстрая регулировка, чем разрешено пределом рывка экструдера, ускорение для этого перемещения печати ограничивается значением, которое позволяет использовать скорость рывка экструдера в качестве верхнего предела.
- Перемещения с регулировкой давления не приводят к дребезжанию экструдера, как это было в версии 1.0: теперь экструдер работает с плавной скоростью, а не рывками между кратными скоростями печати экструдера.
- Эта плавная работа экструдера и соблюдение ограничений по рывкам гарантируют, что ни один шаг экструдера не будет пропущен.
Требуется новое значение K
Поскольку единица измерения К изменилась, процедуру калибровки К необходимо повторить. Подробнее см. следующую главу. В то время как старые значения K версии 1 для PLA могли находиться в диапазоне 30–130, теперь вы можете ожидать, что K будет составлять около 0,1–2,0.
LIN_ADVANCE может уменьшить ускорение печати
В версии 1, если для параметра K было установлено высокое значение, которое ваш принтер не мог обработать, то принтер терял шаги и/или использовал всю свою вычислительную мощность для выполнения шагов экструдера. В версии 1.5 это реализовано гораздо умнее. LIN_ADVANCE теперь будет проверять, может ли он выполнить дополнительные шаги по мере необходимости. Если необходимая скорость экструдера превышает предел рывка экструдера, это уменьшит ускорение печати для напечатанной строки до значения, при котором скорость экструдера остается в пределах ограничения.
Хотя вы, скорее всего, не столкнетесь с этим на принтерах с прямым приводом с филаментами, такими как PLA, это, скорее всего, произойдет на боуденовских принтерах, поскольку им требуются более высокие значения K и, следовательно, более быстрая адаптация скорости. Если это произойдет с суммой, которую вы не хотите принимать, у вас есть следующие варианты:
- Проверьте настройку рывка экструдера. Если вам кажется, что для него установлено очень консервативное значение, попробуйте увеличить его.
- Поддерживайте низкое ускорение экструдера. Этого можно добиться, например, уменьшив высоту слоя или ширину линии.
- Поддерживайте K как можно ниже. Может быть, вы можете укоротить трубку Боудена?
Примечание о боуденовских принтерах и LIN_ADVANCE
При разработке LIN_ADVANCE довольно часто отмечалось, что боуденовские системы (и особенно дельта-принтеры) должны работать быстрее из-за меньшей движущейся массы. Поэтому снижение ускорения печати, как описано выше, было бы неадекватным решением. С другой стороны, боуденовские системы больше всего нуждаются в функции опережения давления, поскольку они обычно имеют больше всего проблем с изменением скорости.
Создать тестовый шаблон
Документация Marlin содержит генератор шаблонов калибровки с коэффициентом К. Этот скрипт сгенерирует файл G-кода, который поддерживает определение правильного значения К-фактора. Сгенерированный G-код напечатает тестовый шаблон, как показано на следующем рисунке:
Начиная с выбранного значения Start для K , отдельные строки будут печататься слева направо. Каждая линия состоит из 20-мм экструзии с использованием медленной скорости печати, за которой следуют 40 мм с высокой скоростью печати и, наконец, завершаются еще 20 мм с медленной скоростью печати.
Для каждой новой строки K-Factor будет увеличиваться на значение K-Factor Stepping до указанного конечного значения для K .
Общие сведения о настройках тестового шаблона
- Для экструдеров Боудена требуется более высокий К-фактор, чем для экструдеров прямого действия. Рассмотрим начальное значение для K примерно от 0,1 до конечного значения для K примерно 2,0 для LIN_ADVANCE версии 1.5 или примерно от 30 до конечного значения для K примерно 130 для версии 1.0.
- От чего зависит наилучшее соответствие К-фактора для использования в рабочей среде.
- Тип нити. Чрезвычайно гибкие нити, такие как Ninjaflex, могут вообще не работать.
- Температура печати.
- Характеристики экструдера: Боуден по сравнению с прямым экструдером, длина Боудена, длина свободной нити в экструдере и т. д.
- Размер и геометрия сопла.
Повторите калибровку, если какой-либо из указанных выше параметров изменится.
Оценка шаблона калибровки
Переход между фазами низкой скорости печати и фазами высокой скорости печати представляет интерес для определения наилучшего соответствия К-фактора. На следующем рисунке показано увеличенное изображение линии, где К-фактор слишком низкий:
Фаза Описание 1 Низкая скорость печати 2 < td>Начало быстрой скорости печати. Повышение давления в сопле (= количество экструдированного материала) отстает от ускорения печатающей головки. Это приводит к тому, что материала становится слишком мало, а линия истощается. К концу этой фазы давление достигает заданного значения.3 Выдавливание и движения печатающей головки синхронизированы. Номинальная ширина линии выдавливается 4 Начало замедления в сторону низкой скорости печати. Здесь можно наблюдать противоположность фазы 2: снижение давления в сопле отстает от замедления печатающей головки.Это приводит к выдавливанию слишком большого количества материала 5 Начало фазы низкой скорости печати. Тем не менее, давление в сопле не синхронизировано с предполагаемой величиной экструзии, и линия страдает от чрезмерной экструзии. 6< /td> Низкая скорость печати стабилизировалась. Слишком высокий К-фактор существенно меняет приведенную выше картину на противоположную. Объем выдавливания будет превышен в начале ускорения и остановится в фазе замедления.
Тестовая линия, которая имеет плавный и едва заметный или даже невидимый переход между различными фазами скорости, представляет собой наилучшее соответствие К-фактора.
Соображения перед использованием Linear Advance
Следующие соображения больше не являются проблемой для LIN_ADVANCE версии 1.5
- Эта функция добавляет дополнительную нагрузку на ЦП (и, возможно, увеличивает износ экструдера). Рекомендуется использовать скорость передачи данных 115 200 бод или ниже, чтобы предотвратить ошибки связи и «странные» движения.
- Программное обеспечение узла печати должно использовать номера строк и контрольные суммы. (Это отключено по умолчанию, например, в Simplify3D)
- Теоретически LIN_ADVANCE не должно создавать «лишних» движений. Если бы были произведены дополнительные движения, это привело бы к увеличению износа более хрупких деталей, таких как печатные шестерни экструдера Wade.
Сохранение К-фактора в прошивке
Добавление К-фактора в сценарий запуска G-кода
Сценарии запуска G-кода поддерживаются различными слайсерами. Большим преимуществом установки К-фактора с помощью этих методов является то, что его можно легко изменить, например, при переходе на другой материал. K-Factor определяется добавлением команды M900 Kxx в конец сценария запуска, где xx — это значение, определенное с помощью приведенного выше тестового шаблона.
В следующей главе кратко описано, где найти соответствующий параметр в популярных слайсерах.
Примечание 1:
Примечание 2:
Показанные сценарии запуска G-кода индивидуальны для каждого принтера и личного вкуса. Это предназначено только для демонстрации того, где можно применить параметр К-фактора.
Настройки —> Принтер —> Управление принтером —> Настройки машины
Slic3r
Настройки —> Настройки принтера —> Пользовательский G-код
Упрощение 3D
Редактировать настройки процесса —> Показать дополнительные настройки —> Скрипты —> Пользовательский G-код
Общая информация
Усилие, необходимое для проталкивания нити через отверстие сопла, частично зависит от скорости, с которой материал проталкивается в сопло. Если материал проталкивается быстрее (=быстрее печатается), нить необходимо сжать сильнее, прежде чем давление внутри сопла станет достаточно высоким, чтобы начать выдавливание материала.
Для одиночной линии с быстрой печатью это приводит к недостаточной экструзии в начальной точке линии (нить сжимается, но давление недостаточно велико) и чрезмерной экструзии с образованием пятна в конце линии. (нить все еще сжимается, когда двигатель E останавливается, что приводит к просачиванию).
Для полной печати это приводит к просвечиванию краев в углах (углы являются точками остановки/конечными точками линий) и, в крайних случаях, даже к промежуткам между периметрами из-за недостаточной экструзии в их начальных точках.
Версия 1.5
Версия 1.5 обрабатывает коррекцию давления немного по-другому, чтобы достичь следующих целей:
- уважайте рывок экструдера
- обеспечить плавное движение экструдера без дребезжания
- уменьшить нагрузку внутри шагового ISR
Это достигается путем расчета смещения скорости экструдера в планировщике для данного сегмента. Если у нас есть истинное линейное ускорение, то это выполнит необходимые шаги продвижения как раз вовремя, поэтому мы достигли всех наших необходимых шагов продвижения как раз, когда часть ускорения закончилась. Поскольку Marlin использует приближение для расчета ускорения внутри ISR, это не совсем верно, мы вернемся к этому позже. Если необходимое смещение скорости превышает допустимый рывок экструдера, ускорение печати для этого сегмента уменьшается до более низкого значения, чтобы рывок экструдера больше не превышался. Это сравнимо с проверкой, которую Marlin делает для каждой оси, например, если у нас есть ускорение печати 2000 мм/с², но ось X макс. ускорение установлено на 500 мм/с², ускорение печати снижено до 500 мм/с².Во время расчета трапеции LIN_ADVANCE вычисляет необходимое количество шагов опережения на крейсерской скорости и на конечной скорости (= скорость в блоке и блоке).
Когда этот блок выполняется шаговым ISR, экструдер устанавливается на частоту, которая представляет расчетное смещение скорости. Шаг продвижения выполняется вместе с обычными шагами e. Во время выполнения блока давление будет увеличиваться до тех пор, пока не будет достигнуто предварительно рассчитанное необходимое количество дополнительных шагов или не начнется замедление. Во время замедления мы уменьшаем величину шага продвижения до тех пор, пока не достигнем величины для конечной скорости или пока блок не подойдет к концу. Эти проверки необходимы, поскольку Marlin использует аппроксимацию для расчета ускорения, как указано выше. Поэтому, например, мы можем не достичь конечного давления в конце движения идеально, но это не важно, так как эта ошибка не будет накапливаться.
Следующее обновление может включать улучшенную обработку перемещений переменной ширины. На пути с переменной шириной возможно, что нам нужно истощить давление во время ускорения, например, когда следующая линия намного уже, чем предыдущая. Поэтому LIN_ADVANCE необходимо будет проверить фактическое необходимое направление экструдера. Другой случай, который следует рассмотреть, — это заполнение зазора до вершины треугольника: в этом случае Марлин будет двигаться с постоянной скоростью, но скорость экструдера и, следовательно, необходимое давление становятся все меньше и меньше, когда мы приближаемся к вершине треугольника. Мы должны адаптировать давление форсунки к макс. возможная скорость (скорость рывка экструдера) тогда. Поскольку большинство слайсеров заполняют промежутки на довольно низких скоростях, мы должны решить, стоит ли эта дополнительная нагрузка эффекта. На 32-битных платах, где производительность вычислений, скорее всего, не проблема, в любом случае это имеет смысл.
Версия 1.0
Регулятор давления LIN_ADVANCE обрабатывает эту свободную длину нити как пружину, где K – жесткость пружины. Когда сопло начинает печатать линию, в качестве эталона используется скорость экструзии. В дополнение к необходимой длине экструзии для сегмента линии, которая определяется слайсером, он вычисляет необходимое дополнительное сжатие нити для достижения необходимого давления в сопле, так что длина экструзии, определенная слайсером, действительно экструдируется. Это делается в каждом цикле шагового ISR.
Во время замедления сжатие нити снова снимается по той же формуле: advance_steps = delta_extrusion_speed * K . Во время замедления delta_extrusion_speed имеет отрицательное значение, поэтому значения advance_steps отрицательны, что приводит к втягиванию (или замедлению) движения, снова расслабляя нить.
Основная формула ( advance_steps = delta_extrusion_speed * K ) такая же, как и в знаменитом контроле давления JKN, но с одним важным отличием: JKN вычисляет сумму всех необходимых шагов продвижения экструдера внутри цикла планировщика и равномерно распределяет их по каждому ускорение и замедление шагового ISR контура. Это приводит к неправильному распределению шагов продвижения, что приводит к несовершенному результату печати. LIN_ADVANCE вычисляет дополнительные шаги «на лету» в каждом пошаговом цикле ISR, поэтому необходимые шаги применяются именно там, где это необходимо.
Дополнительные сведения и графики см. в этой презентации, слайды 7–9.
В Marlin вся работа выполняется в файлах stepper.* и planner.*. В цикле планировщика LIN_ADVANCE проверяет, нуждается ли перемещение в контроле давления. Это относится только к перемещениям печати, а не к перемещениям перемещения и перемещениям только экструдера (например, втягиванию и заправке).
В методе Stepper::isr функция LIN_ADVANCE вычисляет количество дополнительных шагов, необходимых для достижения требуемого давления в сопле. Чтобы избежать пропуска шагов, он не выполняет их все сразу, а распределяет их между будущими вызовами процедуры обслуживания прерываний.
Приведенные ниже инструкции предназначены для использования в качестве руководства по калибровке экструдера. Поскольку каждая машина немного отличается, рекомендуется также обращаться к руководству во время процесса. Кроме того, приведенные ниже шаги предполагают, что у вас есть машина с прошивкой Marlin, которая поставляется с большинством потребительских 3D-принтеров.
- Запуск прошивки Marlin
- Машина подключена к пронтерфейсу или другому программному обеспечению для управления машиной (YouTube Tutorial)
- На вашем компьютере включена EEPROM, что позволяет сохранять изменения на вашем принтере (YouTube Tutorial)
Ваш экструдер отвечает за подачу нити через хотэнд. Важно, чтобы ваш экструдер точно определял, сколько материала он подает на хотэнд. Если он выдавливает слишком мало нити, вы получите недостаточное выдавливание, что приведет к зазорам и дырам в вашей печати. Если ваш экструдер подает слишком много нити, вы преодолеете экструзию, что может привести к ухудшению производительности и плохому качеству печати в целом.
Шаг 1. Загрузите нить в экструдер и отметьте линию на расстоянии 110 мм от места ее входа в экструдер.Обратите внимание, что на изображении ниже изображена метрическая рулетка. 11 см = 110 мм
Шаг 2: Отправьте M503 на свой компьютер с помощью pronterface (или аналогичного), чтобы получить текущее значение шага E. Вы должны увидеть M92, за которым следует значение, начинающееся с E (обязательно запишите этот номер). Обратите внимание, что ваше значение, скорее всего, будет отличаться от моего.
Шаг 3. Отправьте M83 (относительный режим, ничего не должно произойти)
Шаг 4. Отправьте M109 S200 (предварительно нагрейте хотэнд до 200 градусов C для PLA. Если используется другой филамент, укажите эту температуру здесь)
**Не продолжать, пока не будет достигнута температура горячего конца**
Шаг 5: отправьте G1 E100 F100 (это пропустит 100 мм нити через экструдер)
Шаг 6: Измерьте новое расстояние от контрольной точки до отметки, которую вы изначально сделали на нити. В идеале это должно быть 10 мм, если ваша машина уже откалибрована. Однако, скорее всего, вам потребуется некоторая калибровка машины. Рассчитайте новое значение Е-шага по приведенной ниже формуле:
Введение: как точно откалибровать 3D-принтер
**Обновление от 28 июля 2016 г.**
Я сделал еще один Instuctable, основанный на этом. Вместо использования ленты для отметки местоположения можно использовать лазерную указку для достижения более точной калибровки. Поэтому, как только вы прочитаете это и поймете процесс, ознакомьтесь с продолжением ЗДЕСЬ
Одна из самых крутых кривых обучения при начале работы с 3D-печатью — научиться точно калибровать все двигатели. Хорошая новость заключается в том, что если вы знаете, как откалибровать один мотор принтера, то остальные останутся такими же. В следующем руководстве показано, как точно откалибровать принтер, используя минимальное количество нити (нить нужна только для калибровки мотора, который подает нить через хотэнд).
Для этого руководства я буду использовать Printrbot simple и Repetier, но вы сможете использовать любую комбинацию принтера и программного обеспечения.
В этом руководстве предполагается, что ваш принтер работает, его просто нужно настроить.
Вот что вам нужно
-3D-принтер с программным обеспечением для его запуска
-Линейка (около 40 см должно хватить)
-Карандаш и блокнот также могут пригодиться.
Шаг 1. Шаг 1. Настройка
После открытия Repetier и подключения 3D-принтера выберите вкладку ручного управления. Затем выключите простой режим и нажмите кнопку переключения журнала (если вы используете самую последнюю версию Repetier), затем введите G-код: «M501», затем нажмите Enter или нажмите «Отправить» (куча информации будет добавлена). в свой журнал внизу экрана)
Прокручивайте журнал вверх, пока не увидите что-то вроде этого «эхо: M92 X__ Y__ Z___ E__». Запишите где-нибудь эту строку кода, потому что мы будем часто к ней возвращаться. Значения M92 сообщают шаговым двигателям, сколько шагов нужно сделать, когда вы просите их переместиться на заданное расстояние. В моем случае я получил M92 X80.2 Y80 Z2044 E104.
Мы будем работать над калибровкой одного двигателя за раз, начиная с того, который управляет осью X.
Шаг 2. Шаг 2. Калибровка оси X
Измерение значений оси X
Начните с того, что верните ось X в исходное положение и поднимите ось Z в сторону. (рисунок 1)
Возьмите кусок ленты (предпочтительнее менее гибкая лента, чтобы она не провисала) и поместите ее на платформу принтера параллельно другой точке принтера, которая не будет двигаться при перемещении оси X. (рисунок 2)
В Repetier скажите принтеру переместить ось X. Мне нравится начинать с 70 мм (при условии, что вы используете печатную платформу 100x100x100 мм). Если вы решите переместить ось X дальше, у вас будет меньше права на ошибку, но вы не хотите заходить слишком далеко и превышать возможности своих принтеров. Используйте другой кусок ленты в той же точке маркера, которую вы использовали перед перемещением оси X. Вот где ваш принтер думает, что 70 мм. (рисунок 3) Мы назовем это измерение "Желаемое движение".
Теперь используйте свои цифровые штангенциркули, чтобы измерить, что является «истинным измерением» для оси X (рисунок 4)
Если вы измерили идеально 70 мм, ваша ось X откалибрована. Скорее всего, вы не получили ровно 70 мм с первой попытки. Запишите измерения, которые вы сделали. В моем случае я получил 70,87 мм.
Расчеты для калибровки оси X
Нам нужны 3 переменные для калибровки оси X. Сначала нам нужно «Текущее значение M92» для X, которое мы записали на первом шаге. Затем нам понадобятся два измерения, которые мы только что сделали. С этими тремя переменными мы будем искать «Новое значение M92».
Текущее значение M92 = 80,2
Желаемое перемещение = 70 мм
Фактическое перемещение = 70,87 мм
Вот формула, которую вы можете использовать для определения нового значения M92
Новое значение M92 = желаемое перемещение / фактическое перемещение * текущее значение M92
70/70,87 = 0,987724002 (новое значение M92 должно составлять 98,77% от текущего значения M92)
80,2*.987724002 = 79,22 = новое значение M92
Наше новое значение M92 – 79,22. Это имеет смысл, потому что наше новое значение M92 меньше, чем текущее значение M92 (80,2), потому что мы превысили нашу цель по перемещению оси X на 70 мм. Теперь давайте перейдем к следующему шагу и научимся вводить новое значение M92.
ввод нового значения M92 для X
Сначала введите свой G:код для нового значения M92, например: «M92 X79.22», затем нажмите Enter (рисунок 5).
Затем введите G:code: «M500» и нажмите Enter. (это сохранит измененные настройки).Введите «M501» в свой Gcode, прокрутите вверх свой журнал и убедитесь, что ваш новый M92 для X был сохранен.
Если это так, вы можете вернуться к началу этого шага и еще раз проверить, откалибрована ли ваша ось X. Если это так, ХОРОШАЯ РАБОТА!! если нет, попробуйте еще раз. Когда вы это сделаете, давайте перейдем к оси Y.
Шаг 3. Шаг 3. Калибровка оси Y
Измерение значений оси Y
Это очень похоже на то, что мы уже делали. Единственная реальная разница заключается в том, чтобы найти другое место, чтобы приклеить ленту, чтобы отметить, как далеко перемещается ось Y. Сначала установите оси X, Y и Z. Затем переместите ось X, пока она не совпадет с самой внешней частью кронштейна вашего принтера (рисунок 1). Поместите кусок ленты по оси Y над точкой, отмеченной на оси X (рисунок 2). Скажите Репетье переместить ось Y на 70 мм. Теперь отметьте эту точку кусочком ленты и измерьте истинное расстояние между этими точками (рисунок 3). Я получил 69,8 мм, что недостаточно далеко. С этими двумя измерениями и нашим текущим значением M92 для Y мы теперь можем найти наше новое значение M92.
Расчет по оси Y и ввод данных
Желаемое движение = 70
Фактическое движение = 69,8
Текущее движение = 80
Используйте ту же формулу из шага 3, чтобы найти двигатель оси Y.
Желаемое перемещение/Фактическое перемещение * Текущее значение M92 = новое значение M92
70/69,8 = 1,00286533 (новое значение M92 должно составлять 100,29% от текущего значения M92)
Новое значение M92 = 1,00286533*80 = 80,23
Теперь давайте введем это число. В G:code введите новое значение M92, например: «M92 Y80.23», затем нажмите Enter. Затем введите «M500» в G:code и нажмите Enter. (это сохранит ваши измененные настройки). Затем в Gcode введите: «M501», прокрутите вверх свой журнал и убедитесь, что ваше новое значение M92 сохранено. Если это так, вы можете вернуться к началу этого шага и дважды проверить, что ваша ось Y теперь откалибрована. Если так, отлично! Если нет, попробуйте еще раз. Далее мы будем работать с осью Z.
Шаг 4. Шаг 4. Калибровка оси Z
Измерение по оси Z
Вместо цифровых измерителей для оси Z мы будем использовать линейку. Сначала разместите оси XY и Z. Затем поместите линейку перпендикулярно печатной платформе рядом с принтером. Переместите глаз так, чтобы он был на одном уровне с принтером, и обратите внимание на определенную точку вашего принтера (мне нравится использовать самую высокую часть кронштейна принтера). Убедитесь, что во время измерения ваш глаз находится на одном уровне с точкой измерения. У меня получилось 17,7 см. Теперь скажите принтеру поднять 100 мм. Посмотрите, как далеко на самом деле продвинулся ваш принтер. Мой вырос примерно до 27,75см. Если мы вычтем второе измерение из первого (27,75-17,7 см), мы получим 10,05 см или 100,5 мм. Таким образом, мы немного превысили нашу цель в 100 мм.
Вычисление и ввод нового значения для оси Z:
Снова мы используем ту же формулу из шага 3, чтобы решить для нашего двигателя оси Z.
Желаемое движение = 100
Фактическое движение = 100,5
Текущее значение M92 = 2044
Входное измерение/фактическое измерение * Старое значение M92 = новое значение M92
Новое значение M92 = 995024876 * 2044 = 2033,83
Теперь давайте введем это новое значение M92: в G:code введите новое значение M92, например: «M92 Z2037.89», затем нажмите клавишу ввода. В G:code введите: «M500», затем нажмите Enter. (это сохранит ваши измененные настройки). В Gcode введите: «M501». Теперь прокрутите свой журнал вверх и убедитесь, что новое значение M92 сохранено. Если это так, вы можете вернуться к началу этого шага и дважды проверить, что ваша ось Z теперь откалибрована. Если так Отличная работа! Остался еще один мотор!
Шаг 5. Шаг 5. Калибровка экструдера
Измерение значения E:
Теперь мы измерим и откалибруем, сколько нити выходит из вашего экструдера. Сначала нагрейте хот-энд до рекомендуемой температуры для вашей нити.Затем используйте карандаш, чтобы отметить несколько сантиметров на нити (вместо этого вы можете использовать ленту, чтобы отметить ее, только не забудьте удалить ее, прежде чем она застрянет в вашем экструдере). Измерьте, насколько далеко от экструдера находится метка. Затем скажите принтеру выдавить 10 мм нити. Снова измерьте расстояние.
Вычтите первое измерение из второго, чтобы найти фактическое измерение. У меня получилось 2,9-1,83 = 1,07 см или 10,7 мм
Если у вас получилось 10 мм, значит, ваше значение E откалибровано. Если нет, продолжайте искать новое значение M92.
Расчет нового значения M92 E:
Снова мы используем ту же формулу из шага 2, чтобы найти нашу ось Y.
Входное значение = 10Фактическое измерение = 10,7
Старое значение M92 = 104
Требуемое измерение/Фактическое измерение * Текущее значение M92 = Новое значение M92
Новое значение M92 = 104*0,934579. = 97,20
Теперь давайте введем это новое значение M92: в G:code введите новое значение M92 следующим образом: «M92 E97.2», затем нажмите клавишу ввода. В G:code введите: «M500», затем нажмите Enter. (это сохранит ваши измененные настройки). В Gcode введите: «M501». Теперь прокрутите свой журнал вверх и убедитесь, что новое значение M92 сохранено. Если это так, вы можете вернуться к началу этого шага и дважды проверить, что ваш экструдер теперь откалиброван. Если это так, отличная работа, вы закончили!
Читайте также: