Klipper или Marlin: В чем разница

Klipper против Marlin: Основные отличия

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

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

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

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

О прошивках

Разработчики Marlin обещают значительные улучшения и архитектурные изменения в Marlin 2.1
Разработчики Marlin обещают значительные улучшения и архитектурные изменения в Marlin 2.1 (Источник: X)

Marlin доминирует на рынке и он (или его аналог) используется в большинстве 3D-принтеров FDM. Marlin был разработан в 2011 году Erik van der Zalm для Ultimaker и предназначался для работы на доступных 8-битных микроконтроллерах Arduino.

Klipper был впервые выпущен в 2016 году Кевином О’Коннором и использует совершенно иной подход к управлению 3D-принтером. Понимая, что маленькие микроконтроллеры накладывают ограничения на возможности принтеров, Klipper перекладывает основную часть математических расчетов на более мощное устройство (обычно Raspberry Pi).

Теоретически это дает Klipper возможность реализовать более интенсивное и точное управление, что может означать более высокую скорость печати и более высокое качество печати. Однако Marlin в некоторой степени догнал Klipper, прежде всего, выпустив версию 2, которая поддерживала более мощные 32-битные контроллеры. Разработчики Marlin продолжали добавлять новые усовершенствования в версии 2.1 и последующих.

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

Архитектура

За кулисами сложный код, встроенный в микропрограмму, - вот что заставляет работать 3D-принтеры
За кулисами сложный код, встроенный в микропрограмму, заставляет работать 3D-принтеры (Источник: Marlin)

Marlin — это классическая реализация микропрограммного обеспечения. Она написана на C++ и может быть настроена на широкий спектр плат и принтеров. После компиляции и прошивки на контроллер, для работы ему требуется только клавиатура или поворотный ввод, а G-код он считывает локально с подключенного устройства чтения SD-карт. Marlin 2.0 был представлен в 2019 году с расширенной функциональностью, поддержкой дополнительных интерфейсных устройств, улучшенной стабильностью и возможностью поддержки 32-битных плат. Он по-прежнему может работать на 8-битных платах, хотя недостаток памяти означает, что некоторые функции могут быть исключены.

Хотя Klipper называют прошивкой и рассматривают как прямую альтернативу Marlin, на самом деле все немного сложнее. Принцип проектирования заключается в упрощении роли контроллера, чтобы он сосредоточился только на взаимодействии с шаговыми двигателями, нагревателями, датчиками ABL и так далее. Все детальные вычисления, связанные с преобразованием G-кода в движение принтера, выполняются на отдельном, более мощном компьютере. Как правило, это Raspberry Pi, хотя другие платы на базе Linux тоже подойдут.

Для этого прошивка Klipper (написанная на языке C) устанавливается на плату (или платы) контроллера вашего принтера, которая затем подключается к Raspberry Pi через USB. На Pi запускается программное обеспечение Klipper под названием «Klippy», написанное в основном на языке Python. Программа считывает G-код, выполняет необходимые вычисления и посылает контроллеру поток инструкций, синхронизированных с событиями для поддержания идеальной синхронизации.

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

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

Конфигурация
Как изменится ситуация с прошивками, если все больше плат контроллеров переходят на 32-битную архитектуру? (Источник: Aliexpress)

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

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

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

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

Простота установки

Klipper теперь имеет помощник для установки и обновления различных компонентов
Klipper теперь имеет помощника для установки и обновления различных компонентов (Источник: Rolohaun через YouTube)

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

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

Установка тех частей Klipper, которые работают на Raspberry Pi (или другом хост-устройстве на базе Linux), может быть более сложной. Ранние версии приобрели репутацию сложных и не очень подходящих для неопытных пользователей. Однако ситуация изменилась с улучшением документации и появлением Klipper Installation And Update Helper (KIAUH). Это простая программа, которая упрощает установку Klipper и других дополнительных компонентов.

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

Интеграция с дополнительными модулями

Mainsail - один из нескольких фронтэндов для прошивки Klipper
Mainsail является одним из нескольких фронтэндов для прошивки Klipper (Источник: Mainsail)

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

Дополнительные плагины OctoPrint могут добавить расширенную функциональность. Obico, ранее известный как Spaghetti Detective, автоматически отлавливает и останавливает неудачные отпечатки. Такие опции, как «исключить-область» и «отменить-объект», выборочно останавливают печать частично неудачных отпечатков.

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

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

Fluidd - один из популярных пользовательских интерфейсов для Klipper
Fluidd — другой популярный пользовательский интерфейс для Klipper

По этим причинам были разработаны специальные пользовательские интерфейсы для Klipper, такие как Fluidd и Mainsail, которые являются предпочтительным способом работы. Они предоставляют богатые панели управления на основе браузера, которые отображают информацию о выполняемых отпечатках и дают пользователям возможность изменять настройки Klipper и печати. Кроме того, доступны дополнительные функции (например плагины OctoPrint) и поддержка веб-камер.

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

Moonraker также предоставляет средства для интеграции других дополнений с Klipper. Obico является одним из вариантов, но есть также KlipperScreen, относительно новый и популярный способ взаимодействия с Klipper непосредственно через сенсорный экран (а не через браузер). Практически любой сенсорный экран, который можно подключить к Raspberry Pi, поддерживается, и это обеспечивает быстрый, отзывчивый способ управления 3D-печатью.

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

Изображение: Функциональность
Пользователи Klipper в восторге от функции Pressure Advance (Источник: Reddit)

Marlin и Klipper имеют одинаковые основные функции, но Klipper поддерживает несколько уникальных и расширенных возможностей.

  • Кинематика и разрешение: Klipper использует более сложную обработку движений и работает на более тонком уровне детализации. Он может выполнять гораздо больше шагов в секунду, чем Marlin, что позволяет повысить качество печати и, в частности, скорость печати.
  • Linear/pressure advance: В Marlin есть функция Linear Advance, позволяющая лучше управлять потоком экструдера и улучшать качество и резкость углов. Версия Klipper называется (Smooth) Pressure Advance. В ней используется несколько иной метод калибровки, который многие считают более простым в работе и точным. Более продвинутый алгоритм также повышает производительность. Стоит прочитать документацию по этой функции, так как она несовместима с некоторыми существующими настройками слайсера, например текучесть.
  • Input shaping: Когда-то это была уникальная функция Klipper, пока Marlin не выпустила версию 2.1.2 в 2022 году. Она способна (с помощью печати калибровочных отпечатков) устранять резонансы, которые проявляются в виде «рыбьей чешуи», звона и других повторяющихся артефактов. Klipper может делать это полуавтоматически, используя акселерометр, прикрепленный к печатающей головке, для точного измерения вибраций, которые становятся проблемой при увеличении скорости печати. Marlin, с другой стороны, использует более простые вычисления, которые могут потребовать более точной ручной настройки.
  • Несколько контроллеров: Это может показаться не очень важным, но для тех, кто действительно расширяет свои возможности, Klipper позволяет легко добавить несколько дополнительных шаговых двигателей или других периферийных устройств. Klipper может даже добавить сам Raspberry Pi в качестве контроллера и использовать его контакты GPIO для поддержки дополнительных внешних устройств.

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

Обновление

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

Что подходит именно вам?

Предсказать будущее 3D-печати всегда было сложно!
Предсказать будущее 3D-печати всегда было сложно!

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

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

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

Источник
Николай

Я всегда рад вашим комментариям, предложениям или новостям из первых уст.

Оцените автора
Добавить комментарий

  1. Фазинур Нурлыгаянов

    В принципе некорректно сравнивать две разные прошивки которые разрабатывались с учетом имеющихся у них вычислительных ограничений. Намного правильнее сравнивать марлиновский октопринт и клиппер так как оба используют дополнительные вычислительные мощности.
    Это все равно что сравнивать pentium и ryzen. В свои эпохи это были лучшие решения но в виду времени нашлись и более лучшие решения.
    Для 32 битных плат марлин будет лучше клиппера так как клиппер на голой плате тупо не будет работать. А для версии со связкой с rasberry pi лучше будет уже клиппер.

    Ответить
    1. Николай автор

      Спасибо за комментарий, это чем они отличаются (описание), а не сравнения, какая лучше

      Ответить
  2. WoofkaF

    Перестало плата видеть сд карту. Подключил к компу и старому ноуту. Печать стала лучше, чем с сд карты и 32 битной платы на Марине.

    Ответить