Меню
andipanda.dev

Graber i3: чому я обрав TMC2209 для старого 3D-принтера

У попередній статті я розповів про заміну драйверів крокових двигунів на моєму Graber i3.

Основною причиною модернізації був шум. Старі драйвери працювали, але переміщення осей супроводжувалися характерним писком, якого мені хотілося позбутися.

При цьому змінювати всю керуючу електроніку принтера я не збирався.

RAMPS 1.4 цілком справлялася зі своїми завданнями, а перехід на Klipper уже дозволив обійти основні обмеження старого 8-бітного контролера.

Залишалося обрати нові драйвери.

Зрештою я зупинився на TMC2209.

Але чому саме вони?

Які варіанти я розглядав

Для RAMPS 1.4 існує чимало драйверів крокових двигунів.

Серед найпоширеніших — A4988, DRV8825, TMC2208 і TMC2209.

Усі вони виконують одне основне завдання: керують кроковими двигунами, отримуючи від контролера сигнали кроку та напрямку.

Але відрізняються алгоритмами керування струмом, підтримуваними режимами роботи та можливостями налаштування.

Для мене основними критеріями були рівень шуму, сумісність із наявною електронікою, стабільність роботи та розумна вартість.

Максимальна швидкість друку не була пріоритетом.

Усе-таки йшлося про модернізацію старого Graber i3, а не про створення нового високошвидкісного принтера.

A4988 і DRV8825 — перевірені рішення

A4988 і DRV8825 тривалий час залишалися одними з найпоширеніших драйверів в аматорських 3D-принтерах.

Вони недорогі, добре вивчені та підтримуються практично всіма популярними прошивками.

A4988 підтримує поділ повного кроку до 1/16, а DRV8825 — до 1/32.

Але більша кількість мікрокроків сама по собі не означає пропорційного збільшення точності позиціювання.

Під час роботи з такими драйверами крокові двигуни нерідко видають добре помітний звук, особливо на певних швидкостях.

Це не означає, що A4988 або DRV8825 погані.

Вони цілком підходять для багатьох завдань і досі використовуються в різних пристроях.

Але якщо основна мета модернізації — зменшити шум принтера, варто розглянути сучасніші варіанти.

TMC2208 — уже значно тихіше

Одним із таких варіантів став TMC2208.

Його головна перевага для звичайного 3D-принтера — підтримка технології StealthChop2.

Цей алгоритм керування дозволяє суттєво зменшити чутний шум крокового двигуна.

Замість характерного писку двигун може працювати значно тихіше.

TMC2208 також підтримує налаштування через UART, що дозволяє програмно змінювати деякі параметри роботи.

Для мого Graber i3 можливостей TMC2208 уже могло бути достатньо.

Але існував і цікавіший варіант — TMC2209.

Чому саме TMC2209

TMC2209 багато в чому схожий на TMC2208, але пропонує додаткові можливості.

Він також підтримує StealthChop2, що дозволяє досягти тихої роботи крокових двигунів.

При цьому TMC2209 підтримує і SpreadCycle — інший алгоритм керування струмом, який може забезпечувати стабільнішу роботу двигуна за підвищених навантажень і динамічних переміщень.

Ці режими вирішують дещо різні завдання.

StealthChop2 орієнтований насамперед на зменшення шуму, тоді як SpreadCycle дозволяє приділити більше уваги динамічним характеристикам двигуна.

Однак не можна стверджувати, що один режим завжди кращий за інший.

Оптимальний варіант залежить від конкретної механіки, швидкості переміщень і навантаження на двигун.

Ще одна відмінність TMC2209 — вищий допустимий струм порівняно з TMC2208.

Це розширює можливості застосування драйвера, хоча фактичний допустимий струм залежить від конкретного модуля та умов охолодження.

Для мого принтера максимальний струм не був вирішальним параметром, але додатковий запас не завадить.

Крім того, TMC2209 підтримує StallGuard4 — технологію оцінювання навантаження на двигун.

Вона дозволяє за певних умов реалізувати виявлення упору осі без окремого кінцевого вимикача.

Але ця можливість потребує відповідного підключення та налаштування.

У моєму випадку вона не була причиною вибору драйвера.

Головним залишалося поєднання тихої роботи, достатнього запасу за характеристиками та можливості використовувати TMC2209 з наявною електронікою.

UART — чи потрібен він мені?

TMC2209 підтримує інтерфейс UART, який дозволяє програмно змінювати струм двигуна, режими роботи та інші параметри драйвера.

При використанні Klipper це досить зручно: багато налаштувань можна задавати безпосередньо в конфігураційному файлі printer.cfg.

Однак RAMPS 1.4 спочатку не передбачає штатного UART-підключення до кожного роз'єму драйвера.

Для його реалізації знадобилася б додаткова проводка.

Для мене це не становило особливої складності, але необхідності в такому підключенні я не бачив.

Основним завданням було зменшити шум крокових двигунів, а для цього TMC2209 цілком можуть працювати в автономному режимі STEP/DIR.

Тому я вирішив не використовувати UART і не планую додавати його надалі.

Звісно, без UART частина можливостей програмного налаштування недоступна.

Але в моєму випадку вони не давали переваг, заради яких варто було ускладнювати підключення.

У результаті я зміг використовувати сучасні драйвери, зберігши просту схему підключення на RAMPS 1.4.

А як щодо мікрокроків?

Під час порівняння драйверів часто звертають увагу на максимальну кількість мікрокроків.

A4988 підтримує поділ повного кроку до 1/16, DRV8825 — до 1/32.

TMC2209 також підтримує різні режими мікрокроків і внутрішню інтерполяцію до 256 мікрокроків.

Але тут важливо не плутати плавність руху з точністю позиціювання.

Інтерполяція дозволяє зробити роботу двигуна плавнішою, проте не перетворює механічну систему на пристрій з абсолютною точністю 1/256 повного кроку.

На підсумкову якість друку продовжують впливати люфти, жорсткість конструкції, стан напрямних, ременів та інші механічні чинники.

Тому кількість мікрокроків я не розглядав як головний критерій вибору.

Набагато важливіше було отримати стабільну й тихішу роботу двигунів.

Чи є сенс встановлювати TMC2209 на RAMPS 1.4?

На перший погляд поєднання старої RAMPS 1.4 і сучасних драйверів може здатися дивним.

Сьогодні існують плати з 32-бітними мікроконтролерами, вбудованою підтримкою UART і безліччю додаткових функцій.

Але в моєму випадку заміна всієї електроніки не мала особливого сенсу.

Принтер уже працював під керуванням Klipper, а основні обчислення виконувалися на TV Box з Linux.

Arduino Mega 2560 продовжувала виконувати завдання мікроконтролера, а RAMPS 1.4 забезпечувала підключення двигунів, нагрівачів і датчиків.

Встановлення TMC2209 дозволяло покращити керування кроковими двигунами без необхідності переробляти всю систему.

При цьому важливо пам'ятати, що сумісність залежить не лише від назви драйвера.

Перед встановленням необхідно перевірити конкретний модуль, розташування виводів, налаштування мікрокроків і спосіб підключення.

Не всі плати з TMC2209 мають абсолютно однакове розведення.

Чи варто було обирати дорожчі драйвери?

Для старого принтера питання вартості завжди має значення.

Можна послідовно замінити майже всі компоненти, але в якийсь момент від початкового Graber i3 залишиться тільки назва.

Саме цього мені хотілося уникнути.

TMC2209 були розумним компромісом між можливостями, вартістю та сумісністю з наявною електронікою.

Вони дозволяли вирішити основне завдання — зменшити шум крокових двигунів — і при цьому залишали певний запас можливостей.

Мені не були потрібні рекордні швидкості або складна нова плата керування.

Я хотів зробити вже наявний принтер зручнішим в експлуатації.

Підсумки

Вибір TMC2209 не був спробою встановити у старий Graber i3 найсучасніші компоненти за будь-яку ціну.

Для мене це був спосіб усунути конкретний недолік, зберігши працездатну електроніку.

A4988 і DRV8825, як і раніше, підходять для багатьох завдань, а TMC2208 також здатні забезпечити тиху роботу.

Але TMC2209 пропонують вдале поєднання тихих режимів, запасу за характеристиками та додаткових можливостей.

При цьому для мого завдання не знадобилося використовувати UART або переробляти підключення драйверів.

Звісно, встановлення TMC2209 не виправляє недоліки механіки й не перетворює старий принтер на сучасну високошвидкісну машину.

Зате дозволяє зробити ще один крок у його модернізації без повної перебудови конструкції.

Що далі

У наступній статті я повернуся до іншої модернізації Graber i3 — встановлення датчика столу.

Раніше я вже розповідав, як датчик допоміг спростити налаштування першого шару.

Але тоді ми не розбирали, чому я обрав саме індукційний датчик, а не популярний 3DTouch.

Обидва рішення мають свої переваги та обмеження.

Саме їх я й хочу розглянути в наступній статті.