Установка 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,
-
Установите датчик 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'