В предыдущей статье я рассказал, как ко мне попал старый Graber i3 и с какими проблемами пришлось столкнуться при попытке вернуть его к жизни.
Казалось бы, основные компоненты на месте, электроника работает, двигатели двигаются. Остаётся всё настроить и можно печатать.
Но именно настройка оказалась значительно сложнее, чем я ожидал.
Особенно много времени отнял печатный стол.
Marlin и бесконечная настройка стола
Изначально принтер работал под управлением Marlin.
Это известная и широко используемая прошивка для 3D-принтеров, поэтому причин сразу отказываться от неё у меня не было.
Я пытался настроить механику, добиться правильного положения сопла относительно стола и получить стабильный первый слой.
Но постоянно возвращался к одной и той же проблеме.
В одной части стола сопло находилось на подходящей высоте, в другой — слишком близко или слишком далеко от поверхности.
Настройка одной области могла ухудшить результат в другой. Приходилось снова регулировать стол, проверять зазоры и повторять попытку печати.
Разумеется, в Marlin существуют инструменты компенсации неровностей стола, включая Bed Leveling. Но в моей конфигурации добиться от них ожидаемого результата не получилось.
Возможно, я что-то неправильно настроил или не до конца разобрался с доступными возможностями прошивки.
Тем не менее время шло, а стабильного первого слоя всё ещё не было.
В какой-то момент я понял, что вместо дальнейших экспериментов с Marlin стоит попробовать другой подход.
Знакомство с Klipper
Так я обратил внимание на Klipper.
Главное отличие, которое меня заинтересовало, заключалось в архитектуре системы.
В традиционной конфигурации Marlin основная логика управления выполняется непосредственно микроконтроллером платы принтера.
Klipper использует другой подход: часть вычислений выполняется на отдельном компьютере под Linux, а микроконтроллер занимается выполнением подготовленных команд управления оборудованием.
Для этого можно использовать Raspberry Pi или другое подходящее устройство.
Но меня заинтересовала не столько сама архитектура, сколько возможности настройки.
В Klipper конфигурация принтера хранится в текстовых файлах. Для изменения многих параметров не нужно каждый раз пересобирать прошивку и загружать её в контроллер.
Кроме того, система предоставляет удобные инструменты для калибровки механики и печатного стола.
После многочисленных попыток добиться приемлемого результата на Marlin всё это выглядело весьма привлекательно.
Я решил попробовать.
Первый запуск на Raspberry Pi
Для начала использовал Raspberry Pi.
Это было вполне логичное решение: устройство уже было мне знакомо, а для Klipper существует много документации и примеров установки именно на Raspberry Pi.
После установки необходимых компонентов и настройки связи с платой управления принтером я получил работающую систему.
Теперь параметры можно было изменять через конфигурацию, перезапускать соответствующие компоненты и сразу проверять результат.
Такой процесс оказался для меня значительно удобнее.
Не нужно было постоянно возвращаться к исходному коду прошивки, пересобирать проект и перепрошивать плату ради очередного изменения настроек.
Постепенно я начал разбираться с конфигурацией двигателей, ограничениями перемещения, настройками нагревателей и калибровкой стола.
Конечно, сам по себе переход на Klipper не сделал принтер точным.
Механические проблемы никуда не исчезли, а стол по-прежнему требовал внимания.
Но теперь у меня были более удобные инструменты, с которыми можно было продолжать работу.
А зачем здесь Raspberry Pi?
Через некоторое время я вспомнил, что у меня без дела лежит старый TV Box.
Обычная телевизионная приставка, которая уже не использовалась по своему первоначальному назначению.
И возникла мысль: зачем постоянно занимать Raspberry Pi, если для управления принтером можно попробовать приспособить это устройство?
По сути, Klipper нужен компьютер, способный работать под Linux, выполнять необходимые программные компоненты и обмениваться данными с контроллером принтера.
Raspberry Pi — популярный вариант, но далеко не единственный.
Поэтому я решил дать старой приставке вторую жизнь.
Получалось даже символично: восстанавливая старый 3D-принтер, я одновременно нашёл применение ещё одному устройству, которое до этого просто лежало без дела.
Linux на телевизионной приставке
Первым делом нужно было заставить TV Box работать под Linux.
Телевизионные приставки обычно поставляются с Android и не предназначены производителем для управления 3D-принтерами.
Однако некоторые из них позволяют запускать альтернативные операционные системы.
После установки Linux приставка превратилась в небольшой компьютер, который можно было использовать для Klipper.
Дальше оставалось установить необходимые программные компоненты, перенести конфигурацию принтера и проверить связь с управляющей платой.
В результате удалось отказаться от Raspberry Pi и перенести управление Graber i3 на TV Box.
Для меня это было удачным решением ещё и потому, что приставка получила постоянное назначение.
В отличие от Raspberry Pi, который мог понадобиться для других экспериментов, TV Box теперь предназначался исключительно для принтера.
Постоянный управляющий компьютер
После успешного запуска я решил установить приставку непосредственно на принтер.
Таким образом, она перестала быть временным устройством, подключённым только на время настройки.
Теперь TV Box стал постоянной частью Graber i3.
Вся программная часть Klipper работала на отдельном компьютере с Linux, а плата принтера продолжала управлять двигателями, нагревателями и остальной электроникой.
Мне нравился такой подход.
С одной стороны, сохранялась существующая управляющая плата. С другой — появлялась возможность развивать программную часть без необходимости менять всю электронику принтера.
Кроме того, старое оборудование снова оказалось полезным.
Klipper не исправляет механику
После перехода на Klipper работать с настройками действительно стало удобнее.
Но одна из главных проблем, с которой всё начиналось, никуда полностью не исчезла.
Стол по-прежнему было трудно настроить вручную так, чтобы получить одинаково хороший первый слой по всей поверхности.
Даже имея более удобные инструменты калибровки, я не мог добиться той точности и повторяемости, которой хотелось.
Постепенно становилось понятно, что одними программными настройками проблему не решить.
Нужен был более надёжный способ измерять положение поверхности стола, а также дополнительные изменения в конструкции принтера.
Позже я установил датчик, который позволил получать повторяемые измерения и значительно упростил выравнивание стола по четырём точкам.
Но это уже была следующая стадия модернизации.
Что в итоге
Переход с Marlin на Klipper стал одним из важных этапов восстановления Graber i3.
Я получил более удобный способ настройки принтера, возможность изменять конфигурацию без постоянной перепрошивки контроллера и инструменты, с которыми было проще продолжать эксперименты.
А использование старого TV Box позволило не занимать Raspberry Pi и превратить ненужную телевизионную приставку в постоянный управляющий компьютер.
При этом я не считаю, что Marlin — плохая прошивка. У неё есть собственные преимущества, и огромное количество принтеров успешно работает под её управлением.
Просто для моего Graber i3 и тех задач, которые я пытался решить, Klipper оказался более подходящим инструментом.
Однако программная часть была только началом.
Впереди оставались установка датчика стола, изменения в управлении двигателями оси Z, замена драйверов и исправление механических недостатков.
Именно об этих доработках я расскажу в следующей статье.