見出し画像

ANYCUBIC MEGA-S用の ちゃんと使えるファームウェアをビルドする② ちゃんとちゃんとのマニュアルメッシュベッドレベリングの巻(with12864)

前回のビルドしたファームウェアで印刷出来てますよね? じゃーどんどん改変して楽しんでってゆーのは、あわてん坊の◯漏さんです。

責任のある大人の3Dプリントは地に足つけなきゃね!ってことで、BLタッチは付けてませんがメッシュレベリングをしましょう。
メッシュレベリングって言うのはタッチセンサーを付けているから出来るのではなくて、センサーが有れば自動で出来るって言うだけのもの。
センサーが無くたってちゃんとホットベッドの歪みの修正は出来るんです!。試しにターミナルから

G29 S1 

とコマンドを送ってみましょう。ね、何やら動き始めたでしょう? これはマニュアルでのメッシュレベリングが走り始めた動作です。(取り敢えず電源OFFで。)

今回はこのマニュアルベッドレベリングを行いたいと思います。
今回は理解がしやすいように説明がしやすいように 12864 のLCDを使ったやり方で説明をします。MEGA-Sのインターフェイスからはもしかして「運が良いと」 Special menu に表示されるかもしれません。(やってみて下さい。)

まずは現状確認。

普通な感じでヒートベッドいっぱいのテストパターンを印刷しました。

画像1

もうちょっとグチャグチャするのをイメージしていましたが、意外と定着しました。MEGA-Sってこう言う所イイですよね。ですがよく見ると実践では厳しいですね。最後にはこれば「ビシッ」と行くのか? まぁやって見ましょう。


ファームウェアを作成して機能を2つ追加

取り合えず2つの機能を追加します。

一つ目は、他のプリンターには普通についていてMEGA-Sに無い 「例のアレ」。 ベッドの水平だしの時に四隅に移動してくれる機能です。 コメントアウトを外します。

1686 #define LEVEL_BED_CORNERS    // remove comment out

次に、マニュアルメッシュベッドレベリング操作のUIを提供する機能を追加します。これもコメントアウトを外します。

1677 #define LCD_BED_LEVELING    // remove comment out

LEVEL_BED_CORNERS を試す

ではBUILDして試してみましょう。

まずは良くある四隅の LEVEL_BED_CORNERS から。

段層が深いですが、 infoscreen> motion> bedleveling> levelcorners で発動します。

画像2

画像3

実装されましたね。これで毎回同じ部分で水平だしが出来るので再現性が出ました。 (うぅ〜ん。 マーリンを使えてるなぁ~~。)

もうバネをやめてリジットに固定してしまってもイイですね。てかその方が良いし そうしたいです。

ここからメッシュベッドレベリングの本番


※始める前にプリヒートして温めます。

温まったらSTART。(今回はLCDで操作しますが、TFTに操作メニューは出てないでしょうからコマンドで実行する方法も他で紹介します。)

画像4


infoscreen> motion> bedleveling> Level Bed で発動。 コマンドで言うと

G29 S1

画像5

画像6

クリック

画像7

画像8

こう言う感じで止まります。 Z +0.200 と表示されてます。ここから例のOA紙でクリアランスを Z軸を動かしながら 揃えて行きます。

ちなみに四隅の水平出しの際のZ軸のクリアランスは 0.1mm で実行されています。

画像9

1箇所目は0.125mmくらい。エンコーダーの1クリクリで0.025mmづつ動きますがちょっと荒い感じがします。

ココはコマンド操作だと大変。

G91
G0 Z-0.025


調整が済んだらクリック  コマンドで言うと

G29 S2

画像10

2箇所目は0.125mm
3箇所目は1.000mm
うーん。upとdownでヒスがありますねぇ〜 バックラッシュキラーつけた方が良いかも。

画像11

25回。5×5のメッシュでした。

終わったらメモリー上のデータを StoresSetting して EEPROMに保存します。 コマンドは

M500

ですね。

初メッシュが完了したので 実力の確認


※メッシュレベリングのデータを印刷に適応するには印刷開始後の G28 よりも後に M420 S1 をする必要があります。

では印刷。

画像13

良くなっている所もあれば悪くなっている所もあり、、、
↓比較用 メッシュ前 水平出しのみ

画像13


0.025mmの解像度と25点の計測でちょっと精度が足りないのかな。

なのでもう一度ファームウェアを修正して精度を高めます。


精度を高めるためのファームウェアの修正

解像度を上げるためにZ軸の移動を 0.025mm →0.010mm

1680 #define MESH_EDIT_Z_STEP  0.010

メッシュの区切りを増やすために 5→10

1659 #define GRID_MAX_POINTS_X 10

5×5 の 25ポイントから 100 ポイントに増えて 0.010mm刻みに成ったので少し大変かも。と思いましたが、マニュアル操作でのメッシュは 軸ごとに 7 ポイントまでに制限されていましたので

1659 #define GRID_MAX_POINTS_X 7

に修正して 49 ポイント測定します。 オートだと15ポイントまで増やせるみたいです。(知らんけど)

あと、ついでじゃないですが、印刷時にメッシュを適用するコマンドを送らなくてはいけませんがファームウェアの設定で自動的に適用する事も出来ますので今のうちに機能を入れておきます。

1555 #define RESTORE_LEVELING_AFTER_G28    // remove comment out

あとは測定前のプリヒートを自動で行う機能。(これはオート用だったので機能しなかった。)

1561 #define PREHEAT_BEFORE_LEVELING    // remove comment out


で実際ビルドして測定した結果がこちら。

コマンドするとデータが返ってきます。

G29 S0

SENDING:G29 S0
Mesh Bed Leveling ON
7x7 mesh. Z offset: 0.00000
Measured points:
       0        1        2        3        4        5        6
0 -0.02000 -0.00000 +0.01000 +0.03000 +0.03000 +0.01000 -0.04000
1 -0.02000 -0.01000 +0.02000 +0.03000 +0.04000 +0.02000 -0.01000
2 -0.02000 -0.00000 +0.01000 +0.04000 +0.06000 +0.04000 +0.04000
3 -0.04000 -0.01000 +0.00000 +0.04000 +0.05000 +0.05000 +0.02000
4 -0.04000 -0.01000 +0.01000 +0.04000 +0.04000 +0.03000 +0.01000
5 -0.01000 +0.00000 +0.02000 +0.04000 +0.03000 +0.02000 -0.02000
6 +0.01000 +0.01000 +0.04000 +0.02000 +0.02000 +0.00000 -0.05000
MBL G29 point 1 of 49

何となく傾向が出ていますよね?

無題

ちなみに先程の結果も
5x5 mesh. Z offset: 0.00000
Measured points:
       0        1        2        3        4
0 -0.00000 +0.02500 +0.02500 +0.02500 -0.02500
1 -0.00000 +0.02500 +0.05000 +0.07500 +0.02500
2 -0.00000 +0.02500 +0.05000 +0.07500 -0.00000
3 +0.00000 +0.02500 +0.05000 +0.05000 +0.00000
4 +0.02500 +0.02500 -0.00000 -0.00000 -0.07500

無題


では、いざ テストプリント。



画像14

プローブが無くても実用レベルまで修正は可能のようです。

ファームウェアの編集で「地に足が着いた」大人の3Dプリンターに変身です! ※後日談。プローブが無くてもオートレベリングが使用できる事が分かりました。オートレベリングでは7ポイントの制限が無いのでもう少しポイント数を増やして修正したいと思います。


無題

こういうのを読みながらやってます。



宿題

Z軸バックラッシュキラー

ヒートベッドのリジット固定

コマンドでのマニュアルメッシュベッドレベリング 





この記事が気に入ったらサポートをしてみませんか?