BDsensor-m 설치
전자 센서 케이블을 메인보드의 EXP1 포트에 연결
- 센서 케이블의 길이가 충분하지 않으면 패키지 내의 연장선을 사용하세요
- BDsensor-m의 CKL 및 SDA 선은 회로판의 어떤 GPIO 핀에도 연결할 수 있습니다. 또한 BDsensor 케이블을 BLtouch 포트에 직접 연결할 수 있습니다. 예를 들어:
BLtouch | BDsensor-m
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
- 메인보드 커넥터의 일부 핀은 MCU의 GPIO에 직접 연결되지 않을 수 있으므로(예: 필터 커패시터가 있거나 MOSFET, 다이오드, 옵토커플러를 통해 격리된 경우, 그러나 저항이나 저항 상/하강을 통해 격리된 경우는 사용 가능)
BDsensor-m
과 함께 사용할 수 없습니다. 그리고 펌웨어는 연결 오류를 보고할 것입니다. 예를 들어 - 팬과 히터의 커넥터는 MOSFET으로 격리됩니다.
- 일부 보드에서는 온도 서미스터 및 엔드스탑/프로브 커넥터가 GND에 필터 커패시터로 연결되어 있습니다.
-
다음 그림과 같이 BDsensor를 노즐 근처에 설치합니다. STL of mount, STL_mount_VzBot_Goliath short
Klipper 펌웨어에 패치 설치
-
튜토리얼에 언급되지 않은 것은 하지 마세요
-
이전에 수정한 klipper 파일을 버리고 klipper를 업데이트하세요
cd
cd ~/klipper
git checkout .
git pull -
사용자 디렉토리에서 다음 git 명령어를 실행하여 BDsensor의 최신 코드를 클론합니다.
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 # 컴파일 명령어 -
펌웨어를 BDsensor가 연결된 메인보드에 플래싱합니다.
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에 복사하고
sda_pin
및scl_pin
을 편집하세요. BLtouch와 같은 다른 프로브 부분을 비활성화하는 것도 잊지 마세요. 메인보드나 툴헤드 CAN 모듈에 BDsensor를 연결할 수 있습니다. -
speed
를 0.8로 수정하세요. 이는 z 틸트와 PROBE_ACCURACY 명령어에만 적용됩니다. 값이 작을수록 MCU가 홈징 중 BDsensor의 주 루프를 읽을 때 정확도가 높아집니다.[BDsensor]
-
Z축 홈징 시 BDsensor를 리미트 스위치로 사용하려면
[stepper_z]
의endstop_pin
을endstop_pin: probe:z_virtual_endstop
로 변경하세요. -
printer.cfg에
[safe_z_home]
가 있는지 확인하세요. -
[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 per pulse, this value should be >=20 but must be below 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-m은 이 위치를 0 위치로 사용하므로
z_offset
가 필요하지 않으며, 이는 [BDsensor-m] 섹션의 값이 0인 이유입니다) - 콘솔에서 gcode 명령어
M102 S-6
를 보내세요. 프린터는 Z축을 0.1mm씩 천천히 올리며 4mm에 도달할 때까지 이동합니다. 센서 설치 전에 M102 S-6을 실행하지 말고, 캘리브레이션 중에 프린터 전원을 끄지 마세요, 그렇지 않으면 이전 캘리브레이션 데이터가 삭제됩니다. 이러한 경우, 다시 캘리브레이션하세요. - 이후
M102 S-5
를 통해 BDsensor가 성공적으로 캘리브레이션되었는지 확인할 수 있습니다. 이는 BDsensor에 저장된 원래 캘리브레이션 데이터를 반환합니다.
주의 사항:
-
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 축 높이를 조정하기 위해
Z_tilt
와quad_gantry_level
명령어를 사용할 때 Z축 높이를 조정하는 것을 잊지 마세요. -
섹션 이름의 대소문자를 올바르게 입력하지 않으면 klipper가
Unknown pin chip name 'probe'
라고 보고합니다.