メインコンテンツにスキップ

BDsensor の取り付け

センサーケーブルをマザーボードまたはCANバスツールヘッドボードに接続します。

  • SB2040ではBDsensorを使用できないことに注意してください
  • SHT36では、BDsensorのCLK/SCL (入力)を高圧入力ポートに接続し、ジャンパを接続する必要があります
  • BDsensorのCLKとSDA線は、ボードの任意のGPIOピンに接続できます。BDセンサーケーブルをBltouchポートに直接接続することもできます。例:
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (入力)
GND --> GND
Zmin --> SDA (入出力)
  • マザーボードコネクタの一部のピンがMCUのgpioに直接接続されていない場合(例えば、フィルタコンデンサが付いていたり、MOSFET、ダイオード、フォトカプラを介して絶縁されている場合がありますが、抵抗や抵抗プルアップ/プルダウンを介して絶縁されている場合は使用可能です)、BDsensorと一緒に使用できません。ファームウェアは接続エラーを報告します。例:

  • ファンとヒーターのコネクタはMOSFETを介して絶縁されています、

  • 一部のボードでは、温度サーミスタやエンドストップ/プローブ用のコネクタは通常、フィルタコンデンサを介してGNDに接続されています。

  1. 下図のように、BDセンサーをホットエンドの近くに取り付けます。 マウントのSTL, STL_mount_VzBot_Goliath short

    Loading...

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に追加します。そうすると、Webページまたは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などの他のプローブセクションを必ず無効にしてください。BDセンサーはマザーボードまたはツールヘッドCANモジュールに接続できます。

  • [BDsensor]内のspeedを0.8に変更します。これはz tiltおよびPROBE_ACCURACYコマンドにのみ適用されます。値が小さいほど、プローブ時の精度が高くなります。これは、MCUがホーミング時にメインループでBDセンサーを読み取るため、通常のストッパーのようにリアルタイムではないためです。 [BDsensor]

  • BDセンサーをZ軸ホーミング時のリミットスイッチとして使用するには、[stepper_z]内のendstop_pinendstop_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、この値は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 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

インストール後、以下の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軸を4mmに達するまで0.1mmずつゆっくり上に移動します。センサーを取り付ける前にM102 S-6を実行しないでください。また、キャリブレーション中にプリンターの電源を切らないでください。古いキャリブレーションデータが削除されます。その場合は、再度キャリブレーションしてください
  • その後、M102 S-5でBDセンサーが正常にキャリブレーションされたか確認できます。これにより、BDセンサーに保存されている生のキャリブレーションデータが返されます。

注意事項:

  • Z軸ホーミング速度は5が最適です

  • M102 S-5で返される最初の生のキャリブレーションデータが400より大きい場合、センサーが高すぎる位置に取り付けられていることを意味します。ベッドに近づけて再取り付けする必要があります。最初のデータの推奨値は100です。また、2番目のデータの値が最初のデータより10以上大きいことを確認してください。

    • FAQ: キャリブレーションデータが1で始まり、2番目の値が9、3番目の値が24の場合、何を意味しますか?

    • これは、0-0.1mm間の分解能が9しかなく、0.1-0.2mm間の分解能が15であることを意味します。したがって、最初の分解能0-0.1mmが10より大きくなるように再度キャリブレーションすることをお勧めします。

  • G28実行後、または Z_tiltquad_gantry_level コマンドのためにZ軸の高さを調整することを忘れないでください

  • セクション名は大文字小文字を正確に記述する必要があります。そうしないと、KlipperはUnknown pin chip name 'probe'エラーを報告します

Loading...