Установка 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
- Как показано на рисунке, установите датчик 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
Здесь необходимо перекомпилировать прошивку только если появляется сообщение о несоответствии прошивок верхнего и нижнего уровня и перекомпилировать новую прошивку 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-датчика в основном цикле при возврате по Z не так часто, как обычный концевой датчик.[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 остановится на этой позиции (мм) при возврате по 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) - Отправьте через консоль команду
M102 S-6, принтер будет медленно поднимать ось Z на 0.1 мм каждый раз до достижения 4 мм. Не запускайте командуM102 S-6до установки датчика, а также не выключайте принтер во время калибровки, иначе старые калибровочные данные будут удалены. В этом случае просто повторите калибровку - После этого вы можете проверить, успешно ли откалиброван BD-датчик с помощью команды
M102 S-5, которая вернет сохраненные в датчике калибровочные данные
Важно:
-
Скорость возврата по оси 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'