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

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

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

*Если кабель датчика недостаточной длины, можно использовать удлинитель из комплекта поставки

  • Линии CLK и SDA датчика BDsensor-m могут быть подключены к любым GPIO-выводам платы. Также можно подключить кабель датчика BD напрямую к порту BLtouch, например:
BLtouch    |    BDsensor-m
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
  • Некоторые выводы разъема основной платы могут быть не напрямую подключены к GPIO микроконтроллера (например, они могут иметь фильтрующие конденсаторы или быть изолированы через MOSFET, диод или оптопару, но если они изолированы через резисторы или подтягивающие/стягивающие резисторы, то тоже подойдут), поэтому их нельзя использовать с BDsensor-m. И прошивка сообщит об ошибке подключения. Например:
  • Разъемы вентиляторов и нагревателей изолированы через MOSFET,
  • В некоторых платах разъемы для температурных датчиков и концевых выключателей/пробников обычно подключены к GND через фильтрующие конденсаторы,
  1. Установите датчик BD вблизи горячего конца, как показано на рисунке. STL of mount, STL_mount_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

Здесь компилируйте прошивку только если появляется сообщение о несоответствии версий прошивки верхнего и нижнего уровней

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

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

    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. Чем меньше значение, тем выше точность измерения, так как МК читает данные с датчика BD в основном цикле во время калибровки, но не в реальном времени, как обычный концевик. [BDsensor]

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

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

  • Измените значение в разделах [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 остановится на этой позиции (мм) при калибровке, рекомендуемое значение 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

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

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)
  • Отправьте команду GCODE 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.

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

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

Loading...
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -