Программа marlin что это

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

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

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

1. Дабы упростить себе процесс настройки и траблешутинга.

2. Для использования в своем проекте «экзотических» устройств, типа измерителя толщины нити, умной подсветки, вытяжки и … (по секрету) экструдера выдавливания нити из гранул.

3. Возможности писать свои скрипты и вживлять их в прошивку, создавать собственные G-коды.

4. Прочее – подскажите в комментариях.

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

ПЕРВИЧНАЯ МИНИМАЛЬНАЯ НАСТРОЙКА 3D-ПРИНТЕРА. MARLIN

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

Уха из Марлина или разбираем прошивку по косточкам

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

Сразу определимся что файлы с расширением хххххх.h –это заголовочные файлы, в них определяются переменные, функции, процедуры. Кода в них практически нет. Код содержится в файлах с расширением xxxxxx.cpp.

Marlin.ino — это скетч для среды Arduino IDE. Используется в том случае, если в качестве платформы для принтера используется AVR-платформа. В моем случае это Arduino Mega

// Handle a known G, M, or T

switch (command_code)

case ‘G’: switch (codenum)

gcode_G0_G1();

Как раз здесь можно создать свой G-код. К примеру, G777. Добавляем:

и выше, рядом с другими обработчиками, добавляем подпрограмму его обработки:

inline void gcode_ G777 ()

У меня пока все. Может по косточкам пока не удалось разобрать, но на куски уже порезали… 😀

Если у кого есть более глубокие наработки по добавлению фич в прошивку – буду рад увидеть в комментах.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Источник: 3dtoday.ru

Как прошить и настроить 3D-принтер

Если вы используете свой 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. Рекомендуется сохранять копию не измененной версии прошивки на компьютере — это позволит сэкономить время, если придётся отказаться от отредактированного файла. После внесения изменений в файл конфигурации, новые значения следует сохранить, после чего можно приступать к перепрошивке.

Распространенные переменные параметры:

  • Тип платы контроллера (#define MOTHERBOARD BOARD_RAMPS_14_EFB) — бренд платы, на которую будет установлена новая прошивка;
  • Тип термистора (#define TEMP_SENSOR_0 5) — определение термистора, который измеряет температуру сопла;
  • Шаги / на мм (#define DEFAULT_AXIS_STEPS_PER_UNIT < 80, 80, 4000, 500 >) — определение количества шагов, которые должен совершить мотор для перемещения экструдера на 1 мм;
  • Максимальные значения температур (#define HEATER_0_MAXTEMP 285) — если при апгрейде 3D-принтера установлен экструдер, который позволяет работать с тугоплавкими пластиками, в прошивке следует указать верное значение максимальной температуры.

Установка прошивки: компиляция и загрузка

Установка прошивки на принтер осуществляется с компьютера, к которому 3D-принтер подключен. Важно понимать, что установка — это процесс создания (компиляция) исходного кода прошивки и её загрузка в микроконтроллеры управляющей платы. В программе (в приведённом на скриншоте примере — Marlin) необходимо указать модель платы (Arduino Mega 2560) и порт (подключенный 3D-принтер). Чтобы не ошибиться с портом, на момент перепрошивки лучше оставить подключенным только один 3D-принтер.

Затем необходимо скомпилировать файлы прошивки, то есть — перевести понятный человеку код в бинарный. Это автоматический процесс. Если всё было сделано верно, будет создан файл для загрузки на принтер. В противном случае программа выдаст сообщение об ошибке, что потребует изменения параметров конфигурации или повторного компилирования не отредактированной версии прошивки.

Скомпилированную прошивку загружают на 3D-принтер. Процесс загрузки занимает несколько минут, после чего 3D-принтер автоматически перезагрузится.

Популярные прошивки для 3D-принтера

Marlin — популярная прошивка для 3D-принтеров, совместимая с 8- и 32-битными платами. Прошивка предоставляет пользователю широкий диапазон настроек. Например, для контроллера интерфейса дисплея предусмотрен выбор из 30 языков. С сайта проекта можно скачать последнюю и несколько прошлых версий прошивки.

Repetier-Firmware — прошивка от команды, создавшей популярный слайсер Repetier-Host. Совместима с 8-битными платами и с 32-битными платами с контроллерами AVR (Arduino Due и RADDS). Есть поддержка онлайн-редактирования файла конфигурации.

RepRap Firmware — прошивка, разработанная для 32-битных микросхем на базе контроллеров AVR.

Читайте также:
Социально культурная программа что это

Smoothieware — подобно прошивке RepRap, Smoothieware работает только на ограниченном количестве плат, основными из которых являются Smoothieboard и Azteeg X5 Mini.

Итоги

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

Источник: top3dshop.ru

Marlin против Klipper: выбираем прошивку для 3D-принтера

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

Marlin против Klipper: выбираем прошивку для 3D-принтера

Marlin появился в 2011 году и с тех пор остается самой распространенной прошивкой FDM 3D-принтеров. Первая версия Marlin разработана нидерландским инженером-программистом Эриком ван дер Залмом для аддитивных систем от Ultimaker и различных ЧПУ-станков, но быстро получила широчайшее распространение в 3D-принтерах от других производителей. Изначально прошивка была рассчитана на работу в связке с недорогими 8-разрядными микроконтроллерами Arduino, но в текущем виде поддерживает и 32-битные платы.

Klipper появился пять лет спустя, в 2016 году. Разработкой этой прошивки занимался Кевин O’Коннор, решивший, что производительность пора повышать. Так как вычислительных мощностей бортовых микроконтроллеров в то время не хватало для имплементации продвинутого функционала, Кевин решил задействовать дополнительные, внешние процессоры. Как правило, в этой роли используются микрокомпьютеры Raspberry Pi, хотя подойдет любая аналогичная плата на Linux.

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

В 2019 году текущая команда разработчиков Marlin решила отыграться и выпустила прошивку второго поколения. Этот вариант поддерживает новые, более мощные 32-разрядные платы, позволяющие конкурировать с Klipper в плане производительности и продвинутого функционала.

Архитектура

Marlin против Klipper: выбираем прошивку для 3D-принтера

Marlin написан на языке C++ и совместим с широким спектром плат и 3D-принтеров. После компиляции и загрузки в контроллер для управления достаточно клавиатуры или энкодера, а машинный код (G-код) считывается с карт памяти — обычно SD или Micro SD.

Прошивка Klipper написана на языке С и загружается в бортовой контроллер, а контроллер подключается к внешнему компьютеру, например Raspberry Pi, через USB. На Raspberry Pi, в свою очередь, устанавливается программа Klippy, по большей части написанная на языке Python. Эта программа считывает подготовленный в слайсере G-код и проводит необходимые вычисления на Raspberry Pi, затем посылает синхронизированный поток команд на бортовой контроллер, а тот уже управляет электрическими и электромеханическими компонентами 3D-принтера.

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

Конфигурация

Marlin против Klipper: выбираем прошивку для 3D-принтера

Для того чтобы изменить конфигурацию Marlin, необходимо внести изменения в один или два специальных файла — configuration.h и configuration-adv.h. Эти файлы содержат директивы компилятора, то есть сообщают компилятору, что необходимо сделать для сборки прошивки.

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

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

Установка

Marlin против Klipper: выбираем прошивку для 3D-принтера

Установка или обновление настроенной и скомпилированной прошивки Marlin на целевой контроллер обычно осуществляется с помощью USB-кабеля или SD-карты. Традиционно процесс выполнялся через среду Arduino IDE, но для 32-битных плат это обычно делается с помощью платформы PlatformIO с привязкой к VSCode. Разработчики Marlin подготовили удобные пошаговые инструкции.

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

Установка компонентов Klipper на Raspberry Pi или другие хост-устройства на базе Linux может быть более сложной задачей. Ранние версии пользовались репутацией сложных и не очень понятных неопытным пользователям, но ситуация заметно улучшилась после появления улучшенной документации и вспомогательной программы KIAUH, созданной специально для установки и обновления компонентов Klipper.

Еще один популярный вариант — использование образов Raspberry Pi с предварительно установленной операционной системой и вспомогательными утилитами. Наиболее распространенные — MainsailOS и FluiddPi для наиболее популярных пользовательских интерфейсов Klipper (описанных ниже). Также существуют предварительно настроенные образы для разных семейств 3D-принтеров. Установка в этом случае сводится к переносу образа на SD-карту и выполнению нескольких простых шагов настройки.

Читайте также:
Модифицированная программа дополнительного образования что это

Интеграция с надстройками

Marlin против Klipper: выбираем прошивку для 3D-принтера

Для многих пользователей надстройка Marlin дополнительным программным обеспечением, таким как OctoPrint, стала обязательной. Marlin и OctoPrint — мощная комбинация, обеспечивающая возможность удаленного управления 3D-принтером и наблюдения в режиме реального времени с помощью камеры.

Подключаемые модули OctoPrint обеспечивают и другой интересный функционал. Например, утилита Obico, ранее известная как Spaghetti Detective, автоматически отслеживает появление «вермишели» и останавливает 3D-печать, чтобы филамент не тратился впустую.

OctoPrint связывается с прошивкой Marlin через USB, используя строки команд G-кода. Также предоставляется богатый браузерный интерфейс: его можно установить либо вручную, как любую другую программу, работающую на Raspberry Pi, либо как часть полного образа Raspberry Pi под названием OctoPi.

Klipper изначально разработан с учетом возможности использования OctoPrint в качестве пользовательского интерфейса. Модуль OctoKlipper также предлагает различные специальные функции, совместимые с Klipper, но следует иметь в виду, что OctoPrint тоже потребляет ресурсы Raspberry Pi, отбирая вычислительные мощности у Klipper, и может вызывать сбои при перехвате G-кода. По этим причинам разработаны специальные, зачастую более предпочтительные пользовательские интерфейсы для Klipper, такие как Fluidd и Mainsail — тоже с управлением через браузер, подробной информацией о параметрах печати, богатым выбором настроек и поддержкой веб-камер.

Пользовательские интерфейсы подключаются через Moonraker — интерфейс программирования (API), позволяющий взаимодействовать с Klipper и работающий на той же аппаратной платформе, например Raspberry Pi. Все это можно установить вручную с помощью KIAUH или как часть образов Raspberry Pi, упомянутых в предыдущем разделе.

Moonraker также предоставляет средства интеграции других надстроек с Klipper. Вышеупомянутая Obico — это один из вариантов. Еще одна полезная программа — KlipperScreen для взаимодействия с Klipper напрямую через интерфейс с сенсорным экраном, а не через браузер. Поддерживаются практически любые сенсорные экраны, которые можно подключить к Raspberry Pi.

Функциональность

Marlin против Klipper: выбираем прошивку для 3D-принтера

Результат использования функции гашения вибраций (справа)

На базовом уровне Marlin и Klipper предлагают аналогичный функционал, но Klipper обладает несколькими уникальными, продвинутыми способностями.

Кинематика и разрешение. Klipper использует более сложные алгоритмы позиционирования и позволяет добиваться более высокой детализации. Он может выполнять больше шагов в секунду, чем Marlin, что может благоприятно отражаться на качестве и скорости печати.

Линейное продвижение/подача под давлением. Marlin имеет функцию линейного продвижения (Linear Advance), обеспечивающую более точный контроль подачи расплава, что позволяет выстраивать более четкие углы. Версия этой функции в Klipper называется плавным повышением давления (Smooth Pressure Advance). В Klipper используется более простой и точный метод настройки этой функции, а продвинутые алгоритмы повышают производительность. Минус в том, что функция Pressure Advance несовместима с некоторыми другими, например укладкой расплава по инерции.

Гашение вибраций. В Klipper есть функция Input Shaping, позволяющая компенсировать вибрации при позиционировании головки, вызывающие «звон» на поверхностях изделий. Делается это автоматически с помощью акселерометра, установленного на каретку 3D-принтера. Эта функция позволяет печатать на более высоких скоростях без потери качества.

Поддержка нескольких контроллеров. Klipper способен работать сразу с несколькими контроллерами, что может быть полезно в тех случаях, когда необходима установка дополнительных шаговых двигателей или периферийных устройств за пределами возможностей одной платы. Klipper даже может использовать в качестве контролера сам Raspberry Pi с поддержкой дополнительных устройств через контакты интерфейса ввода/вывода общего назначения (GPIO).

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

Что мы имеем в итоге

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

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

Источник: rec3d.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru