О прошивке Klipper вы уже слышали: она быстрая, эффективная и решает проблемы с печатью! Узнайте, как ее установить и как отличить слухи от истины.
Микрокомпьютер Raspberry Pi 5 На борту Raspberry Pi 5 уже есть четыре порта USB, беспроводные интерфейсы Wi-Fi/Bluetooth и полноценный гигабитный Ethernet, чтобы сразу приступить к работе.
Если вы знакомы с миром 3D-печати, то наверняка слышали о Klipper — прошивке с открытым исходным кодом, которая включает в себя частоту шейпера, настройку ПИД-регулятора и калибровку Z offset, а также другие практические функции для улучшения качества 3D-печати.
Установка Klipper может быть, мягко говоря, полезной и именно об этом мы расскажем в данной статье. Учитывая это, данное руководство будет длинным. Оно должно быть длинным из-за сложного характера прошивки и необходимости понимания того, что нужно настроить для работы Klipper.
Там, где это возможно, мы постараемся объяснить, почему вам нужна та или иная информация или выполнить проверку, прежде чем двигаться дальше. Поскольку обзор такого масштаба не может ответить на все возможные вопросы, вы также можете получить помощь в очень активном Klipper Discord, на официальных форумах Klipper.
В связи с тем, что процесс установки и настройки Klipper очень длительный и сложный, мы рекомендуем сначала прочитать данную инструкцию от начала до конца. Дайте себе возможность ознакомиться с понятиями, которых вы, возможно, не знаете. Это будет очень полезно в дальнейшем, когда вы будете работать над установкой, поскольку вы не будете отвлекаться на поиск информации, а также избежите непонимания и необходимости возвращаться назад.
Итак, давайте начнем с более детального рассмотрения того, что представляет собой Klipper, а затем рассмотрим, что потребуется для его установки и пройдем через весь учебный процесс.
- Что такое Klipper
- Что именно делает прошивка в 3D-принтере?
- Чем отличаются Klipper, Marlin и RepRap?
- Преимущества и недостатки
- Установка KLIPPER
- Подготовка
- Параметры принтера
- Прошивка Klipper на Raspberry Pi
- Прошивка Klipper на материнскую плату принтера
- Настройка Klipper для работы с оборудованием
- Заключение
Что такое Klipper

Прежде чем приступить к установке Klipper, давайте рассмотрим основные принципы его работы. Это важно понимать, поскольку от этих понятий будет зависеть, поможет вам Klipper или нет.
Итак, начнем с первого определения того, что такое Klipper: встроенная прошивка 3D-принтера.
Что именно делает прошивка в 3D-принтере?
Возможно, вы уже имеете интуитивное представление о том, что такое прошивка и аппаратное обеспечение. Прошивка — это код, который можно легко изменить, а аппаратное обеспечение — это что-то осязаемо физическое, например микросхема интегральной схемы. Встроенное ПО — это та маленькая неуловимая часть программного обеспечения, которая зависит от реального аппаратного обеспечения. То есть это код, который зависит от электронного оборудования и обеспечивает его базовую функциональность.
В 3D-принтере прошивка отвечает за управление поведением шаговых двигателей, концевиков, нагревателей и вентиляторов. Все электронные функции принтера управляются с помощью кода прошивки. Она действует как «мозг» вашего устройства.
Прошивки 3D-принтеров с открытым исходным кодом опираются на параметры конфигурации для корректного выполнения этих задач в соответствии с аппаратной частью принтера. Проприетарные микропрограммы могут работать по-другому, но если вы не являетесь их автором, вы не можете этого знать. Необходимо знать, какой микроконтроллерный блок (MCU) управляет последовательностью событий и входов в реальном времени, какие параметры шагового драйвера используются, какие конечные остановки стоят на тех или иных входах, а также параметры ПИД-нагревателей, заданные в конфигурационном файле. Это справедливо независимо от того, какая у вас прошивка — Klipper, Marlin или RepRap. Отличается лишь форма конфигурационного файла и способ передачи конфигурации в прошивку.
Давайте кратко рассмотрим, чем Klipper отличается от Marlin и RepRap.
Чем отличаются Klipper, Marlin и RepRap?

Marlin, один из основных лидеров в области 3D-печати с открытым исходным кодом, основан на платформе программирования микроконтроллеров Arduino. Конфигурационный файл обычно делится на два файла — «configuration.h» и «configuration_adv.h». Эти файлы используются фреймворком Arduino для записи жестких значений в формируемую программу, хранящуюся в бортовой памяти контроллера. Таким образом, если вы захотите изменить направление вращения или подключить один шаговый двигатель, то вам придется изменить конфигурационный файл, перекомпилировать прошивку и заново загрузить ее на плату. Это также означает, что количество доступных функций ограничено объемом памяти контроллера.
Прошивка RepRap, используемая в основном на платах Duet, несколько отличается. Конфигурация представляет собой серию пользовательских инструкций G-кода, которые хранятся на SD-карте вместе с прошивкой и при каждом запуске контроллера загружается прошивка, а затем считывается файл инструкций G-кода для загрузки конфигурации в память. Это устраняет проблему ограничения памяти в Marlin. При этом конфигурация машины полностью написана в G-коде, поэтому ее сложнее прочитать человеку, не привыкшему к такому языку.
С другой стороны, Klipper — это не просто прошивка. Она уникальна в мире 3D-печати тем, что наиболее сложные фрагменты кода работают на стандартной установке Linux, написанной на языке Python, который любой может легко научиться читать и модифицировать и эта часть называется Klippy. Klippy работает на любом компьютере, но чаще всего на Raspberry Pi. В Klipper также есть компонент микропрограммы (также называемый компонентом MCU Klipper), который загружается в контроллер, но он гораздо проще. Контроллер всегда находится в последовательной связи с Python-кодом.
Конфигурация для Klipper находится в формате Yaml и читается только Klippy. Файл конфигурации гораздо проще для чтения, чем G-код RepRap и имеет имена, которые часто менее запутаны, чем файл «configuration.h» Marlin. Поскольку Klippy работает как программа на компьютере, можно очень быстро редактировать и перезапускать программу, не перезапуская принтер или компьютер, то есть изменения конфигурации становятся активными в считанные секунды. Если что-то становится непонятным, встроенные комментарии и онлайновая документация подробно разъясняют, что они означают и как получить нужное значение для того или иного параметра.
Преимущества и недостатки

Теперь, когда мы поняли, как на самом деле работает Klipper, давайте рассмотрим преимущества и недостатки, которые он привносит в слой встроенного программного обеспечения 3D-принтера.

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

Установка Klipper может потребовать предварительных действий. В зависимости от того, будет ли использоваться имеющееся оборудование или модернизирование системы с заменой платы контроллера.
Имеющееся оборудование
Чтобы запустить Klipper на существующем оборудовании, необходимо точно определить, какое именно оборудование у вас имеется. Например, если у вас принтер Creality, вы можете определить плату Creality по номеру версии, который на ней напечатан. Аналогичные методы и поиск в Google помогут при работе с другими марками и контроллерами. Некоторые контроллеры могут быть не документированы или по каким-либо причинам не работать. В таких случаях придется покупать не только одноплатный компьютер типа Raspberry Pi, но и новую материнскую плату для принтера. В этом случае необходимо провести поиск нового оборудования.
Новое оборудование
Прежде чем покупать что-либо, лучше всего поискать наиболее подходящую электронику для работы Klipper. Конечно, понадобится компьютер под управлением Linux — обычно рекомендуется использовать Raspberry Pi или Orange Pi из-за компактности и стоимости.. Плат контроллеров совместимых с Klipper, существует великое множество, но выбрать подходящую не так-то просто. Некоторые из них хороши, некоторые плохи. Прежде чем выкладывать деньги, поищите информацию в интернет-сообществах, на форумах и в документации производителя.
Убедитесь, что вы понимаете, как подключен ваш принтер. Например, некоторые принтеры используют два двигателя на оси Z, но с одним драйвером для обоих, а не с отдельными каналами для каждого двигателя. Проверьте совместимость интерфейсов дисплея (USB, одинарный или двойной 8-контактный разъем), а также проверьте, знаете ли вы, куда идут отдельные провода на старой и новой платах. Особенно важен порядок подключения шаговых двигателей, Z-датчика и вентиляторов, так как для этих компонентов важна полярность. Датчики температуры, если только у вас нет платы с термопарой или усилителем PT100, не зависят от полярности. Сравните тип имеющихся у вас разъемов с новой платой.
Теперь вы знаете, на чем будет работать Klipper. Вы определили, какая это плата микроконтроллера и знаете, как отсоединить, переподключить и подключить все элементы принтера к новой плате.
Параметры принтера

Далее необходимо определить, какой тип 3D-принтера у вас имеется. Является ли он декартовым принтером со столом в стиле Prusa i3? Имеет ли он кинематику CoreXY или конструкцию Delta или это более эзотерическая кинематическая установка Core-XZ? Кроме роботизированных манипуляторов, Klipper поддерживает все кинематические схемы коммерческих 3D-принтеров.
После этого необходимо записать, какие типы датчиков использует ваш принтер: механические или оптические концевики? Имеется ли датчик выравнивания стола, особый тип датчика температуры хотенда и стола, возможно для закрытого корпуса или отсека электроники?
Проверьте пределы аппаратных возможностей принтера. Помимо скорости, ускорения и точности, более важными аспектами являются допустимые температуры — какова максимальная температура хотенда или стола? Какого диаметра сопло установлено, какой максимальный поток экструзии оно может выдержать?
Наконец, сбор информации заканчивается после определения количества отдельных осей, которые необходимо контролировать. Как правило, на каждый шаговый двигатель приходится по одной оси. Иногда их количество может быть меньше, если два или более двигателя соединены вместе.
Прошивка Klipper на Raspberry Pi

Итак, теперь у нас есть все необходимые знания, чтобы приступить к установке Klipper. Как же это сделать? В данной инструкции мы предполагаем использование Raspberry Pi 3 или 4 и платы контроллера по вашему выбору, подключенной к Pi через USB. Также предполагается, что Pi подключен к сети Wi-Fi или Ethernet и вы знаете, как определить IP-адрес (обычно это делается через интерфейс на маршрутизаторе или с помощью сетевого сканера).
- Сначала возьмите MicroSD, которую вы будете использовать для Raspberry Pi и подключите ее к компьютеру. Помните, что все данные на ней будут потеряны. Если на ней есть нужные вам данные, сделайте их резервную копию. Затем скачайте и установите программу Pi Imager и запустите ее.
- После запуска нажмите кнопку «Choose OS», прокрутите вниз до пункта «Other specific-purpose OS», выберите «3D printing» затем «Mainsail OS». Mainsail — это веб-интерфейс, специфичный для Klipper. Выбор 32- или 64-разрядной версии остается за вами, хотя в настоящее время рекомендуется использовать 32-разрядную версию.
- Вернувшись в главное окно, нажмите кнопку «Choose Storage» и убедитесь, что выбрана SD-карта.
- Прежде чем нажать кнопку «Write», щелкните на шестеренке настроек в правом нижнем углу. Здесь мы рекомендуем установить значение имени хоста, которое вы сможете распознать (в дальнейшем мы будем использовать printer.local) и которое не будет конфликтовать с другими Raspberry Pi в вашей сети. Кроме того, включите SSH с использованием аутентификатора паролей. Задайте имя пользователя и пароль, при этом пользователь должен быть ‘pi’. При желании задайте также параметры подключения к Wi-Fi. Наконец, нажмите кнопку «Save», после чего в главном окне можно нажать кнопку «Write». Дождитесь окончания процесса, после чего извлеките SD-карту.
- Вставьте SD-карту в Raspberry Pi и включите его.
- После включения первая загрузка может занять некоторое время, в течение которого файловая система будет расширяться на весь доступный объем памяти SD-карты. Чтобы проверить, когда все закончится, откройте браузер и откройте вкладку, указывающую на http://printer.local — обратите внимание, что Chrome и Firefox по умолчанию пытаются заменить «http» на «https» — это не сработает. При вводе адреса он должен быть указан как «http://». Когда появится интерфейс Mainsail, значит, ваш Pi готов.

- Теперь вам понадобится немного для использования SSH. Этот первый абзац напрямую скопирован из официальной документации Klipper — только подкорректированы значения пользователя и имени хоста:
- Если вы используете настольный компьютер с Linux или MacOS, то на нем уже должна быть установлена программа «ssh». Для других настольных компьютеров существуют бесплатные SSH-клиенты (например PuTTY). Для подключения к Raspberry Pi используйте утилиту SSH (ssh pi@printer.local). Имейте в виду, что если вы используете Linux или MacOS с терминалом, то при появлении запроса пароля он не будет отображать вводимые символы. Это нормально и ожидаемо и считается функцией безопасности, чтобы другие не могли узнать длину вашего пароля.
- Наконец-то подключились по SSH к Raspberry Pi? Вы должны увидеть консольное окно, похожее на DOS, с коротким сообщением о знакомстве с ОС, а последняя строка с мигающим курсором должна содержать что-то вроде
pi@printer:~ $— это обычное приглашение Linux. Для этого необходимо войти в каталог Klipper командойcd klipper. Затем настройте параметры микропрограммного обеспечения контроллера, входящего в состав Klipper. Для этого существует текстовый интерфейс, который можно запустить командойmake menuconfig. В этом интерфейсе необходимо перемещаться по различным элементам для выбора типа MCU контроллера и некоторых других параметров. - Если вы модернизируете существующий контроллер принтера для работы с Klipper, то часто нужные значения можно найти в верхней части конфигурационного файла принтера. В противном случае проверьте документацию производителя контроллера или саму электронную плату — в частности, на микроконтроллерах серии STM32 напечатан полный тип микроконтроллера. Для его четкого прочтения может потребоваться косой свет и лупа.
После правильного ввода параметров можно выйти из программы, нажав клавишу escape, и ответить «да» для сохранения конфигурации. Наконец, вы готовы скомпилировать прошивку контроллера командойmake -j.
Прошивка Klipper на материнскую плату принтера

Здесь все становится немного сложнее. Платы контроллеров делятся на две основные категории:
- В которых присутствует загрузчик, что позволяет прошивать их через USB-соединение, например платы Arduino,
- Загрузчик был намеренно исключен, чтобы люди не могли прошить прошивку через USB. Так обычно поступают с платами контроллеров BigTreeTech или Creality.
Итак, начнем с самого простого варианта, когда загрузчик присутствует и позволяет прошивать контроллер по USB:
- Если контроллер может прошиваться по USB, то необходимо определить USB-устройство, которое он отображает с помощью команды
ls /dev/serial/by-id/*. - Затем можно указать Linux прошить контроллер прошивкой Klipper с помощью команды
make flash FLASH_DEVICE=/dev/serial/by-id/<значение, полученное предыдущей командой>. - Если ошибок не возникнет, поздравляем, контроллер прошит! Но теперь, чтобы быть уверенным, выполните команду
ls /dev/serial/by-id/*и на этот раз запишите полный путь. Он понадобится, когда мы будем редактировать конфигурационный файл.
Если ваш контроллер не прошивается по USB, то для этого могут потребоваться дополнительные шаги. В репозитории конфигураций Klipper должна быть указана плата вашего контроллера, а соответствующий конфигурационный файл будет содержать заголовок, объясняющий, какие шаги необходимо предпринять для прошивки MCU с помощью Klipper. Часто процедура выглядит примерно так:
- Сохраниет файл klipper.bin созданный на шаге № 8, на новую SD-карту, переименуйте его в «firmware.bin» и подайте питание на контроллер со вставленной SD-картой.
- Через несколько секунд вы увидите, как мигают светодиоды, а когда вы вставите SD-карту контроллера обратно в компьютер, файл будет переименован в FIRMWARE.CUR. Это относится к ряду плат BigTreeTech и Creality, но обязательно ознакомьтесь с информацией о конкретном контроллере, чтобы быть уверенным в том, как это сделать. Если вы не знаете, как использовать SCP, посмотрите, какие программы могут использовать SFTP на вашем принтере, подключитесь к Raspberry Pi (pi@printer.local помните?) и нужный вам файл будет лежать «/home/pi/klipper/output/klipper.bin».
- После прошивки обязательно выполните команду
ls /dev/serial/by-id/*и запишите куда-нибудь полученное значение. Оно понадобится для файла конфигурации.
Всё, теперь мы закончили с SSH, можно закрыть соединение. Остальное мы будем делать непосредственно с интерфейсом Mainsail.
Настройка Klipper для работы с оборудованием

В следующих двух разделах будет описано использование веб-интерфейса Mainsail для машин Klipper. Эти последние шаги технически проще, но могут привести к большему разочарованию из-за простых синтаксических ошибок в конфигурационном файле (например, куда вводить новое значение, где ставить пробелы и т.д.). Не спешите, возьмите свой любимый расслабляющий напиток и прочитайте все шаги несколько раз, прежде чем нажать кнопку «Save«.
- Итак, по умолчанию MainsailOS не имеет файла printer.cfg. Это сделано для того, чтобы исключить возможность повреждения оборудования. Лучший способ создать такой файл — посмотреть общий файл конфигурации контроллера или принтера из репозитория конфигураций Klipper (поэтому скопируйте его содержимое). Затем в интерфейсе Mainsail слева выберите меню Machine. Первая панель слева должна представлять собой папку config и быть пустой или если есть файл printer.cfg, он тоже должен быть пустым. Если файл printer.cfg не существует, воспользуйтесь кнопкой «Create File» для его создания. После того как файл создан, щелкните по нему. Откроется редактор, в который можно вставить содержимое конфигурации. В вставленном тексте будет строка, начинающаяся с «serial:». Убедитесь, что вы заменили значение на номер последовательного порта контроллера, который вы сохранили в разделе выше»Прошивка Klipper на плату контроллера». Нажмите кнопку «Save and Restart», чтобы сохранить файл и перезапустить Klipper.
- Если все прошло успешно, Mainsail вернет вас на главную приборную панель, где вы увидите кнопки возврата домой, управления экструдером, контроля температуры и консоль. Однако если в конфигурационном файле произошла ошибка и Klipper не перезапускается, то будет выдано сообщение об ошибке. Не стоит паниковать, сообщения обычно достаточно понятны. Чтобы исправить ошибку, просто вернитесь на вкладку Machine, отредактируйте файл printer.cfg и воспользуйтесь командой «Save and Restart». За одной ошибкой может скрываться другая — просто продолжайте исправлять проблемы одну за другой, пока Klipper не сможет запуститься.
- Существует только одно исключение из числа понятных сообщений об ошибках: » ADC value out of range» обычно означает, что термистор подключен неправильно, установлен не на тот пин или имеет неправильный тип и выдает значения, которые Klipper считает невозможными. Как правило, это происходит при использовании PT1000 или термопары.
- Теперь, когда Klipper работает, пришло время проверить, что все концевики, шаговики и терморегуляторы работают. Прежде чем подавать команду
homeи рисковать повреждением принтера в случае неправильного направления, воспользуйтесь консолью на главной приборной панели. Для осей X, Y и Z (для декартового принтера; для CoreXY это будут A, B, Z) используйте командуSTEPPER_BUZZ STEPPER=STEPPER_X. Убедитесь, что все оси направлены к центру машины, чтобы было много места для движения. Команда заставит шаговик X переместиться на 1 мм в положительном направлении оси, а затем на 1 мм обратно, повторяя это в течение нескольких секунд. Это позволит проверить исправность проводки и правильность направления движения. Если вы видите, что сопло движется не вправо-влево, а влево-влево, необходимо переключить направление оси. В режиме Z переключите направление оси, если вы видите, что сопло отходит от стола, а затем возвращается к ней.

- Для проверки концевиков в Mainsail на вкладке Machine имеется небольшой графический интерфейс. В самом низу есть рамка с заголовком «Endstops». Кнопка refresh (Обновить) считывает текущее состояние концевиков и отображает их. Проверьте, правильно ли они срабатывают. Обратите внимание, что для датчика стола это вообще не работает. Чтобы проверить правильность настроек, используйте консоль и команду
QUERY_PROBE. - Когда вы убедитесь, что с первой попытки сопло не упрется, можно возвращаться домой. Запомните, где находится кнопка аварийной остановки на интерфейсе: верхняя кнопка справа красного цвета. Если все работает правильно, то пора приступать к проверке терморегуляторов, вентиляторов и настройке ПИД-регулятора.
- Для проверки терморегуляторов сначала посмотрите на график температуры. Затем установите температуру сопла на что-нибудь безвредное, но выше комнатной температуры, например 60 °C. Если вы видите, что кривая температуры хотенда увеличивается, поздравляем, все настроено и подключено правильно. По умолчанию вентилятор на хотенде также должен включаться при 50 °C. Если это не так, почувствуйте, нагревается ли центральная втулка вентилятора. Если нагревается, немедленно выключите машину, так как провода + и — на вентиляторе перепутаны и на него подается отрицательная полярность, что приведет к его повреждению. Проведите такую же проверку температуры на столе, чтобы убедиться, что она нагревается правильно.
- На главной приборной панели в разделе Miscellaneous (Разное) находится вентилятор обдува отпечатка. Опять же, если он не включается при включении и нагревается, немедленно отключите его и почините проводку.
- Наконец, настройка PID: в консоли необходимо использовать команду
PID_CALIBRATE HEATER=extruder TARGET=215. Вы можете заменить 215 на желаемую целевую температуру для настройки ПИД-сопла. Для стола замените extruder на heater_bed и установите соответствующую целевую температуру (обычно в диапазоне от 60 до 80 градусов).
Итак, у нас есть работающий Klipper, удобный веб-интерфейс в виде Mainsail, принтер, который не разрушает себя, когда ему говорят двигаться или нагреваться, что же остается? Конечно же, первый отпечаток! В целом, Klipper прекрасно читает G-код Marlin. Однако некоторые производители принтеров ввели несколько собственных команд для изменения значений ускорения или тока драйвера в зависимости от печатаемых элементов. Эти команды, как правило, игнорируются Klipper и единственное, что можно заметить, — это периодически появляющееся в консоли сообщение об ошибке при их выполнении.
На самом деле это не так уж и важно, но если вы хотите очистить свои файлы G-кода, вам следует отредактировать профиль слайсера, чтобы изменить вывод G-кода на Klipper, если он поддерживается. PrusaSlicer 2.6.0 и выше, а также SuperSlicer и Orca Slicer. Возможно, впоследствии это будет реализовано и в других программах. Так что нарезайте G-код, а затем в Mainsail, рядом с аварийной остановкой, просто «Upload & print»!
Заключение

Klipper — сложная прошивка с большим количеством глубоких опций, которые влияют на ряд функций, обеспечивающих более быструю и точную печать. Но если вы дошли до конца этой статьи, то скорее всего, уже можете получать отпечатки со своего принтера.
Тем не менее, это только начало. Klipper продолжает совершенствоваться и добавлять новые возможности. И есть множество возможностей о которых в этой статье еще даже не упоминалось! Например, как задать макросы, использовать акселерометр для компенсации резонанса принтера при движениях или настроить входной формирователь для получения действительно быстрых и точных отпечатков. Существуют плагины для управления дополнительными светодиодами NeoPixel, создания таймлапсов или автоматического обнаружения сбоев с помощью Obico! Одним словом, сообщество Klipper занимается созданием множества плагинов, добавляющих дополнительную функциональность.
А как же поддерживать прошивку и программное обеспечение принтера в актуальном состоянии? На вкладке Machine в Mainsail, которую мы использовали, справа внизу есть рамка обновления, которая позволяет автоматически устанавливать обновления для Mainsail, Moonraker, Klipper и системы Raspberry Pi. Однако следует отметить, что обновление компонента MCU при этом не происходит. Это придется делать вручную, но, как говорится, «если не сломалось, не лезь».
Будучи настолько сложным, Klipper требует много времени для настройки до совершенства. И как только вы настроите Klipper под свой принтер, по закону Мерфи что-то сломается или захочется что-то обновить в аппаратной части. И вам придется настраивать все заново. Но, спускаясь в эту кроличью нору, помните, что вокруг много людей и если вы дойдете до того момента, когда принтер будет работать достаточно хорошо для вас, никто не будет заставлять вас продолжать его настраивать. Вы можете просто перестать настраивать принтер и печатать свои детали, для чего, собственно и был приобретен принтер.







