インストール BDsensor
センサーケーブルをメインボードまたはCANバスヘッドボードに接続します。
- 
SB2040はBDsensorを使用できませんことに注意してください
 - 
SHT36にはBDsensorのCLK/SCL(入力)を高電圧入力口に接続し、ジャンパを付け加える必要があります
 - 
BDsensorのCKLとSDA線は、回路ボードの任意のGPIOピンに接続できます。また、BDセンサーケーブルをBltouchポートに直接接続することもできます。例えば:
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (入力)
GND --> GND
Zmin --> SDA (入力/出力) - 
マザーボードコネクタ内の一部のピンは直接MCUのgpiosに接続されていない可能性があります(例えば、それらにはフィルタリングコンデンサやMOSFET、ダイオードまたは光カプラで隔離されている場合があり、もしそれらが抵抗または抵抗によるプルアップ/ダウンで隔離されている場合でも)、それらはBDsensorと一緒に使用することができません。そしてファームウェアは接続エラーを報告します。例えば
 - 
ファンとヒーターのコネクタはMOSFETによって隔離されています,
 - 
一部の回路ボードでは、温度センサーとエンドストップ/プローブ用のコネクタは通常、GNDにフィルタリングコンデンサを通じて接続されています,
 
- 
次の図のように、BDセンサーをホットエンド近くに取り付けてください。mount STL, STL_mount_VzBot_Goliath short

 
Marlinファームウェアへのパッチインストール
BDセンサーはMarlin2.1.x(2022.8.27以降)に統合されています、
リリースバージョンをダウンロードすることができます。しかし、現在は最新のバグ修正版をダウンロードすることをお勧めします:https://github.com/MarlinFirmware/Marlin
必要なのは、設定ファイルとピンファイルを変更することです。
設定.hを編集
- 
BD_SENSORを有効にする
コメントアウト解除
#define BD_SENSOR`
`#define Z_SAFE_HOMING
#define BD_SENSOR_PROBE_NO_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
// Z軸のホーム化のためにプローブを使用する強制
#define USE_PROBE_FOR_Z_HOMING - 
2番目のホームZ速度を減速させる
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 16)ここで、BDsensorプロセスから読み取ったストッパーが通常のストッパーのようにリアルタイムで動作しないため、ブロックのホーム化速度とZホーム化速度を減速する必要があります。
Configuration_adv.hを編集
#define BABYSTEPPINGこの機能を有効にして、リアルタイム調整機能を実現します#define HOMING_BUMP_DIVISOR { 2, 2, 8 } // 再バムピング速度除数(ホームングフィードレートを除算) 
pins_boardname.hを編集
引き出しファイルpins_boardname.hにBDセンサーのSDAとSCLのピンを設定するには、次の3行を追加します(例):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センサー値を表示する
- プリンターにステータスディスプレイ(gcode M117をサポート)がある場合、例えばLCD12864やいくつかのuartスクリーン、ender3V2など...
 
カリブレーション
- 
スペアノズルを清掃し、コンソールを移動させてZ軸を下げ、ノズルがベッドプレートに触れる位置まで下げます(BDセンサーはこの位置を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番目のデータが1番目のデータ値より10以上大きいことを確認する必要があります。
テストとプリント
メニューのベッド層
自動ベッド
ベッドの自動レベル化には2つの方法があります:
1. M102を使用して最初の数層をリアルタイムでレベル化する
この自動レベルを有効または無効にするには、gcodeコマンドを送信するか、gcodeファイルにgcodeを追加することができます。
Marlinでベッドレベルを有効にするには、「スタートGコード」セクションの「G102(すべての軸のホーム)Gコード」の直下にM28 Gコードを追加します。例えば、G28の下にこれを追加すると、それはZ軸の高さが0.2mm以下のときにだけベッドレベルを行います。M102 S2
M102 S0を使用してBDセンサーを使用してベッドレベルを無効にします。M18またはG28を送信または使用することでデフォルトで無効になっています。
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と同じように、ベッドを自動的にレベル化する別の方法は、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