У попередній статті я розповів, як до мене потрапив старий 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, заміна драйверів і виправлення механічних недоліків.
Саме про ці доопрацювання я розповім у наступній статті.