Після встановлення датчика столу на Graber i3 налаштування стало значно зручнішим. Тепер я міг отримувати повторювані вимірювання та регулювати положення столу, орієнтуючись на конкретні значення, а не лише на власні відчуття.
Але залишалася ще одна особливість конструкції, на яку я вирішив звернути увагу — два двигуни осі Z.
Вони відповідають за вертикальне переміщення порталу з віссю X, і від узгодженості їхньої роботи залежить положення сопла відносно поверхні столу.
Два двигуни на одному драйвері
У моєму Graber i3 встановлена плата RAMPS 1.4.
У стандартній конфігурації обидва двигуни осі Z підключаються до двох роз'ємів, якими керує один драйвер.
Таке рішення дозволяє переміщувати обидві сторони порталу одночасно, але не дає можливості керувати ними незалежно.
Якщо одна сторона порталу опиняється трохи вище за іншу, програмно скоригувати положення лише одного двигуна за такого підключення неможливо.
Доводиться вирівнювати портал вручну або компенсувати різницю регулюванням столу.
Мені хотілося отримати можливість коригувати положення кожної сторони незалежно.
Вільний канал другого екструдера
RAMPS 1.4 розрахована на підключення двох екструдерів.
Але в моєму принтері встановлений лише один, тому канал другого екструдера E1 залишався вільним.
Я вирішив використати його для другого двигуна осі Z.
Для цього достатньо було змінити підключення двигунів: один залишити на штатному каналі Z, а другий підключити до E1.
Таким чином, кожен двигун отримав власний драйвер і окремі сигнали керування.
Найприємніше, що для такої модернізації не довелося купувати додаткову електроніку.
Усе необхідне вже було на RAMPS 1.4.
Конфігурація Klipper
На той момент принтер уже працював під керуванням Klipper, тому залишалося змінити його конфігурацію.
Основний двигун осі Z описується в секції stepper_z, а другий — у stepper_z1.
Для додаткового двигуна я використав виводи каналу E1 на RAMPS 1.4.
Під час звичайних переміщень обидва двигуни продовжують працювати узгоджено, як одна вісь Z.
Але тепер з'явилася можливість керувати ними незалежно під час виконання процедур калібрування.
Варто зазначити, що така можливість існує не лише в Klipper. Marlin також підтримує незалежні драйвери Z та автоматичне вирівнювання.
Просто на момент цієї модернізації я вже перейшов на Klipper і продовжував працювати з ним.
Вирівнювання порталу
Навіщо взагалі знадобилося розділяти керування двигунами?
Навіть якщо обидва двигуни отримують однакові команди, це не гарантує, що ліва та права сторони порталу завжди перебувають на одній висоті.
Невеликий перекіс може з'явитися через особливості механіки або зміну положення одного з двигунів за вимкненого живлення.
У результаті вісь X опиняється під нахилом відносно столу.
Раніше таку різницю доводилося компенсувати вручну.
Тепер же з'явилася можливість змінювати положення кожної сторони порталу окремо.
У Klipper для цього передбачена процедура Z_TILT_ADJUST, яка використовує вимірювання датчика столу для визначення та коригування нахилу порталу.
Таким чином, встановлений раніше датчик отримав ще одне можливе застосування.
Однак тут важливо розуміти різницю між вирівнюванням порталу та компенсацією нерівностей столу.
Z_TILT_ADJUST коригує взаємне положення сторін порталу, а BED_MESH_CALIBRATE дозволяє враховувати особливості поверхні столу під час друку.
Це різні завдання, хоча обидва можуть впливати на якість першого шару.
Що дала модернізація
Головним результатом стало те, що два двигуни осі Z перестали залежати від одного драйвера.
Тепер кожен із них мав власний канал керування, а отже, з'явилася можливість коригувати положення сторін порталу незалежно.
При цьому я зберіг наявну електроніку принтера та використав можливості, які вже були передбачені конструкцією RAMPS 1.4.
Для мене це був ще один приклад того, як невелика зміна може розширити можливості старого обладнання без значних витрат.
Звісно, роздільне керування двигунами не усуває люфти, перекоси напрямних та інші механічні недоліки.
Тому робота над Graber i3 на цьому не закінчилася.
Що далі
Наступним етапом стала заміна драйверів крокових двигунів.
Старі драйвери працювали, але принтер залишався досить шумним.
Мені хотілося зменшити шум двигунів, не змінюючи всю керувальну електроніку.
Саме про цю модернізацію розповім у наступній статті.