BDsensor-m-mのインストール
センサーケーブルをメインボードのEXP1ポートに接続する
- センサーのケーブルが届かない場合は、延長ケーブルを使用してください
- BDsensor-m-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
Marlinファームウェアにパッチを適用する
BDセンサーはMarlin2.1.xに統合されています(2022.8.27から)、
公開バージョンをダウンロードできますが、最新のバグ修正版をダウンロードすることをお勧めします:https://github.com/MarlinFirmware/Marlin
必要なのは、設定ファイルとピンファイルを変更することです。
Configuration.hの編集
-
BD_SENSORを有効にする
コメントを解除
#define BD_SENSOR`
#define Z_SAFE_HOMING
#define BD_SENSOR_PROBE_NO_STOP // adding this new line for fast bed leveling without nozzle stop,BD_SENSOR_PROBE_NO_STOP
のみ最新のMarlinバグ修正:https://github.com/MarlinFirmware/Marlin
-
プローブでホームに戻る
Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
が無効になっていることを確認し、USE_PROBE_FOR_Z_HOMING
を有効にする//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
// Force the use of the probe for Z-axis homing
#define USE_PROBE_FOR_Z_HOMING -
二番目のZホーム速度を遅くする
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 16)
ここでは、BDsensor-mプロセスから読み取られるストッパーの速度を通常のストッパーよりもリアルタイムで遅くする必要があります。
Configuration_adv.hの編集
#define BABYSTEPPING
を有効にして、実時調整機能を実現#define HOMING_BUMP_DIVISOR { 2, 2, 8 } // Re-Bump Speed Divisor (Divides the Homing Feedrate)
pins_boardname.hの編集
BDsensor-mのSDAとSCLのピンを設定するために、ピンファイルpins_boardname.h
(例:pins_PANDA_PI_V29.h
)に以下の3行を追加します。
#define I2C_BD_SDA_PIN PC6 // Please change to the actual number which the SDA wire is connected to your mainboard
#define I2C_BD_SCL_PIN PB2 // Please change to the actual number which the SLK wire is connected to your mainboard
#define I2C_BD_DELAY 20 // default value is 20, should be in the range [20,50].
もし、通常のBLtouchのようにG29で自動ベッドレベリングプローブを行いたい場合は、以下の行をコメントアウトしてください。
#define AUTO_BED_LEVELING_BILINEAR
そして、以下の値を編集してください。
#define Z_CLEARANCE_DEPLOY_PROBE 0 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 1 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE 1 // Z Clearance between multiple probes
LCD画面にBDセンサーの値を表示する
- プリンタがステータス表示をサポートしている場合(M117 gcodeをサポート)、例えばLCD12864や一部uartスクリーン、Ender3V2など...
キャリブレーション
-
ノズルを清掃し、コンソールからZ軸を動かし、ノズルがベッドに触れるまで下げます(BDsensor-mはこの位置を0点として使用するため、z_offsetは不要で、値を0に設定します)。
-
gcodeコマンド
M102 S-6
を送信すると、プリンタはZ軸を0.1mmずつゆっくりと上昇させ、4mmに達するまで続けます。センサーを取り付ける前にM102 S-6を実行しないでください。また、キャリブレーション中にプリンタの電源を切らないでください。そうすると、古いキャリブレーションデータが削除されます。その場合は再キャリブレーションしてください。 -
M102 S-5
を送信することで、BDセンサーが正しくキャリブレーションされたかどうかを確認できます。これにより、BDセンサーに保存されている元のキャリブレーションが返されます。
キャリブレーション用のツールもあります:https://github.com/markniu/Bed_Distance_sensor/raw/new/marlin/BD_Config_Tool_Marlin.zip
注意:データ値1015または>1010は、センサーの範囲外であることを示します。最初の5点(0~0.5mm)またはそれ以上の値が0から1000の範囲内にあり、増加する値のdeltaが>=10の場合、キャリブレーションは成功です。上のグラフのように。
M102 S-5で返される最初の元のキャリブレーションが400以上の場合、センサーが高すぎて取り付けられていることを意味し、ベッドに近づけて再取り付けする必要があります。また、2番目のデータが最初のデータ値より10以上大きくなることを確認してください。
テストとプリント
メニューベッド
自動ベッド
ベッドを自動レベリングする方法は2つあります:
1. M102を使用して最初の数層をリアルタイムでレベリング
gcodeコマンドを送信するか、gcodeファイルに追加することで、この自動レベリングを簡単に有効にしたり、無効にしたりできます。
Kuraでベッドレベリングを有効にするには、プリンターマシンの設定の「スタートGコード」セクションのG102(すべての軸をホームに戻す)Gコードの直下にM28 Gコードを追加してください。例えば、G28の下にこれを追加すると、Z軸の高さが0.2mm以下の場合にのみベッドレベリングが行われます。M102 S2
BDセンサーを使用してベッドレベリングを無効にするには、送信するか、M102 S0``G28``M18
M102 S-1 //Read sensor information, and we can use this for connection checking.
M102 S-2 //Read current distance value
M102 S-5 //Read raw Calibrate data
M102 S-6 //Start Calibrate,before that make sure the nozzle is just touched the bed,and then the printer restarted. don't home z axis before this.
M102 S4 //Set the adjustable Z height value,e.g. M102 S4 means it will do adjusting while the Z height <=0.4mm , disable it by M102 S0.
2. G29自動ベッドレベリング
もう一つの自動ベッドレベリングの方法は、G29のBLtouchと同じように、G29の下に行を追加するだけです。
Zエンドストップの確認M119
このステップを確認する前に、Z軸をホームに戻さないでください。そうしないと、ノズルがプリンターベッドに接触する可能性があります。
これはM119コマンド(エンドストップ状態を報告)を送信した後の返信メッセージです。
Send: M119
Recv: x:open y:open z:open
z minが開いていない場合は、設定を確認してください。#define Z_MAX_ENDSTOP_HIT_STATE HIGH
- Zモーターがオフ/ロック解除されていることを確認
- 手でZ軸を下げ、ノズルがベッドに触れるまで
M102 S-2
を送信すると、返り値が0.00mmになるはずです。その後、再びM119を送信すると、zエンドストップがトリガーされているのが確認できます。
Send: M119
Recv: x:open y:open z:TRIGGERED
接続の確認
M102 S-1
で接続を確認します。これが返信メッセージの例です。接続とワイヤーの順序が空白または他の文字列を返さないかどうか確認してください。
Send: M102 S-1
Recv: V1.0 pandapi3d.com