Перейти к основному содержимому

Установка BDsensor-m

Подключите кабель датчика к порту EXP1 на материнской плате

  • Если кабель датчика недостаточно длинный, можно использовать удлинительный кабель из комплекта
  • Провода CKL и SDA BDsensor-m можно подключать к любым GPIO-контактам на плате. Также можно подключить кабель датчика BD напрямую к порту Bltouch, например:
BLtouch    |    BDsensor-m
5V --> 5V
GND --> GND
S --> CLK/SCL (Вход)
GND --> GND
Zmin --> SDA (Вход/Выход)
  • Некоторые контакты на разъеме материнской платы могут не быть напрямую подключены к GPIO MCU (например, они могут иметь фильтрующие конденсаторы или быть изолированы через MOSFET, диод или оптопару, но если они изолированы через резистор или подтягивающий/подтягивающий резистор, это тоже возможно), поэтому они не могут использоваться с BDsensor-m. И прошивка сообщит об ошибке подключения. Например
  • Разъемы для вентиляторов и нагревателей изолированы через MOSFET,
  • Разъемы для термисторов температуры и концевых выключателей/зондов на некоторых платах обычно подключены через фильтрующие конденсаторы к GND,
  1. Установите датчик BD вблизи термоблока, как показано на рисунке. STL крепления, STL крепления VzBot_Goliath short

Установка патча в прошивку Klipper

  • Не выполняйте действия, не указанные в руководстве

  • Отмените предыдущие изменения в файлах Klipper и обновите Klipper

    cd
    cd ~/klipper
    git checkout .
    git pull
  • В домашней директории выполните следующую команду git для клонирования последнего кода датчика BD

    cd && git clone https://github.com/markniu/Bed_Distance_sensor.git
  • Затем выполните следующую команду для установки

    cd  ~/Bed_Distance_sensor/klipper/
    ./install_BDsensor.sh

Здесь компиляция прошивки, если появляется сообщение о несоответствии прошивки, только тогда компилируйте новую прошивку Klipper

  • Скомпилируйте прошивку, найдите инструкцию для компиляции вашей прошивки и прошивки

  • Компиляция прошивки

    cd ~/klipper/  # Перейти в каталог Klipper
    make menuconfig # Войти в меню конфигурации Klipper
    make clean # Очистить
    make # Компиляция
  • Запишите прошивку на материнскую плату, к которой подключен датчик BD

Если ваш принтер работает на Moonraker, добавьте следующую часть в файл moonraker.conf, тогда вы сможете обновить BDsensor одним кликом через веб-интерфейс или KlipperScreen.

[update_manager BDsensor]
type: git_repo
primary_branch: new
channel: dev
path: ~/Bed_Distance_sensor
origin: https://github.com/markniu/Bed_Distance_sensor.git
install_script: ./klipper/install_BDsensor.sh
is_system_service: False
managed_services: klipper
info_tags:
desc=Bed Distance Sensor

Редактирование printer.cfg

  • Скопируйте эту часть в ваш printer.cfg и отредактируйте sda_pin и scl_pin в разделе [BDsensor], не забудьте также отключить другие зонды, например BLtouch. Вы можете подключить датчик BD к материнской плате или к модулю CAN на инструментальной головке,

  • В разделе [BDsensor] измените speed на 0.8. Это применимо только для команд z-tilt и PROBE_ACCURACY. Чем меньше значение, тем выше точность при зондировании, так как MCU считывает датчик BD в главном цикле не в реальном времени, как обычные концевые выключатели. [BDsensor]

  • Чтобы использовать датчик BD в качестве концевого выключателя при возврате Z, измените endstop_pin в [stepper_z] на endstop_pin: probe:z_virtual_endstop

  • Убедитесь, что в printer.cfg есть [safe_z_home]

  • Измените значения z_tilt и quad_gantry_level в [bed_mesh] и [z_tilt] или [quad_gantry_level] на 1 (рекомендуется от 0.7 до 1.0 мм), по умолчанию в Klipper это 5 мм, иначе датчик может выйти за пределы диапазона

  • Высота сопла подходит только для настройки в z_adjust:, положительное значение приближает сопло к кровати, отрицательное - отдаляет, другие настройки высоты сопла могут содержать ошибки

  • Чтобы включить быстрое сканирование кровати, удалите # перед no_stop_probe:true

  • Вот пример конфигурации.

    [BDsensor] 
    scl_pin:PC6 # Контакт для сервопривода
    sda_pin:PC3 # Контакт для концевого выключателя
    delay: 20 # 20 мкс на импульс, это значение должно быть >=20, но не более 50
    z_offset:0 # это `z_offset` должно быть установлено на 0.
    z_adjust:0.0 # корректировка оси Z, заменяет функцию z_offset. в пределах от -0.3 до 0.3 мм
    x_offset: -34
    y_offset: 0
    #no_stop_probe:true # включите это для быстрого зондирования, инструментальная головка не будет останавливаться в точке зондирования.
    position_endstop: 0.8 # ось Z остановится на этой позиции (мм) при возврате Z, рекомендуемое значение от 0.4 до 1.0
    #speed:0.8 # эта скорость работает только для команд z-tilt и PROBE_ACCURACY.

    [stepper_z]
    endstop_pin: probe:z_virtual_endstop
    #position_endstop: 0.5
    homing_speed: 5
    second_homing_speed: 0.8

    [bed_mesh]
    speed: 200
    horizontal_move_z:1
    algorithm: bicubic

    [quad_gantry_level]
    horizontal_move_z:1

После установки проверьте, отправив следующие команды G-code

M102   S-1     # Чтение информации с датчика
M102 S-2 # Чтение одного значения расстояния

Проверка соединения

  • Отправьте через консоль команду M102 S-1, вот пример возвращаемого сообщения, если возвращается пусто или другая строка, проверьте соединение и последовательность проводов

    Send: M102 S-1
    Recv: V1.0 pandapi3d.com

Калібровка

  • Очистите сопло, затем через консоль переместите ось Z, пока сопло не коснется кровати (BDsensor-m будет использовать эту позицию как нулевую, поэтому z_offset не нужен, это причина, почему в разделе [BDsensor-m] значение равно 0)
  • Отправьте команду G-code M102 S-6 через консоль, принтер будет медленно поднимать ось Z на 0.1 мм каждый раз, пока не достигнет 4 мм. Не запускайте M102 S-6 до установки датчика и не выключайте принтер во время калибровки, иначе старые данные калибровки будут удалены. Если это произойдет, просто выполните калибровку снова.
  • После этого вы можете проверить, успешно ли прошла калибровка BD датчика с помощью M102 S-5, это вернет исходные данные калибровки, хранящиеся в BD датчике.

Важные замечания:

  • Лучшая скорость возврата оси Z - 5

  • Если M102 S-5 возвращает первое исходное значение калибровки больше 400, это означает, что датчик установлен слишком высоко, нужно установить его ближе к кровати, рекомендуемое значение первого данных - 100. Также убедитесь, что значение второго данных на 10 больше, чем первого.

    • FAQ: Если данные калибровки начинаются с 1, второе значение - 9, а третье - 24, что это означает?

    • Это означает, что разрешение между 0-0.1 мм составляет только 9, а разрешение между 0.1-0.2 мм - 15. Поэтому рекомендуется повторить калибровку, чтобы первое разрешение 0-0.1 мм было больше 10.

  • Не забывайте после выполнения G28 или для команд Z_tilt и quad_gantry_level корректировать высоту оси Z

  • Названия частей должны быть правильно записаны с учетом регистра, иначе Klipper сообщит об ошибке Неизвестное имя чипа 'probe'