BDsensor のインストール
センサーケーブルをマザーボードまたはCANバスツールヘッドボードに接続します。
- SB2040はBDsensorを使用できないことに注意してください
- SHT36はBDsensorのCLK/SCL (Input)を高電圧入力ポートに接続し、ジャンパ線を接続する必要があります
- BDsensorのCKLおよびSDA線は、ボード上の任意のGPIOピンに接続できます。BDセンサーケーブルをたとえばBLtouchポートに直接接続することもできます:
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
-
マザーボードのコネクタ内にはMCUのGPIOに直接接続されていないピンがあるかもしれません(たとえば、フィルター用コンデンサやMOSFET、ダイオード、または光アイソレータ経由で接続されている場合がありますが、抵抗または抵抗プルアップ/プルダウン経由で分離されている場合も含まれます)。そのため、BDsensorと一緒に使用することはできません。そしてファームウェアは接続エラーを報告します。例えば:
-
ファンやヒーターのコネクタはMOSFET経由で分離されています
-
温度サーミスタやエンドストップ/プローブ用のコネクタは、多くのボードでGNDにフィルター用コンデンサ経由で接続されています
- 下図のように、BDセンサーをホットエンドに近い位置に取り付けます。 STL of mount, 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に追加してください。これにより、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傾きおよびPROBE_ACCURACYコマンドのみに有効です。値が小さいほど、プロービング時の精度が高くなります。MCUはホーム位置復帰時にメインループ内でBDセンサーを通常のエンドストップのようにリアルタイムに読み取ることができないためです。[BDsensor]- Z軸のホーム位置復帰時にBDセンサーをエンドストップとして使用するには、
[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 # 1パルスあたり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傾きおよび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
インストール後、以下のGコードコマンドを送信して確認してください
M102 S-1 # センサー情報の読み取り
M102 S-2 # 距離値の読み取り
接続の確認
- コンソールから
M102 S-1を送信してください。以下のような応答が例です。空白または他の文字列が返された場合は、接続および配線順序を確認してください
Send: M102 S-1
Recv: V1.0 pandapi3d.com
キャリブレーション
- ノズルを清掃し、Z軸を手動で動かしてノズルがベッドに接触するまで下げてください (BDsensorはこの位置をゼロ位置として使用するため、
z_offsetは不要です。これが[BDsensor]セクションで値が0になっている理由です) - コンソールからGコードコマンド
M102 S-6を送信してください。プリンターはZ軸を0.1mmずつゆっくりと上昇させ、4mmに達するまで繰り返します。センサーのインストール前にM102 S-6を実行しないでください。また、キャリブレーション中に電源を切らないでください。さもないと古いキャリブレーションデータが削除されます。このような場合でも、再度キャリブレーションを行えば問題ありません - その後、
M102 S-5を送信することでBDセンサーが正常にキャリブレーションされたかを確認できます。これにより、BDセンサー内に保存された生のキャリブレーションデータを取得できます
注意事項:
-
Z軸のホーム位置復帰速度は5が最適です
-
M102 S-5が返す最初の生キャリブレーションデータが400より大きい場合、センサーが高すぎる位置に設置されていることを意味します。ベッドに近い位置に再インストールする必要があります。最初のデータの推奨値は100です。また、2番目のデータの値が最初のデータより10以上大きいことを確認してください-
よくある質問: キャリブレーションデータが最初は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'と報告しないように、セクション名の大文字・小文字を正しくする必要があります