Как прошить 3д принтер
Если вы используете свой 3D-принтер достаточно долго, то наверняка знаете его достоинства и недостатки. Если недостатки становятся ощутимыми со временем, существует вероятность, что ваш принтер нуждается в апгрейде, перенастройке и перепрошивке.
Читайте эту статью, чтобы узнать о том, как перепрошить 3D-принтер и вернуть ему способность бесперебойно работать.
Содержание
Что такое «прошивка 3D-принтера»?
Прошивка — это «интеллект» 3D-принтера, его основная программа, что позволяет обработать команды G-code, полученные из слайсера, реализовав его в конкретные действия и характеристики действий, выполняемых аппаратной частью 3D-принтера. Например, программное обеспечение отправляет команду G-code «G1 X50 Y50». Прошивка 3D-принтера определяет полярность, напряжение и продолжительность импульса на моторы, необходимые чтобы переместить экструдер на X = 50 мм и Y = 50 мм, после чего прошивка отправляет электрические сигналы к этим моторам. Таким же образом прошивка преобразует команды G-code в действия кулера, нагревателей и других элементов 3D-принтера.
Методика перепрошивки принтера сравнима, например, с ручной перепрошивкой смартфона. Если вы занимались подобной работой, то знаете, сколько нервов и времени может потребоваться для получения идеального результата. Если вам не приходилось заниматься столь специфическими задачами, то для перепрошивки принтера следует обратиться к опытному специалисту, либо внимательно изучить опыт коллег и строго следовать их инструкциям.
Перенастройка, перепрошивка или апгрейд: что выбрать?
Если стабильность работы 3D-принтера стала ухудшаться со временем, не следует сразу начинать с перепрошивки устройства. Нельзя исключать, что типовые проблемы с оборудованием, такие перегрев экструдера, перегрев материнской платы и драйверов вызваны механическими неполадками и износом, вроде обрыва связи между элементами, что подключены через шлейфы, засоров сопел, загрязнения экструдера, изнашивания составных частей принтера, ослабления винтовых соединений и растяжения приводных ремней. Достаточно устранить источник проблемы и стабильность работы оборудования будет восстановлена.
Но бывают случаи, когда в 3D-принтере не хватает необходимых функций или элементов. Это может быть нагревательный стол для принтера Wanhao i3 mini, камера для Anycubic Chiron или HEPA-фильтр для фотополимерного принтера Anet. В таком случае можно оснастить ваш принтер дополнительным оборудованием: вентиляторами, моторами, нагревателями и термодатчиками. Поставить новый элемент не составляет труда, а как управлять новыми элементами? Для этого потребуется перепрошить принтер.
Также перепрошивка может решать типовые проблемы, возникающие при неполадках в ПО:
Если 3D-принтер зависает в процессе выполнения печати, особенно, если это происходит при одинаковых условиях (высокая скорость печати, начальный этап работы);
Если требуется апгрейд и замена старой платы управления на более новую, которая не совместима с текущей версией прошивки.
Определение платы и версии прошивки принтера
Перед началом перепрошивки 3D-принтера необходимо установить производителя платы контроллера. Эта информация выгравирована или нанесена непосредственно на самой материнской плате. Чаще всего в бюджетных FDM 3D-принтерах установлены платы Arduino. Также встречаются аппараты, которые построены на базе плат Smoothie, BeagleBone и Duet, а также собственных электронных компонентах разработки производителя принтера. Производители плат публикуют самые свежие версии прошивок на своих официальных сайтах. Например: Arduino, Wanhao 3D printer, Phrozen.
Следует учесть, что установка стороннего ПО из неизвестных источников может привести к поломке оборудования и совершенно точно приведет к потере гарантии.
Для экспериментов с прошивкой рекомендуем использовать дополнительно приобретенный контроллер, который не будет жалко и потеря которого не оставит вас без 3D-принтера.
Прошивку заводских плат рекомендуется только обновлять, по мере появления новых версий на официальном сайте. Однако, даже при появлении свежей версии, перепрошивка может быть излишней. Как показывает практика, если 3D-принтер исправно выполняет свои задачи, то не стоит ему мешать. Народная мудрость гласит: «Не чини то, что не сломано».
Также, разумеется, необходимо совершенно точно знать, что прошивка подходит к данному контроллеру. Такую информацию можно найти на сайте производителя принтера или платы, а также на форумах пользователей данного принтера.
Изменение параметров принтера
Когда новая версия прошивки скачана на компьютер, пользователь не может вручную внести правки в файл конфигурации. В исходных кодах Marlin и Repetier редактируемые файлы имеют особое расширение, например .h. Рекомендуется сохранять копию не измененной версии прошивки на компьютере — это позволит сэкономить время, если придётся отказаться от отредактированного файла. После внесения изменений в файл конфигурации, новые значения следует сохранить, после чего можно приступать к перепрошивке.
Распространенные переменные параметры:
Установка прошивки: компиляция и загрузка
Установка прошивки на принтер осуществляется с компьютера, к которому 3D-принтер подключен. Важно понимать, что установка — это процесс создания (компиляция) исходного кода прошивки и её загрузка в микроконтроллеры управляющей платы. В программе (в приведённом на скриншоте примере — Marlin) необходимо указать модель платы (Arduino Mega 2560) и порт (подключенный 3D-принтер). Чтобы не ошибиться с портом, на момент перепрошивки лучше оставить подключенным только один 3D-принтер.
Скомпилированную прошивку загружают на 3D-принтер. Процесс загрузки занимает несколько минут, после чего 3D-принтер автоматически перезагрузится.
Популярные прошивки для 3D-принтера
RepRap Firmware — прошивка, разработанная для 32-битных микросхем на базе контроллеров AVR.
Smoothieware — подобно прошивке RepRap, Smoothieware работает только на ограниченном количестве плат, основными из которых являются Smoothieboard и Azteeg X5 Mini.
Итоги
Перепрошивка 3D-принтера возможна для большинства моделей, работающих по технологии FDM/FFF, и необходима, если в работе выявлена неисправность, обусловленная некорректной работой электроники, или проводится апгрейд аппаратной части. Перед началом работы пользователю необходимо выяснить, какой тип платы контроллера установлен в 3D-принтере. Затем следует найти совместимую прошивку, которая и будет загружена на устройство.
Купите новый 3D-принтер в Top 3D Shop и вам долго не понадобится делать перепрошивку, при возникновении же такой необходимости — сотрудники нашей техподдержки помогут вам.
Перед тем как приступить к калибровке необходимо подготовить и загрузить прошивку. От программы, по которой работает принтер, зависит качество и надежность печати.
Как я писал ранее, в качестве внутреннего ПО был выбран проект 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.
УПРАВЛЯЮЩАЯ ПРОГРАММА
Цена: 50 руб.
------------------------------------------ Терморезистор 10 кОм 1%:
Цена: 50 руб.
------------------------------------------
3d печать на заказ:
Печать на 3D принтере
Заливаем прошивку в 3D принтер. Прошивка Marlin.
Февраль 21st, 2013 SamИтак, вы собрали принтер, спаяли электронику, все включили, что делать дальше?
Само приложение выглядит следующим образом (установка не требуется, надо только распаковать архив):
программа для заливки прошивки Arduino
Подключаем плату Arduino к компу и выбираем в программе порт, к которому подключено устройство. Обычно это делает сама программа, но бывают сбои и приходится вручную выбирать порт.
arduino выбор порта
Хоть плата и подключена к USB, но определяется как com-порт.
Далее выбираем тип платы (проца) из списка:
arduino выбор типа платы
Далее происходит коннект и можно загружать прошивку.
Надеюсь вы уже скачали прошивку Marlin. Архив надо распаковать. В IDE Arduino открываем файл marlin.pde.. Вы должны увидеть следующую картину:
arduino загрузка прошивки
Среди закладок видно все файлы, которые входят в проект. Просто так заливать прошивку бессмысленно, в ней надо указать тип нашей платы. Так, переходим в закладках в файл configuration.h и на 10 строчке видим все типы плат, которые поддерживаются прошивкой:
arduino настройка прошивки
Кому не терпится запустить принтер на этом можно закончить настройку прошивки, но только в том случае, если у вас стоят все концевые датчики (6шт), экструдер имеет датчик температуры и есть нагревательный стол.
Записываем изменения с помощью кнопки сохранить
(кэп-очевидность )
Далее тестируем получившуюся прошивку на предмет косяков следующей кнопкой:
arduino проверка прошивки
Процесс по времени занимает от 10 сек до 1 минуты в зависимости от скорости компа.
Если нет никаких ошибок, заливаем все в нашу Arduino другой кнопкой:
arduino заливка прошивки
На этом с прошивкой покончено, можно запускать управляющую программу. Но об этом я расскажу в следующей статье
Понравилась статья? Получай обновления блога на e-mail:Небольшой мануал по конфигурированию прошивки 3D принтера Creality3D CR-10S. Писал его для себя, как шпаргалку. Буду рад, если мои инструкции пригодятся кому-то еще.
Для тех, кто не хочет разбираться в тонкостях настройки прошивки, можно воспользоваться уже готовыми пакетами обновления. Инструкция, как это сделать находится здесь – Как просто прошить 3D принтер Creality CR-10S
В принтере Creality 3D CR10S используется прошивка Marlin. Ее отличительная особенность – открытый исходный код. Это позволяет пользователю производить тонкую настройку параметров принтера. Я несколько дней изучал этот вопрос и теперь попытаюсь собрать и систематизировать информацию в этой статье.
- Скачиваем необходимое программное обеспечение и прошивку.
- Редактируем прошивку под наш принтер.
- Компилируем hex файл.
- Подсоединяем принтер к компьютеру и загружаем прошивку.
ПО и прошивка для 3D принтера
Подготовительные работы:
1. Устанавливаем Arduino IDE. Стандартная процедура, описывать не буду.
2. Устанавливаем библиотеку U8glib в Arduino IDE.
3. Заходим в папку прошивки: …\Marlin-1.1.x\Marlin\
Готовые файлы конфигурации для принтера CR-10S находятся здесь: …\Marlin-1.1.x\Marlin\example_configurations\Creality\CR-10S\
Для адаптации прошивки под наш принтер необходимо скопировать файлы из папки …\Marlin-1.1.x\Marlin\example_configurations\Creality\CR-10S\ в папку …\Marlin-1.1.x\Marlin\ с заменой.
4. Открываем файлы прошивки в Arduino IDE.
Файл > Открыть > Marlin-1.1.x\Marlin\Marlin.ino
5. Переходим на вкладку Configuration.h и начинаем редактирование конфигурации под себя.
Для удобства включите показ номеров строк в редакторе кода: Файл > Настройки > Показать номера строк.
Файл Configuration.h
В кавычках можно написать что угодно. Эта информация будет отображена на мониторе принтера в главном меню.
Максимальная температура на хотэнде. На стоковой прошивке можно было ставить 260 градусов, а может и больше. Здесь эта цифра ограничена 250 градусами.
Стал разбираться с этой информацией. На официальном сайте ничего не нашел. В других источниках максимальная температура для принтера CR10S указывается в пределах 250-270 градусов.
Нашел интересную информацию. Оказывается, трубка PTFE, по которой направляется пруток, при температуре 260 градусов начинает плавиться, выделяя токсичные газы. Именно по этой причине устанавливают предел в 250 градусов. Эта информация не проверена, если вам есть что добавить напишите об этом в комментариях.
Я выставил 260 градусов, но стараюсь не выходить за пределы 250-и градусов.
Параметр указывает максимальную температуру стола. На официальном сайте такой информации нет. Из других источников можно найти цифру – 90 градусов.
Я установил 80 градусов, т.к. для всех моих пластиков этой температуры вполне достаточно.
Эти строки включают защиту от перегрева на экструдер и стол. Они не закомментированы, а это значит, что защита включена.
Очень важный параметр, который помогает настроить точность печати, а также повысить ее качество. Цифры показывают, сколько шагов нужно сделать шаговому двигателю, чтобы обеспечить перемещение на один миллиметр.
Первые три цифры параметра относятся к осям X, Y, Z соответственно. Третий параметр отвечает за подачу пластика.
Каждое значение – результат расчета, в котором связаны параметры двигателя и механической передачи. Для того чтобы обеспечить высокую точность печати, необходимо откалибровать каждый параметр.
Я изменил только последнюю цифру (подача прутка). Точность перемещения по осям X, Y, Z меня вполне устраивает.
Как производить калибровку можно найти в интернете, по этой теме много толковых статей.
Указывает максимальную скорость перемещения по осям. На официальном сайте указанна скорость в 100 мм/с. Из других источников нашел цифру в 200 мм/с.
В прошивке стоит 300 мм/сек. Я взял среднее значение – 250 м/сек.
Определяет ускорения при движении. Если поставить большое значение, то увеличится скорость печати, но есть риск смещения слоев. По умолчанию, для нашего принтера, стоит значение 575.
Я сменил колесики на линейные направляющие, чем заметно утяжелил стол. Мне пришлось снизить это значение до 500, чтобы избежать эффект смещения слоев.
Ускорения при ретракте. По умолчанию стоит 1000. Я нашел информацию, что на значении 500 заметно убирается паутина.
Ускорение движения на холостые перемещения, т.е. когда принтер не печатает. По умолчанию стоит 1000. Говорят, что на значении 500 заметно снижается шум. Я поставил это значение, но какого-то эффекта не заметил.
Эти строки определяют направление движения шаговых двигателей. Обычно, эти значения трогать не нужно. Но я заменил шаговые двигатели на более мощные, и мне пришлось внести некоторые изменения в эти параметры.
Комментируем эту строку. Можно выбрать только один способ калибровки.
Функция полезна для тех, кто не пользуется датчиками для калибровки уровня стола. Теперь калибровка будет проходить по 9-и точкам. Для каждой точки, с помощью энкодера («крутилки» возле экрана), можно выставить свой уровень нуля. Это позволит печатать на кривом столе.
Убираю «//» из строки. Параметр отвечает за чувствительность регулятора (энкодера) управления. Настраивается индивидуально.
Многие советуют ставить значение в единицу. Но я с такой чувствительной настройкой не совладал, уж очень быстро все перемещается.
Убираю «//» из строки. Используйте эту опцию, чтобы переопределить чувствительность «крутилки» управления при переходе между меню. Цифра указывает число импульсов на переход к следующему пункту меню. Настраивается индивидуально. Я остановился на тройке, не помню, что было по умолчанию.
На этом настройки в файле Configuration.h завершаю.
Настройка Configuration_adv.h
Эту строку комментирую.
Как понял, этот параметр активирует алгоритм перемещения рабочего инструмента по окружности. В обычном случае идет аппроксимация, т.е. разбиение окружности на отрезки. Полистал форумы и понял, что эта функция в 3D печати пока не поддерживается. Ее рекомендуют отключить для экономии памяти.
Настройка PINS_RAMPS.H
Здесь настраиваем контакты на плате.
Переназначаем правильный контакт на датчик прутка.
Эти пины не используются на нашей плате.
Компиляция файла прошивки
Вообще прошивку можно загружать сразу из Arduino IDE. Но я компилирую HEX файл и только затем загружаю его в принтер.
- В Arduini IDE выбираю плату для прошивки: Инструменты > Плата > Arduino/Genuino Mega or Mega 2560
- В Arduini IDE выбираю процессор: Инструменты > Процессор > ATMega2560
- В Arduini IDE нажимаю на Скетч > Экспорт бинарного файла
Если все пройдет удачно, то в папке с прошивкой появится новый файл – Marlin.ino.mega.hex
Как загрузить этот файл в принтер я описывал здесь, повторяться не буду.
При компиляции прошивки столкнулся с проблемой зависания Arduini IDE. Приходилось запускать процесс несколько раз, чтобы получить нужный результат.
Читайте также: