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

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

Подключение кабеля датчика к разъему EXP1 на плате

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

    Loading...

Установка патча в прошивку 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

Компиляция прошивки здесь выполняется только если указано о несоответствии прошивок верхнего и нижнего уровней

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

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

    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=Датчик расстояния до стола

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

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

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

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

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

  • Измените значение horizontal_move_z в [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 и команды 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-коды:

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

Проверка подключения

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

    Отправлено: M102 S-1
    Получено: V1.0 pandapi3d.com

Калибровка

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

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

  • Скорость парковки оси Z должна быть около 5.

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

    • Частый вопрос: Что означают калибровочные данные, если первое значение — 1, второе — 9, третье — 24?

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

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

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

Loading...