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, STL_mount_VzBot_Goliath short
Loading...
パッチを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またはCANbusツールヘッドボードに書き込みます。
プリンターが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_pinscl_pinを編集します。また、BLtouchなどの他のプローブセクションを無効にすることを忘れないでください。BDセンサーはメインボードまたはツールヘッドCANモジュールに接続できます。 -
[BDsensor]でspeedを0.8に変更します。これはZ軸の傾斜調整とPROBE_ACCURACYコマンドにのみ適用されます。値が小さいほど、プローブ時の精度が高くなります。これは、MCUが原点復帰時にBDセンサーを読み取る際、通常のエンドストップのようにリアルタイムで読み取らないためです。 -
BDセンサーをZ軸の原点復帰時のリミットスイッチとして使用するには、
[stepper_z]のendstop_pinをendstop_pin: probe:z_virtual_endstopに変更します。 -
printer.cfgに
[safe_z_home]が含まれていることを確認してください。 -
[bed_mesh]と[z_tilt]または[quad_gantry_level]のhorizontal_move_zの値を1に変更します(推奨値は0.7-1.0mm)。klipperのデフォルト値は5mmであり、センサーの範囲を超える可能性があります。 -
ノズルの高さは
z_adjust:でのみ調整してください。正の値はベッドに近づけ、負の値はベッドから離します。他のノズル高さ調整設定にはバグがあります。 -
高速ベッドスキャンを有効にするには、
no_stop_probe:trueの前の#を削除します。 -
以下は設定例です。
[BDsensor]
scl_pin:PC6 # サーボ信号ポート
sda_pin:PC3 # リミット信号ポート
delay: 20 # パルスあたり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
インストール後、以下のgcodeコマンドを送信して確認してください。
M102 S-1 # センサー情報を読み取ります
M102 S-2 # 距離値を1つ読み取ります
接続を確認します。
-
コンソールから
M102 S-1を送信します。これは返信メッセージの例です。空白または他の文字列が返された場合は、接続と配線順序を確認してください。Send: M102 S-1
Recv: V1.0 pandapi3d.com
キャリブレーション
- ノズルを清掃し、コンソールからZ軸を移動させて、ノズルがベッドプレートにちょうど接触するようにします(BDsensorはこの位置をゼロ位置として使用するため、
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より大きくなるように再度キャリブレーションすることをお勧めします。
-
-
G28を実行した後、または
Z_tiltとquad_gantry_levelのコマンドでZ軸の高さを調整することを忘れないでください。 -
セクション名の大文字と小文字は正しく記述する必要があります。そうしないと、klipperが
Unknown pin chip name 'probe'を報告します。