Anycubic i3 MEGAでオートレベリングをする方法
注意
今回の内容は3Dプリンターの改造にあたり、メーカーの保証を受けられなくなる可能性が高いです。自己責任でお願いします。
どもどもYanでっす。
本日のお題は「Anycubic i3 MEGA(Sも含む)でオートレベリングをする」。
必要なもの
・BLTouch又はクローン
・BLTouchを取り付けるためのカスタムヘッド
・ArduinoIDE
・BLTouch対応MEGA用ファームウェア
・ハンダごて一式
あると便利なもの
・M3ネジ
・熱収縮チューブ
・ヒートガン、エンボスヒーター
手順1
まずBLTouchを取り付けるカスタムヘッド、あるいはマウントをプリント。
今回ははるかぜポポポさんのダイレクトエクストルーダーmodを僕がBLTouch対応にRemixしたもので説明します。
ボーデン方式でもBLTouchを取り付けるのが違うだけで、紹介する作業は同じ内容です。
手順2
実際にプリントしたヘッド(マウント)を使ってBLTouchを取り付け。この時購入したBLTouchにネジなどついていないときはたいていはM3ネジなのでM3ネジを買っておくと便利。
以下のpdfの写真を参考にヘッド付近のサブ基板にヘッダピンをハンダ付け。pdfへの直リンクなので「タイトル未設定」になってるけど見られます。
BLTouchから伸びているケーブルのうち白がSignal、黒がGroundになるのでハンダ付けしたヘッダピンに差し込みます。
残りの3本、赤、オレンジ、茶色はそれぞれ5V、シグナル、Groundに対応していて、これは底面のマザーボードまで取り廻して持っていきます。
先ほどのpdfにあるマザーボードの画像中央よりやや上あたりにS1と書かれていてピンヘッダがすでに生えている部分があるので、プリントを見ながら5V、GND、SIGを差し込みます。BLTouchから伸びている配線で長さが足りない場合は途中で切断して適当な電線を使って延長してしまいます。ヘッドが動くと配線も引っ張られるのである程度余裕を持った長さにしておくことをお勧め。
手順3
ハード側の準備は手順1と手順2で完了です。次はBLTouch対応MEGA用ファームウェアの設定を変更してコンパイル、プリンタのファームウェア書き換えになります。
書き換えるポイントは「configuration.h」内の
#define X_PROBE_OFFSET_FROM_EXTRUDER -28 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -30 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
の部分X_PROBEとY_PROBEの値を変更します。上の-28と-30は今回使ったヘッドのオフセット値。ノズルからどれだけBLTouchのセンサー部が離れているかの値をここで指定してます。
他のヘッドとかマウントを使ったり自分で設計する場合はノズルから平面距離でX軸方向とY軸方向に距離があるかを確認しときましょう。Thingiverseからダウンロードする時は記載されてるやつを選ぶというのも手。
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 10
#define RIGHT_PROBE_BED_POSITION 180
#define FRONT_PROBE_BED_POSITION 10
#define BACK_PROBE_BED_POSITION 180
1040行目あたりのここら辺が原因でコンパイル時にエラーが出る事があるので、エラーが出たら少しづつ数値を減らしていって調整が必要。今回のやつでは上の値がほぼマックスぽい。
BLTouchのセンサーが届く位置の端をここで指定してます。上から左端、右端、手前、奥。単位はmmで原点(左手前)からの距離で指定します。どうも最低でも10mmはあけないとならないみたいで左と手前は10が最低値ぽい。
※Trigorillaはバージョンが1.0系と1.1系の2つがあります。下の写真の様にゴリラマーク内にTRIGORILLA1.1と書かれていたら1.1系なので以下の修正も行ってください。
1.1の場合はconfiguration.hの一番下の方
#define TRIGORILLA_VERSION 0
となっているところを
#define TRIGORILLA_VERSION 1
にします。0→1にしているだけです。
無事コンパイルできたらCURAを使ってファームウェアを書き換えて次の手順へゴー!
手順4
ファームウェアを書き換えたら初期化と動作確認をします。
REPETIER HOSTなどコマンドを送れるソフトを使ってgcodeを送ることで確認。REPETIER HOSTの使い方ははるかぜポポポさんのnoteを参考にするとよいかと思います。
REPETIER HOSTを使ってプリンタに接続したら、右上のタブで「プリンタ操作」を選ぶとgcodeを送れます。G-Codeってあるところにコマンドを打ち込んで「送信」ボタンを押すかエンターキー。
ここに記載されているコマンドを上から順に1行づつ実行していくわけですが、ここは設定でも大事なとこなので説明しておきます。
M502 (ファームウェア初期化)
M500 (初期化した内容を描きこみ)
M280 P0 S10 (BLTouchのピンが出る)
M280 P0 S90 (BLTouchのピンが引っ込む)
G28 (ホームへ移動)
G1 Z20 (上に20mm移動)
G1 X110 Y110 Z100 (ベッド中央の上100mmにヘッド移動)
G29 (オートレベリング開始)
()内を除いてコマンドを1行づつREPETIER HOSTから実行していきます。最後のG29だけはすぐ終わらずベッドの上25か所を計測して右奥でヘッドが停止するまで少し時間がかかります。
問題なくG29まで終わったら次へ進みます。
手順5
Z軸のズレの補整が最後の手順。ノズル先端とBLTouchのピンの先端は高さが異なっているのでこのズレを補整してあげます。これもREPETIER HOSTからコマンド送信。
M211 S0 (ソフトウェアリミットを無効化)
まず下方向に動かすためにソフト制御の制限を解除します。これでベッドにめり込むような動きも可能になります。
MEGAの液晶の「Setup」→「Temp」でベッドの温度をプリント時の温度に加熱します。加熱が終わったら以下のコマンドを1行づつ送信。
G28 (ホームへ移動)
G1 Z5 (5mmヘッドを上へ移動)
G29 (オートレベリング開始)
(オートレベリングが無事終了したら以下を実行)
G1 X110 Y110 Z5 (ベッド中央、ベッドから5mm上にヘッド移動)
ここまで来たら少し手作業が入ります。
MEGAの液晶パネルの「Tools」→「Axis」でZ軸を少しづつ下げていきます。ベッドレベリングの基本、薄い紙をノズルとベッドの間において、かすかに抵抗を感じるくらいで動かせるとこまで下げていきます。
M211コマンドでソフト制御が無効化されてて大きな数値でノズルを下げるとベッドを傷つける恐れがあるので、大きくても1.0mmまでで。
紙が少し抵抗を感じて動くくらいまでノズルを下げたらREPETIER HOSTに戻ります。
M114 (現在の位置を表示)
コマンドを送信すると左側のログウィンドウにこんな感じで表示が出ます。
X:110.00 Y:110.00 Z:●●●.●● E:0.00 Count C:8800 Y:8800 Z:○○
Xで始まっている行のZ:以下の数値がノズル先端とBLTouchのピンとのズレ。これを設定します。
M851 Z-2.70 (Z軸のオフセットを-2.70に設定)
M500 (設定内容を保存)
M851の後-2.70の部分はREPETIER HOSTでM114コマンドを入力して出てきたログのZ:以下の部分をプラス、マイナスの記号も含めてそのまま入れ替えてください。
M500で設定を保存したら完了です。設定保存を忘れるとオートレベリングをしてもノズルがかなり上でプリントをしてしまうので注意しましょう。
手順6 MEGA-Sの人のみ
Anycubic i3 MEGAではなくMEGA-Sを使っている人で、カスタムファームウェア導入が初めての方はMEGA用BLTouchファームウェアは一部MEGA-Sと仕組みが異なっているので、こちらの記事にある「MEGA-S用の追加設定」も行ってください。具体的にはマテリアル吐出量が激減します。
オートレベリングの内容を使ってプリントするには?
方法は2つ。毎回プリント前にオートレベリングを行う方法と任意のタイミングでオートレベリングを行ってそこで取得した補正値を使ってプリントする方法。
毎回プリント前にオートレベリングするには
CURAで上のメニュー「Settings」→「Printer」→「Manage Printers」
Machine Settingsボタンを押して出てくる画面をこうします。
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G28コマンドの真下に以下の1行を追加
G29
これでプリント開始時に毎回オートレベリングが実行されます。
任意のタイミングでオートレベリングをして補正値を使ってプリントするには
これはカスタムファームウェアのメッシュレベリングと同じ方法。
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
ここのあとに以下の2行を挿入
M501
M420 S1
これでオートレベリングを行ったときに取得した補整値を使ってプリントされるようになります。オートレベリングを行ったらREPETIER HOSTからG28、G29コマンドでやった場合はM500を、本体のメニュー画面から行った場合はノズルが停止してからSave EEPROMを実行して取得した値を保存するのを忘れずに。
更新履歴
16/11/20:MEGA-Sでオートレベリングする場合に必要な追加設定について記述しました。Thingiverseに公開されているMEGA用カスタムファームウェアを使う時はMEGAとはエクストルーダー用モーターや構造が異なっているため、設定変更が必要です。
まとめ
これで熱いベッドの上で紙を動かす作業から解放され、たぶん手動よりも精度が高いレベリング結果でプリントができるようになります。
ハンダ付けが必要だったりと少し敷居が高いですが、かなり便利になりますのでハンダ付けに慣れている人はチャレンジしてみる価値ありです。BLTouchもアリエクで買えば1000円ちょっとなのでお手頃な改造といえるんじゃないでしょうか。
もしこの記事が役に立ったと思ったら記事の購入、サポートなどお願いします!
この下は購入してくださった方へのお礼メッセージになります。
ここから先は
¥ 200
僕のノートが役に立った、面白かったと思っていただけたら、スキ、フォロー、サポートお願いします!