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の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
ここでファームウェアをコンパイルする際、マザーボードとホスト間のファームウェアバージョンが一致していないというエラーが表示された場合のみ、新しい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がZ軸のリミットスイッチとして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軸原点復帰時に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軸を手動で移動させ、ノズルがベッドに接触するまで下げます(BDsensor-mはこの位置をゼロ位置として使用するため、
z_offset
は不要です。これが[BDsensor-m]セクションで値が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以上大きいことを確認してください
-
よくある質問: キャリブレーションデータが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'
というエラーを報告しないように、セクション名の大文字と小文字を正しくする必要があります