BDsensor のインストール
センサーケーブルをマザーボードまたはCANバスツールヘッドボードに接続します。
- SB2040ではBDsensorを使用できないことに注意してください。
- SHT36を使用する場合、BDsensorのCLK/SCL (Input)を高圧入力ポートに接続し、ジャンパーを接続する必要があることに注意してください。
- BDsensorのCLKおよび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...
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 //ノズルストップなしの高速ベッドレベリングのためにこの新しい行を追加のみ
BD_SENSOR_PROBE_NO_STOP最新のマーリンバグ修正: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// Z軸ホーミングにプローブを強制使用#define USE_PROBE_FOR_Z_HOMING -
2回目のホーミングZ速度を遅くする
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 16)ここでは、バンプホーミング速度とZホーミング速度を遅くする必要があります。BDsensorプロセスからのストッパーの読み取りは、通常のストッパーのようにリアルタイムではないためです。
Configuration_adv.h の編集
#define BABYSTEPPINGリアルタイムレベリング機能を有効にする#define HOMING_BUMP_DIVISOR { 2, 2, 8 } // 再バンプ速度除数(ホーミング送り速度を除算)
pins_boardname.h の編集
以下の3行を追加して、ピンファイル pins_boardname.h で BDsensor の SDA および SCL のピンを設定します(例: pins_PANDA_PI_V29.h)。
#define I2C_BD_SDA_PIN PC6 // SDA ワイヤーが接続されているマザーボードの実際のピン番号に変更してください
#define I2C_BD_SCL_PIN PB2 // SLK ワイヤーが接続されているマザーボードの実際のピン番号に変更してください
#define I2C_BD_DELAY 20 // デフォルト値は20、範囲は[20,50]です。
通常のBLtouchのように印刷前に自動ベッドレベリングプローブ(G29)を行いたい場合は、コメントを解除します。
#define AUTO_BED_LEVELING_BILINEAR
そして、以下のように値を編集します。
#define Z_CLEARANCE_DEPLOY_PROBE 0 // デプロイ/ストウ用のZクリアランス
#define Z_CLEARANCE_BETWEEN_PROBES 1 // プローブポイント間のZクリアランス
#define Z_CLEARANCE_MULTI_PROBE 1 // 複数プローブ間のZクリアランス
LCDにBDセンサー値を表示する
- LCD12864やender3V2などの一部のuart画面のように、ステータス表示(gcode M117対応)があるプリンターの場合。
キャリブレーション
-
ノズルを清掃し、コンソールでZ軸を移動して、ノズルがベッドにちょうど接触するようにします(BDsensorはこの位置を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の範囲内にあり、増分デルタが >= 10 の場合、キャリブレーションは成功です。上記のグラフのように表示されます。
M102 S-5 が返す最初の生のキャリブレーションデータが 400 より大きい場合、センサーが高すぎる位置に取り付けられているため、ベッドに近づけて再取り付けする必要があります。また、2番目のデータが最初のデータ値より 10 以上大きいことを確認してください。
テストと印刷
メニューベッド
自動ベッド
ベッドを自動レベリングするには2つの方法があります:
1. M102を使用して最初の数層をリアルタイムレベリングする
この自動レベリングは、gcodeコマンドを送信するか、gcodeファイルにgcodeを追加することで簡単に有効または無効にできます。
キュラでベッドレベリングを有効にするには、プリンターのマシン設定の「スタートGコード」セクションで、G102(全軸ホーム)Gコードの直下に M28 Gコードを追加します。 例:G28の下に追加すると、Z軸高さ0.2mm以下の場合にのみベッドレベリングが行われます。M102 S2
送信するか、M102 S0 を使用するとBDセンサーによるベッドレベリングが無効になります。ちなみにデフォルトでは無効です。G28``M18
M102 S-1 //センサー情報を読み取り、接続確認に使用できます。
M102 S-2 //現在の距離値を読み取ります
M102 S-5 //生のキャリブレーションデータを読み取ります
M102 S-6 //キャリブレーションを開始します。その前に、ノズルがベッドにちょうど接触していることを確認し、プリンターを再起動してください。この前にz軸をホームにしないでください。
M102 S4 //調整可能なZ高さ値を設定します。例:M102 S4 は Z高さ <=0.4mm の場合に調整を行います。無効にするには M102 S0 を使用します。
2. G29 自動ベッドレベリング
ベッドを自動レベリングする別の方法は、BLtouchのG29のように、G28の下に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