Как заставить Ender 5 использовать зонд BLTouch для Z-наведения?

Предыстория

Я настроил модуль BLTouch, как описано в прилагаемом к нему руководстве, которое включало отсоединение переключателя оси Z и замену его парой проводов от модуля BLTouch.

Мне удалось записать встроенное ПО, доступное в Creality, однако это не компенсировало тот факт, что модуль BLTouch смещен от hotend, и я не мог вручную отредактировать файл .hex, чтобы добавить смещения. Я попытался использовать команду G-кода, чтобы обновить ее на EEPROM, но это не сработало, и она всегда прощупывала край стола.

Затем я решил прошить новую прошивку на основе непосредственно Marlin 1.1.x, так как на Youtube есть несколько видео о том, как это сделать. Я использовал ISP pink USB, поставляемого с BLTouch, для переноса загрузчика Arduino на материнскую плату, и теперь я могу использовать IDE Arduino для программирования платы.

Я загрузил свою настроенную прошивку Marlin (см. Ниже), но она работает неправильно.

Проблема

Когда я запускаю принтер, остановки X и Y переключаются на переключатели, правильно ударяются и обнуляются. Однако, когда ось Z самонаводится, зонд BLTouch остается втянутым, и он начинает двигаться к дому - я принудительно выключаю принтер, когда это происходит, потому что знаю, что ничто не помешает ему врезаться в печатающую головку и разбить вещи.

Как настроить встроенное ПО для использования модуля BLTouch в качестве зонда Z stop?

Хотя зонд несколько раз включается и выключается при включении принтера, я не совсем уверен, что он вообще работает - переход в меню BLTouch и выбор Cmd: Deploy не оказывает эффекта.

С верхней стороны, когда он переходит из центра в дом (из-за Z_SAFE_HOMING), модуль BLTouch располагается над центром панели сборки, а не над hotend.


Конфигурация

Вы можете увидеть репозиторий Marlin, который я пытаюсь использовать здесь, в Gitlab, или прямую ссылку на различие между исходной конфигурацией Marlin и моими изменениями.

Вот некоторые, надеюсь, соответствующие изменения конфигурации, которые я внес:

// Configuration.h

//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG

#define BLTOUCH

#define X_PROBE_OFFSET_FROM_EXTRUDER -44  // X: -слева +справа [от сопла]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -6   // Смещение по Y: -спереди +сзади [сопло]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 5.7  // Смещение по Z: -ниже +выше [сопло]

#define Z_HOMING_HEIGHT 4

#define Z_SAFE_HOMING
// pins_MELZI_CREALITY.h

#define SERVO0_PIN 20 // Интересно, правильно ли это?

Эти настройки были оставлены по умолчанию, но они, возможно, выглядят уместными:

/**
 * Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
 *
 * Включите эту опцию для датчика, подключенного к штифту Z Min endstop.
 */
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/**
 * Z_MIN_PROBE_ENDSTOP
 *
 * Включите эту опцию для датчика, подключенного к любому контакту, кроме Z-Min.
 * (По умолчанию Marlin принимает контактный ограничитель Z-Max.)
 * Чтобы использовать пользовательский вывод Z-зонда, установите Z_MIN_PROBE_PIN ниже.
 *
 * - Самый простой вариант-использовать бесплатный разъем концевой опоры.
 * - Используйте 5 В для питания (обычно индуктивных) датчиков.
 *
 * - RAMPS 1.3/1.4 платы могут использовать штырь 5 В, GND и Aux4->D32:
 * - Для подключения простых переключателей...
 * - нормально закрытые переключатели на GND и D32.
 * - нормально открытые переключатели на 5 В и D32.
 *
 * ПРЕДУПРЕЖДЕНИЕ: Установка неправильного контакта может привести к неожиданным и потенциально
 * катастрофические последствия. Используйте с осторожностью и делайте свою домашнюю работу.
 *
 */
//#define Z_MIN_PROBE_ENDSTOP

/**
 * Количество сервоприводов
 *
 * Для некоторых параметров, связанных с сервомотором, NUM_SERVOS будет установлен автоматически.
 * Установите это вручную, если есть дополнительные сервоприводы, требующие ручного управления.
 * Оставьте неопределенным или установите значение 0, чтобы полностью отключить сервосистему.
 */
//#define NUM_SERVOS 3 // Индекс сервопривода начинается с 0 для команды M280

, 👍2

Обсуждение

Есть 5 проводов (из которых 2 заземлены), если у вас есть 2 провода (черный/белый) на Z-образном ограничителе, где соединены оранжевый, красный и коричневый. Последние необходимы для работы сервопривода, они должны быть правильно подключены и правильно настроены в встроенном ПО. Какая у вас плата контроллера (и версия) и какие контакты вы используете, добавление фотографий может помочь., @0scar

@0scar, Ты был на правильном пути! Я был далек от своей глубины и в итоге установил "SERVO0_PIN" на вывод "ZMIN", а не на то, что должно было быть в соответствии с разделительной доской. К сожалению, в Creality практически нет документации, предположительно, потому, что они хотят, чтобы вы использовали их собственные предварительно скомпилированные шестнадцатеричные файлы. Все хорошо, что хорошо кончается!, @user-596a6526

Рад помочь, вывод сервопривода зависит от платы, поэтому не публикую ответ, рад видеть, что вы публикуете свой собственный ответ!, @0scar


1 ответ


Лучший ответ:

2

Я решил эту проблему. Вот в чем проблема:

// pins_MELZI_CREALITY.h

#Define SERVO0_PIN 20 // Интересно, правильно ли это?

Как ни странно, это было неправильно. Штифт 20-это штифт Z MIN, как определено в файле pins_MELZI_CREALITY.h, а не следящий штифт, используемый модулем BLTouch.

В 8:04 этого видео на YouTubeон говорит, что это значение должно быть установлено на 27, "если мы используем плату pin 27 или штифт для соединения".

Я попробовал, и модуль BLTouch теперь реагирует, и самонаведение работает!

Для всех, кто столкнется с этой проблемой (ее, как ни странно, очень трудно найти в Интернете), добавьте следующий код:

#define BLTOUCH
#if ENABLED(BLTOUCH)
  #define SERVO0_PIN 27
  //#define BLTOUCH_DELAY 375   // (мс) Включите и увеличьте при необходимости
#endif

,

Большое спасибо за публикацию вашего решения! Заявки принимаются через 48 часов, чтобы свести к минимуму список вопросов, на которые нет ответов/отклоненных. А теперь прорабатывай свой путь https://3d-printery.ru/topics/16604/automatic-bed-leveling-abl-with-a-sensor-bltouch-inductive-capacitive-how и наслаждайтесь печатью (вам все равно нужно предоставить стол как можно более ровный или протараненный)! :-) Хорошее видео: https://www.youtube.com/watch?v=zSOVAdKw4ss, @0scar