BDsensor-mのインストール
センサーケーブルをメインボードのEXP1インターフェースに接続する
- センサーのケーブルが短い場合は、包装の中の延長線を使用してください。
- BDsensor-mのCKLとSDA線は、基板の任意のGPIOピンに接続できます。また、BDセンサーケーブルを直接Bltouchポートに接続することもできます。例えば:
BLtouch | BDsensor-m
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
- 一部のピンがMCUのgpiosに直接接続されていない場合(例えば、フィルタコンデンサがあるか、MOSFET、ダイオード、オプトカプラを介して分離されているが、抵抗またはプルアップ/プルダウン抵抗を介して分離されている場合は使用できます)、それらは
BDsensor-m
と一緒に使用できません。そして、ファームウェアは接続エラーを報告します。例えば - ファンとヒーターのコネクタはMOSFETで分離されています。
- 一部の基板では、温度サーミスタやリミットスイッチ/プローブ用のコネクタがGNDにフィルタコンデンサを介して接続されています。
-
下の図のように、BDセンサーをホットエンドに近い位置に取り付けます。 STL of mount, STL_mount_VzBot_Goliath short
パッチをklipperファームウェアにインストールする
-
ここに記載されていないことは行わないでください。
-
以前に変更したklipperファイルを元に戻して、klipperを更新してください。
cd
cd ~/klipper
git checkout .
git pull -
ユーザーディレクトリで、BDセンサーの最新コードをクローンするために以下のgitコマンドを実行してください。
cd && git clone https://github.com/markniu/Bed_Distance_sensor.git
-
次に、以下のコマンドを実行してインストールします。
cd ~/Bed_Distance_sensor/klipper/
./install_BDsensor.sh
ここでファームウェアをコンパイルするのは、上位機と下位機のファームウェアが一致しない
と表示された場合のみです。
-
ファームウェアを見つけて、コンパイルガイドに従って新しいklipperファームウェアをコンパイルして書き込みます。
-
ファームウェアをコンパイルする
cd ~/klipper/ #klipperディレクトリに移動
make menuconfig #klipperコンパイルインターフェースに入るコマンド
make clean #クリアコマンド
make #コンパイルコマンド -
ファームウェアをBDセンサーが接続されているメインボードに書き込みます。
プリンタがMoonrakerで動作している場合、以下の部分をmoonraker.confに追加してください。そうすると、ウェブページや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 # 20us per pulse, this value should be >=20 but must be below 50
z_offset:0 # this `z_offset` must be set to 0.
z_adjust:0.0 # z axis adjustment, replace the z_offset function. within -0.3 to 0.3mm
x_offset: -34
y_offset: 0
#no_stop_probe:true # enable this for fast probe, the toolhead will not stop at the probe point.
position_endstop: 0.8 # the Z axis will stop at this position (mm) while homing z, recommend value is 0.4~1.0
#speed:0.8 # this speed only works for the z tilt and PROBE_ACCURACY command.
[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-mはこの位置をゼロ位置として使用するため、
z_offset
は必要ありません。これが[BDsensor-m]セクションの値が0の理由です) - コンソールでgcodeコマンド
M102 S-6
を送信します。プリンタは毎回0.1mmずつZ軸を上に動かし、4mmに達するまで続けます。センサーの取り付け前にM102 S-6を実行しないでください。校正中にプリンタの電源を切らないでください。そうしないと古い校正データが削除されます。その場合は再び校正してください。 - それから、
M102 S-5
を使ってBDセンサーが正しく校正されているか確認できます。これはBDセンサーに保存されている元の校正データを返します。
注意事項:
-
Z軸のホーム速度は5が最適です。
-
M102 S-5が返す最初の原始校正データが400以上の場合、センサーがベッドに近すぎることを意味し、より近い位置に再び取り付けが必要です。最初のデータの推奨値は100です。また、2番目のデータが1番目のデータより10以上大きいことを確認してください。
-
FAQ: 校正データが1で始まり、2番目の値が9、3番目の値が24の場合、これは何を意味しますか?
-
これは、0-0.1ミリメートル間の解像度が9であることを意味し、0.1-0.2ミリメートルの解像度は15です。したがって、最初の0-0.1ミリメートルの解像度が10以上になるように再び校正することをお勧めします。
-
-
G28を実行した後や、これらのコマンド
Z_tilt
とquad_gantry_level
でZ軸の高さを調整するのを忘れないでください。 -
部品名の正確な大文字小文字を守らないと、klipperが
Unknown pin chip name 'probe'
と報告します。