BLTouch и оптические концевики - есть тонкости!
Пишу результаты нескольких часов разборок с исходниками Марлина 1.1.x.
Предыстория (можно пропустить):
После нового года к нам в центр прототипирования попал на восстановление школьный Anycubic I3 Mega. Поскольку в нем выгорела почти вся электроника (и дисплей, и trigorilla, и частично зеленый разъем на корпусе...), то помимо перехода на Gen.L и MiniLCD устанавливали оптические концевики по Z и BLTouch.
Мне как-то высказывали мнение, что последние два апгрейда как бы исключают друг друга (или по крайней мере - являются излишними). Не соглашусь с этим:
- Задача концевых выключателей в 3D-принтере - это быстро и единообразно приводить оси к нулю. Оптический концевик по 'Z' принципиально хорош тем, что допускает дальнейшее движение оси в сторону уменьшения координат: флажок-то ни во что не упирается, а проходит в зазоре датчика! Таким образом, можно выставить концевики в комфортных 2-3 миллиметрах от рабочей плоскости стола, и потом выбрать это расстояние командой M206. И калибровать удобнее, и стекло на столе дольше живет. :-)
- Если установлены два концевика по Z и два независимых мотора на этой оси (а для RepRap это скорее правило, чем исключение) - можно включить автоматическое выведение оси X в горизонт (Z_DUAL_ENDSTOPS в adv-конфиге).
- Использование китайской копии BLTouch в качестве Z_MIN - не лучшая идея. У датчика с выдвижным штоком вариантов сработать неправильно - гораздо больше, чем у простого оптического выключателя. А замер стола перед каждой печатью - избыточная и длительная операция.
- Поэтому в обычной обстановке для поиска нуля используются оптические концевики, и только если первый слой ложится неудовлетворительно - запускается калибровка по BLTouch.
Такая схема уже была опробована на принтерах с одним концевиком по Z и успешно работала. А с двумя - калибровка не шла! Принтер доезжал до срабатывания концевиков по Z, и отскакивал обратно. И Z_PROBE_LOW_POINT на это поведение никак не влиял.
После копания по форумам и багрепортам Marlin выяснилось следующее:
- Прекращение цикла измерения высоты стола при срабатывании концевика Z ранее являлось штатной функцией Марлина. Предполагалось, что концевики действительно установлены в самом нижнем возможном положении - и их срабатывание вне хоуминга является признаком какой-то неисправности.
- Позже, в прошивку вносились изменения, которые делали такое поведение отключаемым
Если посмотреть файл endstops.cpp в районе строки 639, то увидим следующую логику:
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
if (z_probe_enabled) PROCESS_ENDSTOP(Z, MIN);
#elif ENABLED(Z_MIN_PROBE_ENDSTOP)
if (!z_probe_enabled) PROCESS_ENDSTOP(Z, MIN);
#else
То есть ясно видно, что если датчик активен (z_probe_enabled) и мы не используем его в качестве Z_MIN - срабатывание концевика игнорируется (PROCESS_ENDSTOP не вызывается).
А теперь смотрим чуть выше:
#if ENABLED(Z_DUAL_ENDSTOPS)
PROCESS_DUAL_ENDSTOP(Z, Z2, MIN);
#else
То есть если у нас два концевика по Z, то их нужно отрабатывать всегда - хотя бы и при выпущенном датчике. Пришлось по-аналогии поправить логику на:
#if ENABLED(Z_DUAL_ENDSTOPS)
if(!z_probe_enabled) PROCESS_DUAL_ENDSTOP(Z, Z2, MIN);
#else
С этим изменением все работает отлично!
P.S. Вот думаю, стоит ли заводить багрепорт в 1.1.x ? Там же теперь только исправление ошибок! Или сразу в сторону 2.x смотреть ?
Еще больше интересных статей
Покраска пластика
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Вакуумный сублиматор филамента (и не только) "Лютая дичЪ-93"
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Придумал, экструдер.....
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Ну, вот и я так подумал. Больш...
Самому нравится. Особенно цвет...
Очень красиво покрасили! загля...
Проблема такая: Поставил на пе...
Здравствуйте, у меня перестала...
Доброго времени суток.Неожидан...
Всем доброго дня. Вчера кинул...