BDsensor 설치
센서 케이블을 메인보드 또는 CAN 버스 툴헤드 보드에 연결합니다.
- SB2040은 BDsensor를 사용할 수 없으므로 주의하시기 바랍니다.
- SHT36의 경우 BDsensor의 CLK/SCL(Input)을 하이전압 입력 포트에 연결하고 점퍼를 설치해야 합니다.
- BDsensor의 CKL 및 SDA 선은 보드의 GPIO 핀에 연결할 수 있습니다. 또한 BD 센서 케이블을 BLtouch 포트에 직접 연결할 수도 있습니다. 예를 들어:
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
-
메인보드 커넥터의 일부 핀은 MCU의 GPIO에 직접 연결되지 않을 수 있습니다(예: 필터 커패시터가 있거나 MOSFET, 다이오드 또는 광커플러를 통해 분리된 경우). 저항 또는 저항 풀업/풀다운을 통해 분리된 경우에도 BDsensor와 함께 사용할 수 없으며, 펌웨어가 연결 오류를 보고합니다. 예를 들어:
-
팬 및 히터 커넥터는 MOSFET을 통해 분리됩니다.
-
온도 센서 및 엔드스톱/프로브용 커넥터는 보드에 따라 GND에 필터 커패시터를 통해 연결됩니다.
- 아래 그림과 같이 BD 센서를 노즐 근처에 설치하십시오. STL of mount, STL_mount_VzBot_Goliath short

Klipper 펌웨어에 패치 설치
- 이전에 수정한 Klipper 파일을 포기하고 Klipper를 업데이트하십시오.
cd
cd ~/klipper
git checkout .
git pull
- BD 센서의 최신 코드를 복제하십시오.
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
- 펌웨어를 BD 센서가 연결된 MCU 또는 CANbus 툴헤드 보드에 플래시하십시오.
프린터가 Moonraker를 사용하는 경우, 아래 섹션을 moonraker.conf에 추가하십시오. 그러면 웹 또는 Klipperscreen에서 BDsensor를 한 번 클릭으로 업데이트할 수 있습니다.
[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 파일에 복사하고
[BDsensor]의sda_pin및scl_pin을 편집하십시오. BLtouch와 같은 다른 프로브 섹션은 비활성화하십시오. 메인보드 또는 툴헤드 CAN 모듈에 BD 센서를 연결할 수 있습니다. [BDsensor]에서speed를 0.8로 수정하십시오. 이 값은 z 경사 및 PROBE_ACCURACY 명령에만 적용됩니다. 값이 작을수록 MCU가 홈 위치로 이동할 때 BD 센서의 정밀도가 높아집니다. 일반적인 엔드스톱과 달리 메인 루프에서 BD 센서를 읽기 때문입니다.- Z축 홈 위치에서 BD 센서를 엔드스톱으로 사용하려면
[stepper_z]의endstop_pin을endstop_pin: probe:z_virtual_endstop으로 변경하십시오. - printer.cfg에
[safe_z_home]이 있는지 확인하십시오. [bed_mesh]및[z_tilt]또는[quad_gantry_level]의[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 per pulse, 이 값은 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축이 멈추는 위치 (mm), 권장값은 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
설치 후 다음 Gcode 명령을 보내어 확인하십시오.
M102 S-1 # 센서 정보 읽기
M102 S-2 # 거리 값 하나 읽기
연결 확인
- 콘솔에서
M102 S-1명령을 보내면 아래와 같은 응답 예시가 반환됩니다. 공백 또는 다른 문자열이 반환되면 연결 및 선 순서를 확인하십시오.
Send: M102 S-1
Recv: V1.0 pandapi3d.com
캘리브레이션
- 노즐을 청소한 후 Z축을 수동으로 이동시켜 노즐이 베드에 닿을 때까지 내리십시오(BDsensor는 이 위치를 영점으로 사용하므로
z_offset이 필요하지 않으며, 이것이 [BDsensor] 섹션에서 값을 0으로 설정하는 이유입니다). - 콘솔에서 Gcode 명령
M102 S-6을 보내면 프린터가 Z축을 천천히 0.1mm씩 상승시키며 4mm까지 이동합니다. 센서 설치 전에는 M102 S-6을 실행하지 마시고, 캘리브레이션 중에는 전원을 끄지 마시기 바랍니다. 그렇지 않으면 기존 캘리브레이션 데이터가 삭제됩니다. 이 경우 다시 캘리브레이션하시면 됩니다. - 이후
M102 S-5명령으로 BD 센서가 성공적으로 캘리브레이션되었는지 확인할 수 있으며, 이 명령은 BD 센서에 저장된 원시 캘리브레이션 데이터를 반환합니다.
주의사항:
-
Z축 홈 이동 속도는 5가 가장 좋습니다.
-
M102 S-5가 반환하는 첫 번째 원시 캘리브레이션 데이터가 400보다 큰 경우 센서가 너무 높게 설치되었다는 뜻이며, 베드에 더 가깝게 재설치해야 합니다. 첫 번째 데이터의 권장값은 100입니다. 또한 두 번째 데이터 값이 첫 번째 데이터보다 10 이상 커야 합니다.-
FAQ: 캘리브레이션 데이터가 첫 번째가 1, 두 번째가 9, 세 번째가 24인 경우는 무엇을 의미합니까?
-
이는 0-0.1mm 구간의 해상도가 9이고, 0.1-0.2mm 구간의 해상도가 15라는 의미입니다. 따라서 0-0.1mm 구간의 해상도가 10 이상이 되도록 다시 캘리브레이션하는 것이 좋습니다.
-
-
G28 실행 후 또는
Z_tilt및quad_gantry_level명령을 사용할 때 Z축 높이를 조정하는 것을 잊지 마십시오. -
Klipper가
Unknown pin chip name 'probe'오류를 발생시키지 않도록 섹션 이름의 대소문자를 정확히 사용해야 합니다.