설치 BDsensor
센서 케이블을 메인보드 또는 CAN 버스 헤드보드에 연결합니다.
- SB2040는 Bdsensor를 사용할 수 없습니다.
- SHT36은 Bdsensor의 CLK/SCL (입력)를 고압 입력 단자에 연결하고 점퍼를 연결해야 합니다.
- Bdsensor의 CKL과 SDA 선은 회로 보드의 임의의 GPIO 핀에 연결할 수 있습니다. 또한 Bdsensor 케이블을 Bltouch 포트에 직접 연결할 수도 있습니다. 예:
BLtouch | Bdsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (입력)
GND --> GND
Zmin --> SDA (입력/출력)
-
메인보드 커넥터의 일부 핀은 MCU의 gpios에 직접 연결되지 않을 수 있습니다(예: 필터 콘덴서 또는 MOSFET, 다이오드 또는 광커플러를 통해 격리될 수 있으며, 만약 저항 또는 저항 상하극성으로 격리되어 있다면). 이들은 Bdsensor와 함께 사용할 수 없으며 펌웨어는 연결 오류를 보고할 것입니다. 예
-
팬 및 히터 커넥터는 MOSFET을 통해 격리됩니다.
-
일부 회로 보드에서 온도 핫리저스터 및 엔드스톱/프로브를 위한 커넥터는 일반적으로 GND에 필터 콘덴서를 통해 연결됩니다,
-
아래 그림과 같이, Bdsensor를 열단자의 근처에 설치합니다. mount STL, 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 -
펌웨어를 Bdsensor가 연결된 MCU 또는 CAN버스 헤드보드에 프로그래밍합니다.
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을 비활성화하지 않도록 주의해야 합니다. Bdsensor를 메인보드 또는 헤드보드 CAN 모듈에 연결할 수 있습니다, -
[BDsensor]
에서speed
를 0.8로 수정합니다. 이 값은 z 기울기 및 PROBE_ACCURACY 명령에만 작동합니다. 값이 작을수록 MCU가 Bdsensor를 정상적인 스톱퍼처럼 실시간으로 읽지 못하기 때문에 정밀도가 더 높습니다. -
[BDsensor]
-
[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.3mm에서 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 기울기 및 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는 이 위치를 0 위치로 사용하므로
z_offset
이 필요하지 않습니다. 이것이[BDsensor]
부분의 값이 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_tilt
와quad_gantry_level
를 조정할 때 Z축 높이를 조정할 때 반드시 올바르게 대문자와 소문자를 사용해야 합니다. 그렇지 않으면 Klipper는Unknown pin chip name 'probe'
를 보고합니다.