본문으로 건너뛰기

BDsensor 설치

센서 케이블을 메인보드 또는 CAN 버스 툴헤드 보드에 연결합니다.

  • SB2040은 BDsensor와 함께 사용할 수 없습니다.
  • SHT36은 BDsensor의 CLK/SCL (Input)을 고전압 입력 포트에 연결하고 점퍼를 연결해야 합니다.
  • BDsensor의 CLK 및 SDA 선은 회로 기판의 모든 GPIO 핀에 연결할 수 있습니다. BDsensor 케이블을 Bltouch 포트에 직접 연결할 수도 있습니다. 예:
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
  • 메인보드 커넥터의 일부 핀은 MCU의 GPIO에 직접 연결되지 않을 수 있기 때문에(예: 필터 커패시터가 있거나 MOSFET, 다이오드 또는 광커플러를 통해 절연되지만 저항 또는 저항 풀업/풀다운을 통해 절연된 경우 사용 가능) BDsensor와 함께 사용할 수 없습니다. 펌웨어는 연결 오류를 보고합니다. 예:

  • 팬 및 히터 커넥터는 MOSFET을 통해 절연됩니다.

  • 일부 보드에서 온도 서미스터 및 엔드스톱/프로브용 커넥터는 일반적으로 필터 커패시터를 통해 GND에 연결됩니다.

  1. 아래 그림과 같이 BDsensor를 핫엔드 근처에 설치합니다. 마운트 STL, STL_mount_VzBot_Goliath short

    Loading...

Marlin 펌웨어에 패치 설치

BDsensor는 Marlin 2.1.x(2022.8.27부터)에 통합되었습니다.

릴리스 버전을 다운로드할 수 있습니다. 그러나 지금은 최신 버그 수정 버전을 다운로드하는 것이 좋습니다: https://github.com/MarlinFirmware/Marlin

변경해야 할 것은 설정 파일과 핀 파일입니다.

Configuration.h 편집

  1. BD_SENSOR 활성화

    주석 해제

    #define BD_SENSOR`
    `#define Z_SAFE_HOMING
    #define BD_SENSOR_PROBE_NO_STOP //노즐 정지 없이 빠른 베드 레벨링을 위해 이 새 줄 추가

    BD_SENSOR_PROBE_NO_STOP만 해당

    최신 Marlin 버그 수정: https://github.com/MarlinFirmware/Marlin

    설명: https://github.com/MarlinFirmware/Marlin/pull/25847

  2. 프로브로 귀환

    Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN이 비활성화되어 있는지 확인하고 다음과 같이 USE_PROBE_FOR_Z_HOMING을 활성화해야 합니다.

    //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
    // Z축 귀환을 위해 프로브 사용 강제
    #define USE_PROBE_FOR_Z_HOMING
  3. 두 번째 귀환 Z 속도 감소

    #define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 16)

    여기서 BDsensor 프로세스에서 읽은 스톱퍼가 일반 스톱퍼처럼 실시간이 아니기 때문에 범프 귀환 속도와 Z 귀환 속도를 늦춰야 합니다.

    Configuration_adv.h 편집

    #define BABYSTEPPING 실시간 레벨링 기능을 위해 활성화

    #define HOMING_BUMP_DIVISOR { 2, 2, 8 } // 재범프 속도 분할 (귀환 이송 속도 분할)

pins_boardname.h 편집

핀 파일 pins_boardname.h(예: pins_PANDA_PI_V29.h)에 다음 3줄을 추가하여 BDsensor의 SDA 및 SCL 핀을 구성합니다.

#define I2C_BD_SDA_PIN PC6 // SDA 선이 메인보드에 연결된 실제 번호로 변경하십시오.
#define I2C_BD_SCL_PIN PB2 // SLK 선이 메인보드에 연결된 실제 번호로 변경하십시오.
#define I2C_BD_DELAY 20 // 기본값은 20이며 [20,50] 범위 내에 있어야 합니다.

일반 BLtouch처럼 인쇄 전에 자동 베드 레벨링 프로브(G29)를 수행하려면 주석을 해제하십시오.

#define AUTO_BED_LEVELING_BILINEAR

그리고 아래와 같이 값을 편집하십시오.

#define Z_CLEARANCE_DEPLOY_PROBE 0 // 배포/수납을 위한 Z 간격
#define Z_CLEARANCE_BETWEEN_PROBES 1 // 프로브 지점 간 Z 간격
#define Z_CLEARANCE_MULTI_PROBE 1 // 다중 프로브 간 Z 간격

LCD 화면에 BDsensor 값 표시

  • gcode M117을 지원하는 상태 디스플레이가 있는 프린터의 경우(LCD12864 또는 ender3V2와 같은 일부 uart 화면 등)

보정

  1. 노즐을 청소한 다음 콘솔에서 Z축을 이동하여 노즐이 베드에 바로 닿도록 합니다(BDsensor는 이 위치를 0점으로 사용하므로 z_offset이 필요하지 않으며 값을 0으로 설정합니다).

  2. gcode 명령 M102 S-6을 보내면 프린터가 Z축을 4mm에 도달할 때까지 0.1mm씩 천천히 위로 이동합니다. 센서를 설치하기 전에 M102 S-6을 실행하지 말고 보정 중에 프린터 전원을 끄지 마십시오. 그렇지 않으면 이전 보정 데이터가 삭제됩니다. 이런 경우 다시 보정하십시오.

  3. M102 S-5를 보내 BDsensor가 성공적으로 보정되었는지 확인할 수 있습니다. 그러면 BDsensor에 저장된 원시 보정 데이터가 반환됩니다.

이 작업을 수행하는 보정 도구도 있습니다: https://github.com/markniu/Bed_Distance_sensor/raw/new/marlin/BD_Config_Tool_Marlin.zip

참고: 데이터 값 1015 또는 > 1010은 센서 범위를 벗어남을 나타냅니다. 처음 5개 지점(00.5mm) 이상의 값이 01000 범위에 있고 증가하는 값의 델타가 >= 10이면 보정이 성공한 것입니다. 위에 표시된 차트와 같습니다.

M102 S-5가 반환하는 첫 번째 원시 보정 데이터가 400보다 크면 센서가 너무 높게 설치된 것이므로 베드에 더 가깝게 다시 설치해야 합니다. 또한 두 번째 데이터가 첫 번째 데이터 값보다 10 이상 큰지 확인하십시오.

테스트 및 인쇄

메뉴 베드

자동 베드

베드를 자동으로 레벨링하는 두 가지 방법:

1. M102를 사용한 처음 몇 레이어 실시간 레벨링

gcode 명령을 보내거나 gcode 파일에 gcode를 추가하여 이 자동 레벨을 쉽게 활성화하거나 비활성화할 수 있습니다.

Cura에서 베드 레벨링을 활성화하려면 프린터 기계 설정의 "시작 G 코드" 섹션에 있는 G102(모든 축 귀환) G 코드 바로 아래에 M102 S2 G 코드를 추가하십시오. 예를 들어, G28 아래에 추가하면 Z축 높이가 0.2mm 이하일 때만 베드 레벨링을 수행한다는 의미입니다.

보내기 M102 S0 G28 M18 은 BDsensor를 사용한 베드 레벨링을 비활성화합니다. 기본적으로 비활성화되어 있습니다.

M102 S-1 //센서 정보 읽기, 연결 확인에 사용 가능.
M102 S-2 //현재 거리 값 읽기
M102 S-5 //원시 보정 데이터 읽기
M102 S-6 //보정 시작, 이전에 노즐이 베드에 닿았는지 확인하고 프린터를 재시작하십시오. 이 전에 Z축 귀환을 하지 마십시오.
M102 S4 //조정 가능한 Z 높이 값 설정, 예: M102 S4는 Z 높이 <=0.4mm일 때 조정을 의미하며, M102 S0으로 비활성화합니다.

2. G29 자동 베드 레벨링

베드를 자동으로 레벨링하는 또 다른 방법은 BLtouch의 G29처럼 G28 아래에 G29 라인을 추가하는 것입니다.

설치 비디오

Chris's Basement 설치 비디오

Z 엔드스톱 확인 M119

이 단계를 확인하기 전에 Z축 귀환을 하지 마십시오. 그렇지 않으면 노즐이 프린터 베드에 부딪힐 수 있습니다.

다음은 M119 명령(엔드 스톱 상태 보고)을 보낸 후의 반환 메시지입니다.

Send: M119
Recv: x:open y:open z:open

z min이 열려 있지 않으면 구성을 확인하십시오. #define Z_MAX_ENDSTOP_HIT_STATE HIGH

  • Z 모터가 꺼져/잠금 해제되었는지 확인하십시오.
  • 손으로 Z축을 노즐이 베드에 닿을 때까지 아래로 이동하십시오.
  • M102 S-2를 보내면 반환 값이 0.00mm여야 합니다. 그런 다음 M119를 다시 보내면 z 엔드스톱이 트리거된 것을 볼 수 있습니다.
Send: M119
Recv: x:open y:open z:TRIGGERED

연결 확인

M102 S-1을 통해 연결을 확인하십시오. 다음은 반환 메시지의 예입니다. 연결 및 와이어 순서가 비어 있거나 다른 문자열을 반환하는지 확인하십시오.

Send: M102 S-1
Recv: V1.0 pandapi3d.com

위의 모든 단계가 올바르다면 이제 Z축 귀환을 할 수 있습니다.

Loading...