11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【3Dプリンタ】BLTouchのXY方向プローブオフセット値の調整方法!

BLTouchや3DTouchなどオートレベリング適応時のX軸方向・Y軸方向のプローブオフセット値の調整方法についてご紹介したいと思います。

以前、私が使っているEnder3 V2のBLTouchいわゆるオートレベリング化の適応方法についてご紹介しました。

【3Dプリンタ】Ender3 V2にBLTouch(オートレベリング)機能を適応する手順!

Ender3 V2は他のEnder3シリーズのアップグレード版的な人気機種のため、私のように初めての3Dプリンタとして選ばれる方が多いようですね。
そのためか上記Ender3 V2のオートレベリング化の記事は非常に多くのアクセスがあり驚いています!

そして上記記事ではBLTouch設置時のプローブのオフセット値(X方向およびY方向)の調整方法に関してご紹介していなかったので追記記事としてこちらでご紹介したいと思います。

Creality 3D® Ender-3 V2 Upgraded Kit of BL Touch Self Leveling Sensor for 3D Printer
created by Rinker

BLTouch適応時のXY方向プローブオフセット値の調整方法!

BLTouchとは?

BLTouch(オートレベリング化)は3Dプリンタにおいてもう必須のカスタマイズになるかと思います。

ノズル高(ノズル先端とベットとの距離)のレベル調整は非常に重要な設定項目の1つとなりますが、コピー用紙を使い4隅のレベリングナットを回して何度もベットを上げ下げして・・・

これって非常に面倒なアナログ的な作業であり職人技的方法で結構難しんですよねー。
どんなに上手くレベルを合わせていてもセンター付近ではレベルは合ってるけどベット端に近づくにつれて徐々にずれてくる・・・なんてことはよくある話です。

しかしBLTouchや3DTouchと呼ばれるプローブを取り付けオートレベリング化する事により、ベット上の各ポイントをこのプローブを使い測位しメッシュデータ化する事により全てのポイントで均一のノズル高になるように補正する事が出来ます。

これで四隅のノブを絶妙な加減で回してレベルを調整していく・・・あの職人技的調整方法から開放されるというわけですね。

プローブのX方向およびY方向のオフセット値の調整が必要!

そしてここからが本題となります。
前回のBLTouch化の記事で詳しくご紹介出来ていなかったので追記的な内容となります。

こちらではEnder3 V2を例にご紹介していきますが、基本的な方法は他の3Dプリンタでも同じなので同様の手順で問題ないかと思います。

オートレベリング化にあたりBLTouchや3DTouchと呼ばれるプローブをノズル横に取り付けてベット上のポイントを測位しそのメッシュデータ(ベットの物理的な傾きのデータ)を利用して場所によりノズルを上げ下げする事により物理的な傾きを補正して常に均一なノズル高になるように調整しているわけですが、このプローブの位置はノズルから離れているのでそのオフセット値の調整が必要となってきます。

3Dプリンタの構成(ダイレクトエクストルーダーやヒートブロックの形状など)によりBLTouchを取り付ける位置は変わってきます。

その取り付け位置によりノズルからの距離も変わってくるので、メッシュデータを取る際に正確なノズル部分のデータを得るにはX方向・Y方向のオフセットを適切な値に設定する必要があります

こちらは最近取り付けたファンダクトのブラケットとなります。

BLTouchの取り付け位置はノズルより左側(-X方向)となっています。(このブラケットの場合-28mmとなっています)

そしてノズルより少し手前(-Y方向)に設置されています。(このブラケットでは-15mmとなっています)

このようにBLTouchプローブの取り付け位置により実際に測位した地点よりノズルが離れていいるためこれを補正するためにX方向・Y方向のオフセット値の調整が必要となってきます。

上記のようにCADデータがあれば便利なんですが、実際にはこのように測っていく感じですね!

X方向・Y方向のプローブオフセット値の調整

3Dプリンタ制御ソフトの導入

それでは上記の取り付け位置を例に実際にX方向・Y方向のプローブオフセット値の調整をやってみたいと思います。

下図のようにファームウェア(marlin)のソースファイル内の該当部分を変更し書き換えることでも可能ですが、少し敷居が高く面倒となります。

こちらではPCと接続しEEPROMファイルの内容を変更してXYプローブオフセット値の調整をやっていきます。
marlinファームウェアはよく出来ていて、EEPROMに書き込まれた設定項目(差分データ)を起動時に読み込み、その項目の変更が行われるようになっています。

そこでPCと接続しこのEEPROMファイルに書き込まれた項目のみを変更して対応する事が出来ます。

PCと接続し3Dプリンタを制御するためのソフトはいろいろとあるようですが、今回はPrintrun(Pronterface)というソフトを使って調整していきたいと思います。

まずはこちらからPronterfaceをダウロード&インストールして3DプリンタとUSB接続します。
Ender3 V2のUSB接続端子は前面のSDカードスロットル横にあります。

参考 PrintrunPronterface [Conect]ボタンを押しPCとEnder3 V2を接続(通信できる状態)します。
Printrunの詳しい使用方法は今回割愛しますが、簡単なので問題ないかと思います。

ここからコマンドを打ち込みEEPROMファイル(Ender3 V2本体に挿入しているSDカード内のEEPROMファイル)の内容を変更していきます。

参考までに、marlinファームウェアで使用するG-code一覧はこちらを参考にして下さい。

参考 G-code IndexMarlin

現在の設定内容を確認

まずは現在の設定内容を確認してみます。
右側のウィンドウにM503と打ち込み[Send]または[リターンキー]を押します。

現在の設定内容が一覧で表示されます。
こちらの項目が現在のBLTouchプローブのオフセット位置となっています。

M851 X-45.00 Y-20.00 Z-3.11

つまりプローブの位置は、X-45.00なのでノズルより左方向に45mm、Y-20.00なのでノズルより20mm手前に設定されているということとなります。

この値は前回の記事でご紹介したCreality公式のBLTouch用ファームウェア(V4.2.2用)の値となっておりCreality公式BLTouchキット付属のブラケットを使用している場合は変更の必要はないかと思います。

そして今回の例ではファンダクトブラケットに取り付けるBLTouchの位置がノズルの左側28mm、そしてノズルより15mm前に出ています。
つまりオフセット値としては、X-28.00 Y-15.00に調整し直す必要があるということですね。

M851コマンドを使ってXYオフセット値を変更する

ここでこのX方向・Y方向のオフセット値を変更するコマンドとしてM851コマンドを使います。
marlinのM851コマンドに関してはこちらを参考にして下さい。

M851 X-28.00 Y-15.00

先程の要領で上記を打ち込み[Send]ボタンで実行します。
これでXYオフセット値の変更ができました。

この状態ではまだファイルに保存されていないので再起動すると前の設定値に戻ってしまいます。
そこで現在の設定値をEEPROMファイルに保存する必要があり、M500コマンドを打ち込み保存します
これで完了です。

試しに3Dプリンタの電源を切り再起動後、同様にM503コマンドを実行し設定内容を確認してみるとM851 X-28.00 Y-15.00 Z○○に変更されているのが確認できるかと思います。
ファームウェア本体を変更し書き換えるより簡単ですね!

最後に!

BLTouchや3DTouchなどオートレベリングは非常に便利な機能で使われている方多いと思います。
そしてダイレクトエクストルーダー化やホットエンド、ファンの交換などのカスタマイズでBLTouchを取り付ける位置もその都度変わってきます。

私もこれまで何度かBLTouchブラケットを変更し取り付け位置が変わってきました。
X方向・Y方向のオフセット値の変更はmarlinファームウェア本体を書き換えなくても今回のようなコマンドにより指定しEEPROMファイルの内容を変更する事により実現できるので便利で簡単ですよね!

少しでも参考になれば幸いです!

Creality 3D® Ender-3 V2 Upgraded Kit of BL Touch Self Leveling Sensor for 3D Printer
created by Rinker

2 COMMENTS

pmode50

Cura のデフォルトにこの行を入れておけば良いのでは?
M851 X-28.00 Y-15.00 Z[zoffset値]

返信する
東京バード

pmode50さん、コメントありがとうございますm(_ _)m

Zオフセットはレベル調整などで変わってくるのでCure側で指定すると面倒なことがありますが(SDカード内に新しい変更した値が入ってるので)、確かにX・Yの値はCuraにコード追加した方が手っ取り早いですね。

ありがとうございます!

返信する

東京バード へ返信する コメントをキャンセル