Металл2024 Реклама
Метобр2024 Реклама

Как я к Tronxy XY-2 Pro оптический концевик приделал

zemuro
Идет загрузка
Загрузка
19.03.2021
2787
3
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

11
Статья относится к принтерам:
Tronxy XY-2 Pro

Купил я недавно свой первый 3D-принтер - TronXY XY-2 Pro. Намучился с ним за первый месяц по нескольким причинам:

1.) Глючный Марлин, который мне достался вместе с принтером. (периодически отключался драйвер Z, иногда на печати второго слоя, иногда — при попытке изменить probe Z-offset)

2.) Совершенно чудовищный проприетарный сток, который после Марлина показался мне абсолютно непредсказуемым, к тому же, на нём не было возможности корректировать высоту сопла после начала печати.

3) Индуктивный сенсор приближения, доставшийся мне в юбке с магнитиком, без которого он не видел стол через стекло, а с магнитом путался в показаниях, то есть, при старте печати врал примерно на +-0.2мм, и приходилось двигать Z-offset в Марлине, а в стоковой прошивке скрежетать зубами и всё ненавидеть.

В результате пришлось руками конфигурировать свежий Марлин из bugfix-ветки, но это, как я понимаю, то, через что проходит каждый пользователь этой прошивки. Пока разбирался с конфигурацией, компилировал, прошивал, тестировал и снова правил конфиги, заметил одну интересную вещь: глюки с драйвером по Z пропадают, если отключить в конфигурации бэбистеппинг. Возможно, есть какая-то разница в бэбистеппинге между драйвером TMC2225, стоящем у меня в принтере, и TMC2008, который вбит в Марлин (как полностью идентичный 2225). В общем, без бэбистеппинга стало хорошо.

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

Пошел в ближайший магазин всякого барахла для принтеров и купил оптический концевик за 70р. Я так понимаю, что это самая распространённая модель, других я, собственно, и не встречал. Выглядит вот так:Как я к Tronxy XY-2 Pro оптический концевик приделалНа плате с оптопарой установлен трехпиновый разъём типа XH-3P, или как-то так. Также к ней прилагается кабель с ответным разъёмом на одном конце и с тремя отдельными пинами — с другой. Так как у меня в плате Chitu3D V6 был как раз такой трёхпиновый разъём, а отдельные пины из него вываливались, я воткнул вилку XH в плату принтера, а три пина на другом конце отрезал и припаял напрямую к плате сенсора, из которой предварительно выпаял разъём. 

Нужно заметить, что порядок сигналов на разъёме в принтере и на разъёме сенсора разный. На плате, в моём случае, идут подряд +5 Вольт (V), земля (G) и сигнал (S), а на плате самого сенсора, как видно на фото, питание и земля по краям, а выход сенсора в середине. Поэтому пришлось перевернуть два провода из трех.

Включил принтер. Датчик радостно засветил красным светодиодом, при появлении в щели оптопары пластиковой карты, светодиод выключился, и наоборот. Значит, работает. Но, при этом, принтер никак на него не реагирует. Что же делать? Помог файл с распиновкой всех разъемов на плате, найденный на форуме reprap.org. По нему видим, что сигнал от родного индуктивного сенсора (на схеме это сигнал PROXIMITY в распиновке 30-пинового кабеля, соединяющего плату и распредкоробку на оси Х) подтянут к +5В и подключен к пину 124 контроллера (PG9) (10kΩ Pullup to +5V and 100nF to GND, then 20kΩ to MCU Pin124 PG9), а сигнал с разъёма концевика (ZSTOP) подключен к пину 109 (PA14). 

В Марлине этого пина в описании нашей платы нет, придётся добавить. Ищем в исходниках Марлина /Marlin/src/pins/stm32f1\pins_CHITU3D_V6.h

В группе параметров Limit Switches меняем пин концевика (до того там был прописан пин с датчика приближения):

#define Z_STOP_PIN PA14

И добавляем отдельно сигнал с датчика приближения (вдруг пригодится):

#define PROBE_1_PIN PG9

Теперь остаётся внести изменения в /Marlin/configuration.h

В разделе Endstop Settings:

Поменял настройку

#define Z_MIN_ENDSTOP_INVERTING false (было true), иначе концевик срабатывает в разомкнутом состоянии.

В разделе Z Probe Options:

Закомментировал #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN, таким образом дал Марлину понять, что концевик и датчик приближения висят на разных пинах.

Раскомментировал и добавил пин датчика приближения, описанного в pins.h:

#define Z_MIN_PROBE_PIN PROBE_1_PIN

Дальше я раскомментировал

#define PROBE_MANUALLY

#define MANUAL_PROBE_START_Z 0.1

В разделе Bed Levellin Bed Levelling (тут всё чисто из интереса попробовать вручную отровнять стол по сетке):

Откомментил простой ручной

#define MESH_BED_LEVELING, соответственно закомментил

//#define AUTO_BED_LEVELING_BILINEAR, стоявшее по умолчанию.

В разделе Mesh прописал отступы от краёв стола и количество узлов сетки (3х3):

#define MESH_INSET 35

#define GRID_MAX_POINTS_X 3

#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

Раскомментил #define LCD_BED_LEVELING, чтобы можно было двигать Z из интерфейса,

Открыл #define LEVEL_BED_CORNERS, чтобы появилось меню для регулировки углов стола, в нём настроил параметры:

#define LEVEL_CORNERS_INSET_LFRB { 40, 50, 40, 30 } // отступы в миллиметрах от краёв стола (слева, спереди, справа, сзади), чтобы не сносило зажимы.

#define LEVEL_CORNERS_HEIGHT 0.1 // зазор в 0.1мм, чтобы ровнять углы по листику бумаги, с коррекцией на эту высоту. Можно скорректировать высоту сопла из интерфейса изменением Bed Z Level, но можно сразу вложить корректировку в процесс выравнивания. 

#define LEVEL_CORNERS_Z_HOP 4.0 // на сколько мм поднимать сопло при переезде к следующей точке

#define LEVEL_CENTER_TOO // Если интересно, что происходит с уровнем сопла в центре стола

Таким образом, датчик приближения остаётся доступным для будущих экспериментов, хоть и не используется ни в одной из операций хоуминга, или выравнивания стола.

Крепление для датчика и шторки я распечатал вот это, оно для Ender 3, но на мой TronXY село без доработок. Выглядит всё в сборе так (изображение с thingiverse, но отличий нуль):Как я к Tronxy XY-2 Pro оптический концевик приделалЧто стало лучше:

  • Теперь нуль оси Z всегда на одном и том же месте, не нужно подстраивать высоту сопла на глаз в начале каждой новой печати
  • После нескольких циклов выравнивания углов плоскость стекла стала совершенно ровной, тем не менее, некоторую выпуклость в центре пришлось скорректировать выравниванием по сетке. Для этого я заполнил сетку нулями, центральный узел немного приподнял путём ручного редактирования узлов сетки через Gcode (на 0.075) и сохранил сетку в EEPROM
  • С выровненным столом первый слой идеальный и равномерный. Целый день печатаю, и ничего настраивать не пришлось
  • Пока со всем этим возился, немного разобрался в Марлине и, вообще, в устройстве и логике работы принтера.

Такие дела, спасибо за внимание.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

11
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама