BDsensor-m のインストール
センサーケーブルをマザーボードのEXP1インターフェースに接続します
- センサーのケーブル長が不足する場合は、梱包内の延長ケーブルを使用してください。
- BDsensor-mのCLKおよびSDA線は、マザーボード上の任意のGPIOピンに接続できます。BDセンサーケーブルをBLtouchポートに直接接続することも可能です。例:
BLtouch | BDsensor-m
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
- マザーボードのコネクターにあるピンがMCUのGPIOに直接接続されていない場合があります(たとえば、フィルターコンデンサーやMOSFET、ダイオード、または光アイソレーター経由で接続されている場合。ただし、抵抗または抵抗でプルアップ/プルダウンされている場合は除く)、このため
BDsensor-mと一緒に使用することはできません。そしてファームウェアは接続エラーを報告します。例えば: - ファンやヒーターのコネクターはMOSFET経由で絶縁されています。
- 一部のボードでは、温度センサーやエンドストップ/プローブ用コネクターがコンデンサーを介してGNDに接続されています。
- 下図のように、BDセンサーをホットエンドに近い位置に取り付けてください。 STL of mount, STL_mount_VzBot_Goliath short

klipperファームウェアにパッチをインストールする
- 教材に記載されていない作業は行わないでください。
- これまでに変更したklipperファイルを破棄し、klipperを更新してください。
cd
cd ~/klipper
git checkout .
git pull
- ユーザーディレクトリで以下のgitコマンドを実行して、BDセンサーの最新コードをクローンします。
cd && git clone https://github.com/markniu/Bed_Distance_sensor.git
- 次のコマンドを実行してインストールします。
cd ~/Bed_Distance_sensor/klipper/
./install_BDsensor.sh
以下の手順は、ファームウェアのアップロード時に「親機と子機のファームウェアが一致していない」というメッセージが表示された場合のみ行います。
- 各自のファームウェアのコンパイル手順に従ってコンパイルおよび書き込みを行ってください。
- ファームウェアのコンパイル
cd ~/klipper/ # klipperディレクトリに移動
make menuconfig # klipperコンパイル設定画面を起動
make clean # クリーンアップコマンド
make # コンパイルコマンド
- BDセンサーを接続したマザーボードにファームウェアを書き込みます。
ご使用のプリンターがMoonrakerを使用している場合は、以下をmoonraker.confに追加してください。これにより、WebやKlipperScreenから1クリックで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 # 距離値を1つ読み取り
接続の確認
- コントロールパネルから
M102 S-1を送信してください。以下は受信メッセージの例です。空白または他の文字列が返る場合は、接続と配線順序を確認してください。
Send: M102 S-1
Recv: V1.0 pandapi3d.com
キャリブレーション
- ノズルを清掃し、Z軸を手動で移動させ、ノズルがベッドに接触する位置まで下げてください(BDsensor-mはこの位置をゼロ位置として使用するため、
z_offsetは不要です。これが[BDsensor-m]セクションで値を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以上大きいことを確認してください。-
FAQ: キャリブレーションデータが1で始まり、2番目の値が9、3番目の値が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'と報告しないよう、セクション名の大文字・小文字は正しくする必要があります。
Loading...