Первичная настройка дельта принтера — Kossel Mini

2015-11-22 21-57-14 В данной статье попробую описать свои изыскания по первичной настройке дельта принтера Коссель Мини.
После того, как установил и закрепил зеркало, пришло время выставить эндстопы и рельсы. Итак, отмерил от стола до нижнего конца рельсы 100мм и затянул все болты. Далее прижал вплотную к рельсе концевики и их тоже затянул. Понятно, что скорее всего они будут немного на разной высоте, но дальше это можно будет компенсировать в прошивке.
По механике на этом в принципе все заканчивается. Остается только программная часть.

Для настройки нам потребуется программа из которой можно засылать в принтер G-Code.
Я выбрал Printrun. Для винды там есть отдельная ссылка на скачивание установочного пакета.

На данный момент я знаю две прошивки под дельта принтер это Marlin и Repetier. Т.к. я юзаю нестандартный OLED экранчик, мне было проще прикрутить его к Марлину. В общем на нем и остановился. Скачал последний релиз, скомпилил его под обычную классическую схему и стал проверять. Первым делом смотрим туда ли едут каретки. Моторы подключаются следующим образом: сзади — ось Z, спереди слева — X, спереди справа — Y. Жмякаем по X +10мм — каретка должна ехать вверх. Аналогично для осей Y и Z.
Если мотор едет в другую сторону — надо просто перевернуть разъем на Рампсе или меняем в прошивке. Далее проверяем насколько верно работают концевики. Ставим каретку вниз, запускаем ее ехать вверх и не дожидаясь пока она доедет — нажимаем пальцем на концевик. Если при нажатии она продолжает ехать — значит что-то не так. Возможно концевики стоят не в тех коннекторах (верхние должны в максимумы включаться), а может инверт стоит не совсем правильно (X_MIN_ENDSTOP_INVERTING) ну и в случае обычных микриков — проверить подключены ли резисторы для подтяжки(ENDSTOPPULLUPS).

На этом шаге моторы у нас крутятся в правильном направлении и концевики работают как надо. Можно переходить к конфигурации прошивки под дельту.
Итак, раскомментируем строчку #define DELTA, и введем параметры для дельты:

#define DELTA_SEGMENTS_PER_SECOND 80 — количество сегментов которые обсчитывает принтер в секунду. У меня с моим монитором даже на 80 тормозило, пришлось снизить до 50ти. Обычно 150-200.
#define DELTA_DIAGONAL_ROD 208.0 // mm — длина между центрами у тяги.
#define DELTA_SMOOTH_ROD_OFFSET 151.0 // mm — Расстояние от кончика сопла до профиля.
#define DELTA_EFFECTOR_OFFSET 29 // mm — от кончика сопла до центра крепления тяги на эффекторе
#define DELTA_CARRIAGE_OFFSET 29 // mm-от профиля до центра крепления тяг на каретке.

Выставляем направление движения для Home
// ENDSTOP SETTINGS:1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1

А так-же высоту от стола до сопла (когда все каретки вверху). Для начала можно поставить поменьше с запасом.
#define Z_MAX_POS 250.0

Просматриваем остальные параметры из Configuration.h и заливаем прошивку в принтер. Держа руку на выключателе питание жмем на кнопку Home (в printrun).
Если движется не туда куда надо — выключаем, если не останавливается у концевика — тоже вырубаем. Если все прошло хорошо — значит у нас успешно отработал Home и каретки уехали в верх.
Теперь создаем в printrun кнопки для быстрого перехода между калибровочными точками. Я себе сделал 5 кнопок.
1) Center — G1 X0 Y0
2) Point A — G1 X-52 Y-30 (ось X)
3) Point B — G1 X+52 Y-30 (ось Y)
4) Point C — G1 X0 Y60 (ось Z)
5) Z7.7 — G1 Z7.7 (это высота пробника который у меня был — круглая ручка от резака).

Итак, нажимая на Z-10 опускаем сопло ближе к столу(гденить в 2-3см от стола). Далее нажимаем наши новые кнопки и смотрим чтобы сопло в центре не было сильно ниже чем по краям. Переходим в точку A, затем в B, потом в С. Запоминаем точку где у нас сопло ниже всего. Эту точку трогать не будем, будем выравнивать остальные относительно нее.
Например у нас B оказалась ниже всех. Переходим в нее и подгоняем ее под какой-то пробник (до касания). Запоминаем значение по оси Z отображающееся на экране, переходим в точку A и нажимая +- 0.1 по оси Z смотрим на сколько у нас точка A выше точки B.
Например получилось 0.3мм — тогда вбиваем в Gcode следующую команду: M666 X-0.3
Затем сохраняем все командой: M500
Жмем Home и проделываем все тоже самое для точки С. После этого все 3 точки должны быть в одной плоскости.

Теперь надо убрать «линзу». Линза может быть выпуклой (если сопло в центре выше боковых точек), или вогнутой(сопло в центре ниже боковых точек).
Для того чтобы убрать линзу придется подбирать параметр R изменяемый командой:
M665 R83.60
потом опять сохраняем (M500) и идем в Home(G28). Я шел с шагом +-1 потом +- 0.2 В конце концов все точки A-B-C-Center выстроились в плоскость.

Для получения текущих параметров можно использовать команду: M501
Она выдает такой результат:
SENDING:M501
echo:Stored settings retrieved
echo:Steps per unit:
echo: M92 X160.00 Y160.00 Z160.00 E266.00
echo:Maximum feedrates (mm/s):
echo: M203 X500.00 Y500.00 Z500.00 E25.00
echo:Maximum Acceleration (mm/s2):
echo: M201 X9000 Y9000 Z9000 E10000
echo:Acceleration: S=acceleration, T=retract acceleration
echo: M204 S3000.00 T3000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
echo: M205 S0.00 T0.00 B20000 X20.00 Z20.00 E5.00
echo:Home offset (mm):
echo: M206 X0.00 Y0.00 Z-0.20
echo:Endstop adjustement (mm):
echo: M666 X0.00 Y-0.60 Z-0.70
echo:Delta settings: L=delta_diagonal_rod, R=delta_radius, S=delta_segments_per_second
echo: M665 L208.00 R83.60 S50.00
echo:PID settings:
echo: M301 P22.20 I1.08 D114.00

Для изменения какого-либо параметра необходимо ввести его командой которая указана перед этим параметром. (Т.е. для каждого параметра своя команда.)

Теперь осталось выставить высоту подъема над столом. Тут я просто посчитал насколько у меня опускается ось Z в минус и прибавил это значение к Z_MAX_POS.
Залил прошивку по новой и по идее все стало как надо.

Пару слов о настройке количества шагов для осей и для экструдера.
Если использовать стандартные шпули на 20 зубов и ремень T2.5 — то с 1/16 микрошагом будет ровно 80 шагов на 1мм. Если стоят драйвера DRV8825 с микрошагом 1/32 — то 160 шагов на 1мм.
Для экструдера подбирается эксперементальным путем. Помечаем пруток рядом с экструдером и давим 100мм вперед.
Измеряем линейкой сколько получилось и корректируем по формуле: Nнов = Nтекущее*100/Sизм.
У меня тут получилось так:
#define DEFAULT_AXIS_STEPS_PER_UNIT {160,160,160,266}

Теперь о калибровке термистора на хотэнде. Я умудрился купить термисторы NTC3950 которые в марлине сильно врали. Т.е. когда на экране было 180 градусов, реально было около 160. Погуглив немного какой тип термистора надо выбирать в марлине для этих термисторов наткнулся на эту тему. Затащил калибровочную таблицу в прошивку и указал новый тип. Стало гораздо лучше. Проверял температуру тестером с термопарой. Разброс уменьшился до 5 градусов.

Теперь, когда все откалибровано — можно запускать первую печать. Первая попытка не удалась, т.к. сопло оказалось слишком высоко от стола.
Использовал команду M206 для смещения относительно текущего положения.
M206 Z-0.20
M500
G28

После этого печать пошла и успешно пошла.



2015-11-09 23-58-422015-11-10 00-21-33


Есть грустные моменты. Видимо ардуина мега для дельты с графическим олед экранчиком ну совсем слабовата. Тормозит ощутимо даже с 50ю сегментами в секунду. Печатать конечно можно, но в работе видны подтормаживания. Заказал обычный текстовый экранчик и одновременно с ним Arduino Due с рампсом под нее. По идее она должна с легкостью тянуть нужные расчеты.

Чуть позже распечатал еще калибрационный куб 20х20мм и простой квадрат 100х100мм. Как ни странно размеры довольно точно соответствуют тем, что я получил.


2015-11-22 10-51-57 2015-11-15 01-36-28

В приложение добавлю мою прошивку Marlin под oled экранчик и дельту minikossel. Может кому-то будет полезно…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>