Установка BDsensor
Подключите кабель датчика к основной плате или плате CAN-шины инструмента.
- Обратите внимание, что SB2040 не может использовать BDsensor
- Обратите внимание, что для SHT36 необходимо подключить CLK/SCL (Input) BDsensor к входу высокого напряжения и установить перемычку
- Линии CKL и SDA BDsensor можно подключить к любым GPIO-пинам платы. Также можно подключить кабель BDsensor напрямую к порту Bltouch, например:
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
-
Из-за того, что некоторые пины в разъемах основной платы могут не быть напрямую подключены к GPIO MCU (например, они могут иметь фильтрующие конденсаторы или быть изолированы через MOSFET, диод или оптопару, но если они изолированы через резисторы или подтягиваются/опускаются резисторами, это тоже можно), они не могут использоваться с BDsensor. И прошивка сообщит об ошибке подключения. Например:
-
Разъемы вентиляторов и нагревателей изолированы через MOSFET,
-
Разъемы для термисторов и концевых выключателей/датчиков на некоторых платах обычно подключены к GND через фильтрующие конденсаторы,
-
Установите BDsensor вблизи хотенда, как показано на рисунке. STL of mount, STL_mount_VzBot_Goliath short
Установка патча в прошивку Klipper
-
Отмените все предыдущие изменения в файлах Klipper и обновите Klipper
cd
cd ~/klipper
git checkout .
git pull -
Клонируйте последний код BDsensor
cd && git clone https://github.com/markniu/Bed_Distance_sensor.git
-
Установка
cd ~/Bed_Distance_sensor/klipper/
./install_BDsensor.sh -
Компиляция прошивки
cd ~/klipper/
make menuconfig
make clean
make -
Загрузите прошивку на MCU или плату инструмента CANbus, к которому подключен BDsensor
Если ваша печать управляется 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. Вы можете подключить BDsensor к основной плате или к модулю инструмента CAN, -
В
[BDsensor]
изменитеspeed
на 0.8. Это применимо только к командам z_tilt и PROBE_ACCURACY. Чем меньше значение, тем выше точность при зондировании, так как MCU не считывает BDsensor в реальном времени при возврате в исходное положение.[BDsensor]
-
Для использования BDsensor как концевого выключателя при возврате Z в исходное положение, измените
endstop_pin
в[stepper_z]
наendstop_pin: probe:z_virtual_endstop
-
Убедитесь, что в printer.cfg есть
[safe_z_home]
-
Измените значение
z_offset
в[bed_mesh]
и[z_tilt]
или[quad_gantry_level]
на 1 (рекомендуется 0.7-1.0mm), так как по умолчанию в Klipper это значение равно 5mm, что может выйти за пределы диапазона датчика -
Высота сопла подходит только для настройки
z_adjust:
, положительные значения означают приближение к кровати, отрицательные - удаление от нее, другие настройки высоты сопла могут привести к ошибкам -
Для активации быстрого сканирования кровати удалите символ # перед
no_stop_probe:true
-
Ниже приведен пример конфигурации.
[BDsensor]
scl_pin:PC6 # Сигнальный пин сервопривода
sda_pin:PC3 # Пин концевого выключателя
delay: 20 # 20us на импульс, это значение должно быть >=20, но не должно превышать 50
z_offset:0 # это `z_offset` должно быть установлено в 0.
z_adjust:0.0 # корректировка оси Z, заменяет функцию z_offset. в пределах от -0.3 до 0.3mm
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
После установки проверьте работу, отправив следующие команды G-code
M102 S-1 # Чтение информации с датчика
M102 S-2 # Чтение одного значения расстояния
Проверка соединения
-
Отправьте через консоль
M102 S-1
, это пример возвращаемого сообщения, если возвращается пусто или другая строка, проверьте соединение и порядок проводовSend: M102 S-1
Recv: V1.0 pandapi3d.com
Калибровка
- Очистите сопло, затем через консоль переместите ось Z до тех пор, пока сопло не коснется стола (BDsensor использует эту позицию как нулевую, поэтому не требуется
z_offset
, вот почему в разделе [BDsensor] значение равно 0) - Отправьте через консоль команду G-code
M102 S-6
, принтер будет медленно поднимать ось Z на 0.1мм каждый раз, пока не достигнет 4мм. Не запускайте M102 S-6 до установки датчика и не выключайте питание принтера во время калибровки, иначе старые данные калибровки будут удалены. В таком случае потребуется повторная калибровка - После этого вы можете проверить, прошла ли калибровка BDsensor успешно, отправив команду
M102 S-5
, которая вернет исходные данные калибровки, сохраненные в BDsensor.
Примечания:
-
Лучшая скорость возврата в исходное положение для оси 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 сообщит об ошибке
Unknown pin chip name 'probe'