Налаштовуємо прошивку marlin для arduino ramps 1

Так вийшло що деякий час тому я став власником китайського клону Prusa i3 під гордим китайською назвою Hesine M505. Це чудо китайської думки звичайно було далеко від досконалості, але із завданням друкувати все підряд справлялося цілком успішно. Однак, чим далі в ліс - тим товщі партизани. І забравшись в ліс подалі забажав я друкувати деталі з використанням розчинних підтримок, та й двома кольорами друкувати теж було б непогано.

На жаль, у рідній для принтера плати Melzi V2 був фатальний недолік - на ній отсутсвовал порт для підключення другого екструдера. Вивчення матчастини показало, що можна взяти ще одну таку ж плату і увіткнути її в режимі слейв. Однак цінник на це задоволення виходив зависока. І, що саме неприємно, при такому апгрейде губилася можливість підключення екрану і кнопок управління. Тобто друкувати можна буде тільки з комп'ютера, а це не найкраща ідея з багатьох причин.

Так я прийшов до вирішення повністю замінити мізки принтера. Вибір був зроблений на користь нестаріючої класскі Arduino Mega 2560 + RAMPS 1.4 + A4988. Швидко казка мовиться, та довго посилочка їде. Отримавши посилку з мізками, моторами і іншим корисним в господарстві інвентарем я виявив що забув замовити шестерню податчика екструдера. Добре, що тоді вона вже їхала до мене з али, де я замовив її просто так, від жадібності.

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

В Arduino IDE відкриваємо прошивку. Вибираємо нашу плату Arduino Mega 2560 і процесор AtMega 2560.

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

Вибираємо нашу плату: RAMPS 1.4 з одним хотендом

У файлі boards.h наведено повний список підтримуваних плат і їх варіацій. Нас поки цікавить тільки RAMPS 1.4 з одним екструдером.

Виставляємо кількість температурних сенсорів. Сенсорів повинно бути по числу екструдерів. У нашому випадку 1. Переконуємося що навпроти першого сенсора в списку коштує 1.

Виставляємо максимальну температуру хотенда і столу.

У мене стоять термозапобіжника на 252 градуси, так що максимальна температура хота повинна бути нижче температури спрацьовування запобіжника. Якщо збираєтеся друкувати чимось на зразок полікарбонату - то температуру треба підняти. З столом таже історія, єдине що навіть друк нейлоном не вимагає дуже великих температур столу, 130 градусів має вистачити всім.

У Hesine M505 стоять нормально замкнуті концевики, а в прошивка за замовчуванням розраховує на нормально розімкнуті. Включаємо інвертування концевиков:

Перевіряємо напрямок обертання моторів. Тут історія приблизно таж що і з кінцевиками, тому що прошивка спочатку розрахована на Ultimaker.

І для екструдера повторюємо операцію.

Виставляємо розміри робочої зони

Для початку можна виставити заводомо великі ніж робоча зона габарити. Потім все Відкалібруйте за місцем. За замовчуванням в прошивці стоять значени 200х200х200, тоді як у Hesine M505 робоче поле в усіх напрямках більше ніж ці цифри. І прошивка просто не дасть рухатися за їх межі.

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

Виставляємо кроки для моторів.

Параметри тут такі: мотор_Х, мотор_Y, мотор_Z, мотор_екструдера

Для розрахунку кроків по X і Y використовуємо таку формулу:

Де 200 - це число кроків двигуна на 360 градусів. Типова цифра для моторів з кроком 1.8 градуса. 16 в чисельнику - кількість мікрошагов на крок. 16 в знаменнику - кількість зубів на шпулі. 2 - стандартний крок для ременя GT2

У Hesine M505 штатно використовується трапеціодільний гвинт з кроком різьби 2 мм. Відповідно ми білимо число кроків на повний оборот на кількість міліметрів які будуть пройдені за оборот і отримуємо число кроків на міліметр.

Подачу екструдера поки порахуємо і виставимо попередньо. Потім її все одно доведеться підганяти. Шестерня екструдера штатно має діаметр близько 10 мм. Отримуємо довжину окружності на один оборот: 3.14 * 10 = 31.4 мм на оборот.

Ділимо число кроків на довжину окружності і отримуємо число кроків на міліметр.

округляємо до 102.

Заливаємо все це справа в Arduino.

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

  • Рухаємо мотори і перевіряємо що вони крутяться в потрібну сторону. Якщо це не так - міняємо параметр INVERT _ * _ DIR на протилежне значення.
  • Перевіряємо стан кінцевиків. За командою M119 буде показано стан кінцевиків. Якщо кінцевик натиснуто - навпроти нього повинно бути написано TRIGGERED. Навпаки ненажатом - open. Якщо це не так - міняємо настройку * MIN ENDSTOP_INVERTING.
  • Даємо команду G28. Всі осі повинні приїхати в своє мінімальне положення. Далі через Pronterface рухаємо всі осі в їх безпечне максимальне положення і даємо комаду M114. Вона покаже поточний стан по осях. Вносимо ці дані в налаштування * MAX POS.
  • Знову говоримо G28. Пересуваємо екструдер в нульову координату столу по X-Y. Дивимося що показує M114 і ці цифри переносимо в MANUAL_ * HOME POS з протилежним знаком. Тобто якщо M114 каже що координата по Х зараз 30 - то в настройку пишемо -30. Це означає що після відходу в HOME екструдер від'їде від нього на 30мм і буде вважати це положення нулем.
  • відкручуємо сопло або трубку боудена у екструдера. На прутки відзначаємо відстань, наприклад 10 см, і проганяє цю ж довжину з Pronterface. Після цього дивимося скільки в реальності минуло прутка і коригуємо кількість кроків для екструдера щоб він проганяв чітко потрібну кількість пластику. Важливо розуміти що на гарячу з встановленим соплом ця цифра все одно буде відрізнятися від встановленого. Якщо ви завжди друкуєте соплом одного діаметра - можна повторити цю операцію з соплом і отримані дані внести в прошивку. Я використовую кілька сопел, так що обсяг пластика коректую через настройку потоку в слайсери.

Після того як все це зроблено - друкуємо тестову модель. Я використовую порожній куб 20х20х20 мм. Після того як він видрукуваний - перевіряємо що розміри сторін у нас точно відповідають тому що має бути. Якщо це не так по окремим вимірам - коригуємо кількість кроків для потрібної осі.

На цьому основні настройки закінчені. Далі можна тюнить наведені вище параметри для більш якісного друку.

Схожі статті