インストール BDsensor
センサーケーブルをメインボードまたはCANバスヘッドボードに接続します。
- SB2040はBDsensorを使用できませんことに注意してください
 - SHT36には、BDsensorのCLK/SCL(入力)を高電圧入力ポートに接続し、ジャンパを接続する必要があります
 - BDbensorのCKLとSDA線は、回路基板の任意のGPIOピンに接続できます。また、BDセンサーケーブルをBltouchポートに直接接続することもできます。例えば:
 
BLtouch    |    BDsensor
5V       -->     5V
GND      -->     GND
S        -->     CLK/SCL    (入力)
GND      -->     GND
Zmin     -->     SDA    (入出力) 
- 
メインボードコネクタの一部のピンは、MCUのgpiosに直接接続されていない可能性があります(例えば、それらはフィルタリングコンデンサやMOSFET、ダイオード、または光カプラで分離されている場合、またはレジスタまたはプルアップ/ダウンレジスタで分離されている場合)。そのため、それらはBDsensorと一緒に使用できません。ファームウェアは接続エラーを報告します。例えば
 - 
ファンとヒータのコネクタはMOSFETで分離されています。
 - 
一部の回路基板では、温度熱電対とエンドストップ/プローブのコネクタは通常、フィルタリングコンデンサでGNDに接続されています。
 
- 
次の図のように、BDセンサーをホットエンドに近い位置に取り付けます。mount STL,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またはCANバスヘッドボードに書き込みます。
 
Moonrakerを使用している場合、以下の部分をmoonraker.confに追加します。これにより、ウェブページまたはKlippyScreenをクリックすることでBDセンサーを更新できます。
[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センサーを通常のストッパーとは異なり、ホーム時に主回路からリアルタイムで読み取らないためです。[BDsensor] - 
BDセンサーをZ軸のホーム位置として使用するには、
[stepper_z]のendstop_pinをendstop_pin: probe:z_virtual_endstopに変更します。 - 
printer.cfgに
[safe_z_home]があることを確認します。 - 
speedを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軸はこの位置(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軸を移動し、ノズルがベッドプレートにちょうど触れるまで(BDセンサーはこの位置をゼロ位置として使用するため、
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です。また、2番目のデータの値が最初のデータの値より10以上大きいことを確認してください。
- 
FAQ: 校正データが1で始まり、2番目の値が9、3番目の値が24の場合、これは何を意味しますか?
 - 
これは0-0.1mmの解像度が9で、0.1-0.2mmの解像度が15であることを意味します。したがって、再度校正することをお勧めします。最初の0-0.1mmの解像度が10を超えるようにしてください。
 
 - 
 - 
Z_tiltとquad_gantry_levelを調整する前に、G28後にZ軸の高さを調整することを忘れないでください。 - 
部分名は正しく大文字と小文字を区別する必要があります。そうでない場合、Klipperは
Unknown pin chip name 'probe'というエラーメッセージを報告します。